RhinoCommon API
TransformDecomposeSimilarity Method |
Decomposes a similarity transformation. The transformation must be affine.
A similarity transformation can be broken into a sequence of a dilation, translation, rotation, and a reflection.
Namespace: Rhino.Geometry
Assembly: RhinoCommon (in RhinoCommon.dll)
Since: 6.12
public TransformSimilarityType DecomposeSimilarity( out Vector3d translation, out double dilation, out Transform rotation, double tolerance )
Public Function DecomposeSimilarity ( <OutAttribute> ByRef translation As Vector3d, <OutAttribute> ByRef dilation As Double, <OutAttribute> ByRef rotation As Transform, tolerance As Double ) As TransformSimilarityType
Parameters
- translation
- Type: Rhino.GeometryVector3d
Translation vector. - dilation
- Type: SystemDouble
Dilation, where dilation lt; 0 if this is an orientation reversing similarity. - rotation
- Type: Rhino.GeometryTransform
A proper rotation transformation, where R*Transpose(R)=I and Determinant(R)=1. - tolerance
- Type: SystemDouble
The evaluation tolerance.
Return Value
Type: TransformSimilarityTypeThe similarity type.
If X.DecomposeSimilarity(T, d, R, tol) !=0 then X ~ Translation(T)*Diagonal(d)*R
note when d gt;0 the transformation is orientation preserving.
If dilation lt; 0 then Diagonal(dilation) is actually a reflection combined with a true dilation, or
Diagonal(dilation) = Diagonal(-1) * Diagonal(|diagonal|).