BVB Source Codes

CRYENGINE Show CloudRenderNode.h Source code

Return Download CRYENGINE: download CloudRenderNode.h Source code - Download CRYENGINE Source code - Type:.h
  1. // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
  2.  
  3. // -------------------------------------------------------------------------
  4. //  File name:   CloudRenderNode.h
  5. //  Version:     v1.00
  6. //  Created:     15/2/2005 by Timur.
  7. //  Compilers:   Visual Studio.NET 2003
  8. //  Description:
  9. // -------------------------------------------------------------------------
  10. //  History:
  11. //
  12. ////////////////////////////////////////////////////////////////////////////
  13.  
  14. #ifndef __CloudRenderNode_h__
  15. #define __CloudRenderNode_h__
  16. #pragma once
  17.  
  18. struct SCloudDescription;
  19.  
  20. //////////////////////////////////////////////////////////////////////////
  21. // RenderNode for rendering single cloud object.
  22. //////////////////////////////////////////////////////////////////////////
  23. class CCloudRenderNode : public ICloudRenderNode, public Cry3DEngineBase
  24. {
  25. public:
  26.  
  27.         CCloudRenderNode();
  28.  
  29.         //////////////////////////////////////////////////////////////////////////
  30.         // Implements ICloudRenderNode
  31.         //////////////////////////////////////////////////////////////////////////
  32.         virtual bool LoadCloud(const char* sCloudFilename);
  33.         virtual bool LoadCloudFromXml(XmlNodeRef cloudNode);
  34.         virtual void SetMovementProperties(const SCloudMovementProperties& properties);
  35.  
  36.         //////////////////////////////////////////////////////////////////////////
  37.         // Implements IRenderNode
  38.         //////////////////////////////////////////////////////////////////////////
  39.         virtual void             GetLocalBounds(AABB& bbox) { bbox = m_bounds; };
  40.         virtual void             SetMatrix(const Matrix34& mat);
  41.  
  42.         virtual EERType          GetRenderNodeType();
  43.         virtual const char*      GetEntityClassName() const { return "Cloud"; }
  44.         virtual const char*      GetName() const            { return "Cloud"; }
  45.         virtual Vec3             GetPos(bool bWorldOnly = true) const;
  46.         virtual void             Render(const SRendParams& rParam, const SRenderingPassInfo& passInfo);
  47.         virtual IPhysicalEntity* GetPhysics() const           { return 0; }
  48.         virtual void             SetPhysics(IPhysicalEntity*) {}
  49.         virtual void             SetMaterial(IMaterial* pMat) { m_pMaterial = pMat; }
  50.         virtual IMaterial*       GetMaterial(Vec3* pHitPos = NULL) const;
  51.         virtual IMaterial*       GetMaterialOverride()        { return m_pMaterial; }
  52.         virtual float            GetMaxViewDist();
  53.         virtual const AABB       GetBBox() const              { return m_WSBBox; }
  54.         virtual void             SetBBox(const AABB& WSBBox)  { m_WSBBox = WSBBox; }
  55.         virtual void             FillBBox(AABB& aabb);
  56.         virtual void             OffsetPosition(const Vec3& delta);
  57.         //////////////////////////////////////////////////////////////////////////
  58.  
  59.         bool CheckIntersection(const Vec3& p1, const Vec3& p2);
  60.         void MoveCloud();
  61.  
  62.         void GetMemoryUsage(ICrySizer* pSizer) const
  63.         {
  64.                 pSizer->AddObject(this, sizeof(*this));
  65.         }
  66. private:
  67.         void         SetCloudDesc(SCloudDescription* pCloud);
  68.         ~CCloudRenderNode();
  69.         virtual void SetMatrixInternal(const Matrix34& mat, bool updateOrigin);
  70.  
  71. private:
  72.         Vec3                          m_pos;
  73.         float                         m_fScale;
  74.         _smart_ptr<IMaterial>         m_pMaterial;
  75.         _smart_ptr<SCloudDescription> m_pCloudDesc;
  76.         Matrix34                      m_matrix;
  77.         Matrix34                      m_offsetedMatrix;
  78.         Vec3                          m_vOffset;
  79.         AABB                          m_bounds;
  80.  
  81.         CREBaseCloud*                 m_pCloudRenderElement;
  82.         CREImposter*                  m_pREImposter;
  83.         float                         m_alpha;
  84.  
  85.         Vec3                          m_origin;
  86.         SCloudMovementProperties      m_moveProps;
  87.  
  88.         AABB                          m_WSBBox;
  89. };
  90.  
  91. #endif // __CloudRenderNode_h__
  92.  
downloadCloudRenderNode.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