Aardvark.Base


Similarity3d

Represents a Similarity Transformation in 3D that is composed of a Uniform Scale and a subsequent Euclidean transformation (3D rotation Rot and a subsequent translation by a 3D vector Trans). This is an angle preserving Transformation.

Constructors

ConstructorDescription
new(scale, euclideanTransformation)
Signature: (scale:float * euclideanTransformation:Euclidean3d) -> unit

Creates a similarity transformation from an uniform scale by factor , and a (subsequent) rigid transformation .

new(euclideanTransformation, scale)
Signature: (euclideanTransformation:Euclidean3d * scale:float) -> unit

Creates a similarity transformation from a rigid transformation and an (subsequent) uniform scale by factor .

new(m, epsilon)
Signature: (m:M44d * epsilon:float) -> unit

Instance members

Instance memberDescription
Equals(other)
Signature: other:obj -> bool
Modifiers: abstract
GetHashCode()
Signature: unit -> int
Modifiers: abstract
Inverse
Signature: Similarity3d

Gets the (multiplicative) inverse of this Similarity transformation. [1/Scale, Rot^T,-Rot^T Trans/Scale]

Invert()
Signature: unit -> unit

Inverts this similarity transformation (multiplicative inverse). this = [1/Scale, Rot^T,-Rot^T Trans/Scale]

InvTransformDir(v)
Signature: v:V3d -> V3d

Transforms direction vector v (v.w is presumed 0.0) by the inverse of this similarity transformation. Actually, only the rotation is used.

InvTransformPos(p)
Signature: p:V3d -> V3d

Transforms point p (p.w is presumed 1.0) by the inverse of this similarity transformation.

Normalize()
Signature: unit -> unit

Normalizes the rotation quaternion.

Normalized
Signature: Similarity3d

Returns a new version of this Similarity transformation with a normalized rotation quaternion.

Rot
Signature: Rot3d

Shortcut for Rot of EuclideanTransformation

ToString()
Signature: unit -> string
Modifiers: abstract
Trans
Signature: V3d

Shortcut for Trans of EuclideanTransformation

TransformDir(v)
Signature: v:V3d -> V3d

Transforms direction vector v (v.w is presumed 0.0) by this similarity transformation. Actually, only the rotation is used.

TransformPos(p)
Signature: p:V3d -> V3d

Transforms point p (p.w is presumed 1.0) by this similarity transformation.

Static members

Static memberDescription
ApproxEqual(t0, t1)
Signature: (t0:Similarity3d * t1:Similarity3d) -> bool
ApproxEqual(...)
Signature: (t0:Similarity3d * t1:Similarity3d * angleTol:float * posTol:float * scaleTol:float) -> bool
InvTransformDir(t, v)
Signature: (t:Similarity3d * v:V3d) -> V3d

Transforms direction vector v (v.w is presumed 0.0) by the inverse of the similarity transformation t. Actually, only the rotation is used.

InvTransformPos(t, p)
Signature: (t:Similarity3d * p:V3d) -> V3d

Transforms point p (p.w is presumed 1.0) by the inverse of the similarity transformation t.

Multiply(a, b)
Signature: (a:Similarity3d * b:Similarity3d) -> Similarity3d

Multiplies 2 Similarity transformations. This concatenates the two similarity transformations into a single one, first b is applied, then a. Attention: Multiplication is NOT commutative!

Multiply(a, b)
Signature: (a:Similarity3d * b:Euclidean3d) -> Similarity3d

Multiplies a Similarity transformation by an Euclidean transformation. This concatenates the two transformations into a single one, first b is applied, then a. Attention: Multiplication is NOT commutative!

Multiply(a, b)
Signature: (a:Euclidean3d * b:Similarity3d) -> Similarity3d

Multiplies an Euclidean transformation by a Similarity transformation. This concatenates the two transformations into a single one, first b is applied, then a. Attention: Multiplication is NOT commutative!

op_Equality(t0, t1)
Signature: (t0:Similarity3d * t1:Similarity3d) -> bool
op_Explicit(t)
Signature: t:Similarity3d -> M34d
op_Explicit(t)
Signature: t:Similarity3d -> M44d
op_Inequality(t0, t1)
Signature: (t0:Similarity3d * t1:Similarity3d) -> bool
op_Multiply(a, b)
Signature: (a:Similarity3d * b:Similarity3d) -> Similarity3d
op_Multiply(a, b)
Signature: (a:Euclidean3d * b:Similarity3d) -> Similarity3d
op_Multiply(a, b)
Signature: (a:Similarity3d * b:Euclidean3d) -> Similarity3d
Parse(s)
Signature: s:string -> Similarity3d
TransformDir(t, v)
Signature: (t:Similarity3d * v:V3d) -> V3d

Transforms direction vector v (v.w is presumed 0.0) by similarity transformation t. Actually, only the rotation is used.

TransformPos(t, p)
Signature: (t:Similarity3d * p:V3d) -> V3d

Transforms point p (p.w is presumed 1.0) by similarity transformation t.

Fork me on GitHub