00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef PHYSXDEBUGGEOMNODE_H
00016 #define PHYSXDEBUGGEOMNODE_H
00017
00018 #include "pandabase.h"
00019 #include "pointerTo.h"
00020 #include "geomNode.h"
00021 #include "transformState.h"
00022 #include "geom.h"
00023 #include "geomVertexData.h"
00024 #include "geomLines.h"
00025 #include "geomTriangles.h"
00026
00027 #include "physx_includes.h"
00028
00029 class PhysxScene;
00030
00031
00032
00033
00034
00035
00036
00037 class EXPCL_PANDAPHYSX PhysxDebugGeomNode : public GeomNode {
00038
00039 PUBLISHED:
00040 INLINE PhysxDebugGeomNode();
00041 INLINE ~PhysxDebugGeomNode();
00042
00043 void on();
00044 void off();
00045 void toggle();
00046
00047 INLINE void visualize_world_axes(bool value);
00048 INLINE void visualize_body_axes(bool value);
00049 INLINE void visualize_body_mass_axes(bool value);
00050 INLINE void visualize_body_lin_velocity(bool value);
00051 INLINE void visualize_body_ang_velocity(bool value);
00052 INLINE void visualize_body_joint_groups(bool value);
00053 INLINE void visualize_joint_local_axes(bool value);
00054 INLINE void visualize_joint_world_axes(bool value);
00055 INLINE void visualize_joint_limits(bool value);
00056 INLINE void visualize_contact_point(bool value);
00057 INLINE void visualize_contact_normal(bool value);
00058 INLINE void visualize_contact_error(bool value);
00059 INLINE void visualize_contact_force(bool value);
00060 INLINE void visualize_actor_axes(bool value);
00061 INLINE void visualize_collision_aabbs(bool value);
00062 INLINE void visualize_collision_shapes(bool value);
00063 INLINE void visualize_collision_axes(bool value);
00064 INLINE void visualize_collision_compounds(bool value);
00065 INLINE void visualize_collision_vnormals(bool value);
00066 INLINE void visualize_collision_fnormals(bool value);
00067 INLINE void visualize_collision_edges(bool value);
00068 INLINE void visualize_collision_spheres(bool value);
00069 INLINE void visualize_collision_static(bool value);
00070 INLINE void visualize_collision_dynamic(bool value);
00071 INLINE void visualize_collision_free(bool value);
00072 INLINE void visualize_collision_ccd(bool value);
00073 INLINE void visualize_collision_skeletons(bool value);
00074 INLINE void visualize_cloth_mesh(bool value);
00075 INLINE void visualize_cloth_validbounds(bool value);
00076 INLINE void visualize_softbody_mesh(bool value);
00077 INLINE void visualize_softbody_validbounds(bool value);
00078 INLINE void visualize_force_fields(bool value);
00079
00080 public:
00081 void update(NxScene *scenePtr);
00082
00083 private:
00084 float _scale;
00085
00086 PT(GeomVertexData) _vdata;
00087 PT(Geom) _geom_lines;
00088 PT(GeomLines) _prim_lines;
00089 PT(Geom) _geom_triangles;
00090 PT(GeomTriangles) _prim_triangles;
00091
00092
00093 public:
00094 static TypeHandle get_class_type() {
00095 return _type_handle;
00096 }
00097 static void init_type() {
00098 GeomNode::init_type();
00099 register_type(_type_handle, "PhysxDebugGeomNode",
00100 GeomNode::get_class_type());
00101 }
00102 virtual TypeHandle get_type() const {
00103 return get_class_type();
00104 }
00105 virtual TypeHandle force_init_type() {
00106 init_type();
00107 return get_class_type();
00108 }
00109
00110 private:
00111 static TypeHandle _type_handle;
00112 };
00113
00114 #include "physxDebugGeomNode.I"
00115
00116 #endif // PHYSXDEBUGGEOMNODE_H