Class QuadInterpolation
Supplies various bilinear and trilinear interpolation methods. The conventions are based on a XY plane using either a unit square or unit cube.
Inheritance
Namespace: Sylves
Assembly: Sylves.dll
Syntax
public static class QuadInterpolation : Object
Methods
GetCorners(MeshData, Int32, Int32, Boolean, out Vector3, out Vector3, out Vector3, out Vector3)
Declaration
public static void GetCorners(MeshData mesh, int submesh, int face, bool invertWinding, out Vector3 v1, out Vector3 v2, out Vector3 v3, out Vector3 v4)
Parameters
Type | Name | Description |
---|---|---|
MeshData | mesh | |
System.Int32 | submesh | |
System.Int32 | face | |
System.Boolean | invertWinding | |
Vector3 | v1 | |
Vector3 | v2 | |
Vector3 | v3 | |
Vector3 | v4 |
GetCorners(MeshData, Int32, Int32, Boolean, Single, Single, out Vector3, out Vector3, out Vector3, out Vector3, out Vector3, out Vector3, out Vector3, out Vector3)
Declaration
public static void GetCorners(MeshData mesh, int submesh, int face, bool invertWinding, float meshOffset1, float meshOffset2, out Vector3 v1, out Vector3 v2, out Vector3 v3, out Vector3 v4, out Vector3 v5, out Vector3 v6, out Vector3 v7, out Vector3 v8)
Parameters
Type | Name | Description |
---|---|---|
MeshData | mesh | |
System.Int32 | submesh | |
System.Int32 | face | |
System.Boolean | invertWinding | |
System.Single | meshOffset1 | |
System.Single | meshOffset2 | |
Vector3 | v1 | |
Vector3 | v2 | |
Vector3 | v3 | |
Vector3 | v4 | |
Vector3 | v5 | |
Vector3 | v6 | |
Vector3 | v7 | |
Vector3 | v8 |
Interpolate(Vector2, Vector2, Vector2, Vector2)
As the Vector3 interpolate, only in 2 dimensions.
Declaration
public static Func<Vector3, Vector2> Interpolate(Vector2 v1, Vector2 v2, Vector2 v3, Vector2 v4)
Parameters
Type | Name | Description |
---|---|---|
Vector2 | v1 | |
Vector2 | v2 | |
Vector2 | v3 | |
Vector2 | v4 |
Returns
Type | Description |
---|---|
System.Func<Vector3, Vector2> |
Interpolate(Vector2, Vector2, Vector2, Vector2, Vector2, Vector2, Vector2, Vector2)
As the Vector3 Interpolate, only in 2 dimensions.
Declaration
public static Func<Vector3, Vector2> Interpolate(Vector2 v1, Vector2 v2, Vector2 v3, Vector2 v4, Vector2 v5, Vector2 v6, Vector2 v7, Vector2 v8)
Parameters
Type | Name | Description |
---|---|---|
Vector2 | v1 | |
Vector2 | v2 | |
Vector2 | v3 | |
Vector2 | v4 | |
Vector2 | v5 | |
Vector2 | v6 | |
Vector2 | v7 | |
Vector2 | v8 |
Returns
Type | Description |
---|---|
System.Func<Vector3, Vector2> |
Interpolate(Vector3, Vector3, Vector3, Vector3)
Bilinear interpolates from a unit square in the XZ plane to the quad supplied by v1 to v4 The z value of p is unused.
Declaration
public static Func<Vector3, Vector3> Interpolate(Vector3 v1, Vector3 v2, Vector3 v3, Vector3 v4)
Parameters
Type | Name | Description |
---|---|---|
Vector3 | v1 | Final location of (-0.5, 0, -0.5) |
Vector3 | v2 | Final location of (-0.5, 0, 0.5) |
Vector3 | v3 | Final location of (0.5, 0, 0.5) |
Vector3 | v4 | Final location of (0.5, 0, -0.5) |
Returns
Type | Description |
---|---|
System.Func<Vector3, Vector3> |
Interpolate(Vector3, Vector3, Vector3, Vector3, Vector3, Vector3, Vector3, Vector3)
Tiilinear interpolates from a unit cube to the polyhedron supplied by v1 to v8 The z value of p is unused.
Declaration
public static Func<Vector3, Vector3> Interpolate(Vector3 v1, Vector3 v2, Vector3 v3, Vector3 v4, Vector3 v5, Vector3 v6, Vector3 v7, Vector3 v8)
Parameters
Type | Name | Description |
---|---|---|
Vector3 | v1 | Final location of (-0.5, -0.5, -0.5) |
Vector3 | v2 | Final location of (-0.5, -0.5, 0.5) |
Vector3 | v3 | Final location of (0.5, -0.5, 0.5) |
Vector3 | v4 | Final location of (0.5, -0.5, -0.5) |
Vector3 | v5 | Final location of (-0.5, 0.5, -0.5) |
Vector3 | v6 | Final location of (-0.5, 0.5, 0.5) |
Vector3 | v7 | Final location of (0.5, 0.5, 0.5) |
Vector3 | v8 | Final location of (0.5, 0.5, -0.5) |
Returns
Type | Description |
---|---|
System.Func<Vector3, Vector3> |
Interpolate(Vector4, Vector4, Vector4, Vector4)
As the Vector3 interpolate, only in 4 dimensions.
Declaration
public static Func<Vector3, Vector4> Interpolate(Vector4 v1, Vector4 v2, Vector4 v3, Vector4 v4)
Parameters
Type | Name | Description |
---|---|---|
Vector4 | v1 | |
Vector4 | v2 | |
Vector4 | v3 | |
Vector4 | v4 |
Returns
Type | Description |
---|---|
System.Func<Vector3, Vector4> |
Interpolate(Vector4, Vector4, Vector4, Vector4, Vector4, Vector4, Vector4, Vector4)
As the Vector3 interpolate, only in 4 dimensions.
Declaration
public static Func<Vector3, Vector4> Interpolate(Vector4 v1, Vector4 v2, Vector4 v3, Vector4 v4, Vector4 v5, Vector4 v6, Vector4 v7, Vector4 v8)
Parameters
Type | Name | Description |
---|---|---|
Vector4 | v1 | |
Vector4 | v2 | |
Vector4 | v3 | |
Vector4 | v4 | |
Vector4 | v5 | |
Vector4 | v6 | |
Vector4 | v7 | |
Vector4 | v8 |
Returns
Type | Description |
---|---|
System.Func<Vector3, Vector4> |
InterpolateNormal(MeshData, Int32, Int32, Boolean)
Declaration
public static Func<Vector3, Vector3> InterpolateNormal(MeshData mesh, int submesh, int face, bool invertWinding)
Parameters
Type | Name | Description |
---|---|---|
MeshData | mesh | |
System.Int32 | submesh | |
System.Int32 | face | |
System.Boolean | invertWinding |
Returns
Type | Description |
---|---|
System.Func<Vector3, Vector3> |
InterpolatePosition(MeshData, Int32, Int32, Boolean)
Declaration
public static Func<Vector3, Vector3> InterpolatePosition(MeshData mesh, int submesh, int face, bool invertWinding)
Parameters
Type | Name | Description |
---|---|---|
MeshData | mesh | |
System.Int32 | submesh | |
System.Int32 | face | |
System.Boolean | invertWinding |
Returns
Type | Description |
---|---|
System.Func<Vector3, Vector3> |
InterpolatePosition(MeshData, Int32, Int32, Boolean, Single, Single)
Sets up a function that does trilinear interpolation from a unit cube centered on the origin to a cube made by extruding a given face of the mesh by meshOffset1 (for y=-0.5) and meshOffset2 (for y=0.5)
Declaration
public static Func<Vector3, Vector3> InterpolatePosition(MeshData mesh, int submesh, int face, bool invertWinding, float meshOffset1, float meshOffset2)
Parameters
Type | Name | Description |
---|---|---|
MeshData | mesh | |
System.Int32 | submesh | |
System.Int32 | face | |
System.Boolean | invertWinding | |
System.Single | meshOffset1 | |
System.Single | meshOffset2 |
Returns
Type | Description |
---|---|
System.Func<Vector3, Vector3> |
InterpolateTangent(MeshData, Int32, Int32, Boolean)
Declaration
public static Func<Vector3, Vector4> InterpolateTangent(MeshData mesh, int submesh, int face, bool invertWinding)
Parameters
Type | Name | Description |
---|---|---|
MeshData | mesh | |
System.Int32 | submesh | |
System.Int32 | face | |
System.Boolean | invertWinding |
Returns
Type | Description |
---|---|
System.Func<Vector3, Vector4> |
InterpolateUv(MeshData, Int32, Int32, Boolean)
Declaration
public static Func<Vector3, Vector2> InterpolateUv(MeshData mesh, int submesh, int face, bool invertWinding)
Parameters
Type | Name | Description |
---|---|---|
MeshData | mesh | |
System.Int32 | submesh | |
System.Int32 | face | |
System.Boolean | invertWinding |
Returns
Type | Description |
---|---|
System.Func<Vector3, Vector2> |
Jacobi(Vector2, Vector2, Vector2, Vector2)
As the Vector3 jacobi, only in 2 dimensions.
Declaration
public static Func<Vector3, Matrix4x4> Jacobi(Vector2 v1, Vector2 v2, Vector2 v3, Vector2 v4)
Parameters
Type | Name | Description |
---|---|---|
Vector2 | v1 | |
Vector2 | v2 | |
Vector2 | v3 | |
Vector2 | v4 |
Returns
Type | Description |
---|---|
System.Func<Vector3, Matrix4x4> |
Jacobi(Vector3, Vector3, Vector3, Vector3)
Bilinear interpolates from a unit square in the XZ plane to the quad supplied by v1 to v4, returning the jacobi The z value of p is unused.
Declaration
public static Func<Vector3, Matrix4x4> Jacobi(Vector3 v1, Vector3 v2, Vector3 v3, Vector3 v4)
Parameters
Type | Name | Description |
---|---|---|
Vector3 | v1 | Final location of (-0.5, 0, -0.5) |
Vector3 | v2 | Final location of (-0.5, 0, 0.5) |
Vector3 | v3 | Final location of (0.5, 0, 0.5) |
Vector3 | v4 | Final location of (0.5, 0, -0.5) |
Returns
Type | Description |
---|---|
System.Func<Vector3, Matrix4x4> |
Jacobi(Vector3, Vector3, Vector3, Vector3, Vector3, Vector3, Vector3, Vector3)
Tiilinear interpolates from a unit cube to the polyhedron supplied by v1 to v8, returning the jacobi The z value of p is unused.
Declaration
public static Func<Vector3, Matrix4x4> Jacobi(Vector3 v1, Vector3 v2, Vector3 v3, Vector3 v4, Vector3 v5, Vector3 v6, Vector3 v7, Vector3 v8)
Parameters
Type | Name | Description |
---|---|---|
Vector3 | v1 | Final location of (-0.5, -0.5, -0.5) |
Vector3 | v2 | Final location of (-0.5, -0.5, 0.5) |
Vector3 | v3 | Final location of (0.5, -0.5, 0.5) |
Vector3 | v4 | Final location of (0.5, -0.5, -0.5) |
Vector3 | v5 | Final location of (-0.5, 0.5, -0.5) |
Vector3 | v6 | Final location of (-0.5, 0.5, 0.5) |
Vector3 | v7 | Final location of (0.5, 0.5, 0.5) |
Vector3 | v8 | Final location of (0.5, 0.5, -0.5) |
Returns
Type | Description |
---|---|
System.Func<Vector3, Matrix4x4> |
JacobiPosition(MeshData, Int32, Int32, Boolean)
Declaration
public static Func<Vector3, Matrix4x4> JacobiPosition(MeshData mesh, int submesh, int face, bool invertWinding)
Parameters
Type | Name | Description |
---|---|---|
MeshData | mesh | |
System.Int32 | submesh | |
System.Int32 | face | |
System.Boolean | invertWinding |
Returns
Type | Description |
---|---|
System.Func<Vector3, Matrix4x4> |
JacobiPosition(MeshData, Int32, Int32, Boolean, Single, Single)
Returns the Jacobi (derivative) of InterpolatePosition
Declaration
public static Func<Vector3, Matrix4x4> JacobiPosition(MeshData mesh, int submesh, int face, bool invertWinding, float meshOffset1, float meshOffset2)
Parameters
Type | Name | Description |
---|---|---|
MeshData | mesh | |
System.Int32 | submesh | |
System.Int32 | face | |
System.Boolean | invertWinding | |
System.Single | meshOffset1 | |
System.Single | meshOffset2 |
Returns
Type | Description |
---|---|
System.Func<Vector3, Matrix4x4> |
JacobiUv(MeshData, Int32, Int32, Boolean)
Declaration
public static Func<Vector3, Matrix4x4> JacobiUv(MeshData mesh, int submesh, int face, bool invertWinding)
Parameters
Type | Name | Description |
---|---|---|
MeshData | mesh | |
System.Int32 | submesh | |
System.Int32 | face | |
System.Boolean | invertWinding |
Returns
Type | Description |
---|---|
System.Func<Vector3, Matrix4x4> |