hkpVehicleViewer.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_UTILITIES2_VEHICLE_VIEWER_H
  9. #define HK_UTILITIES2_VEHICLE_VIEWER_H
  10. #include <Physics/Utilities/VisualDebugger/Viewer/Dynamics/hkpWorldViewerBase.h>
  11. #include <Physics/Dynamics/World/Listener/hkpWorldPostSimulationListener.h>
  12. /// Draws the internal components of any vehicles in the simulation.
  13. /// This viewer allows a user of the Havok Visual Debugger (VDB) tool to see
  14. /// the internal components of any objects of type hkpVehicleInstance (or any
  15. /// objects of a type derived from hkpVehicleInstance). The viewer draws the rays
  16. /// cast by the vehicle for each wheel. The suspension hard point is draw, as are
  17. /// the contact points where the wheel rays hit the ground. The center of each
  18. /// wheel is drawn, as are the axles that connect the wheels together. Each wheel
  19. /// is also drawn, to allow the user to see the size and orientation of the wheels
  20. /// of the vehicle.
  21. class hkpVehicleViewer :
  22. public hkpWorldViewerBase,
  23. public hkpActionListener,
  24. public hkpWorldPostSimulationListener
  25. {
  26. public:
  27. HK_DECLARE_CLASS_ALLOCATOR(HK_MEMORY_CLASS_VDB);
  28. /// Creates a hkpContactPointViewer.
  29. static hkProcess* HK_CALL create(const hkArray<hkProcessContext*>& contexts);
  30. /// Registers the hkpContactPointViewer with the hkViewerFactory.
  31. static void HK_CALL registerViewer();
  32. /// Gets the tag associated with this viewer type
  33. virtual int getProcessTag() { return m_tag; }
  34. virtual void init();
  35. /// A function to return the name of the viewer that will be displayed
  36. /// in the visual debugger.
  37. static inline const char* HK_CALL getName() { return "Vehicles"; }
  38. protected:
  39. hkpVehicleViewer(const hkArray<hkProcessContext*>& contexts);
  40. virtual ~hkpVehicleViewer();
  41. /* Override these methods from hkpWorldViewerBase */
  42. virtual void worldAddedCallback( hkpWorld* world );
  43. virtual void worldRemovedCallback( hkpWorld* world );
  44. /// Override callback inherited from hkpWorldPostSimulationListener.
  45. virtual void postSimulationCallback(hkpWorld* world);
  46. /* Override these methods from hkpActionListener */
  47. virtual void actionAddedCallback( hkpAction* action );
  48. virtual void actionRemovedCallback( hkpAction* action );
  49. protected:
  50. /// This is a unique identifier to allow the VDB identify which viewer
  51. /// has called the drawing functions.
  52. static int m_tag;
  53. /// The number of individual line segments that will be used to draw the
  54. /// wheels.
  55. static const int s_numWheelSegments;
  56. /// This array stores a pointer to each vehicle in the scene.
  57. hkArray<class hkpVehicleInstance*> m_vehicles;
  58. };
  59. #endif // HK_UTILITIES2_VEHICLE_VIEWER_H
  60. /*
  61. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  62. * Confidential Information of Havok.  (C) Copyright 1999-2009
  63. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  64. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  65. * rights, and intellectual property rights in the Havok software remain in
  66. * Havok and/or its suppliers.
  67. * Use of this software for evaluation purposes is subject to and indicates
  68. * acceptance of the End User licence Agreement for this product. A copy of
  69. * the license is included with this software and is also available at www.havok.com/tryhavok.
  70. */