Aardvark.Base


Similarity3f

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:float32 * euclideanTransformation:Euclidean3f) -> unit

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

new(euclideanTransformation, scale)
Signature: (euclideanTransformation:Euclidean3f * scale:float32) -> unit

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

new(m, epsilon)
Signature: (m:M44f * epsilon:float32) -> unit

Instance members

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

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:V3f -> V3f

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:V3f -> V3f

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: Similarity3f

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

Rot
Signature: Rot3f

Shortcut for Rot of EuclideanTransformation

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

Shortcut for Trans of EuclideanTransformation

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

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

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

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

Static members

Static memberDescription
ApproxEqual(t0, t1)
Signature: (t0:Similarity3f * t1:Similarity3f) -> bool
ApproxEqual(...)
Signature: (t0:Similarity3f * t1:Similarity3f * angleTol:float32 * posTol:float32 * scaleTol:float32) -> bool
InvTransformDir(t, v)
Signature: (t:Similarity3f * v:V3f) -> V3f

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:Similarity3f * p:V3f) -> V3f

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

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

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:Similarity3f * b:Euclidean3f) -> Similarity3f

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:Euclidean3f * b:Similarity3f) -> Similarity3f

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:Similarity3f * t1:Similarity3f) -> bool
op_Explicit(t)
Signature: t:Similarity3f -> M34f
op_Explicit(t)
Signature: t:Similarity3f -> M44f
op_Inequality(t0, t1)
Signature: (t0:Similarity3f * t1:Similarity3f) -> bool
op_Multiply(a, b)
Signature: (a:Similarity3f * b:Similarity3f) -> Similarity3f
op_Multiply(a, b)
Signature: (a:Euclidean3f * b:Similarity3f) -> Similarity3f
op_Multiply(a, b)
Signature: (a:Similarity3f * b:Euclidean3f) -> Similarity3f
Parse(s)
Signature: s:string -> Similarity3f
TransformDir(t, v)
Signature: (t:Similarity3f * v:V3f) -> V3f

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:Similarity3f * p:V3f) -> V3f

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

Fork me on GitHub