hkxScene.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 HKSCENEDATA_SCENE_HKXSCENE_HKCLASS_H
  9. #define HKSCENEDATA_SCENE_HKXSCENE_HKCLASS_H
  10. /// hkxScene meta information
  11. extern const class hkClass hkxSceneClass;
  12. /// A simple info storage class to allow the exporters to specify extra information
  13. /// that might be useful overall (frames per second, total scene length, etc)
  14. class hkxScene
  15. {
  16. public:
  17. HK_DECLARE_NONVIRTUAL_CLASS_ALLOCATOR( HK_MEMORY_CLASS_SCENE_DATA, hkxScene );
  18. HK_DECLARE_REFLECTION();
  19. //
  20. // Members
  21. //
  22. public:
  23. /// A text string describing the modeller used to create this scene
  24. char* m_modeller;
  25. /// The full path and filename of the asset that was exported to make this scene.
  26. char* m_asset;
  27. /// The total length of the scene, in seconds. Assumes that when you are given
  28. /// key frames, they will be evenly spaced across this period.
  29. hkReal m_sceneLength;
  30. /// Scene Graph root node
  31. class hkxNode* m_rootNode;
  32. /// Array of selection sets in the scene
  33. class hkxNodeSelectionSet** m_selectionSets;
  34. hkInt32 m_numSelectionSets;
  35. /// Array of cameras in the scene
  36. class hkxCamera** m_cameras;
  37. hkInt32 m_numCameras;
  38. /// Array of cameras in the scene
  39. class hkxLight** m_lights;
  40. hkInt32 m_numLights;
  41. /// Meshes in the scene
  42. class hkxMesh** m_meshes;
  43. hkInt32 m_numMeshes;
  44. /// Materials in the scene
  45. class hkxMaterial** m_materials;
  46. hkInt32 m_numMaterials;
  47. /// In place (loaded) textures in the scene
  48. class hkxTextureInplace** m_inplaceTextures;
  49. hkInt32 m_numInplaceTextures;
  50. /// External texture filenames
  51. class hkxTextureFile** m_externalTextures;
  52. hkInt32 m_numExternalTextures;
  53. /// Extra mesh info required to bind a skin to a hierarchy.
  54. class hkxSkinBinding** m_skinBindings;
  55. hkInt32 m_numSkinBindings;
  56. /// Transform applied to the scene
  57. hkMatrix3 m_appliedTransform; //+default(1 0 0 0  0 1 0 0  0 0 1 0)
  58. /// Constructor, initializes to zero/NULL/identity
  59. hkxScene();
  60. /// Recursively looks for a node by name (case insensitive), using depth-first search.
  61. /// Returns HK_NULL if not found, the node otherwise
  62. hkxNode* findNodeByName (const char* name) const;
  63. /// Constructs the full path (parent-first list of nodes from the root to the node itself, both included)
  64. /// Returns HK_FAILURE if the node doesn't belong to this scene
  65. hkResult getFullPathToNode (const hkxNode* theNode, hkArray<const hkxNode*>& pathOut) const;
  66. /// Gets the worldFromNode transform of the given node, by concatenating
  67. /// the transforms of its parents. By default, it uses the first stored key.
  68. /// Returns HK_FAILURE if the node doesn't belong to this scene
  69. hkResult getWorldFromNodeTransform (const hkxNode* theNode, class hkMatrix4& worldFromNodeOut, int key=0) const;
  70. };
  71. #endif // HKSCENEDATA_SCENE_HKXSCENE_HKCLASS_H
  72. /*
  73. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  74. * Confidential Information of Havok.  (C) Copyright 1999-2009
  75. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  76. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  77. * rights, and intellectual property rights in the Havok software remain in
  78. * Havok and/or its suppliers.
  79. * Use of this software for evaluation purposes is subject to and indicates
  80. * acceptance of the End User licence Agreement for this product. A copy of
  81. * the license is included with this software and is also available at www.havok.com/tryhavok.
  82. */