00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef __RBD_Utils_h__
00015 #define __RBD_Utils_h__
00016
00017 #include "RBD_API.h"
00018
00019 #include <SIM/SIM_Utils.h>
00020 #include <UT/UT_SysSpecific.h>
00021 #include <UT/UT_Vector3.h>
00022
00023
00024 #define RBD_NAME_ITENSOR "itensor"
00025 #define RBD_NAME_ITENSORLOCALINV "itensorlocalinv"
00026 #define RBD_NAME_MASS "mass"
00027 #define RBD_NAME_COMPUTEMASS "computemass"
00028 #define RBD_NAME_DENSITY "density"
00029 #define RBD_NAME_COMPUTECOM "computecom"
00030 #define RBD_NAME_COMPUTEINERTIALTENSOR "computeinertialtensor"
00031 #define RBD_NAME_COMPUTEINERTIALTENSORTYPE "computeinertialtensortype"
00032 #define RBD_NAME_INERTIALTENSORSTIFFNESS "inertialtensorstiffness"
00033 #define RBD_NAME_USEPOINTVELOCITY "usepointvelocity"
00034 #define RBD_NAME_USESDFVELOCITY "usevolumevelocity"
00035 #define RBD_NAME_INHERITVELOCITY "inheritvelocity"
00036 #define RBD_NAME_GLUEOBJECT "glueobject"
00037 #define RBD_NAME_GLUETHRESHOLD "gluethreshold"
00038 #define RBD_NAME_GLUEIMPULSE "glueimpulse"
00039 #define RBD_NAME_GLUEIMPULSEHALFLIFE "glueimpulsehalflife"
00040 #define RBD_NAME_CULLMODE "cullmode"
00041 #define RBD_NAME_ADDIMPACTS "addimpacts"
00042 #define RBD_NAME_CONTACTGROUPMETHOD "contactgroupmethod"
00043 #define RBD_NAME_CONTACTGROUPTOL "contactgrouptol"
00044 #define RBD_NAME_POLYCONVERT "polyconvert"
00045 #define RBD_NAME_POLYLOD "polylod"
00046 #define RBD_NAME_ADDBARYCENTER "addbarycenter"
00047 #define RBD_NAME_TRIANGULATE "triangulate"
00048
00049
00050
00051
00052 RBD_API void initializeRBD();
00053
00054
00055 class RBD_SphereTreeNode;
00056 #if 0
00057 class RBD_API rbd_isect : public sim_isect
00058 {
00059 public:
00060 rbd_isect(const UT_Vector3 &position,
00061 const UT_Vector3 &normal,
00062 fpreal isectdepth)
00063 : sim_isect(position, normal),
00064 depth (isectdepth)
00065 { }
00066 fpreal depth;
00067 virtual fpreal getPriority() const
00068 { return depth; }
00069 };
00070 #endif
00071
00072 class RBD_API rbd_nodeentry
00073 {
00074 public:
00075 const RBD_SphereTreeNode *node;
00076
00077
00078
00079 fpreal dist_minus_radius;
00080 };
00081
00082 class RBD_API rbd_nodeentryCompare
00083 {
00084 public:
00085 bool isLess(rbd_nodeentry *a, rbd_nodeentry *b);
00086 };
00087
00088 #endif
00089
00090