Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

pyvmath

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pyvmath

C++ extension Vector Mathematics Package for 3D and 2D games.

  • 0.3.4
  • PyPI
  • Socket score

Maintainers
1

pyvmath

C++ extension Vector Mathematics Package for 3D and 2D games.

objects

vec2

a 2-D vector in array-of-structures format

vec3

a 3-D vector in array-of-structures format

vec4

a 4-D vector in array-of-structures format

quat

quaternion in array-of-structures format

mat22

a 2x2 matrix in array-of-structures format

mat33

a 3x3 matrix in array-of-structures format

mat44

a 4x4 matrix in array-of-structures format

functions

add

add two vectors or two matrices

c = add(a, b)

sub

sub two vectors or two matrices

c = sub(a, b)

mul

multiply 2 elements

c = mul(a, b)

the following combinations are possible

vector = vector x scalar

matrix = matrix x scalar

vector = matrix x vector (transform vector)

matrix = matrix x matrix

quatanion = quatanion x quatanion

vector = vector * vector (multiply per element)

div

division vector by a scalar

vector = div(vector, scalar)

division vector per element

vector = div(vector, vector)

recip

compute the reciprocal of a vector per element

vector = recip(vector)

sqrt

compute the square root of a vector per element

vector = sqrt(vector)

rsqrt

compute the reciprocal square root of a vector per element

vector = rsqrt(vector)

abs

compute the absolute value of a vector per element

vector = abs(vector)

max

maximum element of a vector

scalar = max(vector)

min

minimum element of a vector

scalar = min(vector)

maxElem

maximum of two vectors per element

vector = matElem(vector,vector)

minElem

minimum of two vectors per element

vector = minElem(vector, vector)

sum

compute the sum of all elements of a vector

scalar = sum(vector)

dot

compute the dot product of two vectors

scalar = dot(vector, vector)

lengthSqr

compute the square of the length of a vector

scalar = lengthSqr(vector)

length

compute the length of a vector

scalar = length(vector)

normalize

normalize a vector

vector = normalize(vector)

cross

compute cross product of two vectors

scalar = cross(vec2, vec2)

vec3 = cross(vec3, vec3)

lerp

linear interpolation between two vectors

vector = lerp(t, vector, vector) (0<= t <= 1)

slerp

spherical linear interpolation between two vectors

vector = slerp(t, vector, vector) (0<= t <= 1)

quat_rotation

construct a quaternion

quat = quat_rotation(vec3, vec3)

construct a quaternion to rotate between two unit - length 3D vectors

the result is unpredictable if 2 vectors point in opposite directions

quat = quat_rotation(scalar, vec3)

construct a quaternion to rotate around a unit-length 3D vector

quat = quat_rotation(scalar)

construct a quaternion to rotate around a Z(0,0,1) axis

quat_rotationX

construct a quaternion to rotate around the x axis

quat = quat_rotationX(radian)

quat_rotationY

construct a quaternion to rotate around the y axis

quat = quat_rotationY(radian)

quat_rotationZ

construct a quaternion to rotate around the z axis

quat = quat_rotationZ(radian)

conj

compute the conjugate of a quaternion

quat = conj(quat)

squad

spherical quadrangle interpolation

quat = squad(t,quat, quat, quat, quat)

rotate

use a unit - length quaternion to rotate a 3D vector

vec = rotate(vec, quat)

mat_rotation

construct a matrix to rotate around a unit-length 3D vector

matrix = mat_rotation(radian, dimension, vector)

dimension is 2 or 3 or 4 to output matrix

if you omit vector, Zaxis(0,0,1) will be entered as default

mat_rotationX

construct a matrix to rotate around the Xaxis

matrix = mat_rotationX(radian, dimension)

dimension is 2 or 3 or 4 to output matrix

mat_rotationY

construct a matrix to rotate around the Yaxis

matrix = mat_rotationY(radian, dimension)

dimension is 2 or 3 or 4 to output matrix

mat_rotationZ

construct a matrix to rotate around the Zaxis

matrix = mat_rotationZ(radian, dimension)

dimension is 2 or 3 or 4 to output matrix

mat_rotationZYX

construct a matrix to rotate around the x, y, and z axes

matrix = mat_rotationZYX( (xradian, yradian, zradian) )

mat_identity

construct an identity matrix

matrix = mat_identity(dimension)

dimension is 2 or 3 or 4 to output matrix

mat_scale

construct a matrix to perform scaling

matrix = mat_scale(vector, dimension)

dimension is 2 or 3 or 4 to output matrix

mat_translation

construct a 4x4 matrix to perform translation

matrix = mat_translation(vector)

transpose

transpose of a matrix

matrix = transpose(matrix)

inverse

compute the inverse of a matrix

matrix = inverse(matrix)

orthoInverse

compute the inverse of a 4x4 matrix, which is expected to be an affine matrix with an orthogonal upper-left 3x3 submatrix

this can be used to achieve better performance than a general inverse when the specified 4x4 matrix meets the given restrictions

matrix = orthoInverse(matrix)

determinant

determinant of a matrix

scalar = determinant(matrix)

appendScale

append (post-multiply) a scale transformation to a matrix

faster than creating and multiplying a scale transformation matrix

matrix = appendScale(matrix, vector)

prependScale

prepend (pre-multiply) a scale transformation to a 4x4 matrix

faster than creating and multiplying a scale transformation matrix

matrix = prependScale(matrix, vector)

lookAt

construct viewing matrix based on eye position, position looked at, and up direction

matrix4 = lookAt(eyeVector, lookatVector, upVector)

perspective

construct a perspective projection matrix

matrix4 = perspective(fovyRadians, aspect, zNear, zFar)

frustum

construct a perspective projection matrix based on frustum

matrix4 = frustum(left, right, bottom, top, zNear, zFar) (all scalar value)

orthographic

construct an orthographic projection matrix

matrix4 = orthographic(left, right, bottom, top, zNear, zFar) (all scalar value)

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc