JavaCAD
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
eu.mihosoft.vrl.v3d.Transform Class Reference
Collaboration diagram for eu.mihosoft.vrl.v3d.Transform:
Collaboration graph
[legend]

Public Member Functions

 Transform ()
 
 Transform (Matrix4d m)
 
Transform rotX (double degrees)
 
Transform rotY (double degrees)
 
Transform rotZ (double degrees)
 
Transform rot (double x, double y, double z)
 
Transform rot (Vector3d vec)
 
Transform translate (Vector3d vec)
 
Transform translate (double x, double y, double z)
 
Transform translateX (double value)
 
double getQuataurionX ()
 
double getQuataurionY ()
 
double getQuataurionZ ()
 
double getQuataurionW ()
 
double getX ()
 
double getY ()
 
double getZ ()
 
String toString ()
 
Transform translateY (double value)
 
Transform translateZ (double value)
 
Transform mirror (Plane plane)
 
Transform scale (Vector3d vec)
 
Transform scale (double x, double y, double z)
 
Transform scale (double s)
 
Transform scaleX (double s)
 
Transform scaleY (double s)
 
Transform scaleZ (double s)
 
Vector3d transform (Vector3d vec)
 
Vector3d transform (Vector3d vec, double amount)
 
double getScale ()
 
boolean isMirror ()
 
Transform apply (Transform t)
 
Matrix4d getInternalMatrix ()
 
Transform inverse ()
 
Transform invert ()
 
Transform move (Number x, Number y, Number z)
 
Transform move (Vertex v)
 
Transform move (Vector3d v)
 
Transform move (Number[] posVector)
 
Transform movey (Number howFarToMove)
 
Transform movez (Number howFarToMove)
 
Transform movex (Number howFarToMove)
 
Transform mirrory ()
 
Transform mirrorz ()
 
Transform mirrorx ()
 
Transform rotz (Number degreesToRotate)
 
Transform roty (Number degreesToRotate)
 
Transform rotx (Number degreesToRotate)
 

Static Public Member Functions

static Transform unity ()
 

Private Attributes

final Matrix4d m
 

Detailed Description

Transform. Transformations (translation, rotation, scale) can be applied to geometrical objects like CSG, Polygon, Vertex and Vector3d.

This transform class uses the builder pattern to define combined transformations.

Example:

// t applies rotation and translation Transform t = new Transform().rotX(45).translate(2,1,0);

TODO: use quaternions for rotations.

Author
Michael Hoffer <info@.nosp@m.mich.nosp@m.aelho.nosp@m.ffer.nosp@m..de>

Definition at line 60 of file Transform.java.

Constructor & Destructor Documentation

◆ Transform() [1/2]

eu.mihosoft.vrl.v3d.Transform.Transform ( )

◆ Transform() [2/2]

eu.mihosoft.vrl.v3d.Transform.Transform ( Matrix4d  m)

Constructor.

Parameters
mmatrix

Definition at line 95 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.m.

Member Function Documentation

◆ apply()

Transform eu.mihosoft.vrl.v3d.Transform.apply ( Transform  t)

Applies the specified transform to this transform.

Parameters
ttransform to apply
Returns
this transform

Definition at line 576 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Referenced by eu.mihosoft.vrl.v3d.svg.SVGLoad.getNewframe().

Here is the call graph for this function:

◆ getInternalMatrix()

Matrix4d eu.mihosoft.vrl.v3d.Transform.getInternalMatrix ( )

◆ getQuataurionW()

double eu.mihosoft.vrl.v3d.Transform.getQuataurionW ( )

Definition at line 248 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Here is the call graph for this function:

◆ getQuataurionX()

double eu.mihosoft.vrl.v3d.Transform.getQuataurionX ( )

Definition at line 224 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Here is the call graph for this function:

◆ getQuataurionY()

double eu.mihosoft.vrl.v3d.Transform.getQuataurionY ( )

Definition at line 232 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Here is the call graph for this function:

◆ getQuataurionZ()

double eu.mihosoft.vrl.v3d.Transform.getQuataurionZ ( )

Definition at line 240 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Here is the call graph for this function:

◆ getScale()

double eu.mihosoft.vrl.v3d.Transform.getScale ( )

Performs an SVD normalization of the underlying matrix to calculate and return the uniform scale factor. If the matrix has non-uniform scale factors, the largest of the x, y, and z scale factors distill be returned.

Note: this transformation is not modified.

Returns
the scale factor of this transformation

Definition at line 553 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Here is the call graph for this function:

◆ getX()

double eu.mihosoft.vrl.v3d.Transform.getX ( )

Definition at line 257 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Here is the call graph for this function:

◆ getY()

double eu.mihosoft.vrl.v3d.Transform.getY ( )

Definition at line 263 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Here is the call graph for this function:

◆ getZ()

double eu.mihosoft.vrl.v3d.Transform.getZ ( )

Definition at line 269 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Here is the call graph for this function:

◆ inverse()

Transform eu.mihosoft.vrl.v3d.Transform.inverse ( )

◆ invert()

Transform eu.mihosoft.vrl.v3d.Transform.invert ( )

Apply an inversion to this transform

Returns

Definition at line 604 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Here is the call graph for this function:

◆ isMirror()

boolean eu.mihosoft.vrl.v3d.Transform.isMirror ( )

Indicates whether this transform performs a mirror operation, i.e., flips the orientation.

Returns
true if this transform performs a mirror operation; false otherwise

Definition at line 564 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Here is the call graph for this function:

◆ mirror()

Transform eu.mihosoft.vrl.v3d.Transform.mirror ( Plane  plane)

Applies a mirror operation to this transform.

Parameters
planethe plane that defines the mirror operation
Returns
this transform

Definition at line 327 of file Transform.java.

References eu.mihosoft.vrl.v3d.Plane.dist, eu.mihosoft.vrl.v3d.Transform.getInternalMatrix(), eu.mihosoft.vrl.v3d.Plane.normal, eu.mihosoft.vrl.v3d.Vector3d.x(), eu.mihosoft.vrl.v3d.Vector3d.y(), and eu.mihosoft.vrl.v3d.Vector3d.z().

Here is the call graph for this function:

◆ mirrorx()

Transform eu.mihosoft.vrl.v3d.Transform.mirrorx ( )

mirror about x axis.

Returns
the csg

Definition at line 682 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.scaleX().

Here is the call graph for this function:

◆ mirrory()

Transform eu.mihosoft.vrl.v3d.Transform.mirrory ( )

mirror about y axis.

Returns
the csg

Definition at line 664 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.scaleY().

Here is the call graph for this function:

◆ mirrorz()

Transform eu.mihosoft.vrl.v3d.Transform.mirrorz ( )

mirror about z axis.

Returns
the csg

Definition at line 673 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.scaleZ().

Here is the call graph for this function:

◆ move() [1/4]

Transform eu.mihosoft.vrl.v3d.Transform.move ( Number  x,
Number  y,
Number  z 
)

Definition at line 610 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.Transform().

Referenced by eu.mihosoft.vrl.v3d.Transform.move().

Here is the call graph for this function:

◆ move() [2/4]

Transform eu.mihosoft.vrl.v3d.Transform.move ( Number[]  posVector)

Definition at line 619 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.move().

Here is the call graph for this function:

◆ move() [3/4]

Transform eu.mihosoft.vrl.v3d.Transform.move ( Vector3d  v)

◆ move() [4/4]

Transform eu.mihosoft.vrl.v3d.Transform.move ( Vertex  v)

◆ movex()

Transform eu.mihosoft.vrl.v3d.Transform.movex ( Number  howFarToMove)

Movex.

Parameters
howFarToMovethe how far to move
Returns
the csg

Definition at line 653 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.Transform().

Referenced by eu.mihosoft.vrl.v3d.CSG.addTabsReorientation(), eu.mihosoft.vrl.v3d.Extrude.revolve(), and eu.mihosoft.vrl.v3d.Toroid.Toroid().

Here is the call graph for this function:

◆ movey()

Transform eu.mihosoft.vrl.v3d.Transform.movey ( Number  howFarToMove)

Movey.

Parameters
howFarToMovethe how far to move
Returns
the csg

Definition at line 631 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.Transform().

Referenced by eu.mihosoft.vrl.v3d.CSG.addTabsReorientation().

Here is the call graph for this function:

◆ movez()

Transform eu.mihosoft.vrl.v3d.Transform.movez ( Number  howFarToMove)

Movez.

Parameters
howFarToMovethe how far to move
Returns
the csg

Definition at line 642 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.Transform().

Referenced by eu.mihosoft.vrl.v3d.CSG.addTabsReorientation().

Here is the call graph for this function:

◆ rot() [1/2]

Transform eu.mihosoft.vrl.v3d.Transform.rot ( double  x,
double  y,
double  z 
)

Applies a rotation operation to this transform.

Parameters
xx axis rotation (degrees)
yy axis rotation (degrees)
zz axis rotation (degrees)
Returns
this transform

Definition at line 161 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.rotX(), eu.mihosoft.vrl.v3d.Transform.rotY(), and eu.mihosoft.vrl.v3d.Transform.rotZ().

Here is the call graph for this function:

◆ rot() [2/2]

Transform eu.mihosoft.vrl.v3d.Transform.rot ( Vector3d  vec)

Applies a rotation operation to this transform.

Parameters
vecaxis rotation for x, y, z (degrees)
Returns
this transform

Definition at line 173 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.rotX(), eu.mihosoft.vrl.v3d.Transform.rotY(), eu.mihosoft.vrl.v3d.Transform.rotZ(), eu.mihosoft.vrl.v3d.Vector3d.x(), eu.mihosoft.vrl.v3d.Vector3d.y(), and eu.mihosoft.vrl.v3d.Vector3d.z().

Here is the call graph for this function:

◆ rotX()

Transform eu.mihosoft.vrl.v3d.Transform.rotX ( double  degrees)

Applies rotation operation around the x axis to this transform.

Parameters
degreesdegrees
Returns
this transform

Definition at line 106 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Referenced by eu.mihosoft.vrl.v3d.Transform.rot(), and eu.mihosoft.vrl.v3d.svg.SVGExporter.toPolyLine().

Here is the call graph for this function:

◆ rotx()

Transform eu.mihosoft.vrl.v3d.Transform.rotx ( Number  degreesToRotate)

Rotx.

Parameters
degreesToRotatethe degrees to rotate
Returns
the csg

Definition at line 716 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.Transform().

Referenced by eu.mihosoft.vrl.v3d.CSG.addTabsReorientation(), and eu.mihosoft.vrl.v3d.ext.org.poly2tri.PolygonUtil.concaveToConvex().

Here is the call graph for this function:

◆ rotY()

Transform eu.mihosoft.vrl.v3d.Transform.rotY ( double  degrees)

Applies rotation operation around the y axis to this transform.

Parameters
degreesdegrees
Returns
this transform

Definition at line 123 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Referenced by eu.mihosoft.vrl.v3d.Extrude.bezierToTransforms(), and eu.mihosoft.vrl.v3d.Transform.rot().

Here is the call graph for this function:

◆ roty()

Transform eu.mihosoft.vrl.v3d.Transform.roty ( Number  degreesToRotate)

◆ rotZ()

Transform eu.mihosoft.vrl.v3d.Transform.rotZ ( double  degrees)

Applies rotation operation around the z axis to this transform.

Parameters
degreesdegrees
Returns
this transform

Definition at line 140 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Referenced by eu.mihosoft.vrl.v3d.Extrude.bezierToTransforms(), and eu.mihosoft.vrl.v3d.Transform.rot().

Here is the call graph for this function:

◆ rotz()

Transform eu.mihosoft.vrl.v3d.Transform.rotz ( Number  degreesToRotate)

Rotz.

Parameters
degreesToRotatethe degrees to rotate
Returns
the csg

Definition at line 694 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.Transform().

Referenced by eu.mihosoft.vrl.v3d.CSG.addTabsReorientation().

Here is the call graph for this function:

◆ scale() [1/3]

Transform eu.mihosoft.vrl.v3d.Transform.scale ( double  s)

Applies a scale operation to this transform.

Parameters
ss scale value (x, y and z)
Returns
this transform

Definition at line 392 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Here is the call graph for this function:

◆ scale() [2/3]

Transform eu.mihosoft.vrl.v3d.Transform.scale ( double  x,
double  y,
double  z 
)

Applies a scale operation to this transform.

Parameters
xx scale value
yy scale value
zz scale value
Returns
this transform

Definition at line 373 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Here is the call graph for this function:

◆ scale() [3/3]

Transform eu.mihosoft.vrl.v3d.Transform.scale ( Vector3d  vec)

Applies a scale operation to this transform.

Parameters
vecvector that specifies scale (x,y,z)
Returns
this transform

Definition at line 350 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix(), eu.mihosoft.vrl.v3d.Vector3d.x(), eu.mihosoft.vrl.v3d.Vector3d.y(), and eu.mihosoft.vrl.v3d.Vector3d.z().

Referenced by eu.mihosoft.vrl.v3d.svg.SVGLoad.getNewframe().

Here is the call graph for this function:

◆ scaleX()

Transform eu.mihosoft.vrl.v3d.Transform.scaleX ( double  s)

Applies a scale operation (x axis) to this transform.

Parameters
sx scale value
Returns
this transform

Definition at line 411 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Referenced by eu.mihosoft.vrl.v3d.Transform.mirrorx().

Here is the call graph for this function:

◆ scaleY()

Transform eu.mihosoft.vrl.v3d.Transform.scaleY ( double  s)

Applies a scale operation (y axis) to this transform.

Parameters
sy scale value
Returns
this transform

Definition at line 430 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Referenced by eu.mihosoft.vrl.v3d.Transform.mirrory().

Here is the call graph for this function:

◆ scaleZ()

Transform eu.mihosoft.vrl.v3d.Transform.scaleZ ( double  s)

Applies a scale operation (z axis) to this transform.

Parameters
sz scale value
Returns
this transform

Definition at line 449 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Referenced by eu.mihosoft.vrl.v3d.Transform.mirrorz().

Here is the call graph for this function:

◆ toString()

String eu.mihosoft.vrl.v3d.Transform.toString ( )

Definition at line 281 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Here is the call graph for this function:

◆ transform() [1/2]

Vector3d eu.mihosoft.vrl.v3d.Transform.transform ( Vector3d  vec)

Applies this transform to the specified vector.

Parameters
vecvector to transform
Returns
the specified vector

Definition at line 468 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix(), eu.mihosoft.vrl.v3d.Vector3d.x(), eu.mihosoft.vrl.v3d.Vector3d.y(), and eu.mihosoft.vrl.v3d.Vector3d.z().

Referenced by eu.mihosoft.vrl.v3d.Cube.toPolygons(), and eu.mihosoft.vrl.v3d.RoundedCube.toPolygons().

Here is the call graph for this function:

◆ transform() [2/2]

Vector3d eu.mihosoft.vrl.v3d.Transform.transform ( Vector3d  vec,
double  amount 
)

Applies this transform to the specified vector.

Parameters
vecvector to transform
amounttransform amount (0 = 0 %, 1 = 100%)
Returns
the specified vector

Definition at line 492 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix(), eu.mihosoft.vrl.v3d.Vector3d.x(), eu.mihosoft.vrl.v3d.Vector3d.y(), and eu.mihosoft.vrl.v3d.Vector3d.z().

Here is the call graph for this function:

◆ translate() [1/2]

Transform eu.mihosoft.vrl.v3d.Transform.translate ( double  x,
double  y,
double  z 
)

Applies a translation operation to this transform.

Parameters
xtranslation (x axis)
ytranslation (y axis)
ztranslation (z axis)
Returns
this transform

Definition at line 203 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Here is the call graph for this function:

◆ translate() [2/2]

Transform eu.mihosoft.vrl.v3d.Transform.translate ( Vector3d  vec)

Applies a translation operation to this transform.

Parameters
vectranslation vector (x,y,z)
Returns
this transform

Definition at line 187 of file Transform.java.

References eu.mihosoft.vrl.v3d.Vector3d.x(), eu.mihosoft.vrl.v3d.Vector3d.y(), and eu.mihosoft.vrl.v3d.Vector3d.z().

Referenced by eu.mihosoft.vrl.v3d.Cube.toPolygons(), and eu.mihosoft.vrl.v3d.RoundedCube.toPolygons().

Here is the call graph for this function:

◆ translateX()

Transform eu.mihosoft.vrl.v3d.Transform.translateX ( double  value)

Applies a translation operation to this transform.

Parameters
valuetranslation (x axis)
Returns
this transform

Definition at line 217 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Referenced by eu.mihosoft.vrl.v3d.Extrude.bezierToTransforms(), eu.mihosoft.vrl.v3d.CSG.movex(), and eu.mihosoft.vrl.v3d.Polygon.movex().

Here is the call graph for this function:

◆ translateY()

Transform eu.mihosoft.vrl.v3d.Transform.translateY ( double  value)

Applies a translation operation to this transform.

Parameters
valuetranslation (y axis)
Returns
this transform

Definition at line 299 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Referenced by eu.mihosoft.vrl.v3d.Extrude.bezierToTransforms(), eu.mihosoft.vrl.v3d.CSG.movey(), and eu.mihosoft.vrl.v3d.Polygon.movey().

Here is the call graph for this function:

◆ translateZ()

Transform eu.mihosoft.vrl.v3d.Transform.translateZ ( double  value)

Applies a translation operation to this transform.

Parameters
valuetranslation (z axis)
Returns
this transform

Definition at line 313 of file Transform.java.

References eu.mihosoft.vrl.v3d.Transform.getInternalMatrix().

Referenced by eu.mihosoft.vrl.v3d.Extrude.bezierToTransforms(), eu.mihosoft.vrl.v3d.CSG.movez(), and eu.mihosoft.vrl.v3d.Polygon.movez().

Here is the call graph for this function:

◆ unity()

static Transform eu.mihosoft.vrl.v3d.Transform.unity ( )
static

Member Data Documentation

◆ m

final Matrix4d eu.mihosoft.vrl.v3d.Transform.m
private

Internal 4x4 matrix.

Definition at line 65 of file Transform.java.

Referenced by eu.mihosoft.vrl.v3d.Transform.getInternalMatrix(), and eu.mihosoft.vrl.v3d.Transform.Transform().


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