BVB Source Codes

CRYENGINE Show ParticleEffect.h Source code

Return Download CRYENGINE: download ParticleEffect.h Source code - Download CRYENGINE Source code - Type:.h
  1. // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
  2.  
  3. // -------------------------------------------------------------------------
  4. //  Created:     06/04/2014 by Filipe amim
  5. //  Description:
  6. // -------------------------------------------------------------------------
  7. //
  8. ////////////////////////////////////////////////////////////////////////////
  9.  
  10. #ifndef PARTICLEEFFECT_H
  11. #define PARTICLEEFFECT_H
  12.  
  13. #pragma once
  14.  
  15. #include "ParticleCommon.h"
  16. #include "ParticleComponent.h"
  17. #include "ParticleAttributes.h"
  18.  
  19. namespace pfx2
  20. {
  21.  
  22. struct SSerializationContext
  23. {
  24.         SSerializationContext(uint documentVersion)
  25.                 : m_documentVersion(documentVersion) {}
  26.         uint m_documentVersion;
  27. };
  28.  
  29. class CParticleEffect : public IParticleEffectPfx2
  30. {
  31. private:
  32.         typedef _smart_ptr<CParticleComponent> TComponentPtr;
  33.         typedef std::vector<TComponentPtr>     TComponents;
  34.  
  35. public:
  36.         CParticleEffect();
  37.  
  38.         // pfx2 IParticleEmitter
  39.         virtual cstr                   GetName() const override;
  40.         virtual void                   Serialize(Serialization::IArchive& ar) override;
  41.         virtual IParticleEmitter*      Spawn(const ParticleLoc& loc, const SpawnParams* pSpawnParams = NULL) override;
  42.         virtual uint                   GetNumComponents() const override              { return m_components.size(); }
  43.         virtual IParticleComponent*    GetComponent(uint componentIdx) const override { return m_components[componentIdx]; }
  44.         virtual void                   AddComponent(uint componentIdx) override;
  45.         virtual void                   RemoveComponent(uint componentIdx) override;
  46.         virtual void                   SetChanged() override;
  47.         virtual Serialization::SStruct GetEffectOptionsSerializer() const override;
  48.         // ~pfx2 IParticleEmitter
  49.  
  50.         // pfx1 IParticleEmitter
  51.         virtual int                   GetVersion() const override                                        { return 2; }
  52.         virtual void                  GetMemoryUsage(ICrySizer* pSizer) const override                   {}
  53.         virtual void                  SetName(cstr name) override;
  54.         virtual stack_string          GetFullName() const override                                       { return GetName(); }
  55.         virtual void                  SetEnabled(bool bEnabled) override                                 {}
  56.         virtual bool                  IsEnabled() const override                                         { return true; }
  57.         virtual bool                  IsTemporary() const override                                       { return false; }
  58.         virtual void                  SetParticleParams(const ParticleParams& params) override           {}
  59.         virtual const ParticleParams& GetParticleParams() const override                                 { return GetDefaultParams(); }
  60.         virtual const ParticleParams& GetDefaultParams() const override;
  61.         virtual int                   GetChildCount() const override                                     { return 0; }
  62.         virtual IParticleEffect*      GetChild(int index) const override                                 { return 0; }
  63.         virtual void                  ClearChilds() override                                             {}
  64.         virtual void                  InsertChild(int slot, IParticleEffect* pEffect) override           {}
  65.         virtual int                   FindChild(IParticleEffect* pEffect) const override                 { return -1; }
  66.         virtual void                  SetParent(IParticleEffect* pParent) override                       {}
  67.         virtual IParticleEffect*      GetParent() const override                                         { return 0; }
  68.         virtual bool                  LoadResources() override                                           { return true; }
  69.         virtual void                  UnloadResources() override                                         {}
  70.         virtual void                  Serialize(XmlNodeRef node, bool bLoading, bool bChildren) override {}
  71.         virtual void                  Reload(bool bChildren) override                                    {}
  72.         virtual IParticleAttributes&  GetAttributes() override                                           { return m_attributeInstance; }
  73.         // ~pfx1 IParticleEmitter
  74.  
  75.         void                      Compile();
  76.         CParticleComponent*       GetCComponent(TComponentId componentIdx)       { return m_components[componentIdx]; }
  77.         const CParticleComponent* GetCComponent(TComponentId componentIdx) const { return m_components[componentIdx]; }
  78.         TComponentId              FindComponentIdByName(const char* name) const;
  79.         const CAttributeTable& GetAttributeTable() const                      { return m_attributes; }
  80.         string                 MakeUniqueName(TComponentId forComponentId, const char* name);
  81.         uint                   AddRenderObjectId();
  82.         uint                   GetNumRenderObjectIds() const;
  83.  
  84.         int                    GetEditVersion() const { return m_editVersion; }
  85.  
  86.  
  87.         int m_id;
  88.  
  89. private:
  90.         CAttributeTable    m_attributes;
  91.         CAttributeInstance m_attributeInstance;
  92.         TComponents        m_components;
  93.         string             m_name;
  94.         uint               m_numRenderObjects;
  95.         int                m_editVersion;
  96.         bool               m_dirty;
  97. };
  98.  
  99. }
  100.  
  101. #endif // PARTICLEEFFECT_H
  102.  
downloadParticleEffect.h Source code - Download CRYENGINE Source code
Related Source Codes/Software:
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top