Idris2Doc : Data.NumIdr.Homogeneous

Data.NumIdr.Homogeneous

(source)

Definitions

HMatrix : Nat->Nat->Type->Type
  A homogeneous matrix type.

Homogeneous matrices are matrices that encode an affine transformation, as
opposed to the more restriced linear transformations of normal matrices.
Their multiplication is identical to regular matrix multiplication, but the
extra dimension in each axis allows the homogeneous matrix to store a
translation vector that is applied during multiplication.

```hmatrix mat tr *. v == mat *. v + tr```

Totality: total
Visibility: public export
HMatrix' : Nat->Type->Type
  A synonym for a square homogeneous matrix.

Totality: total
Visibility: public export
HVector : Nat->Type->Type
  An homogeneous vector type.

Homogeneous vectors are vectors intended to be multiplied with homogeneous
matrices (see `HMatrix`). They have an extra dimension compared to regular
vectors.

Totality: total
Visibility: public export
vectorToH : Numa=>Vectorna->HVectorna
  Convert a vector to a homogeneous vector.

Totality: total
Visibility: export
vectorToHLinear : Numa=>Vectorna->HVectorna
  Convert a vector to a homogeneous vector that ignores the translation
component of homogeneous matrices.

Totality: total
Visibility: export
hvector : Numa=>Vectna->HVectorna
  Construct a homogeneous vector given its coordinates.

Totality: total
Visibility: export
hvectorLinear : Numa=>Vectna->HVectorna
  Construct a homogeneous vector that ignores translations given its
coordinates.

Totality: total
Visibility: export
fromHomogeneous : HVectorna->Vectorna
  Extract a normal vector from a homogeneous vector.

Totality: total
Visibility: export
hmatrix : Numa=>Matrixmna->Vectorma->HMatrixmna
  Construct a homogeneous matrix given a matrix and a translation vector.

Totality: total
Visibility: export
matrixToH : Numa=>Matrixmna->HMatrixmna
  Convert a regular matrix to a homogeneous matrix.

Totality: total
Visibility: export
isHMatrix : Eqa=>Numa=>Matrixmna->Bool
  Determine if a matrix fits the pattern of a homogeneous matrix.

Totality: total
Visibility: export
getMatrix : HMatrixmna->Matrixmna
  Get the regular matrix component of a homogeneous matrix.

Totality: total
Visibility: export
getTranslationVector : HMatrixmna->Vectorma
  Get the translation vector from a homogeneous matrix.

Totality: total
Visibility: export
scalingH : {defaultBrep : Rep} ->RepConstraintrepa=>Numa=>a->HMatrix'na
  Construct a homogeneous matrix that scales a vector by the input.

Totality: total
Visibility: export
translationH : Numa=>Vectorna->HMatrix'na
  Construct a homogeneous matrix that translates by the given vector.

Totality: total
Visibility: export
rotate2DH : {defaultBrep : Rep} ->RepConstraintrepDouble=>Double->HMatrix'2Double
  Construct a 2D homogeneous matrix that rotates by the given angle (in radians).

Totality: total
Visibility: export
rotate3DXH : {defaultBrep : Rep} ->RepConstraintrepDouble=>Double->HMatrix'3Double
  Construct a 3D homogeneous matrix that rotates around the x-axis.

Totality: total
Visibility: export
rotate3DYH : {defaultBrep : Rep} ->RepConstraintrepDouble=>Double->HMatrix'3Double
  Construct a 3D homogeneous matrix that rotates around the y-axis.

Totality: total
Visibility: export
rotate3DZH : {defaultBrep : Rep} ->RepConstraintrepDouble=>Double->HMatrix'3Double
  Construct a 3D homogeneous matrix that rotates around the z-axis.

Totality: total
Visibility: export
reflectH : Nega=>Finn->HMatrix'na
Totality: total
Visibility: export
reflectXH : Nega=>HMatrix' (1+n) a
Totality: total
Visibility: export
reflectYH : Nega=>HMatrix' (2+n) a
Totality: total
Visibility: export
reflectZH : Nega=>HMatrix' (3+n) a
Totality: total
Visibility: export