public class RigidTransformer extends GeometryTransformer
[ p' ] [ p ] [ RF pf ] [ ] = T [ ], T = [ ] [ 1 ] [ 1 ] [ 0 1 ]where R is a 3 X 3 rotation matrix and pf is an offset vector.
GeometryTransformer.Constrainer, GeometryTransformer.UndoState, GeometryTransformer.UniformScalingConstrainer| Constructor and Description | 
|---|
| RigidTransformer(RigidTransform3d T)Creates a new RigidTransformer from a specified rigid transform. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | computeLocalTransforms(Matrix3d PL,
                      Vector3d Ndiag,
                      RigidTransform3d T)Computes the matrices  PLandNthat transform
 pointsxllocal to a coordinate frameTafter
 that frame is itself transformed. | 
| void | computeTransform(AffineTransform3d XR,
                AffineTransform3d X)Transforms an affine transform  Xand returns the result inXR. | 
| void | computeTransform(Matrix3d MR,
                Matrix3d M,
                Vector3d r)Transforms a general 3 X 3 matrix  M,
 and returns the result inMR. | 
| void | computeTransform(Plane pr,
                Plane p,
                Vector3d r)Transforms a plane  pand returns the result inpr. | 
| void | computeTransform(RigidTransform3d TR,
                RigidTransform3d T)Transforms a rigid transform  Tand returns the result inTR. | 
| void | computeTransform(RotationMatrix3d RR,
                Vector3d Ndiag,
                RotationMatrix3d R,
                Vector3d r)Transforms a rotation matrix  Rand returns the result inRR. | 
| void | computeTransformNormal(Vector3d nr,
                      Vector3d n,
                      Vector3d r)Transforms a normal vector  n, and returns the result innr. | 
| void | computeTransformPnt(Point3d pr,
                   Point3d p)Transforms a point  pand returns the result inpr. | 
| void | computeTransformVec(Vector3d vr,
                   Vector3d v,
                   Vector3d r)Transforms a vector  v, and returns the result invr. | 
| RigidTransformer | getInverse()Returns a transformer that implements the inverse operation of this
 transformer. | 
| boolean | isAffine()Returns  true, since a rigid transform is a special case of
 an affine transform. | 
| boolean | isInvertible()Returns  true, since this transformer is invertible. | 
| boolean | isReflecting()Returns  false, since a rigid transform cannot be
 reflecting. | 
| boolean | isRigid()Returns  true, since this transformer does implement a linear
 rigid transform. | 
computeLinearizedTransform, computeLocalAffineTransform, computeTransform, create, isRestoring, isSaving, popRestoreData, restoreObject, saveObject, setUndoState, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transformNormal, transformNormal, transformPnt, transformPnt, transformVec, transformVec, transformWorld, transformWorldpublic RigidTransformer(RigidTransform3d T)
T - rigid transform defining the transformationpublic boolean isRigid()
true, since this transformer does implement a linear
 rigid transform.isRigid in class GeometryTransformerpublic boolean isAffine()
true, since a rigid transform is a special case of
 an affine transform.isAffine in class GeometryTransformerpublic boolean isInvertible()
true, since this transformer is invertible.isInvertible in class GeometryTransformerpublic boolean isReflecting()
false, since a rigid transform cannot be
 reflecting.isReflecting in class GeometryTransformerpublic RigidTransformer getInverse()
getInverse in class GeometryTransformerpublic void computeTransformPnt(Point3d pr, Point3d p)
p and returns the result in
 pr. The transform is computed according to
 pr = RF p + pfThis method provides the low level implementation for point transformations and does not do any saving or restoring of data.
computeTransformPnt in class GeometryTransformerpr - transformed pointp - point to be transformedpublic void computeTransformVec(Vector3d vr, Vector3d v, Vector3d r)
v, and returns the result in
 vr. 
 The reference position r is ignored since rigid transforms
 are position invariant.
 The transform is computed according to
 vr = RF vThis method provides the low level implementation for vector transformations and does not do any saving or restoring of data.
computeTransformVec in class GeometryTransformervr - transformed vectorv - vector to be transformedr - reference position of the vector (ignored)public void computeLocalTransforms(Matrix3d PL, Vector3d Ndiag, RigidTransform3d T)
PL and N that transform
 points xl local to a coordinate frame T after
 that frame is itself transformed. For rigid transforms, N
 is always the identity, and the updated local coordinates are
 given by
 xl' = PL xlwhere
PL is symmetric positive definite. See the
 documentation for GeometryTransformer.computeLocalTransforms(maspack.matrix.Matrix3d, maspack.matrix.Vector3d, maspack.matrix.RigidTransform3d).computeLocalTransforms in class GeometryTransformerPL - primary transformation matrixNdiag - if non-null, returns the diagonal components of N
 (which will be all ones)T - rigid transform for which the local transforms are computedpublic void computeTransformNormal(Vector3d nr, Vector3d n, Vector3d r)
n, and returns the result in
 nr. 
 The reference position r is ignored since rigid transforms
 are position invariant.
 The transform is computed according to
 nr = RF nThis method provides the low level implementation for normal transformations and does not do any saving or restoring of data.
computeTransformNormal in class GeometryTransformernr - transformed normaln - normal to be transformedr - reference position of the normal (ignored)public void computeTransform(RigidTransform3d TR, RigidTransform3d T)
T and returns the result in
 TR. This provides the low level implementation for the
 transformation of rigid transforms and does not do any saving or
 restoring of data.TR - transformed transformT - transform to be transformedpublic void computeTransform(AffineTransform3d XR, AffineTransform3d X)
X and returns the result in
 XR. If
 
      [ A   p ]
 X =  [       ]
      [ 0   1 ]
 
 the transform is computed according to
 
      [  RF A   RF p + pf ]
 XR = [                   ]
      [   0         1     ]
 
 This method provides the low level implementation for the transformation
 of affine transforms and does not do any saving or restoring of data.computeTransform in class GeometryTransformerXR - transformed transformX - transform to be transformedpublic void computeTransform(RotationMatrix3d RR, Vector3d Ndiag, RotationMatrix3d R, Vector3d r)
R and returns the result in
 RR.
 The reference position r is ignored since rigid transforms
 are position invariant.
 The transform is computed according to
 RR = RF RThis method provides the low level implementation for the transformation of rotation matrices and does not do any saving or restoring of data.
computeTransform in class GeometryTransformerRR - transformed rotationR - rotation to be transformedr - reference position of the rotation (ignored)Ndiag - if non-null, returns the diagonal elements of the
 matrix Npublic void computeTransform(Matrix3d MR, Matrix3d M, Vector3d r)
M,
 and returns the result in MR.
 The reference position r is ignored since rigid transforms
 are position invariant.
 The transform is computed according to
 MR = RF MThis method provides the low level implementation for the transformation of 3 X 3 matrices and does not do any saving or restoring of data.
computeTransform in class GeometryTransformerMR - transformed matrixM - matrix to be transformedr - reference position of the matrix (ignored)public void computeTransform(Plane pr, Plane p, Vector3d r)
p and returns the result in
 pr.
 The reference position r is ignored since rigid transforms
 are position invariant.
 Assume that p is defined by a normal n
 and offset o such that all planar points x
 satisfy
 n^T x = oThen the transformed normal
nr and offset or
 are computed according to
 nr = RF n or = o + nr^T pfThis method provides the low level implementation for the transformation of planes and does not do any saving or restoring of data.
computeTransform in class GeometryTransformerpr - transformed planep - plane to be transformedr - reference position of the plane (ignored)