Aardvark.Base


Euclidean2f

Represents a Rigid Transformation (or Rigid Body Transformation) in 2D that is composed of a 2D rotation Rot and a subsequent translation by a 2D vector Trans. This is also called an Euclidean Transformation and is a length preserving Transformation.

Constructors

ConstructorDescription
new(rot, trans)
Signature: (rot:Rot2f * trans:V2f) -> unit

Creates a rigid transformation from a rotation and a (subsequent) translation .

new(rot, trans)
Signature: (rot:M22f * trans:V2f) -> unit

Creates a rigid transformation from a rotation matrix and a (subsequent) translation .

new(trafo)
Signature: trafo:Trafo2d -> unit

Creates a rigid transformation from a trafo .

Instance members

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

Gets the (multiplicative) inverse of this Euclidean transformation. [Rot^T,-Rot^T Trans]

Invert()
Signature: unit -> unit

Inverts this rigid transformation (multiplicative inverse). this = [Rot^T,-Rot^T Trans]

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

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

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

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

IsInvalid
Signature: bool
Modifiers: abstract
IsValid
Signature: bool
Modifiers: abstract
ToString()
Signature: unit -> string
Modifiers: abstract
TransformDir(v)
Signature: v:V2f -> V2f

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

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

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

Static members

Static memberDescription
ApproxEqual(r0, r1)
Signature: (r0:Euclidean2f * r1:Euclidean2f) -> bool
ApproxEqual(r0, r1, angleTol, posTol)
Signature: (r0:Euclidean2f * r1:Euclidean2f * angleTol:float32 * posTol:float32) -> bool
InvTransformDir(r, v)
Signature: (r:Euclidean2f * v:V2f) -> V2f

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

InvTransformPos(r, p)
Signature: (r:Euclidean2f * p:V2f) -> V2f

Transforms point p (p.w is presumed 1.0) by the inverse of the rigid transformation r.

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

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

Multiply(m, r)
Signature: (m:M22f * r:Euclidean2f) -> M23f
op_Equality(r0, r1)
Signature: (r0:Euclidean2f * r1:Euclidean2f) -> bool
op_Explicit(r)
Signature: r:Euclidean2f -> M23f
op_Explicit(r)
Signature: r:Euclidean2f -> M33f
op_Inequality(r0, r1)
Signature: (r0:Euclidean2f * r1:Euclidean2f) -> bool
op_Multiply(a, b)
Signature: (a:Euclidean2f * b:Euclidean2f) -> Euclidean2f
op_Multiply(m, r)
Signature: (m:M22f * r:Euclidean2f) -> M23f
Parse(s)
Signature: s:string -> Euclidean2f
TransformDir(r, v)
Signature: (r:Euclidean2f * v:V2f) -> V2f

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

TransformPos(r, p)
Signature: (r:Euclidean2f * p:V2f) -> V2f

Transforms point p (p.w is presumed 1.0) by rigid transformation r.

Fork me on GitHub