Shapes 3D  3.0
 All Classes Functions Variables Pages
shapes3d.path.PathOrthogonal Class Referenceabstract
Inheritance diagram for shapes3d.path.PathOrthogonal:

Classes

class  PathNormalAMC
 
class  PathNormalX
 
class  PathNormalY
 
class  PathNormalZ
 

Public Member Functions

abstract PVector getOrthogonal (PVector tan)
 

Static Public Member Functions

static PathOrthogonal getBest (Path p, int n)
 

Additional Inherited Members

- Public Attributes inherited from shapes3d.utils.SConstants
int WIRE = 0x00000011
 
int SOLID = 0x00000012
 
int TEXTURE = 0x00000014
 
int DRAWALL = WIRE | SOLID | TEXTURE
 
int WHITE = 0xFFFFFFFF
 
int BLACK = 0xFF000000
 
int GREY = 0xFFC0C0C0
 
int RED = 0xFFFF0000
 
int GREEN = 0xFF00FF00
 
int BLUE = 0xFF0000FF
 
int YELLOW = 0xFFFFFF00
 
int PURPLE = 0xFFFF00FF
 
int CYAN = 0xFF00FFFF
 
int ORANGE = 0xFFFFC000
 
int CW = 1
 
int CCW = 2
 
int ALL = 0b11111111
 
int BOTTOM = 0b00000001
 
int TOP = 0b00000010
 
int FRONT = 0b00000100
 
int BACK = 0b00001000
 
int LEFT = 0b00010000
 
int RIGHT = 0b00100000
 
int BODY = 0b00000001
 
int END0 = 0b00000010
 
int END1 = 0b00000100
 
float ONE_DEG_T = (float) (Math.PI / 180.0)
 
PathOrthogonal ORTHO_X = new PathOrthogonal.PathNormalX()
 
PathOrthogonal ORTHO_Y = new PathOrthogonal.PathNormalY()
 
PathOrthogonal ORTHO_Z = new PathOrthogonal.PathNormalZ()
 
PathOrthogonal ORTHO_A = new PathOrthogonal.PathNormalAMC()
 
TransformUV ROT_0 = TransformUV.ROT0
 
TransformUV ROT_90 = TransformUV.ROT90
 
TransformUV ROT_180 = TransformUV.ROT180
 
TransformUV ROT_270 = TransformUV.ROT270
 
TransformUV FLIP_H = TransformUV.FLIPH
 
TransformUV FLIP_V = TransformUV.FLIPV
 
Rotation ROTATION_ZERO = new Rotation()
 
int T_BOX = 0x1001
 
int T_DOME = 0x1002
 
int T_CONE = 0x1003
 
int T_ELLIPSOID = 0x1004
 
int T_EXTRUSION = 0x1005
 
int T_LATHESTOCK = 0x1006
 
int T_MD2 = 0x1007
 
int T_SKYBOX = 0x1008
 
int T_SKYDOME = 0x1009
 
int T_TERRAIN = 0x100A
 
int T_TUBE = 0x100B
 
int C_LATHESURFACE = 0x2001
 
int C_OVAL = 0x2002
 
int C_POLYGON = 0x2003
 
int P_BCURVE2D = 0x3001
 
int P_BCURVE3D = 0x3002
 
int P_BSPLINE2D = 0x3003
 
int P_BSPLINE3D = 0x3004
 
int P_LINEAR = 0x3005
 
int P_LISSAJOUS = 0x3006
 
int P_RING = 0x3007
 
int P_SPIRAL = 0x3008
 

Detailed Description

At any point along the s continuous curve in 2D space there is a single curve tangent line and two curve normals (orthogonals). In 3D space it is slightly more complicated, although there is a single tangent at any point along the curve there RE an infinite number of orthogonals. To create the shapes this library needs to know the orthogonal at any point along the curve.

A bad choice of orthogonal can cause unwanted rotations and/or twists in the cross-section. If the user does not choose an orthogonal Shapes3D will choose what it thinks best from four different algorithms. Even so it is still possible to get unwanted rotations/twists in which case the user can provide their own orthogonal calculator.

Author
Peter Lager

Member Function Documentation

abstract PVector shapes3d.path.PathOrthogonal.getOrthogonal ( PVector  tan)
pure virtual

Calculate the orthogonal to use for a particular path.

Parameters
tanthe tangent
Returns
the orthogonal to the tangent

Implemented in shapes3d.path.PathOrthogonal.PathNormalAMC, shapes3d.path.PathOrthogonal.PathNormalZ, shapes3d.path.PathOrthogonal.PathNormalY, and shapes3d.path.PathOrthogonal.PathNormalX.


The documentation for this class was generated from the following file: