26 using std::unique_ptr;
129 inline const string&
getId()
override {
252 this->localTransform = transform;
Color 4 definition class.
Axis aligned bounding box used for frustum, this is not directly connectable with physics engine.
void fromBoundingVolumeWithTransformMatrix(BoundingBox *original, const Matrix4x4 &transformMatrix)
Create bounding volume from given original(of same type) with applied transform matrix.
void update()
Updates this bounding box.
TransparentRenderPointsPool * getRenderPointsPool()
void updateParticles() override
Updates the particle entity.
void setContributesShadows(bool contributesShadows)
Enable/disable contributes shadows.
void setLocalTransform(const Transform &transform) override
Set local transform.
void setEngine(Engine *engine)
Transform parentTransform
unique_ptr< ParticleEmitter > emitter
void initialize()
Initialize.
BoundingBox worldBoundingBox
int32_t textureHorizontalSprites
void setParentTransform(const Transform &transform)
const Transform & getParentTransform()
unique_ptr< TransparentRenderPointsPool > pointsRenderPool
void update() override
Update transform.
vector< Particle > particles
void setPickable(bool pickable) override
Set this object pickable.
void setEffectColorMul(const Color4 &effectColorMul) override
Set the effect color that will be multiplied with fragment color.
int32_t textureVerticalSprites
bool isContributesShadows()
bool isPickable() override
ParticleEmitter * getEmitter() override
Matrix4x4 entityTransformMatrix
void setTransform(const Transform &transform) override
Set transform.
virtual ~PointsParticleSystemInternal()
Destructor.
bool isAutoEmit() override
Transform inverseTransform
int32_t getTextureVerticalSprites()
PointsParticleSystemInternal(const string &id, ParticleEmitter *emitter, int32_t maxPoints, float pointSize, bool autoEmit, Texture *texture=nullptr, int32_t textureHorizontalSprites=1, int32_t textureVerticalSprites=1, float fps=10.0f)
Public constructor.
const Color4 & getEffectColorMul() const override
The effect color will be multiplied with fragment color.
void setAutoEmit(bool autoEmit) override
Set auto emit.
void setRenderer(Renderer *renderer)
int32_t getTextureHorizontalSprites()
void setEnabled(bool enabled) override
Enable/disable rendering.
const string & getId() override
float particlesToSpawnRemainder
void updateInternal()
Update bounding volume.
bool isEnabled() override
int emitParticles() override
Adds particles to this particle entity at given position.
void setReceivesShadows(bool receivesShadows)
Enable/disable receives shadows.
void setEffectColorAdd(const Color4 &effectColorAdd) override
Set the effect color that will be added to fragment color.
const Color4 & getEffectColorAdd() const override
The effect color will be added to fragment color.
const Transform & getLocalTransform() override
Transparent render points pool.
Matrix4x4 class representing matrix4x4 mathematical structure and operations for 3d space.
void getScale(Vector3 &scale) const
Get scale.
Vector3 class representing vector3 mathematical structure and operations with x, y,...
Vector3 & add(float scalar)
Adds a scalar.
Vector3 & sub(float scalar)
Subtracts a scalar.
Particle emitter interface.
Particle system entity internal interface.
#define FORBID_CLASS_COPY(CLASS)