Open 3D Engine OpenParticleSystem Gem API Reference 26.05.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
OpenParticle::ParticleSourceData Class Referencefinal

Classes

struct  DetailConstant
 
struct  DetailInfo
 
struct  EmitterInfo
 
struct  Lod
 

Public Types

enum  DistributionIndex : AZ::u8 { PTR_INDEX , PARAM_INDEX , CURVE_INDEX }
 
using ModuleType = AZStd::unordered_map< AZStd::string, AZStd::pair< bool, AZStd::any * > >
 
using TypeId = AZStd::vector< AZStd::tuple< AZStd::string, AZ::TypeId, AZ::u8 > >
 
using ModuleClassTypes = const AZStd::unordered_map< AZStd::string, TypeId >
 
using UnusedListType = AZStd::vector< AZStd::tuple< AZStd::string, AZStd::string, AZ::u8 > >
 
using UnusedListNodeType = UnusedListType::node_type
 

Public Member Functions

 AZ_TYPE_INFO (OpenParticle::ParticleSourceData, "{adf33c31-0d1f-a9ab-a796-e64e26122c3a}")
 
 ParticleSourceData (const ParticleSourceData &other)
 
ParticleSourceDataoperator= (const ParticleSourceData &other)
 
EmitterInfoAddEmitter (const AZStd::string &)
 
void RemoveEmitter (EmitterInfo *)
 
void AddCurve (const Curve &curve)
 
void AddCurve (Curve *curve)
 
void RemoveCurve (Curve *curve)
 
void AddRandom (const Random &random)
 
void AddRandom (Random *random)
 
void RemoveRandom (Random *random)
 
void Normalize ()
 
void ToRuntime ()
 
void EmitterToRuntime ()
 
void DistributionToRuntime ()
 
void ToEditor ()
 
ParticleAssetData::CreateParticleResult CreateParticleAsset (AZ::Data::AssetId assetId, AZStd::string_view sourceFilePath, bool elevateWarnings=true) const
 
bool CheckDistributionIndex ()
 
bool CheckEmitterNames () const
 
void EmittersToDetails ()
 
void UpdateEmitterAsset (const AZStd::string &emitterName, AZ::u8 index)
 
void UpdateEmitterName (const AZStd::string &oldEmitterName, const AZStd::string &newEmitterName)
 
DetailInfoAddDetail (const AZStd::string &)
 
DetailInfoCopyDetail (AZStd::string &, const AZStd::string &)
 
EmitterInfoCopyEmitter ()
 
DetailInfoSetDestItem (EmitterInfo *destEmitter, DetailInfo *destDetail, AZStd::string destName)
 
void CopyDetailFromEmitter (EmitterInfo *sourceEmitter, EmitterInfo *destEmitter, DetailInfo *destDetail)
 
void CopyDetailFromDetail (DetailInfo *sourceDetail, EmitterInfo *destEmitter, DetailInfo *destDetail)
 
void CopyDistributions (AZStd::vector< AZStd::any * > &modules)
 
void RemoveDetail (DetailInfo *)
 
void SelectDetail (AZStd::string emitterName)
 
void UnselectDetail (AZStd::string emitterName)
 
void SelectModule (DetailInfo *detailInfo, AZStd::string className, AZStd::string moduleName)
 
void UnselectModule (DetailInfo *detailInfo, AZStd::string className, AZStd::string moduleName)
 
void SelectClass (AZStd::string emitterName, AZStd::string className)
 
void UnselectClass (AZStd::string emitterName, AZStd::string className)
 
void AddEventHandler (DetailInfo *detail, AZ::u8 index)
 
void DeleteEventHandler (DetailInfo *detail, AZStd::string &name)
 
bool CheckModuleState (const AZ::TypeId &id) const
 
void SortEmitters (AZStd::vector< AZStd::string > &emitterNames)
 
void UpdateDetailSoloState (AZStd::string &name, bool solo)
 
bool SoloChecked (AZStd::string &name)
 
void ClearCopyCache ()
 
void UpdateDistributionIndexes ()
 
void UpdateRandomIndexes ()
 
void UpdateCurveIndexes ()
 
AZStd::string GetModuleKey (const AZ::TypeId &id, const AZ::TypeId &paramId) const
 

Static Public Member Functions

static void Reflect (AZ::ReflectContext *context)
 

Public Attributes

AZStd::string m_name = "ParticleSystem"
 
AZStd::any m_config
 
AZStd::any m_preWarm
 
AZStd::vector< EmitterInfo * > m_emitters
 
AZStd::vector< DetailInfo * > m_details
 
EmitterInfom_destEmitter = nullptr
 
DetailInfom_destDetail = nullptr
 
DetailInfom_currentDetailInfo = nullptr
 
DetailConstant m_detailConstant
 
AZStd::vector< Lodm_lods
 
Distribution m_distribution
 
OpenParticle::ParticleAssetData m_assetData
 
AZ::SerializeContext * m_serializeContext = nullptr
 

The documentation for this class was generated from the following file: