BVB Source Codes

CRYENGINE Show BasicArea.h Source code

Return Download CRYENGINE: download BasicArea.h Source code - Download CRYENGINE Source code - Type:.h
  1. // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
  2.  
  3. #ifndef _BASICAREA_H_
  4. #define _BASICAREA_H_
  5.  
  6. #define COPY_MEMBER_SAVE(_dst, _src, _name) { (_dst)->_name = (_src)->_name; }
  7. #define COPY_MEMBER_LOAD(_dst, _src, _name) { (_dst)->_name = (_src)->_name; }
  8.  
  9. enum EObjList
  10. {
  11.         DYNAMIC_OBJECTS = 0,
  12.         STATIC_OBJECTS,
  13.         PROC_OBJECTS,
  14.         ENTITY_LISTS_NUM
  15. };
  16.  
  17. struct SRNInfo
  18. {
  19.         SRNInfo()
  20.         {
  21.                 memset(this, 0, sizeof(*this));
  22.         }
  23.  
  24.         SRNInfo(IRenderNode* _pNode)
  25.         {
  26.                 fMaxViewDist = _pNode->m_fWSMaxViewDist;
  27.                 AABB aabbBox = _pNode->GetBBox();
  28.                 objSphere.center = aabbBox.GetCenter();
  29.                 objSphere.radius = aabbBox.GetRadius();
  30.                 pNode = _pNode;
  31.                 nRType = _pNode->GetRenderNodeType();
  32.  
  33.                 /*#ifdef _DEBUG
  34.                     erType = _pNode->GetRenderNodeType();
  35.                     cry_strcpy(szName, _pNode->GetName());
  36.                  #endif*/
  37.         }
  38.  
  39.         bool operator==(const IRenderNode* _pNode) const { return (pNode == _pNode); }
  40.         bool operator==(const SRNInfo& rOther) const     { return (pNode == rOther.pNode); }
  41.  
  42.         float        fMaxViewDist;
  43.         Sphere       objSphere;
  44.         IRenderNode* pNode;
  45.         EERType      nRType;
  46.         /*#ifdef _DEBUG
  47.            EERType erType;
  48.            char szName[32];
  49.          #endif*/
  50. };
  51.  
  52. struct SCasterInfo
  53. {
  54.         SCasterInfo()
  55.         {
  56.                 memset(this, 0, sizeof(*this));
  57.         }
  58.  
  59.         SCasterInfo(IRenderNode* _pNode, float fMaxDist)
  60.         {
  61.                 fMaxCastingDist = fMaxDist;
  62.                 objBox = _pNode->GetBBox();
  63.                 objSphere.center = objBox.GetCenter();
  64.                 objSphere.radius = objBox.GetRadius();
  65.                 pNode = _pNode;
  66.                 nRType = _pNode->GetRenderNodeType();
  67.                 nRenderNodeFlags = _pNode->GetRndFlags();
  68.                 bCanExecuteAsRenderJob = _pNode->CanExecuteRenderAsJob();
  69.         }
  70.  
  71.         SCasterInfo(IRenderNode* _pNode, float fMaxDist, EERType renderNodeType)
  72.         {
  73.                 fMaxCastingDist = fMaxDist;
  74.                 _pNode->FillBBox(objBox);
  75.                 objSphere.center = objBox.GetCenter();
  76.                 objSphere.radius = objBox.GetRadius();
  77.                 pNode = _pNode;
  78.                 nRType = renderNodeType;
  79.                 nRenderNodeFlags = _pNode->GetRndFlags();
  80.                 bCanExecuteAsRenderJob = _pNode->CanExecuteRenderAsJob();
  81.         }
  82.  
  83.         bool operator==(const IRenderNode* _pNode) const { return (pNode == _pNode); }
  84.         bool operator==(const SCasterInfo& rOther) const { return (pNode == rOther.pNode); }
  85.  
  86.         void GetMemoryUsage(ICrySizer* pSizer) const     { /*nothing*/ }
  87.  
  88.         float        fMaxCastingDist;
  89.         Sphere       objSphere;
  90.         AABB         objBox;
  91.         IRenderNode* pNode;
  92.         uint32       nGSMFrameId;
  93.         EERType      nRType;
  94.         bool         bCanExecuteAsRenderJob;
  95.         uint64       nRenderNodeFlags;
  96. };
  97.  
  98. #define UPDATE_PTR_AND_SIZE(_pData, _nDataSize, _SIZE_PLUS) \
  99.   {                                                         \
  100.     _pData += (_SIZE_PLUS);                                 \
  101.     _nDataSize -= (_SIZE_PLUS);                             \
  102.     assert(_nDataSize >= 0);                                \
  103.   }                                                         \
  104.  
  105. enum EAreaType
  106. {
  107.         eAreaType_Undefined,
  108.         eAreaType_OcNode,
  109.         eAreaType_VisArea
  110. };
  111.  
  112. struct CBasicArea : public Cry3DEngineBase
  113. {
  114.         CBasicArea()
  115.         {
  116.                 m_boxArea.min = m_boxArea.max = Vec3(0, 0, 0);
  117.                 m_pObjectsTree = NULL;
  118.         }
  119.  
  120.         ~CBasicArea();
  121.  
  122.         void CompileObjects(int nListId); // optimize objects lists for rendering
  123.  
  124.         class COctreeNode* m_pObjectsTree;
  125.  
  126.         AABB               m_boxArea;    // bbox containing everything in sector including child sectors
  127.         AABB               m_boxStatics; // bbox containing only objects in STATIC_OBJECTS list of this node and height-map
  128.  
  129. };
  130.  
  131. #endif // _BASICAREA_H_
  132.  
downloadBasicArea.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