hkMemoryMeshBody.h
上传用户:yisoukefu
上传日期:2020-08-09
资源大小:39506k
文件大小:4k
源码类别:

其他游戏

开发平台:

Visual C++

  1. /* 
  2.  * 
  3.  * Confidential Information of Telekinesys Research Limited (t/a Havok). Not for disclosure or distribution without Havok's
  4.  * prior written consent. This software contains code, techniques and know-how which is confidential and proprietary to Havok.
  5.  * Level 2 and Level 3 source code contains trade secrets of Havok. Havok Software (C) Copyright 1999-2009 Telekinesys Research Limited t/a Havok. All Rights Reserved. Use of this software is subject to the terms of an end user license agreement.
  6.  * 
  7.  */
  8. #ifndef HK_MEMORY_MESH_BODY_H
  9. #define HK_MEMORY_MESH_BODY_H
  10. #include <Common/GeometryUtilities/Mesh/hkMeshBody.h>
  11. #include <Common/GeometryUtilities/Mesh/IndexedTransformSet/hkIndexedTransformSet.h>
  12. class hkMeshSystem;
  13. extern const hkClass hkMemoryMeshBodyClass;
  14. /// An memory only version of a hkMeshBody
  15. ///
  16. /// The memory implementation is useful for just processing hkMesh data.
  17. ///
  18. /// sa hkMeshBody
  19. class hkMemoryMeshBody: public hkMeshBody
  20. {
  21.     public:
  22.         HK_DECLARE_CLASS_ALLOCATOR(HK_MEMORY_CLASS_SCENE_DATA);
  23.             /// Ctor
  24.         hkMemoryMeshBody(hkMeshSystem* meshSystem, const hkMeshShape* shape, const hkMatrix4& transform, hkIndexedTransformSetCinfo* transformSet);
  25.             
  26. /// Dtor
  27. virtual ~hkMemoryMeshBody();
  28.             // hkMeshBody implementation
  29.         virtual const hkMeshShape* getMeshShape() const { return m_shape; }
  30.             // hkMeshBody implementation
  31.         virtual void getTransform( hkMatrix4& transform ) const { transform = m_transform; }
  32.             // hkMeshBody implementation
  33.         virtual void setTransform(const hkMatrix4& matrix) { m_transform = matrix; }
  34.             // hkMeshBody implementation
  35.         virtual hkResult setPickingData(int id, void* data) { return HK_FAILURE; }
  36.             // hkMeshBody implementation
  37.         virtual hkMeshVertexBuffer* getVertexBuffer(int sectionIndex) { return m_vertexBuffers[sectionIndex]; }
  38.             // hkMeshBody implementation
  39.         virtual int getNumIndexedTransforms() { return m_transformSet ? m_transformSet->getNumMatrices() : 0; }
  40.             // hkMeshBody implementation
  41.         virtual void setIndexedTransforms(int startIndex, const hkMatrix4* matrices, int numMatrices) { HK_ASSERT(0x34234, m_transformSet); m_transformSet->setMatrices(startIndex, matrices, numMatrices); }
  42.             // hkMeshBody implementation
  43.         virtual void getIndexedTransforms(int startIndex, hkMatrix4* matrices, int numMatrices) { HK_ASSERT(0x423432, m_transformSet); m_transformSet->getMatrices(startIndex, matrices, numMatrices); }
  44.             // hkMeshBody implementation
  45.         virtual void getIndexedInverseTransforms(int startIndex, hkMatrix4* matrices, int numMatrices) { HK_ASSERT(0x34243207, m_transformSet); m_transformSet->getInverseMatrices(startIndex, matrices, numMatrices); }
  46.             // hkMeshBody implementation
  47.         virtual void completeUpdate() {}
  48.             // hkReferencedObject Implementation
  49.         virtual const hkClass* getClassType() const { return &hkMemoryMeshBodyClass; }
  50. // hkReferencedObject Implementation
  51.         virtual void calcContentStatistics( hkStatisticsCollector* collector,const hkClass* cls ) const;
  52. virtual const char* getName() const { return m_name.cString(); }
  53. inline void setName(const char* n) { m_name = n; }
  54. protected:
  55. hkMatrix4 m_transform; ///
  56.         hkRefPtr<hkIndexedTransformSet> m_transformSet;     ///
  57.         hkRefPtr<const hkMeshShape> m_shape; ///
  58.         hkArray<hkMeshVertexBuffer*> m_vertexBuffers; ///
  59. hkString m_name;
  60. };
  61. #endif // HK_MEMORY_MESH_BODY_H
  62. /*
  63. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  64. * Confidential Information of Havok.  (C) Copyright 1999-2009
  65. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  66. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  67. * rights, and intellectual property rights in the Havok software remain in
  68. * Havok and/or its suppliers.
  69. * Use of this software for evaluation purposes is subject to and indicates
  70. * acceptance of the End User licence Agreement for this product. A copy of
  71. * the license is included with this software and is also available at www.havok.com/tryhavok.
  72. */