00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef PHYSXFORCEFIELDSHAPE_H
00016 #define PHYSXFORCEFIELDSHAPE_H
00017
00018 #include "pandabase.h"
00019 #include "pointerTo.h"
00020 #include "luse.h"
00021
00022 #include "physxObject.h"
00023 #include "physxEnums.h"
00024 #include "physx_includes.h"
00025
00026 class PhysxForceField;
00027 class PhysxForceFieldShapeGroup;
00028
00029
00030
00031
00032
00033 class EXPCL_PANDAPHYSX PhysxForceFieldShape : public PhysxObject, public PhysxEnums {
00034
00035 PUBLISHED:
00036 void release();
00037
00038 PhysxForceField *get_force_field() const;
00039 PhysxForceFieldShapeGroup *get_shape_group() const;
00040
00041 void set_name(const char *name);
00042 void set_mat(const LMatrix4f &mat);
00043 void set_pos(const LPoint3f &pos);
00044
00045 const char *get_name() const;
00046 LMatrix4f get_mat() const;
00047 LPoint3f get_pos() const;
00048
00049 INLINE void ls() const;
00050 INLINE void ls(ostream &out, int indent_level=0) const;
00051
00052 public:
00053 static PhysxForceFieldShape *factory(NxShapeType shapeType);
00054
00055 virtual NxForceFieldShape *ptr() const = 0;
00056
00057 virtual void link(NxForceFieldShape *shapePtr) = 0;
00058 virtual void unlink() = 0;
00059
00060 protected:
00061 INLINE PhysxForceFieldShape();
00062
00063 private:
00064 string _name;
00065
00066
00067 public:
00068 static TypeHandle get_class_type() {
00069 return _type_handle;
00070 }
00071 static void init_type() {
00072 PhysxObject::init_type();
00073 register_type(_type_handle, "PhysxForceFieldShape",
00074 PhysxObject::get_class_type());
00075 }
00076 virtual TypeHandle get_type() const {
00077 return get_class_type();
00078 }
00079 virtual TypeHandle force_init_type() {
00080 init_type();
00081 return get_class_type();
00082 }
00083
00084 private:
00085 static TypeHandle _type_handle;
00086 };
00087
00088 #include "physxForceFieldShape.I"
00089
00090 #endif // PHYSXFORCEFIELDSHAPE_H