Class PointCloudParticleSystem

Inheritance Relationships

Base Type

Class Documentation

class PointCloudParticleSystem : public legion::rendering::ParticleSystemBase

Public Functions

inline PointCloudParticleSystem(pointCloudParameters params)

Constructor of the point cloud particle system.

  • params: A struct with a bunch of default parameters and some parameters needed to be set.

  • positions: A list of positions that the particle system uses to create its particles at.

inline void setup(ecs::component_handle<rendering::particle_emitter> emitter_handle) const override

Setup function that will be called to populate the emitter with the required particles.

  • emitter_handle: The emitter that you are populating.

inline void CreateParticles(std::vector<std::pair<math::vec3, math::color>> *inputData, rendering::particle_emitter &emitter, rendering::point_emitter_data &data) const

Creates particles based on position for the emitter, checks for recycling.

inline void decreaseDetail(rendering::particle_emitter &emitter, rendering::point_emitter_data &data, int targetLod, int maxLod, ecs::component_handle<rendering::point_emitter_data> &dataHandle, ecs::EntityQuery &enities) const

Decreases the particles detail down to the specified target LOD.

inline void increaseDetail(rendering::particle_emitter &emitter, rendering::point_emitter_data &data, int targetLod, int maxLod, rendering::lod &lod, ecs::EntityQuery &enities) const

Increases the particles up to the specified target LOD.

inline void populateEmitter(ecs::component_handle<rendering::particle_emitter> emitter_handle, ecs::component_handle<rendering::point_emitter_data> data) const

populates the particle emitter with particles, creates LOD component and an Octree

inline void animate(rendering::particle_emitter &emitter, rendering::point_emitter_data &data)
inline void SetColor(rendering::particle_emitter &emitter, rendering::point_emitter_data &data) const
inline void update(std::vector<ecs::entity_handle> &entity, ecs::component_handle<rendering::particle_emitter> emitterHandle, ecs::EntityQuery &entities, time::span) const override

Checks if there has been LOD changes, decreases or increases LOD.

Public Members

mutable rendering::point_cloud_particle_container container