Aardvark.Base


Euclidean2d

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:Rot2d * trans:V2d) -> unit

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

new(rot, trans)
Signature: (rot:M22d * trans:V2d) -> 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: Euclidean2d

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

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

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

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

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

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

Static members

Static memberDescription
ApproxEqual(r0, r1)
Signature: (r0:Euclidean2d * r1:Euclidean2d) -> bool
ApproxEqual(r0, r1, angleTol, posTol)
Signature: (r0:Euclidean2d * r1:Euclidean2d * angleTol:float * posTol:float) -> bool
InvTransformDir(r, v)
Signature: (r:Euclidean2d * v:V2d) -> V2d

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:Euclidean2d * p:V2d) -> V2d

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

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

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:M22d * r:Euclidean2d) -> M23d
op_Equality(r0, r1)
Signature: (r0:Euclidean2d * r1:Euclidean2d) -> bool
op_Explicit(r)
Signature: r:Euclidean2d -> M23d
op_Explicit(r)
Signature: r:Euclidean2d -> M33d
op_Inequality(r0, r1)
Signature: (r0:Euclidean2d * r1:Euclidean2d) -> bool
op_Multiply(a, b)
Signature: (a:Euclidean2d * b:Euclidean2d) -> Euclidean2d
op_Multiply(m, r)
Signature: (m:M22d * r:Euclidean2d) -> M23d
Parse(s)
Signature: s:string -> Euclidean2d
TransformDir(r, v)
Signature: (r:Euclidean2d * v:V2d) -> V2d

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:Euclidean2d * p:V2d) -> V2d

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

Fork me on GitHub