image_composition library
Classes

Aabb2

Defines a 2dimensional axisaligned bounding box between a min and a
max position.

Aabb3

Defines a 3dimensional axisaligned bounding box between a min and a
max position.

Canvas

An interface for recording graphical operations.

Color

An immutable 32 bit color value in ARGB format.

Frustum

Defines a frustum constructed out of six Planes.

Image

Opaque handle to raw decoded image data (pixels).

ImageComposition

The ImageComposition allows for composing multiple images onto a single
image.

IntersectionResult

Defines a result of an intersection test.

Matrix2

2D Matrix.
Values are stored in column major order.

Matrix3

3D Matrix.
Values are stored in column major order.

Matrix4

4D Matrix.
Values are stored in column major order.

Obb3

Defines a 3dimensional oriented bounding box defined with a center,
halfExtents and axes.

Offset

An immutable 2D floatingpoint offset.

Plane


Quad

Defines a quad by four points.

Quaternion

Defines a Quaternion (a fourdimensional vector) for efficient rotation
calculations.

Ray

Defines a Ray by an origin and a direction.

Rect

An immutable, 2D, axisaligned, floatingpoint rectangle whose coordinates
are relative to a given origin.

SimplexNoise


Size

Holds a 2D floatingpoint size.

Sphere

Defines a sphere with a center and a radius.

Triangle

Defines a triangle by three points.

Vector

Base class for vectors

Vector2

2D column vector.

Vector3

3D column vector.

Vector4

4D column vector.
Constants

degrees2Radians
→ const double

Constant factor to convert and angle from degrees to radians.
math.pi / 180.0

radians2Degrees
→ const double

Constant factor to convert and angle from radians to degrees.
180.0 / math.pi
Functions

absoluteError(dynamic calculated, dynamic correct)
→ double

Returns absolute error between
calculated
and correct
.
The type of calculated
and correct
must match and can
be any vector, matrix, or quaternion.

buildPlaneVectors(Vector3 planeNormal, Vector3 u, Vector3 v)
→ void

Sets
u
and v
to be two vectors orthogonal to each other and
planeNormal
.

catmullRom(double edge0, double edge1, double edge2, double edge3, double amount)
→ double

Do a catmull rom spline interpolation with
edge0
, edge1
, edge2
and
edge3
by amount
.

cross2(Vector2 x, Vector2 y)
→ double

2D cross product. vec2 x vec2.

cross2A(double x, Vector2 y, Vector2 out)
→ void

2D cross product. double x vec2.

cross2B(Vector2 x, double y, Vector2 out)
→ void

2D cross product. vec2 x double.

cross3(Vector3 x, Vector3 y, Vector3 out)
→ void

3D Cross product.

degrees(double radians)
→ double

Convert
radians
to degrees.

dot2(Vector2 x, Vector2 y)
→ double

2D dot product.

dot3(Vector3 x, Vector3 y)
→ double

3D dot product.

makeFrustumMatrix(double left, double right, double bottom, double top, double near, double far)
→ Matrix4

Constructs a new OpenGL perspective projection matrix.

makeInfiniteMatrix(double fovYRadians, double aspectRatio, double zNear)
→ Matrix4

Constructs a new OpenGL infinite projection matrix.

makeOrthographicMatrix(double left, double right, double bottom, double top, double near, double far)
→ Matrix4

Constructs a new OpenGL orthographic projection matrix.

makePerspectiveMatrix(double fovYRadians, double aspectRatio, double zNear, double zFar)
→ Matrix4

Constructs a new OpenGL perspective projection matrix.

makePlaneProjection(Vector3 planeNormal, Vector3 planePoint)
→ Matrix4

Returns a transformation matrix that transforms points onto
the plane specified with
planeNormal
and planePoint
.

makePlaneReflection(Vector3 planeNormal, Vector3 planePoint)
→ Matrix4

Returns a transformation matrix that transforms points by reflecting
them through the plane specified with
planeNormal
and planePoint
.

makeViewMatrix(Vector3 cameraPosition, Vector3 cameraFocusPosition, Vector3 upDirection)
→ Matrix4

Constructs a new OpenGL view matrix.

mix(double min, double max, double a)
→ double

Interpolate between
min
and max
with the amount of a
using a linear
interpolation. The computation is equivalent to the GLSL function mix.

pickRay(Matrix4 cameraMatrix, num viewportX, num viewportWidth, num viewportY, num viewportHeight, num pickX, num pickY, Vector3 rayNear, Vector3 rayFar)
→ bool

On success,
rayNear
and rayFar
are the points where
the screen space pickX
, pickY
intersect with the near and far
planes respectively.

radians(double degrees)
→ double

Convert
degrees
to radians.

relativeError(dynamic calculated, dynamic correct)
→ double

Returns relative error between
calculated
and correct
.
The type of calculated
and correct
must match and can
be any vector, matrix, or quaternion.

setFrustumMatrix(Matrix4 perspectiveMatrix, double left, double right, double bottom, double top, double near, double far)
→ void

Constructs an OpenGL perspective projection matrix in
perspectiveMatrix
.

setInfiniteMatrix(Matrix4 infiniteMatrix, double fovYRadians, double aspectRatio, double zNear)
→ void

Constructs an OpenGL infinite projection matrix in
infiniteMatrix
.
fovYRadians
specifies the field of view angle, in radians, in the y
direction.
aspectRatio
specifies the aspect ratio that determines the field of view
in the x direction. The aspect ratio of x (width) to y (height).
zNear
specifies the distance from the viewer to the near plane
(always positive).

setModelMatrix(Matrix4 modelMatrix, Vector3 forwardDirection, Vector3 upDirection, double tx, double ty, double tz)
→ void

Constructs an OpenGL model matrix in
modelMatrix
.
Model transformation is the inverse of the view transformation.
Model transformation is also known as "camera" transformation.
Model matrix is commonly used to compute a object location/orientation into
the full modelview stack.

setOrthographicMatrix(Matrix4 orthographicMatrix, double left, double right, double bottom, double top, double near, double far)
→ void

Constructs an OpenGL orthographic projection matrix in
orthographicMatrix
.

setPerspectiveMatrix(Matrix4 perspectiveMatrix, double fovYRadians, double aspectRatio, double zNear, double zFar)
→ void

Constructs an OpenGL perspective projection matrix in
perspectiveMatrix
.

setRotationMatrix(Matrix4 rotationMatrix, Vector3 forwardDirection, Vector3 upDirection)
→ void

Constructs a rotation matrix in
rotationMatrix
.

setViewMatrix(Matrix4 viewMatrix, Vector3 cameraPosition, Vector3 cameraFocusPosition, Vector3 upDirection)
→ void

Constructs an OpenGL view matrix in
viewMatrix
.
View transformation is the inverse of the model transformation.
View matrix is commonly used to compute the camera location/orientation into
the full modelview stack.

smoothStep(double edge0, double edge1, double amount)
→ double

Do a smooth step (hermite interpolation) interpolation with
edge0
and
edge1
by amount
. The computation is equivalent to the GLSL function
smoothstep.

unproject(Matrix4 cameraMatrix, num viewportX, num viewportWidth, num viewportY, num viewportHeight, num pickX, num pickY, num pickZ, Vector3 pickWorld)
→ bool

On success, Sets
pickWorld
to be the world space position of
the screen space pickX
, pickY
, and pickZ
.