00001
00002
00003
00004
00005
00006
00007 #ifndef _PHYSSIM_TYPES_H
00008 #define _PHYSSIM_TYPES_H
00009
00010 #include <vector>
00011 #include <boost/shared_ptr.hpp>
00012
00013 namespace Physsim {
00014
00015 class Vector2;
00016 class Vector3;
00017 class VectorN;
00018 class SVector6;
00019 class SMatrix6;
00020 class Matrix3;
00021 class Matrix4;
00022 class MatrixN;
00023 class MatrixNN;
00024 class Polyhedron;
00025 class Simulator;
00026 class Triangle;
00027 class RigidBody;
00028 class ArticulatedBody;
00029 class RCArticulatedBody;
00030 class Joint;
00031 class CollisionGeometry;
00032 class Contact;
00033 class Primitive;
00034 class Integrator;
00035 class Base;
00036 class RecurrentForce;
00037 class DynamicBody;
00038 class SMatrixN;
00039 class Octree;
00040 class XMLTree;
00041 class SoSeparatorWrapper;
00042
00044 typedef double Real;
00045
00047 typedef long double LongReal;
00048
00050 enum ReferenceFrameType { eGlobal, eLink };
00051
00053 typedef boost::shared_ptr<Vector2> Vector2Ptr;
00054
00056 typedef boost::shared_ptr<Vector3> Vector3Ptr;
00057
00059 typedef boost::shared_ptr<const Vector3> Vector3ConstPtr;
00060
00062 typedef boost::shared_ptr<VectorN> VectorNPtr;
00063
00065 typedef boost::shared_ptr<const VectorN> VectorNConstPtr;
00066
00068 typedef boost::shared_ptr<SVector6> SVector6Ptr;
00069
00071 typedef boost::shared_ptr<const Matrix3> Matrix3ConstPtr;
00072
00074 typedef boost::shared_ptr<Matrix3> Matrix3Ptr;
00075
00077 typedef boost::shared_ptr<Matrix4> Matrix4Ptr;
00078
00080 typedef boost::shared_ptr<MatrixN> MatrixNPtr;
00081
00083 typedef boost::shared_ptr<MatrixN> MatrixNPtr;
00084
00086 typedef boost::shared_ptr<MatrixNN> MatrixNNPtr;
00087
00089 typedef boost::shared_ptr<const MatrixNN> MatrixNNConstPtr;
00090
00092 typedef boost::shared_ptr<const MatrixN> MatrixNConstPtr;
00093
00095 typedef boost::shared_ptr<SMatrixN> SMatrixNPtr;
00096
00098 typedef boost::shared_ptr<const SMatrixN> SMatrixNConstPtr;
00099
00101 typedef boost::shared_ptr<SMatrix6> SMatrix6Ptr;
00102
00104 typedef boost::shared_ptr<const SMatrix6> SMatrix6ConstPtr;
00105
00107 typedef boost::shared_ptr<Polyhedron> PolyhedronPtr;
00108
00110 typedef boost::shared_ptr<Simulator> SimulatorPtr;
00111
00113 typedef boost::shared_ptr<Triangle> TrianglePtr;
00114
00116 typedef boost::shared_ptr<const Triangle> TriangleConstPtr;
00117
00119 typedef boost::shared_ptr<RigidBody> RigidBodyPtr;
00120
00122 typedef boost::shared_ptr<const RigidBody> RigidBodyConstPtr;
00123
00125 typedef boost::shared_ptr<ArticulatedBody> ArticulatedBodyPtr;
00126
00128 typedef boost::shared_ptr<const ArticulatedBody> ArticulatedBodyConstPtr;
00129
00131 typedef boost::shared_ptr<RCArticulatedBody> RCArticulatedBodyPtr;
00132
00134 typedef boost::shared_ptr<const RCArticulatedBody> RCArticulatedBodyConstPtr;
00135
00137 typedef boost::shared_ptr<const Joint> JointConstPtr;
00138
00140 typedef boost::shared_ptr<Joint> JointPtr;
00141
00143 typedef boost::shared_ptr<CollisionGeometry> CollisionGeometryPtr;
00144
00146 typedef boost::shared_ptr<const CollisionGeometry> CollisionGeometryConstPtr;
00147
00149 typedef boost::shared_ptr<Primitive> PrimitivePtr;
00150
00152 typedef boost::shared_ptr<const Primitive> PrimitiveConstPtr;
00153
00155 typedef boost::shared_ptr<Base> BasePtr;
00156
00158 typedef boost::shared_ptr<const Base> BaseConstPtr;
00159
00161 typedef boost::shared_ptr<RecurrentForce> RecurrentForcePtr;
00162
00164 typedef boost::shared_ptr<const RecurrentForce> RecurrentForceConstPtr;
00165
00167 typedef boost::shared_ptr<DynamicBody> DynamicBodyPtr;
00168
00170 typedef boost::shared_ptr<Integrator> IntegratorPtr;
00171
00173 typedef boost::shared_ptr<Contact> ContactPtr;
00174
00176 typedef boost::shared_ptr<const Contact> ContactConstPtr;
00177
00179 typedef boost::shared_ptr<Octree> OctreePtr;
00180
00182 typedef boost::shared_ptr<SoSeparatorWrapper> SoSeparatorWrapperPtr;
00183
00185 typedef boost::shared_ptr<const SoSeparatorWrapper> SoSeparatorWrapperConstPtr;
00186
00188 typedef boost::shared_ptr<XMLTree> XMLTreePtr;
00189
00191 typedef boost::shared_ptr<const XMLTree> XMLTreeConstPtr;
00192
00194 typedef boost::shared_ptr<std::vector<boost::shared_ptr<const Triangle> > > TriangleArrayPtr;
00195
00197 typedef boost::shared_ptr<const std::vector<boost::shared_ptr<const Triangle> > > TriangleArrayConstPtr;
00198
00199
00200 }
00201
00202 #endif