From: <a-...@us...> - 2010-01-28 07:14:04
|
Revision: 152 http://simspark.svn.sourceforge.net/simspark/?rev=152&view=rev Author: a-held Date: 2010-01-28 07:13:43 +0000 (Thu, 28 Jan 2010) Log Message: ----------- Created a factory for implementation objects that also uses the bridge pattern. Instead of each physics object having its own implementation object, all objects of the same type get a reference to the same implementation object. This saves some memory and (I think) makes good use of the processor cache; there was a noteable increase on the average FPS after the implementation (before: 23.3 to 23.8, after: 24.1 to 24.8). Modified Paths: -------------- branches/multiphys/spark/lib/oxygen/CMakeLists.txt branches/multiphys/spark/lib/oxygen/physicsserver/angularmotor.cpp branches/multiphys/spark/lib/oxygen/physicsserver/balljoint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/body.cpp branches/multiphys/spark/lib/oxygen/physicsserver/boxcollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/capsulecollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/collider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/compoundcollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/concavecollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/conecollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/conetwistjoint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/contactjointhandler.cpp branches/multiphys/spark/lib/oxygen/physicsserver/convexcollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/cylindercollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/dynamicbody.cpp branches/multiphys/spark/lib/oxygen/physicsserver/emptycollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/fixedjoint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/generic6dofjoint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/hinge2joint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/hingejoint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/int/colliderint.h branches/multiphys/spark/lib/oxygen/physicsserver/joint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/physicsobject.cpp branches/multiphys/spark/lib/oxygen/physicsserver/physicsserver.cpp branches/multiphys/spark/lib/oxygen/physicsserver/planecollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/raycollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.cpp branches/multiphys/spark/lib/oxygen/physicsserver/sliderjoint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/softbody.cpp branches/multiphys/spark/lib/oxygen/physicsserver/space.cpp branches/multiphys/spark/lib/oxygen/physicsserver/spherecollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/staticbody.cpp branches/multiphys/spark/lib/oxygen/physicsserver/transformcollider.cpp branches/multiphys/spark/lib/oxygen/physicsserver/universaljoint.cpp branches/multiphys/spark/lib/oxygen/physicsserver/world.cpp Modified: branches/multiphys/spark/lib/oxygen/CMakeLists.txt =================================================================== --- branches/multiphys/spark/lib/oxygen/CMakeLists.txt 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/CMakeLists.txt 2010-01-28 07:13:43 UTC (rev 152) @@ -15,6 +15,7 @@ oxygen.h oxygen_defines.h physicsserver/genericphysicsobjects.h + physicsserver/impfactory.h physicsserver/physicsobject.h physicsserver/body.h physicsserver/rigidbody.h @@ -75,6 +76,7 @@ physicsserver/int/generic6dofjointint.h physicsserver/int/hingejointint.h physicsserver/int/hinge2jointint.h + physicsserver/int/impfactoryint.h physicsserver/int/jointint.h physicsserver/int/physicsobjectint.h physicsserver/int/physicsserverint.h @@ -111,6 +113,7 @@ physicsserver/ode/odegeneric6dofjoint.h physicsserver/ode/odehingejoint.h physicsserver/ode/odehinge2joint.h + physicsserver/ode/odeimpfactory.h physicsserver/ode/odejoint.h physicsserver/ode/odephysicsobject.h physicsserver/ode/odephysicsserver.h @@ -190,6 +193,7 @@ oxygen.cpp physicsserver/physicsobject.cpp physicsserver/physicsobject_c.cpp + physicsserver/impfactory.cpp physicsserver/body.cpp physicsserver/body_c.cpp physicsserver/rigidbody.cpp @@ -285,6 +289,7 @@ physicsserver/ode/odegeneric6dofjoint.cpp physicsserver/ode/odehingejoint.cpp physicsserver/ode/odehinge2joint.cpp + physicsserver/ode/odeimpfactory.cpp physicsserver/ode/odejoint.cpp physicsserver/ode/odephysicsobject.cpp physicsserver/ode/odephysicsserver.cpp Modified: branches/multiphys/spark/lib/oxygen/physicsserver/angularmotor.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/angularmotor.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/angularmotor.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -18,7 +18,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <oxygen/physicsserver/angularmotor.h> -#include <oxygen/physicsserver/ode/odeangularmotor.h> +#include <oxygen/physicsserver/int/angularmotorint.h> +#include <oxygen/physicsserver/int/jointint.h> +#include <oxygen/physicsserver/impfactory.h> #include <zeitgeist/logserver/logserver.h> using namespace oxygen; @@ -27,7 +29,7 @@ AngularMotor::AngularMotor() : Joint() { - mAngularMotorImp = boost::shared_ptr<ODEAngularMotor>(new ODEAngularMotor()); + mAngularMotorImp = ImpFactory::GetInstance()->GetAngularMotorImp(); } AngularMotor::~AngularMotor() Modified: branches/multiphys/spark/lib/oxygen/physicsserver/balljoint.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/balljoint.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/balljoint.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -17,8 +17,10 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include <oxygen/physicsserver/ode/odeballjoint.h> +#include <oxygen/physicsserver/int/balljointint.h> +#include <oxygen/physicsserver/int/jointint.h> #include <oxygen/physicsserver/balljoint.h> +#include <oxygen/physicsserver/impfactory.h> #include <zeitgeist/logserver/logserver.h> using namespace oxygen; @@ -27,7 +29,7 @@ BallJoint::BallJoint() : Generic6DOFJoint() { - mBallJointImp = boost::shared_ptr<ODEBallJoint>(new ODEBallJoint()); + mBallJointImp = ImpFactory::GetInstance()->GetBallJointImp(); } BallJoint::~BallJoint() Modified: branches/multiphys/spark/lib/oxygen/physicsserver/body.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/body.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/body.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -20,14 +20,15 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <oxygen/physicsserver/body.h> -#include <oxygen/physicsserver/ode/odebody.h> +#include <oxygen/physicsserver/int/bodyint.h> +#include <oxygen/physicsserver/impfactory.h> using namespace oxygen; Body::Body() : PhysicsObject(), mBodyID(0), mMassTransformed(false), mMassTrans(0,0,0) { - mBodyImp = boost::shared_ptr<ODEBody>(new ODEBody()); + mBodyImp = ImpFactory::GetInstance()->GetBodyImp(); } Body::~Body(){ Modified: branches/multiphys/spark/lib/oxygen/physicsserver/boxcollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/boxcollider.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/boxcollider.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -21,14 +21,15 @@ */ #include <oxygen/physicsserver/boxcollider.h> -#include <oxygen/physicsserver/ode/odeboxcollider.h> +#include <oxygen/physicsserver/int/boxcolliderint.h> +#include <oxygen/physicsserver/impfactory.h> using namespace oxygen; using namespace salt; BoxCollider::BoxCollider() : ConvexCollider() { - mBoxColliderImp = boost::shared_ptr<ODEBoxCollider>(new ODEBoxCollider()); + mBoxColliderImp = ImpFactory::GetInstance()->GetBoxColliderImp(); } void BoxCollider::SetBoxLengths(const Vector3f& extents) Modified: branches/multiphys/spark/lib/oxygen/physicsserver/capsulecollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/capsulecollider.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/capsulecollider.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -20,14 +20,15 @@ */ #include <oxygen/physicsserver/capsulecollider.h> -#include <oxygen/physicsserver/ode/odecapsulecollider.h> +#include <oxygen/physicsserver/int/capsulecolliderint.h> +#include <oxygen/physicsserver/impfactory.h> using namespace oxygen; using namespace salt; CapsuleCollider::CapsuleCollider() : ConvexCollider() { - mCapsuleColliderImp = boost::shared_ptr<ODECapsuleCollider>(new ODECapsuleCollider()); + mCapsuleColliderImp = ImpFactory::GetInstance()->GetCapsuleColliderImp(); } void CapsuleCollider::SetParams(float radius, float length) Modified: branches/multiphys/spark/lib/oxygen/physicsserver/collider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/collider.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/collider.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -20,7 +20,8 @@ */ #include <oxygen/physicsserver/genericphysicsobjects.h> #include <oxygen/physicsserver/collider.h> -#include <oxygen/physicsserver/ode/odecollider.h> +#include <oxygen/physicsserver/int/colliderint.h> +#include <oxygen/physicsserver/impfactory.h> #include <oxygen/physicsserver/collisionhandler.h> #include <oxygen/physicsserver/space.h> #include <oxygen/physicsserver/staticphysicsmethods.h> @@ -37,7 +38,7 @@ Collider::Collider() : PhysicsObject(), mGeomID(0) { - mColliderImp = boost::shared_ptr<ODECollider>(new ODECollider()); + mColliderImp = ImpFactory::GetInstance()->GetColliderImp(); } Collider::~Collider() Modified: branches/multiphys/spark/lib/oxygen/physicsserver/compoundcollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/compoundcollider.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/compoundcollider.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -20,12 +20,13 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <oxygen/physicsserver/compoundcollider.h> -#include <oxygen/physicsserver/ode/odecompoundcollider.h> +#include <oxygen/physicsserver/int/compoundcolliderint.h> +#include <oxygen/physicsserver/impfactory.h> using namespace oxygen; CompoundCollider::CompoundCollider() : Collider(){ - mCompoundColliderImp = boost::shared_ptr<ODECompoundCollider>(new ODECompoundCollider()); + mCompoundColliderImp = ImpFactory::GetInstance()->GetCompoundColliderImp(); } CompoundCollider::~CompoundCollider(){ Modified: branches/multiphys/spark/lib/oxygen/physicsserver/concavecollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/concavecollider.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/concavecollider.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -20,12 +20,13 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <oxygen/physicsserver/concavecollider.h> -#include <oxygen/physicsserver/ode/odeconcavecollider.h> +#include <oxygen/physicsserver/int/concavecolliderint.h> +#include <oxygen/physicsserver/impfactory.h> using namespace oxygen; ConcaveCollider::ConcaveCollider() : Collider(){ - mConcaveColliderImp = boost::shared_ptr<ODEConcaveCollider>(new ODEConcaveCollider()); + mConcaveColliderImp = ImpFactory::GetInstance()->GetConcaveColliderImp(); } ConcaveCollider::~ConcaveCollider(){ Modified: branches/multiphys/spark/lib/oxygen/physicsserver/conecollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/conecollider.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/conecollider.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -20,12 +20,13 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <oxygen/physicsserver/conecollider.h> -#include <oxygen/physicsserver/ode/odeconecollider.h> +#include <oxygen/physicsserver/int/conecolliderint.h> +#include <oxygen/physicsserver/impfactory.h> using namespace oxygen; ConeCollider::ConeCollider() : ConvexCollider(){ - mConeColliderImp = boost::shared_ptr<ODEConeCollider>(new ODEConeCollider()); + mConeColliderImp = ImpFactory::GetInstance()->GetConeColliderImp(); } ConeCollider::~ConeCollider(){ Modified: branches/multiphys/spark/lib/oxygen/physicsserver/conetwistjoint.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/conetwistjoint.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/conetwistjoint.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -21,12 +21,13 @@ */ #include <oxygen/physicsserver/conetwistjoint.h> -#include <oxygen/physicsserver/ode/odeconetwistjoint.h> +#include <oxygen/physicsserver/int/conetwistjointint.h> +#include <oxygen/physicsserver/impfactory.h> using namespace oxygen; ConeTwistJoint::ConeTwistJoint() : Generic6DOFJoint(){ - mConeTwistJointImp = boost::shared_ptr<ODEConeTwistJoint>(new ODEConeTwistJoint()); + mConeTwistJointImp = ImpFactory::GetInstance()->GetConeTwistJointImp(); } ConeTwistJoint::~ConeTwistJoint(){ Modified: branches/multiphys/spark/lib/oxygen/physicsserver/contactjointhandler.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/contactjointhandler.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/contactjointhandler.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -20,7 +20,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <oxygen/physicsserver/contactjointhandler.h> -#include <oxygen/physicsserver/ode/odecontactjointhandler.h> +#include <oxygen/physicsserver/int/contactjointhandlerint.h> +#include <oxygen/physicsserver/impfactory.h> #include <oxygen/physicsserver/collider.h> #include <oxygen/physicsserver/space.h> #include <oxygen/physicsserver/world.h> @@ -31,7 +32,7 @@ ContactJointHandler::ContactJointHandler() : CollisionHandler() { - mContactJointHandlerImp = boost::shared_ptr<ODEContactJointHandler>(new ODEContactJointHandler()); + mContactJointHandlerImp = ImpFactory::GetInstance()->GetContactJointHandlerImp(); mSurfaceParameter = mContactJointHandlerImp->Initialize(); } Modified: branches/multiphys/spark/lib/oxygen/physicsserver/convexcollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/convexcollider.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/convexcollider.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -20,12 +20,13 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <oxygen/physicsserver/convexcollider.h> -#include <oxygen/physicsserver/ode/odeconvexcollider.h> +#include <oxygen/physicsserver/int/convexcolliderint.h> +#include <oxygen/physicsserver/impfactory.h> using namespace oxygen; ConvexCollider::ConvexCollider() : Collider(){ - mConvexColliderImp = boost::shared_ptr<ODEConvexCollider>(new ODEConvexCollider()); + mConvexColliderImp = ImpFactory::GetInstance()->GetConvexColliderImp(); } ConvexCollider::~ConvexCollider(){ Modified: branches/multiphys/spark/lib/oxygen/physicsserver/cylindercollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/cylindercollider.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/cylindercollider.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -20,12 +20,13 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <oxygen/physicsserver/cylindercollider.h> -#include <oxygen/physicsserver/ode/odecylindercollider.h> +#include <oxygen/physicsserver/int/cylindercolliderint.h> +#include <oxygen/physicsserver/impfactory.h> using namespace oxygen; CylinderCollider::CylinderCollider() : ConvexCollider(){ - mCylinderColliderImp = boost::shared_ptr<ODECylinderCollider>(new ODECylinderCollider()); + mCylinderColliderImp = ImpFactory::GetInstance()->GetCylinderColliderImp(); } CylinderCollider::~CylinderCollider(){ Modified: branches/multiphys/spark/lib/oxygen/physicsserver/dynamicbody.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/dynamicbody.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/dynamicbody.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -20,12 +20,13 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <oxygen/physicsserver/dynamicbody.h> -#include <oxygen/physicsserver/ode/odedynamicbody.h> +#include <oxygen/physicsserver/int/dynamicbodyint.h> +#include <oxygen/physicsserver/impfactory.h> using namespace oxygen; DynamicBody::DynamicBody() : Body(){ - mDynamicBodyImp = boost::shared_ptr<ODEDynamicBody>(new ODEDynamicBody()); + mDynamicBodyImp = ImpFactory::GetInstance()->GetDynamicBodyImp(); } DynamicBody::~DynamicBody(){ Modified: branches/multiphys/spark/lib/oxygen/physicsserver/emptycollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/emptycollider.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/emptycollider.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -20,12 +20,13 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <oxygen/physicsserver/emptycollider.h> -#include <oxygen/physicsserver/ode/odeemptycollider.h> +#include <oxygen/physicsserver/int/emptycolliderint.h> +#include <oxygen/physicsserver/impfactory.h> using namespace oxygen; EmptyCollider::EmptyCollider() : Collider(){ - mEmptyColliderImp = boost::shared_ptr<ODEEmptyCollider>(new ODEEmptyCollider()); + mEmptyColliderImp = ImpFactory::GetInstance()->GetEmptyColliderImp(); } EmptyCollider::~EmptyCollider(){ Modified: branches/multiphys/spark/lib/oxygen/physicsserver/fixedjoint.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/fixedjoint.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/fixedjoint.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -18,14 +18,15 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <oxygen/physicsserver/fixedjoint.h> -#include <oxygen/physicsserver/ode/odefixedjoint.h> +#include <oxygen/physicsserver/int/fixedjointint.h> +#include <oxygen/physicsserver/impfactory.h> #include <zeitgeist/logserver/logserver.h> using namespace oxygen; FixedJoint::FixedJoint() : Generic6DOFJoint() { - mFixedJointImp = boost::shared_ptr<ODEFixedJoint>(new ODEFixedJoint()); + mFixedJointImp = ImpFactory::GetInstance()->GetFixedJointImp(); } FixedJoint::~FixedJoint() Modified: branches/multiphys/spark/lib/oxygen/physicsserver/generic6dofjoint.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/generic6dofjoint.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/generic6dofjoint.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -21,12 +21,13 @@ */ #include <oxygen/physicsserver/generic6dofjoint.h> -#include <oxygen/physicsserver/ode/odegeneric6dofjoint.h> +#include <oxygen/physicsserver/int/generic6dofjointint.h> +#include <oxygen/physicsserver/impfactory.h> using namespace oxygen; Generic6DOFJoint::Generic6DOFJoint() : Joint(){ - mGeneric6DOFJointImp = boost::shared_ptr<ODEGeneric6DOFJoint>(new ODEGeneric6DOFJoint()); + mGeneric6DOFJointImp = ImpFactory::GetInstance()->GetGeneric6DOFJointImp(); } Generic6DOFJoint::~Generic6DOFJoint(){ Modified: branches/multiphys/spark/lib/oxygen/physicsserver/hinge2joint.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/hinge2joint.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/hinge2joint.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -18,7 +18,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <oxygen/physicsserver/hinge2joint.h> -#include <oxygen/physicsserver/ode/odehinge2joint.h> +#include <oxygen/physicsserver/int/hinge2jointint.h> +#include <oxygen/physicsserver/impfactory.h> #include <zeitgeist/logserver/logserver.h> using namespace oxygen; @@ -27,7 +28,7 @@ Hinge2Joint::Hinge2Joint() : Generic6DOFJoint() { - mHinge2JointImp = boost::shared_ptr<ODEHinge2Joint>(new ODEHinge2Joint()); + mHinge2JointImp = ImpFactory::GetInstance()->GetHinge2JointImp(); } Hinge2Joint::~Hinge2Joint() Modified: branches/multiphys/spark/lib/oxygen/physicsserver/hingejoint.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/hingejoint.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/hingejoint.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -18,7 +18,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <oxygen/physicsserver/hingejoint.h> -#include <oxygen/physicsserver/ode/odehingejoint.h> +#include <oxygen/physicsserver/int/hingejointint.h> +#include <oxygen/physicsserver/int/jointint.h> +#include <oxygen/physicsserver/impfactory.h> #include <zeitgeist/logserver/logserver.h> using namespace oxygen; @@ -27,7 +29,7 @@ HingeJoint::HingeJoint() : Generic6DOFJoint() { - mHingeJointImp = boost::shared_ptr<ODEHingeJoint>(new ODEHingeJoint()); + mHingeJointImp = ImpFactory::GetInstance()->GetHingeJointImp(); } HingeJoint::~HingeJoint() Modified: branches/multiphys/spark/lib/oxygen/physicsserver/int/colliderint.h =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/int/colliderint.h 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/int/colliderint.h 2010-01-28 07:13:43 UTC (rev 152) @@ -25,6 +25,7 @@ #include <oxygen/physicsserver/ode/odewrapper.h> #include <oxygen/oxygen_defines.h> +#include <salt/matrix.h> #include <set> #include <string> Modified: branches/multiphys/spark/lib/oxygen/physicsserver/joint.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/joint.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/joint.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -20,7 +20,8 @@ #include <oxygen/physicsserver/joint.h> #include <oxygen/physicsserver/rigidbody.h> #include <oxygen/physicsserver/staticphysicsmethods.h> -#include <oxygen/physicsserver/ode/odejoint.h> +#include <oxygen/physicsserver/impfactory.h> +#include <oxygen/physicsserver/int/jointint.h> #include <zeitgeist/logserver/logserver.h> using namespace oxygen; @@ -33,7 +34,7 @@ mJointMaxSpeed1(0), mJointMaxSpeed2(0), mIsLimitJointMaxSpeed1(false), mIsLimitJointMaxSpeed2(false) { - mJointImp = boost::shared_ptr<ODEJoint>(new ODEJoint()); + mJointImp = ImpFactory::GetInstance()->GetJointImp(); } Joint::~Joint() Modified: branches/multiphys/spark/lib/oxygen/physicsserver/physicsobject.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/physicsobject.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/physicsobject.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -24,7 +24,8 @@ #include <oxygen/physicsserver/physicsobject.h> #include <oxygen/physicsserver/space.h> #include <oxygen/physicsserver/world.h> -#include <oxygen/physicsserver/ode/odephysicsobject.h> +#include <oxygen/physicsserver/int/physicsobjectint.h> +#include <oxygen/physicsserver/impfactory.h> #include <oxygen/sceneserver/scene.h> #include <zeitgeist/logserver/logserver.h> @@ -33,7 +34,7 @@ PhysicsObject::PhysicsObject() : BaseNode() { - mPhysicsObjectImp = shared_ptr<ODEPhysicsObject>(new ODEPhysicsObject()); + mPhysicsObjectImp = ImpFactory::GetInstance()->GetPhysicsObjectImp(); } PhysicsObject::~PhysicsObject() Modified: branches/multiphys/spark/lib/oxygen/physicsserver/physicsserver.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/physicsserver.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/physicsserver.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -20,11 +20,12 @@ */ #include <oxygen/physicsserver/physicsserver.h> -#include <oxygen/physicsserver/ode/odephysicsserver.h> +#include <oxygen/physicsserver/int/physicsserverint.h> +#include <oxygen/physicsserver/impfactory.h> using namespace oxygen; PhysicsServer::PhysicsServer() : Leaf() { - mPhysicsServerImp = boost::shared_ptr<ODEPhysicsServer>(new ODEPhysicsServer()); + mPhysicsServerImp = ImpFactory::GetInstance()->GetPhysicsServerImp(); } Modified: branches/multiphys/spark/lib/oxygen/physicsserver/planecollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/planecollider.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/planecollider.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -20,7 +20,8 @@ */ #include <oxygen/physicsserver/planecollider.h> -#include <oxygen/physicsserver/ode/odeplanecollider.h> +#include <oxygen/physicsserver/int/planecolliderint.h> +#include <oxygen/physicsserver/impfactory.h> #include <zeitgeist/logserver/logserver.h> using namespace oxygen; @@ -28,7 +29,7 @@ PlaneCollider::PlaneCollider() : Collider() { - mPlaneColliderImp = boost::shared_ptr<ODEPlaneCollider>(new ODEPlaneCollider()); + mPlaneColliderImp = ImpFactory::GetInstance()->GetPlaneColliderImp(); } void PlaneCollider::SetParams(float a, float b, float c, float d) Modified: branches/multiphys/spark/lib/oxygen/physicsserver/raycollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/raycollider.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/raycollider.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -19,14 +19,15 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include <oxygen/physicsserver/ode/oderaycollider.h> +#include <oxygen/physicsserver/int/raycolliderint.h> +#include <oxygen/physicsserver/impfactory.h> #include <oxygen/physicsserver/raycollider.h> using namespace oxygen; RayCollider::RayCollider() : Collider() { - mRayColliderImp = boost::shared_ptr<ODERayCollider>(new ODERayCollider()); + mRayColliderImp = ImpFactory::GetInstance()->GetRayColliderImp(); } void RayCollider::SetParams(salt::Vector3f pos, Modified: branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/rigidbody.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -21,7 +21,8 @@ #include <oxygen/physicsserver/transformcollider.h> #include <oxygen/physicsserver/staticphysicsmethods.h> #include <oxygen/physicsserver/world.h> -#include <oxygen/physicsserver/ode/oderigidbody.h> +#include <oxygen/physicsserver/int/rigidbodyint.h> +#include <oxygen/physicsserver/impfactory.h> #include <oxygen/sceneserver/scene.h> #include <oxygen/sceneserver/transform.h> #include <zeitgeist/logserver/logserver.h> @@ -33,7 +34,7 @@ RigidBody::RigidBody() : Body() { - mRigidBodyImp = boost::shared_ptr<ODERigidBody>(new ODERigidBody()); + mRigidBodyImp = ImpFactory::GetInstance()->GetRigidBodyImp(); } RigidBody::~RigidBody() Modified: branches/multiphys/spark/lib/oxygen/physicsserver/sliderjoint.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/sliderjoint.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/sliderjoint.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -18,7 +18,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <oxygen/physicsserver/sliderjoint.h> -#include <oxygen/physicsserver/ode/odesliderjoint.h> +#include <oxygen/physicsserver/int/sliderjointint.h> +#include <oxygen/physicsserver/impfactory.h> #include <zeitgeist/logserver/logserver.h> using namespace oxygen; @@ -27,7 +28,7 @@ SliderJoint::SliderJoint() : Generic6DOFJoint() { - mSliderJointImp = boost::shared_ptr<ODESliderJoint>(new ODESliderJoint()); + mSliderJointImp = ImpFactory::GetInstance()->GetSliderJointImp(); } SliderJoint::~SliderJoint() Modified: branches/multiphys/spark/lib/oxygen/physicsserver/softbody.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/softbody.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/softbody.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -20,12 +20,13 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <oxygen/physicsserver/softbody.h> -#include <oxygen/physicsserver/ode/odesoftbody.h> +#include <oxygen/physicsserver/int/softbodyint.h> +#include <oxygen/physicsserver/impfactory.h> using namespace oxygen; SoftBody::SoftBody() : Body(){ - mSoftBodyImp = boost::shared_ptr<ODESoftBody>(new ODESoftBody()); + mSoftBodyImp = ImpFactory::GetInstance()->GetSoftBodyImp(); } SoftBody::~SoftBody(){ Modified: branches/multiphys/spark/lib/oxygen/physicsserver/space.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/space.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/space.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -20,7 +20,8 @@ */ #include <oxygen/physicsserver/space.h> -#include <oxygen/physicsserver/ode/odespace.h> +#include <oxygen/physicsserver/int/spaceint.h> +#include <oxygen/physicsserver/impfactory.h> #include <oxygen/physicsserver/collider.h> #include <oxygen/physicsserver/world.h> #include <oxygen/sceneserver/scene.h> @@ -33,7 +34,7 @@ Space::Space() : PhysicsObject(), mSpaceID(0) { - mSpaceImp = shared_ptr<ODESpace>(new ODESpace()); + mSpaceImp = ImpFactory::GetInstance()->GetSpaceImp(); } Space::~Space() Modified: branches/multiphys/spark/lib/oxygen/physicsserver/spherecollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/spherecollider.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/spherecollider.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -20,14 +20,15 @@ */ #include <oxygen/physicsserver/spherecollider.h> -#include <oxygen/physicsserver/ode/odespherecollider.h> +#include <oxygen/physicsserver/int/spherecolliderint.h> +#include <oxygen/physicsserver/impfactory.h> using namespace oxygen; using namespace salt; SphereCollider::SphereCollider() : ConvexCollider() { - mSphereColliderImp = boost::shared_ptr<ODESphereCollider>(new ODESphereCollider()); + mSphereColliderImp = ImpFactory::GetInstance()->GetSphereColliderImp(); } void SphereCollider::SetRadius(float r) Modified: branches/multiphys/spark/lib/oxygen/physicsserver/staticbody.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/staticbody.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/staticbody.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -20,12 +20,13 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <oxygen/physicsserver/staticbody.h> -#include <oxygen/physicsserver/ode/odestaticbody.h> +#include <oxygen/physicsserver/int/staticbodyint.h> +#include <oxygen/physicsserver/impfactory.h> using namespace oxygen; StaticBody::StaticBody() : Body(){ - mStaticBodyImp = boost::shared_ptr<ODEStaticBody>(new ODEStaticBody()); + mStaticBodyImp = ImpFactory::GetInstance()->GetStaticBodyImp(); } StaticBody::~StaticBody(){ Modified: branches/multiphys/spark/lib/oxygen/physicsserver/transformcollider.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/transformcollider.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/transformcollider.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -20,15 +20,16 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include <oxygen/physicsserver/ode/odetransformcollider.h> +#include <oxygen/physicsserver/int/transformcolliderint.h> #include <oxygen/physicsserver/transformcollider.h> +#include <oxygen/physicsserver/impfactory.h> using namespace oxygen; using namespace salt; TransformCollider::TransformCollider() : Collider() { - mTransformColliderImp = boost::shared_ptr<ODETransformCollider>(new ODETransformCollider()); + mTransformColliderImp = ImpFactory::GetInstance()->GetTransformColliderImp(); } bool TransformCollider::ConstructInternal() Modified: branches/multiphys/spark/lib/oxygen/physicsserver/universaljoint.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/universaljoint.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/universaljoint.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -18,7 +18,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <oxygen/physicsserver/universaljoint.h> -#include <oxygen/physicsserver/ode/odeuniversaljoint.h> +#include <oxygen/physicsserver/int/universaljointint.h> +#include <oxygen/physicsserver/int/jointint.h> +#include <oxygen/physicsserver/impfactory.h> #include <zeitgeist/logserver/logserver.h> using namespace oxygen; @@ -27,7 +29,7 @@ UniversalJoint::UniversalJoint() : Generic6DOFJoint() { - mUniversalJointImp = boost::shared_ptr<ODEUniversalJoint>(new ODEUniversalJoint()); + mUniversalJointImp = ImpFactory::GetInstance()->GetUniversalJointImp(); } UniversalJoint::~UniversalJoint() Modified: branches/multiphys/spark/lib/oxygen/physicsserver/world.cpp =================================================================== --- branches/multiphys/spark/lib/oxygen/physicsserver/world.cpp 2010-01-26 11:23:42 UTC (rev 151) +++ branches/multiphys/spark/lib/oxygen/physicsserver/world.cpp 2010-01-28 07:13:43 UTC (rev 152) @@ -19,7 +19,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include <oxygen/physicsserver/ode/odeworld.h> +#include <oxygen/physicsserver/int/worldint.h> +#include <oxygen/physicsserver/impfactory.h> #include <oxygen/physicsserver/space.h> #include <oxygen/physicsserver/world.h> #include <oxygen/sceneserver/scene.h> @@ -30,7 +31,7 @@ World::World() : PhysicsObject() { - mWorldImp = shared_ptr<ODEWorld>(new ODEWorld()); + mWorldImp = ImpFactory::GetInstance()->GetWorldImp(); } World::~World() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |