Class Interpolationf
- java.lang.Object
-
- org.joml.Interpolationf
-
public class Interpolationf extends java.lang.Object
Contains various interpolation functions.- Author:
- Kai Burjack
-
-
Constructor Summary
Constructors Constructor Description Interpolationf()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Vector2f
dFdxLinear(float v0X, float v0Y, float f0X, float f0Y, float v1X, float v1Y, float f1X, float f1Y, float v2X, float v2Y, float f2X, float f2Y, Vector2f dest)
Compute the first-order derivative of a linear two-dimensional function f with respect to X and store the result indest
.static Vector2f
dFdyLinear(float v0X, float v0Y, float f0X, float f0Y, float v1X, float v1Y, float f1X, float f1Y, float v2X, float v2Y, float f2X, float f2Y, Vector2f dest)
Compute the first-order derivative of a linear two-dimensional function f with respect to Y and store the result indest
.static float
interpolateTriangle(float v0X, float v0Y, float f0, float v1X, float v1Y, float f1, float v2X, float v2Y, float f2, float x, float y)
Bilinearly interpolate the single scalar value f over the given triangle.static Vector3f
interpolateTriangle(float v0X, float v0Y, float f0X, float f0Y, float f0Z, float v1X, float v1Y, float f1X, float f1Y, float f1Z, float v2X, float v2Y, float f2X, float f2Y, float f2Z, float x, float y, Vector3f dest)
Bilinearly interpolate the three-dimensional vector f over the given triangle and store the result indest
.static Vector2f
interpolateTriangle(float v0X, float v0Y, float f0X, float f0Y, float v1X, float v1Y, float f1X, float f1Y, float v2X, float v2Y, float f2X, float f2Y, float x, float y, Vector2f dest)
Bilinearly interpolate the two-dimensional vector f over the given triangle and store the result indest
.static Vector3f
interpolationFactorsTriangle(float v0X, float v0Y, float v1X, float v1Y, float v2X, float v2Y, float x, float y, Vector3f dest)
Compute the interpolation factors(t0, t1, t2)
in order to interpolate an arbitrary value over a given triangle at the given point(x, y)
.
-
-
-
Method Detail
-
interpolateTriangle
public static float interpolateTriangle(float v0X, float v0Y, float f0, float v1X, float v1Y, float f1, float v2X, float v2Y, float f2, float x, float y)
Bilinearly interpolate the single scalar value f over the given triangle.Reference: https://en.wikipedia.org/
- Parameters:
v0X
- the x coordinate of the first triangle vertexv0Y
- the y coordinate of the first triangle vertexf0
- the value of f at the first vertexv1X
- the x coordinate of the second triangle vertexv1Y
- the y coordinate of the second triangle vertexf1
- the value of f at the second vertexv2X
- the x coordinate of the third triangle vertexv2Y
- the y coordinate of the third triangle vertexf2
- the value of f at the third vertexx
- the x coordinate of the point to interpolate f aty
- the y coordinate of the point to interpolate f at- Returns:
- the interpolated value of f
-
interpolateTriangle
public static Vector2f interpolateTriangle(float v0X, float v0Y, float f0X, float f0Y, float v1X, float v1Y, float f1X, float f1Y, float v2X, float v2Y, float f2X, float f2Y, float x, float y, Vector2f dest)
Bilinearly interpolate the two-dimensional vector f over the given triangle and store the result indest
.Reference: https://en.wikipedia.org/
- Parameters:
v0X
- the x coordinate of the first triangle vertexv0Y
- the y coordinate of the first triangle vertexf0X
- the x component of the value of f at the first vertexf0Y
- the y component of the value of f at the first vertexv1X
- the x coordinate of the second triangle vertexv1Y
- the y coordinate of the second triangle vertexf1X
- the x component of the value of f at the second vertexf1Y
- the y component of the value of f at the second vertexv2X
- the x coordinate of the third triangle vertexv2Y
- the y coordinate of the third triangle vertexf2X
- the x component of the value of f at the third vertexf2Y
- the y component of the value of f at the third vertexx
- the x coordinate of the point to interpolate f aty
- the y coordinate of the point to interpolate f atdest
- will hold the interpolation result- Returns:
- dest
-
dFdxLinear
public static Vector2f dFdxLinear(float v0X, float v0Y, float f0X, float f0Y, float v1X, float v1Y, float f1X, float f1Y, float v2X, float v2Y, float f2X, float f2Y, Vector2f dest)
Compute the first-order derivative of a linear two-dimensional function f with respect to X and store the result indest
.This method computes the constant rate of change for f given the three values of f at the specified three inputs
(v0X, v0Y)
,(v1X, v1Y)
and(v2X, v2Y)
.- Parameters:
v0X
- the x coordinate of the first triangle vertexv0Y
- the y coordinate of the first triangle vertexf0X
- the x component of the value of f at the first vertexf0Y
- the y component of the value of f at the first vertexv1X
- the x coordinate of the second triangle vertexv1Y
- the y coordinate of the second triangle vertexf1X
- the x component of the value of f at the second vertexf1Y
- the y component of the value of f at the second vertexv2X
- the x coordinate of the third triangle vertexv2Y
- the y coordinate of the third triangle vertexf2X
- the x component of the value of f at the third vertexf2Y
- the y component of the value of f at the third vertexdest
- will hold the result- Returns:
- dest
-
dFdyLinear
public static Vector2f dFdyLinear(float v0X, float v0Y, float f0X, float f0Y, float v1X, float v1Y, float f1X, float f1Y, float v2X, float v2Y, float f2X, float f2Y, Vector2f dest)
Compute the first-order derivative of a linear two-dimensional function f with respect to Y and store the result indest
.This method computes the constant rate of change for f given the three values of f at the specified three inputs
(v0X, v0Y)
,(v1X, v1Y)
and(v2X, v2Y)
.- Parameters:
v0X
- the x coordinate of the first triangle vertexv0Y
- the y coordinate of the first triangle vertexf0X
- the x component of the value of f at the first vertexf0Y
- the y component of the value of f at the first vertexv1X
- the x coordinate of the second triangle vertexv1Y
- the y coordinate of the second triangle vertexf1X
- the x component of the value of f at the second vertexf1Y
- the y component of the value of f at the second vertexv2X
- the x coordinate of the third triangle vertexv2Y
- the y coordinate of the third triangle vertexf2X
- the x component of the value of f at the third vertexf2Y
- the y component of the value of f at the third vertexdest
- will hold the result- Returns:
- dest
-
interpolateTriangle
public static Vector3f interpolateTriangle(float v0X, float v0Y, float f0X, float f0Y, float f0Z, float v1X, float v1Y, float f1X, float f1Y, float f1Z, float v2X, float v2Y, float f2X, float f2Y, float f2Z, float x, float y, Vector3f dest)
Bilinearly interpolate the three-dimensional vector f over the given triangle and store the result indest
.Reference: https://en.wikipedia.org/
- Parameters:
v0X
- the x coordinate of the first triangle vertexv0Y
- the y coordinate of the first triangle vertexf0X
- the x component of the value of f at the first vertexf0Y
- the y component of the value of f at the first vertexf0Z
- the z component of the value of f at the first vertexv1X
- the x coordinate of the second triangle vertexv1Y
- the y coordinate of the second triangle vertexf1X
- the x component of the value of f at the second vertexf1Y
- the y component of the value of f at the second vertexf1Z
- the z component of the value of f at the second vertexv2X
- the x coordinate of the third triangle vertexv2Y
- the y coordinate of the third triangle vertexf2X
- the x component of the value of f at the third vertexf2Y
- the y component of the value of f at the third vertexf2Z
- the z component of the value of f at the third vertexx
- the x coordinate of the point to interpolate f aty
- the y coordinate of the point to interpolate f atdest
- will hold the interpolation result- Returns:
- dest
-
interpolationFactorsTriangle
public static Vector3f interpolationFactorsTriangle(float v0X, float v0Y, float v1X, float v1Y, float v2X, float v2Y, float x, float y, Vector3f dest)
Compute the interpolation factors(t0, t1, t2)
in order to interpolate an arbitrary value over a given triangle at the given point(x, y)
.This method takes in the 2D vertex positions of the three vertices of a triangle and stores in
dest
the factors(t0, t1, t2)
in the equationv' = v0 * t0 + v1 * t1 + v2 * t2
where(v0, v1, v2)
are arbitrary (scalar or vector) values associated with the respective vertices of the triangle. The computed valuev'
is the interpolated value at the given position(x, y)
.- Parameters:
v0X
- the x coordinate of the first triangle vertexv0Y
- the y coordinate of the first triangle vertexv1X
- the x coordinate of the second triangle vertexv1Y
- the y coordinate of the second triangle vertexv2X
- the x coordinate of the third triangle vertexv2Y
- the y coordinate of the third triangle vertexx
- the x coordinate of the point to interpolate aty
- the y coordinate of the point to interpolate atdest
- will hold the interpolation factors(t0, t1, t2)
- Returns:
- dest
-
-