Package org.arakhne.afc.math.geometry.d3
Interface OrientedPoint3D<RP extends Point3D<? super RP,? super RV>,RV extends Vector3D<? super RV,? super RP>>
-
- Type Parameters:
RP
- is the type of point that can be returned by this tuple.RV
- is the type of vector that can be returned by this tuple.
- All Superinterfaces:
Cloneable
,JsonableObject
,Point3D<RP,RV>
,Serializable
,Tuple3D<RP>
- All Known Implementing Classes:
OrientedPoint3d
,OrientedPoint3dfx
,OrientedPoint3i
,OrientedPoint3ifx
public interface OrientedPoint3D<RP extends Point3D<? super RP,? super RV>,RV extends Vector3D<? super RV,? super RP>> extends Point3D<RP,RV>
A 3D point with three orientation vectors relative to the polyline: the tangent, the normal and the sway to the point. They have no physical existence.Note: the normal is defined as the orthogonal vector to the tangent's plane, and the sway is the cross product of the tangent and the normal.
- Version:
- 17.0 2020-01-04 14:41:43
- Author:
- Thomas PIOTROWSKI, Stéphane GALLAND, Olivier LAMOTTE
- Maven Group Id:
- org.arakhne.afc.core
- Maven Artifact Id:
- mathgeom
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default boolean
equals(OrientedPoint3D<?,?> p1)
Returns true if all of the data members of OrientedPoint3D p1 are equal to the corresponding data members in this OrientedPoint3D.RV
getNormal()
Replies the normal vector.double
getNormalX()
Replies the X coordinate of the normal vector.double
getNormalY()
Replies the Y coordinate of the normal vector.double
getNormalZ()
Replies the Z coordinate of the normal vector.default RP
getPoint()
Replies this point.RV
getSway()
Replies the sway vector.default double
getSwayX()
Replies the X coordinate of the sway vector.default double
getSwayY()
Replies the Y coordinate of the sway vector.default double
getSwayZ()
Replies the Z coordinate of the sway vector.RV
getTangent()
Replies the tangent vector .double
getTangentX()
Replies the X coordinate of the tangent vector.double
getTangentY()
Replies the Y coordinate of the tangent vector.double
getTangentZ()
Replies the Z coordinate of the tangent vector.int
inx()
Replies the X coordinate of the normal vector.int
iny()
Replies the Y coordinate of the normal vector.int
inz()
Replies the Z coordinate of the normal vector.default int
isx()
Replies the X coordinate of the sway vector.default int
isy()
Replies the Y coordinate of the sway vector.default int
isz()
Replies the Z coordinate of the sway vector.int
itx()
Replies the X coordinate of the tangent vector.int
ity()
Replies the Y coordinate of the tangent vector.int
itz()
Replies the Z coordinate of the tangent vector.default void
set(double x, double y, double z, double tanX, double tanY, double tanZ)
Change the point and its tangent vector.default void
set(double x, double y, double z, double tanX, double tanY, double tanZ, double norX, double norY, double norZ)
Change the point its tangent and normal vectors.default void
set(int x, int y, int z, int tanX, int tanY, int tanZ)
Change the point and its tangent vector.default void
setNormal(RV normal)
Sets the given vector as the new normal to this point.void
setNormalX(double norX)
Sets a new value in the X normal of the point.void
setNormalX(int norX)
Sets a new value in the X normal of the point.void
setNormalY(double norY)
Sets a new value in the Y normal of the point.void
setNormalY(int norY)
Sets a new value in the Y normal of the point.void
setNormalZ(double norZ)
Sets a new value in the Z normal of the point.void
setNormalZ(int norZ)
Sets a new value in the Z normal of the point.default void
setTangent(RV tangent)
Sets the given vector as the new tangent to this point.void
setTangentX(double tanX)
Sets a new value in the X tangent of the point.void
setTangentX(int tanX)
Sets a new value in the X tangent of the point.void
setTangentY(double tanY)
Sets a new value in the Y tangent of the point.void
setTangentY(int tanY)
Sets a new value in the Y tangent of the point.void
setTangentZ(double tanZ)
Sets a new value in the Z tangent of the point.void
setTangentZ(int tanZ)
Sets a new value in the Z tangent of the point.-
Methods inherited from interface org.arakhne.afc.vmutil.json.JsonableObject
toJson
-
Methods inherited from interface org.arakhne.afc.math.geometry.d3.Point3D
add, add, add, getDistance, getDistanceL1, getDistanceLinf, getDistanceSquared, getGeomFactory, getIdistanceL1, getIdistanceLinf, operator_add, operator_and, operator_elvis, operator_equals, operator_minus, operator_minus, operator_notEquals, operator_plus, operator_remove, operator_upTo, operator_upTo, scaleAdd, scaleAdd, scaleAdd, scaleAdd, scaleAdd, scaleAdd, sub, sub, toUnmodifiable
-
Methods inherited from interface org.arakhne.afc.math.geometry.d3.Tuple3D
absolute, absolute, add, add, addX, addX, addY, addY, addZ, addZ, clamp, clamp, clamp, clamp, clampMax, clampMax, clampMax, clampMax, clampMin, clampMin, clampMin, clampMin, clone, epsilonEquals, equals, equals, get, get, get, getX, getY, getZ, hashCode, interpolate, interpolate, ix, iy, iz, negate, negate, scale, scale, scale, scale, set, set, set, set, set, setX, setX, setY, setY, setZ, setZ, sub, sub, subX, subX, subY, subY, subZ, subZ
-
-
-
-
Method Detail
-
getTangentX
@Pure double getTangentX()
Replies the X coordinate of the tangent vector. If this point is not part of a polyline, the tangent vector is null.- Returns:
- the x coordinate of the tangent vector.
-
itx
@Pure int itx()
Replies the X coordinate of the tangent vector. If this point is not part of a polyline, the tangent vector is null.- Returns:
- the x coordinate of the tangent vector.
-
setTangentX
void setTangentX(int tanX)
Sets a new value in the X tangent of the point.- Parameters:
tanX
- the new value double x.
-
setTangentX
void setTangentX(double tanX)
Sets a new value in the X tangent of the point.- Parameters:
tanX
- the new value double x.
-
getTangentY
@Pure double getTangentY()
Replies the Y coordinate of the tangent vector. If this point is not part of a polyline, the tangent vector is null.- Returns:
- the y coordinate of the tangent vector.
-
ity
@Pure int ity()
Replies the Y coordinate of the tangent vector. If this point is not part of a polyline, the tangent vector is null.- Returns:
- the y coordinate of the tangent vector.
-
setTangentY
void setTangentY(int tanY)
Sets a new value in the Y tangent of the point.- Parameters:
tanY
- the new value double y.
-
setTangentY
void setTangentY(double tanY)
Sets a new value in the Y tangent of the point.- Parameters:
tanY
- the new value double y.
-
getTangentZ
@Pure double getTangentZ()
Replies the Z coordinate of the tangent vector. If this point is not part of a polyline, the tangent vector is null.- Returns:
- the z coordinate of the tangent vector.
-
itz
@Pure int itz()
Replies the Z coordinate of the tangent vector. If this point is not part of a polyline, the tangent vector is null.- Returns:
- the z coordinate of the tangent vector.
-
setTangentZ
void setTangentZ(int tanZ)
Sets a new value in the Z tangent of the point.- Parameters:
tanZ
- the new value double z.
-
setTangentZ
void setTangentZ(double tanZ)
Sets a new value in the Z tangent of the point.- Parameters:
tanZ
- the new value double z.
-
getTangent
@Pure RV getTangent()
Replies the tangent vector .- Returns:
- the tangent vector to this point.
-
setTangent
default void setTangent(RV tangent)
Sets the given vector as the new tangent to this point. The sway vector is automatically recomputed.- Parameters:
tangent
- the vector to set.
-
getNormalX
@Pure double getNormalX()
Replies the X coordinate of the normal vector. If this point is not part of a polyline, the normal vector is null.- Returns:
- the x coordinate of the normal vector.
-
inx
@Pure int inx()
Replies the X coordinate of the normal vector. If this point is not part of a polyline, the normal vector is null.- Returns:
- the x coordinate of the normal vector.
-
setNormalX
void setNormalX(int norX)
Sets a new value in the X normal of the point.- Parameters:
norX
- the new value double x.
-
setNormalX
void setNormalX(double norX)
Sets a new value in the X normal of the point.- Parameters:
norX
- the new value double x.
-
getNormalY
@Pure double getNormalY()
Replies the Y coordinate of the normal vector. If this point is not part of a polyline, the normal vector is null.- Returns:
- the y coordinate of the normal vector.
-
iny
@Pure int iny()
Replies the Y coordinate of the normal vector. If this point is not part of a polyline, the normal vector is null.- Returns:
- the y coordinate of the normal vector.
-
setNormalY
void setNormalY(int norY)
Sets a new value in the Y normal of the point.- Parameters:
norY
- the new value double y.
-
setNormalY
void setNormalY(double norY)
Sets a new value in the Y normal of the point.- Parameters:
norY
- the new value double y.
-
getNormalZ
@Pure double getNormalZ()
Replies the Z coordinate of the normal vector. If this point is not part of a polyline, the normal vector is null.- Returns:
- the z coordinate of the normal vector.
-
inz
@Pure int inz()
Replies the Z coordinate of the normal vector. If this point is not part of a polyline, the normal vector is null.- Returns:
- the z coordinate of the normal vector.
-
setNormalZ
void setNormalZ(int norZ)
Sets a new value in the Z normal of the point.- Parameters:
norZ
- the new value double z.
-
setNormalZ
void setNormalZ(double norZ)
Sets a new value in the Z normal of the point.- Parameters:
norZ
- the new value double z.
-
getNormal
@Pure RV getNormal()
Replies the normal vector.- Returns:
- the normal vector to the point.
-
setNormal
default void setNormal(RV normal)
Sets the given vector as the new normal to this point. The sway vector is automatically recomputed.- Parameters:
normal
- the vector to set.
-
getSwayX
@Pure default double getSwayX()
Replies the X coordinate of the sway vector. If this point is not part of a polyline, the normal vector is null.- Returns:
- the x coordinate of the sway vector.
-
isx
@Pure default int isx()
Replies the X coordinate of the sway vector. If this point is not part of a polyline, the normal vector is null.- Returns:
- the x coordinate of the sway vector.
-
getSwayY
@Pure default double getSwayY()
Replies the Y coordinate of the sway vector. If this point is not part of a polyline, the normal vector is null.- Returns:
- the y coordinate of the sway vector.
-
isy
@Pure default int isy()
Replies the Y coordinate of the sway vector. If this point is not part of a polyline, the normal vector is null.- Returns:
- the y coordinate of the sway vector.
-
getSwayZ
@Pure default double getSwayZ()
Replies the Z coordinate of the sway vector. If this point is not part of a polyline, the normal vector is null.- Returns:
- the z coordinate of the sway vector.
-
isz
@Pure default int isz()
Replies the Z coordinate of the sway vector. If this point is not part of a polyline, the normal vector is null.- Returns:
- the z coordinate of the sway vector.
-
getSway
@Pure RV getSway()
Replies the sway vector.- Returns:
- the sway vector to this point.
-
getPoint
default RP getPoint()
Replies this point.- Returns:
- this point
-
set
default void set(int x, int y, int z, int tanX, int tanY, int tanZ)
Change the point and its tangent vector.- Parameters:
x
- x coordinate of the point.y
- y coordinate of the point.z
- z coordinate of the point.tanX
- x coordinate of the tangent vector.tanY
- y coordinate of the tangent vector.tanZ
- z coordinate of the tangent vector.
-
set
default void set(double x, double y, double z, double tanX, double tanY, double tanZ)
Change the point and its tangent vector.- Parameters:
x
- x coordinate of the point.y
- y coordinate of the point.z
- z coordinate of the point.tanX
- x coordinate of the tangent vector.tanY
- y coordinate of the tangent vector.tanZ
- z coordinate of the tangent vector.
-
set
default void set(double x, double y, double z, double tanX, double tanY, double tanZ, double norX, double norY, double norZ)
Change the point its tangent and normal vectors.- Parameters:
x
- x coordinate of the point.y
- y coordinate of the point.z
- z coordinate of the point.tanX
- x coordinate of the tangent vector.tanY
- y coordinate of the tangent vector.tanZ
- z coordinate of the tangent vector.norX
- x coordinate of the normal vector.norY
- y coordinate of the normal vector.norZ
- z coordinate of the normal vector.
-
equals
@Pure default boolean equals(OrientedPoint3D<?,?> p1)
Returns true if all of the data members of OrientedPoint3D p1 are equal to the corresponding data members in this OrientedPoint3D.- Parameters:
p1
- the vector with which the comparison is made- Returns:
- true or false
-
-