vector_math_64 library

一个包含用于游戏,模拟或渲染的不同类型矢量操作的库.

该库包含Vector类( Vector2Vector3Vector4 ),矩阵类( Matrix2Matrix3Matrix4 )以及与碰撞检测相关的类( Aabb2Aabb3FrustumObb3PlaneQuadRaySphereTriangle ).

另外,一些实用程序还可以用作颜色操作(请参阅Colors类),噪声生成器( SimplexNoise )和常见的OpenGL操作(如makeViewMatrixmakePerspectiveMatrixpickRay ).

There is also a vector_math_64_64 library available that uses double precision (64-bit) instead of single precision (32-bit) floating point numbers for storage.

Classes

Aabb2
最小最大位置之间定义二维轴对齐的边界框.
Aabb3
定义了一个之间的3维轴对齐包围盒分钟最大位置.
Colors
包含用于在不同颜色模型之间进行转换和处理颜色的函数. 除此之外,可以访问一些已知的颜色以进行快速原型制作.
Frustum
定义一个由六个Plane组成的视锥.
IntersectionResult
定义相交测试的结果.
Matrix2
2D矩阵. 值以列主要顺序存储.
Matrix3
3D矩阵. 值以列主要顺序存储.
Matrix4
4D矩阵. 值以列主要顺序存储.
Obb3
定义一个3D方向的边界框,该边界框定义有centerhalfExtentsaxis .
Plane
Quad
用四点定义一个四边形.
Quaternion
定义四元数 (三维矢量)以进行有效的旋转计算. [...]
Ray
通过原点方向定义射线 .
SimplexNoise
Sphere
定义一个具有中心半径的球.
Triangle
用三个点定义一个三角形.
Vector
向量的基类
Vector2
2D列向量.
Vector3
3D列向量.
Vector4
4D列向量.

Constants

degrees2Radians → const double
常数因数,以度为单位,将角度转换为弧度.
math.pi / 180.0
radians2Degrees → const double
常数因数,以弧度为单位进行转换.
180.0 / math.pi

Functions

absoluteError(dynamic calculated, dynamic correct) double
返回calculatedcorrect之间的绝对误差. calculatedcorrect的类型必须匹配,并且可以是任何矢量,矩阵或四元数.
buildPlaneVectors(Vector3 planeNormal, Vector3 u, Vector3 v) → void
uv设置为两个互相正交的向量,并且将其设置为planeNormal .
catmullRom(double edge0, double edge1, double edge2, double edge3, double amount) double
edge0edge1edge2edge3amount做catmull rom样条插值.
cross2(Vector2 x, Vector2 y) double
2D叉积. vec2 x vec2.
cross2A(double x, Vector2 y, Vector2 out) → void
2D叉积. 双x vec2.
cross2B(Vector2 x, double y, Vector2 out) → void
2D叉积. vec2 x两倍.
cross3(Vector3 x, Vector3 y, Vector3 out) → void
3D Cross产品.
degrees(double radians) double
radians转换radians度.
dot2(Vector2 x, Vector2 y) double
2D点积.
dot3(Vector3 x, Vector3 y) double
3D点产品.
makeFrustumMatrix(double left, double right, double bottom, double top, double near, double far) Matrix4
构造一个新的OpenGL透视投影矩阵. [...]
makeInfiniteMatrix(double fovYRadians, double aspectRatio, double zNear) Matrix4
构造一个新的OpenGL无限投影矩阵. [...]
makeOrthographicMatrix(double left, double right, double bottom, double top, double near, double far) Matrix4
构造一个新的OpenGL正投影投影矩阵. [...]
makePerspectiveMatrix(double fovYRadians, double aspectRatio, double zNear, double zFar) Matrix4
构造一个新的OpenGL透视投影矩阵. [...]
makePlaneProjection(Vector3 planeNormal, Vector3 planePoint) Matrix4
返回一个转换矩阵,该转换矩阵将点转换到用planeNormalplanePoint指定的平面上.
makePlaneReflection(Vector3 planeNormal, Vector3 planePoint) Matrix4
返回一个转换矩阵,该转换矩阵通过将点反射到通过planeNormalplanePoint指定的平面来转换点.
makeViewMatrix(Vector3 cameraPosition, Vector3 cameraFocusPosition, Vector3 upDirection) Matrix4
构造一个新的OpenGL视图矩阵. [...]
mix(double min, double max, double a) double
之间内插minmax与的量a使用线性内插. 该计算等效于GLSL函数混合.
pickRay(Matrix4 cameraMatrix, num viewportX, num viewportWidth, num viewportY, num viewportHeight, num pickX, num pickY, Vector3 rayNear, Vector3 rayFar) bool
成功时, rayNearrayFar是屏幕空间pickXpickY分别与近平面和远平面相交的点. [...]
radians(double degrees) double
degrees转换为弧度.
relativeError(dynamic calculated, dynamic correct) double
返回calculatedcorrect之间的相对误差. calculatedcorrect的类型必须匹配,并且可以是任何矢量,矩阵或四元数.
setFrustumMatrix(Matrix4 perspectiveMatrix, double left, double right, double bottom, double top, double near, double far) → void
perspectiveMatrix构造一个OpenGL透视投影矩阵. [...]
setInfiniteMatrix(Matrix4 infiniteMatrix, double fovYRadians, double aspectRatio, double zNear) → void
infiniteMatrix构造一个OpenGL无限投影矩阵. fovYRadians指定y方向上的弧度视场. aspectRatio指定确定x方向上视野的纵横比. x(宽度)与y(高度)的长宽比. zNear指定从查看者到近平面的距离(始终为正).
setModelMatrix(Matrix4 modelMatrix, Vector3 forwardDirection, Vector3 upDirection, double tx, double ty, double tz) → void
modelMatrix构造一个OpenGL模型矩阵. 模型转换是视图转换的逆过程. 模型转换也称为"相机"转换. 模型矩阵通常用于计算整个模型视图堆栈中的对象位置/方向. [...]
setOrthographicMatrix(Matrix4 orthographicMatrix, double left, double right, double bottom, double top, double near, double far) → void
orthographicMatrix构造一个OpenGL正交投影矩阵. [...]
setPerspectiveMatrix(Matrix4 perspectiveMatrix, double fovYRadians, double aspectRatio, double zNear, double zFar) → void
perspectiveMatrix构造一个OpenGL透视投影矩阵. [...]
setRotationMatrix(Matrix4 rotationMatrix, Vector3 forwardDirection, Vector3 upDirection) → void
rotationMatrix构造一个旋转矩阵. [...]
setViewMatrix(Matrix4 viewMatrix, Vector3 cameraPosition, Vector3 cameraFocusPosition, Vector3 upDirection) → void
viewMatrix构造一个OpenGL视图矩阵. 视图转换是模型转换的逆过程. 视图矩阵通常用于将摄像机的位置/方向计算为完整的模型视图堆栈. [...]
smoothStep(double edge0, double edge1, double amount) double
amount edge0edge1进行平滑步长(hermite插值)插值. 该计算等效于GLSL函数平稳步长.
unproject(Matrix4 cameraMatrix, num viewportX, num viewportWidth, num viewportY, num viewportHeight, num pickX, num pickY, num pickZ, Vector3 pickWorld) bool
成功后,将pickWorld设置为屏幕空间pickXpickYpickZ的世界空间位置. [...]