summaryrefslogtreecommitdiffstats
path: root/src/math/Vector.cpp
diff options
context:
space:
mode:
authoraap <aap@papnet.eu>2021-02-01 10:57:55 +0100
committeraap <aap@papnet.eu>2021-02-01 10:57:55 +0100
commit3f60034c391fd5da66639e4a29f121f18ead6255 (patch)
treef7d5c6b8ac6c7fba1a7a499c600ea551653f6f23 /src/math/Vector.cpp
parentfix realloc (diff)
downloadre3-3f60034c391fd5da66639e4a29f121f18ead6255.tar
re3-3f60034c391fd5da66639e4a29f121f18ead6255.tar.gz
re3-3f60034c391fd5da66639e4a29f121f18ead6255.tar.bz2
re3-3f60034c391fd5da66639e4a29f121f18ead6255.tar.lz
re3-3f60034c391fd5da66639e4a29f121f18ead6255.tar.xz
re3-3f60034c391fd5da66639e4a29f121f18ead6255.tar.zst
re3-3f60034c391fd5da66639e4a29f121f18ead6255.zip
Diffstat (limited to 'src/math/Vector.cpp')
-rw-r--r--src/math/Vector.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/math/Vector.cpp b/src/math/Vector.cpp
index ee76e555..e29d4335 100644
--- a/src/math/Vector.cpp
+++ b/src/math/Vector.cpp
@@ -44,3 +44,18 @@ operator*(const CMatrix &mat, const CVector &vec)
mat.ry * vec.x + mat.fy * vec.y + mat.uy * vec.z + mat.py,
mat.rz * vec.x + mat.fz * vec.y + mat.uz * vec.z + mat.pz);
}
+
+void
+RwV3dTransformPoints(CVector * pointsOut, const CVector * pointsIn, RwInt32 numPoints, const RwMatrix * matrix)
+{
+ while(numPoints--){
+ float x = pointsIn->x*matrix->right.x + pointsIn->y*matrix->up.x + pointsIn->z*matrix->at.x + matrix->pos.x;
+ float y = pointsIn->x*matrix->right.y + pointsIn->y*matrix->up.y + pointsIn->z*matrix->at.y + matrix->pos.y;
+ float z = pointsIn->x*matrix->right.z + pointsIn->y*matrix->up.z + pointsIn->z*matrix->at.z + matrix->pos.z;
+ pointsOut->x = x;
+ pointsOut->y = y;
+ pointsOut->z = z;
+ pointsOut++;
+ pointsIn++;
+ }
+}