flutter_3d_objects
library
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.
-
fromColor(Color color)
→ Vector3
-
Convert Color to Vector3
-
getImagePixels(Image image)
→ Future<Uint32List>
-
-
loadImageFromAsset(String fileName, {bool isAsset = true})
→ Future<Image>
-
load an image from asset
-
loadMtl(String fileName, {bool isAsset = true})
→ Future<Map<String, Material>>
-
Loading material from Material Library File (.mtl).
Reference:http://paulbourke.net/dataformats/mtl/
-
loadObj(String fileName, bool normalized, {bool isAsset = true})
→ Future<List<Mesh>>
-
Loading mesh from Wavefront's object file (.obj).
Reference:http://paulbourke.net/dataformats/obj/
-
loadTexture(Material? material, String basePath, {bool isAsset = true})
→ Future<MapEntry<String, Image>?>
-
load texture from asset
-
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.
-
normalizeMesh(List<Mesh> meshes)
→ List<Mesh>
-
Scale the model size to 1
-
normalVector(Vector3 a, Vector3 b, Vector3 c)
→ Vector3
-
Calculate normal vector
-
packingTexture(List<Mesh> meshes)
→ Future<Image?>
-
Reference:https://observablehq.com/@mourner/simple-rectangle-packing
-
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 model-view 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 model-view 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.
-
toColor(Vector3 v, [double opacity = 1.0])
→ Color
-
Convert Vector3 to Color
-
toVector2(Offset value)
→ Vector2
-
Convert Offset to Vector2
-
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
.