public class ScaledRigidTransformer3d extends java.lang.Object implements VectorTransformer3d
[ R S p ] [ ] [ 0 1 ]where
R is a 3x3 rotation, S is a diagonal
 scaling matrix, and p is a translation offset.| Constructor and Description | 
|---|
| ScaledRigidTransformer3d(Vector3d scaling,
                        RigidTransform3d T) | 
| ScaledRigidTransformer3d(Vector3d scaling,
                        RotationMatrix3d R,
                        Vector3d origin) | 
| Modifier and Type | Method and Description | 
|---|---|
| void | getOrigin(Vector3d p) | 
| void | getRigidTransform(RigidTransform3d T) | 
| void | getRotation(RotationMatrix3d R) | 
| void | getScaling(Vector3d scaling) | 
| void | inverseTransformCovec(Vector3d nr,
                     Vector3d n0)Applies an inverse transform to covector  c0and places the
 result incr. | 
| void | inverseTransformPnt(Vector3d pr,
                   Vector3d p0)Applies an inverse transform to point  p0and places the
 result inpr. | 
| void | inverseTransformVec(Vector3d vr,
                   Vector3d v0)Applies an inverse transform to vector  v0and places the
 result invr. | 
| boolean | isAffine()Returns  trueif this transformer implements a linear affine
 transform. | 
| boolean | isRigid()Returns  trueif this transformer implements a linear
 rigid transform. | 
| void | set(Vector3d scaling,
   RotationMatrix3d R,
   Vector3d p) | 
| void | transformCovec(Vector3d nr,
              Vector3d n0)Transforms a covector  c0and places the result incr. | 
| void | transformPnt(Vector3d pr,
            Vector3d p0)Transforms point  p0and places the result inpr. | 
| void | transformVec(Vector3d vr,
            Vector3d v0)Transforms vector  v0and places the result invr. | 
public ScaledRigidTransformer3d(Vector3d scaling, RigidTransform3d T)
public ScaledRigidTransformer3d(Vector3d scaling, RotationMatrix3d R, Vector3d origin)
public void set(Vector3d scaling, RotationMatrix3d R, Vector3d p)
public void getScaling(Vector3d scaling)
public void getOrigin(Vector3d p)
public void getRotation(RotationMatrix3d R)
public void getRigidTransform(RigidTransform3d T)
public void transformPnt(Vector3d pr, Vector3d p0)
p0 and places the result in
 pr.transformPnt in interface VectorTransformer3dpr - returns the transformed pointp0 - point to be transformedpublic void transformVec(Vector3d vr, Vector3d v0)
v0 and places the result in
 vr.transformVec in interface VectorTransformer3dvr - returns the transformed vectorv0 - vector to be transformedpublic void transformCovec(Vector3d nr, Vector3d n0)
c0 and places the result in
 cr. If a vector is transformed linearly according to
 vr = A v0,then the covector will be transformed according to
         -1 T 
   cr = A     c0,
 
 Normal vectors and gradients are generally transformed as covectors.
 In the case of normals, the application will need to normalize the
 result if this transformation is not rigid.transformCovec in interface VectorTransformer3dnr - returns the transformed covectorn0 - normal to be transformedpublic void inverseTransformPnt(Vector3d pr, Vector3d p0)
p0 and places the
 result in pr.inverseTransformPnt in interface VectorTransformer3dpr - returns the transformed pointp0 - point to be transformedpublic void inverseTransformVec(Vector3d vr, Vector3d v0)
v0 and places the
 result in vr.inverseTransformVec in interface VectorTransformer3dvr - returns the transformed vectorv0 - vector to be transformedpublic void inverseTransformCovec(Vector3d nr, Vector3d n0)
c0 and places the
 result in cr. See VectorTransformer3d.transformCovec(maspack.matrix.Vector3d, maspack.matrix.Vector3d) for more
 details about covector transformation.inverseTransformCovec in interface VectorTransformer3dnr - returns the transformed normaln0 - normal to be transformedpublic boolean isAffine()
true if this transformer implements a linear affine
 transform.isAffine in interface VectorTransformer3dpublic boolean isRigid()
true if this transformer implements a linear
 rigid transform.isRigid in interface VectorTransformer3d