BVB Source Codes

CRYENGINE Show IndexedMesh.h Source code

Return Download CRYENGINE: download IndexedMesh.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:   IndexedMesh.h
  5. //  Created:     28/5/2001 by Vladimir Kajalin
  6. ////////////////////////////////////////////////////////////////////////////
  7.  
  8. #ifndef IDX_MESH_H
  9. #define IDX_MESH_H
  10.  
  11. #include <CryCore/Containers/CryArray.h>
  12. #include <Cry3DEngine/CGF/CryHeaders.h>
  13. #include <Cry3DEngine/IIndexedMesh.h>
  14.  
  15. class CIndexedMesh
  16.         : public IIndexedMesh
  17.           , public CMesh
  18.           , public stl::intrusive_linked_list_node<CIndexedMesh>
  19.           , public Cry3DEngineBase
  20. {
  21. public:
  22.         CIndexedMesh();
  23.         virtual ~CIndexedMesh();
  24.  
  25.         //////////////////////////////////////////////////////////////////////////
  26.         // IIndexedMesh
  27.         //////////////////////////////////////////////////////////////////////////
  28.  
  29.         virtual void Release()
  30.         {
  31.                 delete this;
  32.         }
  33.  
  34.         // gives read-only access to mesh data
  35.         virtual void GetMeshDescription(SMeshDescription& meshDesc) const
  36.         {
  37.                 meshDesc.m_pFaces = m_pFaces;
  38.                 meshDesc.m_pVerts = m_pPositions;
  39.                 meshDesc.m_pVertsF16 = m_pPositionsF16;
  40.                 meshDesc.m_pNorms = m_pNorms;
  41.                 meshDesc.m_pColor = m_pColor0;
  42.                 meshDesc.m_pTexCoord = m_pTexCoord;
  43.                 meshDesc.m_pIndices = m_pIndices;
  44.                 meshDesc.m_nFaceCount = GetFaceCount();
  45.                 meshDesc.m_nVertCount = GetVertexCount();
  46.                 meshDesc.m_nCoorCount = GetTexCoordCount();
  47.                 meshDesc.m_nIndexCount = GetIndexCount();
  48.         }
  49.  
  50.         virtual CMesh* GetMesh()
  51.         {
  52.                 return this;
  53.         }
  54.  
  55.         virtual void SetMesh(CMesh& mesh)
  56.         {
  57.                 CopyFrom(mesh);
  58.         }
  59.  
  60.         virtual void FreeStreams()
  61.         {
  62.                 return CMesh::FreeStreams();
  63.         }
  64.  
  65.         virtual int GetFaceCount() const
  66.         {
  67.                 return CMesh::GetFaceCount();
  68.         }
  69.  
  70.         virtual void SetFaceCount(int nNewCount)
  71.         {
  72.                 CMesh::SetFaceCount(nNewCount);
  73.         }
  74.  
  75.         virtual int GetVertexCount() const
  76.         {
  77.                 return CMesh::GetVertexCount();
  78.         }
  79.  
  80.         virtual void SetVertexCount(int nNewCount)
  81.         {
  82.                 CMesh::SetVertexCount(nNewCount);
  83.         }
  84.  
  85.         virtual void SetColorCount(int nNewCount)
  86.         {
  87.                 CMesh::ReallocStream(COLORS_0, nNewCount);
  88.         }
  89.  
  90.         virtual int GetTexCoordCount() const
  91.         {
  92.                 return CMesh::GetTexCoordCount();
  93.         }
  94.  
  95.         virtual void SetTexCoordCount(int nNewCount)
  96.         {
  97.                 CMesh::ReallocStream(TEXCOORDS, nNewCount);
  98.         }
  99.  
  100.         virtual int GetTangentCount() const
  101.         {
  102.                 return CMesh::GetTangentCount();
  103.         }
  104.  
  105.         virtual void SetTangentCount(int nNewCount)
  106.         {
  107.                 CMesh::ReallocStream(TANGENTS, nNewCount);
  108.         }
  109.  
  110.         virtual void SetTexCoordsAndTangentsCount(int nNewCount)
  111.         {
  112.                 CMesh::SetTexCoordsAndTangentsCount(nNewCount);
  113.         }
  114.  
  115.         virtual int GetIndexCount() const
  116.         {
  117.                 return CMesh::GetIndexCount();
  118.         }
  119.  
  120.         virtual void SetIndexCount(int nNewCount)
  121.         {
  122.                 CMesh::SetIndexCount(nNewCount);
  123.         }
  124.  
  125.         virtual void AllocateBoneMapping()
  126.         {
  127.                 ReallocStream(BONEMAPPING, GetVertexCount());
  128.         }
  129.  
  130.         virtual int GetSubSetCount() const
  131.         {
  132.                 return m_subsets.size();
  133.         }
  134.  
  135.         virtual void SetSubSetCount(int nSubsets)
  136.         {
  137.                 m_subsets.resize(nSubsets);
  138.         }
  139.  
  140.         virtual const SMeshSubset& GetSubSet(int nIndex) const
  141.         {
  142.                 return m_subsets[nIndex];
  143.         }
  144.  
  145.         virtual void SetSubsetBounds(int nIndex, const Vec3& vCenter, float fRadius)
  146.         {
  147.                 m_subsets[nIndex].vCenter = vCenter;
  148.                 m_subsets[nIndex].fRadius = fRadius;
  149.         }
  150.  
  151.         virtual void SetSubsetIndexVertexRanges(int nIndex, int nFirstIndexId, int nNumIndices, int nFirstVertId, int nNumVerts)
  152.         {
  153.                 m_subsets[nIndex].nFirstIndexId = nFirstIndexId;
  154.                 m_subsets[nIndex].nNumIndices = nNumIndices;
  155.                 m_subsets[nIndex].nFirstVertId = nFirstVertId;
  156.                 m_subsets[nIndex].nNumVerts = nNumVerts;
  157.         }
  158.  
  159.         virtual void SetSubsetMaterialId(int nIndex, int nMatID)
  160.         {
  161.                 m_subsets[nIndex].nMatID = nMatID;
  162.         }
  163.  
  164.         virtual void SetSubsetMaterialProperties(int nIndex, int nMatFlags, int nPhysicalizeType)
  165.         {
  166.                 m_subsets[nIndex].nMatFlags = nMatFlags;
  167.                 m_subsets[nIndex].nPhysicalizeType = nPhysicalizeType;
  168.         }
  169.  
  170.         virtual AABB GetBBox() const
  171.         {
  172.                 return m_bbox;
  173.         }
  174.  
  175.         virtual void SetBBox(const AABB& box)
  176.         {
  177.                 m_bbox = box;
  178.         }
  179.  
  180.         virtual void CalcBBox();
  181.  
  182. #if CRY_PLATFORM_WINDOWS
  183.         virtual void Optimize(const char* szComment = NULL);
  184. #endif
  185.  
  186.         virtual void RestoreFacesFromIndices();
  187.  
  188.         //////////////////////////////////////////////////////////////////////////
  189.  
  190.         void GetMemoryUsage(class ICrySizer* pSizer) const;
  191. };
  192.  
  193. #endif // IDX_MESH_H
  194.  
downloadIndexedMesh.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