diff options
| author | robojumper <robojumper@gmail.com> | 2025-04-27 11:14:54 +0200 |
|---|---|---|
| committer | robojumper <robojumper@gmail.com> | 2025-04-27 11:14:54 +0200 |
| commit | a962cdd14ac4520d72151c1b83b3e98d608e06be (patch) | |
| tree | 3af28a1b00a8fddde18bc312e89b578d2e421349 /src/JSystem/JParticle/JPADynamicsBlock.cpp | |
| parent | 70125c1eacee19e03b8fd9b4dcf277c019ab4f3f (diff) | |
JPAEmitterManager OK
Diffstat (limited to 'src/JSystem/JParticle/JPADynamicsBlock.cpp')
| -rw-r--r-- | src/JSystem/JParticle/JPADynamicsBlock.cpp | 36 |
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 */ |
