summaryrefslogtreecommitdiff
path: root/src/JSystem/JParticle/JPADynamicsBlock.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/JSystem/JParticle/JPADynamicsBlock.cpp')
-rw-r--r--src/JSystem/JParticle/JPADynamicsBlock.cpp36
1 files changed, 21 insertions, 15 deletions
diff --git a/src/JSystem/JParticle/JPADynamicsBlock.cpp b/src/JSystem/JParticle/JPADynamicsBlock.cpp
index ab45d938..15b6f2f7 100644
--- a/src/JSystem/JParticle/JPADynamicsBlock.cpp
+++ b/src/JSystem/JParticle/JPADynamicsBlock.cpp
@@ -4,8 +4,9 @@
//
#include "JSystem/JParticle/JPADynamicsBlock.h"
-#include "JSystem/JMath/JMATrigonometric.h"
+
#include "JSystem/JParticle/JPAEmitter.h"
+#include "nw4r/math/math_triangular.h"
/* 8027B144-8027B220 275A84 00DC+00 1/1 0/0 0/0 .text JPAVolumePoint__FP18JPAEmitterWorkData */
void JPAVolumePoint(JPAEmitterWorkData* work) {
@@ -53,9 +54,10 @@ void JPAVolumeCircle(JPAEmitterWorkData* work) {
}
distance = work->mVolumeSize * (work->mVolumeMinRad + distance * (1.0f - work->mVolumeMinRad));
- work->mVolumeCalcData.mVolumePos.set(distance * JMASSin(theta), 0.0f,
- distance * JMASCos(theta));
- // work->mVolumeCalcData.mVelOmni.mul(work->mVolumeCalcData.mVolumePos, work->mGlobalScl);
+ work->mVolumeCalcData.mVolumePos.set(distance * nw4r::math::SinIdx(theta), 0.0f,
+ distance * nw4r::math::CosIdx(theta));
+ work->mVolumeCalcData.mVelOmni = work->mVolumeCalcData.mVolumePos;
+ work->mVolumeCalcData.mVelOmni *= work->mGlobalScl;
work->mVolumeCalcData.mVelAxis.set(work->mVolumeCalcData.mVolumePos.x, 0.0f,
work->mVolumeCalcData.mVolumePos.z);
}
@@ -65,7 +67,8 @@ void JPAVolumeCube(JPAEmitterWorkData* work) {
work->mVolumeCalcData.mVolumePos.set(work->mpEmtr->get_r_zh() * work->mVolumeSize,
work->mpEmtr->get_r_zh() * work->mVolumeSize,
work->mpEmtr->get_r_zh() * work->mVolumeSize);
- // work->mVolumeCalcData.mVelOmni.mul(work->mVolumeCalcData.mVolumePos, work->mGlobalScl);
+ work->mVolumeCalcData.mVelOmni = work->mVolumeCalcData.mVolumePos;
+ work->mVolumeCalcData.mVelOmni *= work->mGlobalScl;
work->mVolumeCalcData.mVelAxis.set(work->mVolumeCalcData.mVolumePos.x, 0.0f, work->mVolumeCalcData.mVolumePos.z);
}
@@ -97,9 +100,10 @@ static void JPAVolumeSphere(JPAEmitterWorkData* work) {
rnd = 1.0f - rnd * rnd * rnd;
}
f32 rad = work->mVolumeSize * (work->mVolumeMinRad + rnd * (1.0f - work->mVolumeMinRad));
- work->mVolumeCalcData.mVolumePos.set(rad * JMASCos(phi) * JMASSin(theta), -rad * JMASSin(phi),
- rad * JMASCos(phi) * JMASCos(theta));
- // work->mVolumeCalcData.mVelOmni.mul(work->mVolumeCalcData.mVolumePos, work->mGlobalScl);
+ work->mVolumeCalcData.mVolumePos.set(rad * nw4r::math::CosIdx(phi) * nw4r::math::SinIdx(theta), -rad * nw4r::math::SinIdx(phi),
+ rad * nw4r::math::CosIdx(phi) * nw4r::math::CosIdx(theta));
+ work->mVolumeCalcData.mVelOmni = work->mVolumeCalcData.mVolumePos;
+ work->mVolumeCalcData.mVelOmni *= work->mGlobalScl;
work->mVolumeCalcData.mVelAxis.set(work->mVolumeCalcData.mVolumePos.x, 0.0f,
work->mVolumeCalcData.mVolumePos.z);
}
@@ -113,8 +117,9 @@ static void JPAVolumeCylinder(JPAEmitterWorkData* work) {
}
f32 rad = work->mVolumeSize * (work->mVolumeMinRad + rnd * (1.0f - work->mVolumeMinRad));
work->mVolumeCalcData.mVolumePos.set(
- rad * JMASSin(theta), work->mVolumeSize * work->mpEmtr->get_r_zp(), rad * JMASCos(theta));
- // work->mVolumeCalcData.mVelOmni.mul(work->mVolumeCalcData.mVolumePos, work->mGlobalScl);
+ rad * nw4r::math::SinIdx(theta), work->mVolumeSize * work->mpEmtr->get_r_zp(), rad * nw4r::math::CosIdx(theta));
+ work->mVolumeCalcData.mVelOmni = work->mVolumeCalcData.mVolumePos;
+ work->mVolumeCalcData.mVelOmni *= work->mGlobalScl;
work->mVolumeCalcData.mVelAxis.set(work->mVolumeCalcData.mVolumePos.x, 0.0f,
work->mVolumeCalcData.mVolumePos.z);
}
@@ -124,13 +129,14 @@ static void JPAVolumeTorus(JPAEmitterWorkData* work) {
s16 theta = work->mVolumeSweep * work->mpEmtr->get_r_ss();
s16 phi = work->mpEmtr->get_r_ss();
f32 rad = work->mVolumeSize * work->mVolumeMinRad;
- work->mVolumeCalcData.mVelAxis.set(rad * JMASSin(theta) * JMASCos(phi), rad * JMASSin(phi),
- rad * JMASCos(theta) * JMASCos(phi));
+ work->mVolumeCalcData.mVelAxis.set(rad * nw4r::math::SinIdx(theta) * nw4r::math::CosIdx(phi), rad * nw4r::math::SinIdx(phi),
+ rad * nw4r::math::CosIdx(theta) * nw4r::math::CosIdx(phi));
work->mVolumeCalcData.mVolumePos.set(
- work->mVolumeCalcData.mVelAxis.x + work->mVolumeSize * JMASSin(theta),
+ work->mVolumeCalcData.mVelAxis.x + work->mVolumeSize * nw4r::math::SinIdx(theta),
work->mVolumeCalcData.mVelAxis.y,
- work->mVolumeCalcData.mVelAxis.z + work->mVolumeSize * JMASCos(theta));
- // work->mVolumeCalcData.mVelOmni.mul(work->mVolumeCalcData.mVolumePos, work->mGlobalScl);
+ work->mVolumeCalcData.mVelAxis.z + work->mVolumeSize * nw4r::math::CosIdx(theta));
+ work->mVolumeCalcData.mVelOmni = work->mVolumeCalcData.mVolumePos;
+ work->mVolumeCalcData.mVelOmni *= work->mGlobalScl;
}
/* 8027BB18-8027BB4C 276458 0034+00 0/0 1/1 0/0 .text __ct__16JPADynamicsBlockFPCUc */