Aardvark.Base


Trafo3d

A trafo is a container for a forward and a backward matrix.

Constructors

ConstructorDescription
new(forward, backward)
Signature: (forward:M44d * backward:M44d) -> unit
new(trafo)
Signature: trafo:Trafo3d -> unit
new(trafo)
Signature: trafo:Euclidean3d -> unit
new(trafo)
Signature: trafo:Similarity3d -> unit
new(trafo)
Signature: trafo:Rot3d -> unit

Instance members

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

Static members

Static memberDescription
FromBasis(xAxis, yAxis, zAxis, orign)
Signature: (xAxis:V3f * yAxis:V3f * zAxis:V3f * orign:V3f) -> Trafo3d

Returns the trafo that transforms from the coordinate system specified by the basis into the world coordinate system.

FromBasis(xAxis, yAxis, zAxis, orign)
Signature: (xAxis:V3d * yAxis:V3d * zAxis:V3d * orign:V3d) -> Trafo3d

Returns the trafo that transforms from the coordinate system specified by the basis into the world coordinate system.

FromComponents(...)
Signature: (scale:V3d * rotation:V3d * translation:V3d) -> Trafo3d

Builds a transformation matrix using the scale, rotation and translation componets. NOTE: Uses the Scale Rotation Translation notion. The rotation is in Euler-Angles (yaw, pitch, roll).

FromNormalFrame(origin, normal)
Signature: (origin:V3d * normal:V3d) -> Trafo3d
FromOrthoNormalBasis(...)
Signature: (xAxis:V3d * yAxis:V3d * zAxis:V3d) -> Trafo3d

Returns the trafo that transforms from the coordinate system specified by the basis into the world coordinate system. NOTE that the axes MUST be normalized and normal to each other.

op_Equality(a, b)
Signature: (a:Trafo3d * b:Trafo3d) -> bool
op_Inequality(a, b)
Signature: (a:Trafo3d * b:Trafo3d) -> bool
op_Multiply(t0, t1)
Signature: (t0:Trafo3d * t1:Trafo3d) -> Trafo3d

The order of operation of Trafo3d multiplicaition is backward with respect to M44d multiplication in order to provide natural postfix notation.

OrthoProjectionRH(l, r, b, t, n, f)
Signature: (l:float * r:float * b:float * t:float * n:float * f:float) -> Trafo3d

Creates a right-handed ortho projection transform, where z-negative points into the scene. The resulting canonical view volume is [(-1, -1, 0), (+1, +1, +1)].

Parse(s)
Signature: s:string -> Trafo3d
PerspectiveProjectionLH(...)
Signature: (l:float * r:float * b:float * t:float * n:float * f:float) -> Trafo3d

Creates a left-handed perspective projection transform, where z-positive points into the scene. The resulting canonical view volume is [(-1, -1, 0), (+1, +1, +1)].

PerspectiveProjectionRH(...)
Signature: (l:float * r:float * b:float * t:float * n:float * f:float) -> Trafo3d

Creates a right-handed perspective projection transform, where z-negative points into the scene. The resulting canonical view volume is [(-1, -1, 0), (+1, +1, +1)].

RotateInto(from, into)
Signature: (from:V3d * into:V3d) -> Trafo3d
Rotation(axis, angleInRadians)
Signature: (axis:V3d * angleInRadians:float) -> Trafo3d
Rotation(...)
Signature: (yawInRadians:float * pitchInRadians:float * rollInRadians:float) -> Trafo3d
Rotation(yaw_pitch_roll_inRadians)
Signature: yaw_pitch_roll_inRadians:V3d -> Trafo3d
RotationInDegrees(axis, angleInDegrees)
Signature: (axis:V3d * angleInDegrees:float) -> Trafo3d
RotationInDegrees(...)
Signature: (yawInDegrees:float * pitchInDegrees:float * rollInDegrees:float) -> Trafo3d
RotationInDegrees(...)
Signature: yaw_pitch_roll_inDegrees:V3d -> Trafo3d
RotationX(angleInRadians)
Signature: angleInRadians:float -> Trafo3d
RotationXInDegrees(angleInDegrees)
Signature: angleInDegrees:float -> Trafo3d
RotationY(angleInRadians)
Signature: angleInRadians:float -> Trafo3d
RotationYInDegrees(angleInDegrees)
Signature: angleInDegrees:float -> Trafo3d
RotationZ(angleInRadians)
Signature: angleInRadians:float -> Trafo3d
RotationZInDegrees(angleInDegrees)
Signature: angleInDegrees:float -> Trafo3d
Scale(v)
Signature: v:V3d -> Trafo3d
Scale(sx, sy, sz)
Signature: (sx:float * sy:float * sz:float) -> Trafo3d
Scale(s)
Signature: s:float -> Trafo3d
ShearXY(factorX, factorY)
Signature: (factorX:float * factorY:float) -> Trafo3d
ShearXZ(factorX, factorZ)
Signature: (factorX:float * factorZ:float) -> Trafo3d
ShearYZ(factorY, factorZ)
Signature: (factorY:float * factorZ:float) -> Trafo3d
Translation(v)
Signature: v:V3d -> Trafo3d
Translation(dx, dy, dz)
Signature: (dx:float * dy:float * dz:float) -> Trafo3d
ViewTrafo(location, u, v, z)
Signature: (location:V3d * u:V3d * v:V3d * z:V3d) -> Trafo3d
ViewTrafoLH(location, up, forward)
Signature: (location:V3d * up:V3d * forward:V3d) -> Trafo3d

Creates a left-handed view trafo, where z-positive points into the scene.

ViewTrafoRH(location, up, forward)
Signature: (location:V3d * up:V3d * forward:V3d) -> Trafo3d

Creates a right-handed view trafo, where z-negative points into the scene.

Fork me on GitHub