3#include "gfx/Particle.h"
5#include "plugin/Plugin.h"
7#include "gfx/Particle/LegacyParticle.h"
11 private ref class LegacyParticleDef
14 kmyGfx::LegacyParticleDef* _def =
nullptr;
15 LegacyParticleDef(kmyGfx::LegacyParticleDef* ptr);
16 Material^ getMaterial();
18 LegacyParticleDef^ getFirstChild();
19 LegacyParticleDef^ getNextSibling();
22 private ref class LegacyParticleRoot
25 kmyGfx::LegacyParticleRoot* _root =
nullptr;
26 LegacyParticleRoot(kmyGfx::LegacyParticleRoot* ptr);
28 LegacyParticleDef^ getFirstDef();
31 private ref class ParticleInstance
33 void ctorCore(System::String^ path,
unsigned int displayID,
bool useEfkTransformSetting);
35 kmyGfx::ParticleInstance *obj;
38 ParticleInstance(System::String^ path,
unsigned int displayID);
39 ParticleInstance(System::String^ path,
unsigned int displayID,
bool useEfkTransformSetting);
40 ~ParticleInstance(){ SAFE_REMOVE_REF(obj); }
41 void start(XXSharpKmyMath::Matrix4 mtx, f32 prewarm);
43 void stopEmission(
bool immediate);
45 void setPosture(XXSharpKmyMath::Matrix4 mtx);
46 void draw(XXSharpKmyGfx::Render^ tgt);
48 void setPickupID(u16
id);
49 void stopPickup(
bool flg);
51 void setVisibility(
bool flg);
52 void setDisplayID(
unsigned int id);
53 void getBound(XXSharpKmyMath::Vector3 %min, XXSharpKmyMath::Vector3 %max);
54 void getBoundOne(XXSharpKmyMath::Vector3 %min, XXSharpKmyMath::Vector3 %max);
56 bool getUseDirection();
58 void saveWithThumbnail(array<byte> ^img,
int sz,
int width,
int height);
59 XXSharpKmyPhysics::PhysicsObject^ getPhysicsObject();
60 void setTarget(XXSharpKmyMath::Vector3 tgt);
61 void setColor(XXSharpKmyGfx::Color color);
62 void setScale(f32 s) { mScale = s; }
64 LegacyParticleRoot^ getLegacyRoot();
66 static void ParticleInitialize(
int maxInstanceCount,
int maxSquareCount);
67 static void ParticleFinalize();
73 private ref class ParticleRoot
76 static void preReimport(System::String^ path);
77 static void postReimport(System::String^ path);