A* Pathfinding Project  4.1.3
The A* Pathfinding Project for Unity 3D
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Events Macros Groups Pages
GraphTransform Class Reference

Defines a transformation from graph space to world space. More...

Detailed Description

Defines a transformation from graph space to world space.

This is essentially just a simple wrapper around a matrix, but it has several utilities that are useful.

Public Member Functions

 GraphTransform (Matrix4x4 matrix)
 
Vector3 InverseTransform (Vector3 p)
 
Int3 InverseTransform (Int3 p)
 
void InverseTransform (Int3[] arr)
 
Bounds InverseTransform (Bounds b)
 
Vector3 Transform (Vector3 p)
 
void Transform (Int3[] arr)
 
void Transform (Vector3[] arr)
 
Bounds Transform (Bounds b)
 
Vector3 TransformVector (Vector3 p)
 
Vector3 WorldUpAtGraphPosition (Vector3 p)
 
- Public Member Functions inherited from IMovementPlane
Vector2 ToPlane (Vector3 p)
 
Vector2 ToPlane (Vector3 p, out float elevation)
 
Vector3 ToWorld (Vector2 p, float elevation=0)
 
- Public Member Functions inherited from ITransform
Vector3 InverseTransform (Vector3 position)
 
Vector3 Transform (Vector3 position)
 

Static Public Member Functions

static GraphTransform operator* (GraphTransform lhs, Matrix4x4 rhs)
 
static GraphTransform operator* (Matrix4x4 lhs, GraphTransform rhs)
 

Public Attributes

readonly bool identity
 
readonly bool onlyTranslational
 

Static Public Attributes

static readonly GraphTransform identityTransform = new GraphTransform(Matrix4x4.identity)
 

Private Member Functions

Vector2 IMovementPlane. ToPlane (Vector3 p)
 Transforms from world space to the 'ground' plane of the graph.
 
Vector2 IMovementPlane. ToPlane (Vector3 p, out float elevation)
 Transforms from world space to the 'ground' plane of the graph.
 
Vector3 IMovementPlane. ToWorld (Vector2 p, float elevation)
 Transforms from the 'ground' plane of the graph to world space.
 

Static Private Member Functions

static bool MatrixIsTranslational (Matrix4x4 m)
 

Private Attributes

readonly Int3 i3translation
 
readonly Matrix4x4 inverseMatrix
 
readonly Quaternion inverseRotation
 
readonly bool isXY
 
readonly bool isXZ
 
readonly Matrix4x4 matrix
 
readonly Quaternion rotation
 
readonly Vector3 translation
 
readonly Vector3 up
 

Constructor & Destructor Documentation

GraphTransform ( Matrix4x4  matrix)

Member Function Documentation

Vector3 InverseTransform ( Vector3  p)
Int3 InverseTransform ( Int3  p)
void InverseTransform ( Int3[]  arr)
Bounds InverseTransform ( Bounds  b)
static bool MatrixIsTranslational ( Matrix4x4  m)
staticprivate
static GraphTransform operator* ( GraphTransform  lhs,
Matrix4x4  rhs 
)
static
static GraphTransform operator* ( Matrix4x4  lhs,
GraphTransform  rhs 
)
static
Vector2 IMovementPlane. ToPlane ( Vector3  p)
private

Transforms from world space to the 'ground' plane of the graph.

The transformation is purely a rotation so no scale or offset is used.

For a graph rotated with the rotation (-90, 0, 0) this will transform a coordinate (x,y,z) to (x,y). For a graph with the rotation (0,0,0) this will tranform a coordinate (x,y,z) to (x,z). More generally for a graph with a quaternion rotation R this will transform a vector V to R * V (i.e rotate the vector V using the rotation R).

Vector2 IMovementPlane. ToPlane ( Vector3  p,
out float  elevation 
)
private

Transforms from world space to the 'ground' plane of the graph.

The transformation is purely a rotation so no scale or offset is used.

Vector3 IMovementPlane. ToWorld ( Vector2  p,
float  elevation 
)
private

Transforms from the 'ground' plane of the graph to world space.

The transformation is purely a rotation so no scale or offset is used.

Vector3 Transform ( Vector3  p)
void Transform ( Int3[]  arr)
void Transform ( Vector3[]  arr)
Bounds Transform ( Bounds  b)
Vector3 TransformVector ( Vector3  p)
Vector3 WorldUpAtGraphPosition ( Vector3  p)

Member Data Documentation

readonly Int3 i3translation
private
readonly bool identity
readonly GraphTransform identityTransform = new GraphTransform(Matrix4x4.identity)
static
readonly Matrix4x4 inverseMatrix
private
readonly Quaternion inverseRotation
private
readonly bool isXY
private
readonly bool isXZ
private
readonly Matrix4x4 matrix
private
readonly bool onlyTranslational
readonly Quaternion rotation
private
readonly Vector3 translation
private
readonly Vector3 up
private

The documentation for this class was generated from the following file: