Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/extern
diff options
context:
space:
mode:
authorErwin Coumans <blender@erwincoumans.com>2005-07-28 16:21:55 +0400
committerErwin Coumans <blender@erwincoumans.com>2005-07-28 16:21:55 +0400
commitb5ec3efeaf4ac7698117393046c72db0273c33f1 (patch)
tree3bf191e49ae400036eb3467a5a71ab41de61bf53 /extern
parentd501f56e96a5258dca09b1f75f475ef290445c22 (diff)
removed duplicate testing files
Diffstat (limited to 'extern')
-rw-r--r--extern/bullet/BulletDynamics/ConstraintSolver/OdeConstraintSolver2.cpp246
-rw-r--r--extern/bullet/BulletDynamics/ConstraintSolver/OdeConstraintSolver2.h31
2 files changed, 0 insertions, 277 deletions
diff --git a/extern/bullet/BulletDynamics/ConstraintSolver/OdeConstraintSolver2.cpp b/extern/bullet/BulletDynamics/ConstraintSolver/OdeConstraintSolver2.cpp
deleted file mode 100644
index 4b343251f03..00000000000
--- a/extern/bullet/BulletDynamics/ConstraintSolver/OdeConstraintSolver2.cpp
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * Copyright (c) 2005 Erwin Coumans http://www.erwincoumans.com
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies.
- * Erwin Coumans makes no representations about the suitability
- * of this software for any purpose.
- * It is provided "as is" without express or implied warranty.
-*/
-
-#include "OdeConstraintSolver.h"
-
-#include "NarrowPhaseCollision/PersistentManifold.h"
-#include "Dynamics/RigidBody.h"
-#include "ContactConstraint.h"
-#include "Solve2LinearConstraint.h"
-#include "ContactSolverInfo.h"
-#include "Dynamics/BU_Joint.h"
-#include "Dynamics/ContactJoint.h"
-
-#define USE_SOR_SOLVER
-
-#include "SorLcp.h"
-
-#include <math.h>
-#include <float.h>//FLT_MAX
-#ifdef WIN32
-#include <memory.h>
-#endif
-#include <string.h>
-#include <stdio.h>
-
-#ifdef WIN32
-#include <malloc.h>
-#else
-#include <alloca.h>
-#endif
-
-class BU_Joint;
-
-//see below
-
-int gCurBody = 0;
-int gCurJoint= 0;
-
-int ConvertBody(RigidBody* body,RigidBody** bodies,int& numBodies);
-void ConvertConstraint(PersistentManifold* manifold,BU_Joint** joints,int& numJoints,
- RigidBody** bodies,int bodyId0,int bodyId1);
-
-
-
-
-
-//iterative lcp and penalty method
-float OdeConstraintSolver::SolveGroup(PersistentManifold** manifoldPtr, int numManifolds,const ContactSolverInfo& infoGlobal)
-{
- gCurBody = 0;
- gCurJoint = 0;
-
- float cfm = 1e-5f;
- float erp = 0.2f;
-
- RigidBody* bodies [128];
-
- int numBodies = 0;
- BU_Joint* joints [128*5];
- int numJoints = 0;
-
- for (int j=0;j<numManifolds;j++)
- {
-
- int body0=-1,body1=-1;
-
- PersistentManifold* manifold = manifoldPtr[j];
- if (manifold->GetNumContacts() > 0)
- {
- body0 = ConvertBody((RigidBody*)manifold->GetBody0(),bodies,numBodies);
- body1 = ConvertBody((RigidBody*)manifold->GetBody1(),bodies,numBodies);
- ConvertConstraint(manifold,joints,numJoints,bodies,body0,body1);
- }
- }
-
- SolveInternal1(cfm,erp,bodies,numBodies,joints,numJoints,infoGlobal);
-
- return 0.f;
-
-}
-
-/////////////////////////////////////////////////////////////////////////////////
-
-
-typedef SimdScalar dQuaternion[4];
-#define _R(i,j) R[(i)*4+(j)]
-
-void dRfromQ1 (dMatrix3 R, const dQuaternion q)
-{
- // q = (s,vx,vy,vz)
- SimdScalar qq1 = 2*q[1]*q[1];
- SimdScalar qq2 = 2*q[2]*q[2];
- SimdScalar qq3 = 2*q[3]*q[3];
- _R(0,0) = 1 - qq2 - qq3;
- _R(0,1) = 2*(q[1]*q[2] - q[0]*q[3]);
- _R(0,2) = 2*(q[1]*q[3] + q[0]*q[2]);
- _R(1,0) = 2*(q[1]*q[2] + q[0]*q[3]);
- _R(1,1) = 1 - qq1 - qq3;
- _R(1,2) = 2*(q[2]*q[3] - q[0]*q[1]);
- _R(2,0) = 2*(q[1]*q[3] - q[0]*q[2]);
- _R(2,1) = 2*(q[2]*q[3] + q[0]*q[1]);
- _R(2,2) = 1 - qq1 - qq2;
-}
-
-
-
-int ConvertBody(RigidBody* body,RigidBody** bodies,int& numBodies)
-{
- if (!body || (body->getInvMass() == 0.f) )
- {
- return -1;
- }
- //first try to find
- int i,j;
- for (i=0;i<numBodies;i++)
- {
- if (bodies[i] == body)
- return i;
- }
- //if not found, create a new body
- bodies[numBodies++] = body;
- //convert data
-
-
- body->m_facc.setValue(0,0,0);
- body->m_tacc.setValue(0,0,0);
-
- //are the indices the same ?
- for (i=0;i<4;i++)
- {
- for ( j=0;j<3;j++)
- {
- body->m_invI[i+4*j] = 0.f;
- }
- }
- body->m_invI[0+4*0] = body->getInvInertiaDiagLocal()[0];
- body->m_invI[1+4*1] = body->getInvInertiaDiagLocal()[1];
- body->m_invI[2+4*2] = body->getInvInertiaDiagLocal()[2];
-
-
- SimdMatrix3x3 invI;
- invI.setIdentity();
- invI[0][0] = body->getInvInertiaDiagLocal()[0];
- invI[1][1] = body->getInvInertiaDiagLocal()[1];
- invI[2][2] = body->getInvInertiaDiagLocal()[2];
- SimdMatrix3x3 inertia = invI.inverse();
-
- for (i=0;i<3;i++)
- {
- for (j=0;j<3;j++)
- {
- body->m_I[i+4*j] = inertia[i][j];
- }
- }
- body->m_I[3+0*4] = 0.f;
- body->m_I[3+1*4] = 0.f;
- body->m_I[3+2*4] = 0.f;
- body->m_I[3+3*4] = 0.f;
-
-
- dQuaternion q;
-
- q[1] = body->getOrientation()[0];
- q[2] = body->getOrientation()[1];
- q[3] = body->getOrientation()[2];
- q[0] = body->getOrientation()[3];
-
- dRfromQ1(body->m_R,q);
-
- return numBodies-1;
-}
-
-
-
-
-
-#define MAX_JOINTS_1 8192
-
-static ContactJoint gJointArray[MAX_JOINTS_1];
-
-
-void ConvertConstraint(PersistentManifold* manifold,BU_Joint** joints,int& numJoints,
- RigidBody** bodies,int _bodyId0,int _bodyId1)
-{
-
-
- manifold->RefreshContactPoints(((RigidBody*)manifold->GetBody0())->getCenterOfMassTransform(),
- ((RigidBody*)manifold->GetBody1())->getCenterOfMassTransform());
-
- int bodyId0 = _bodyId0,bodyId1 = _bodyId1;
-
- int i,numContacts = manifold->GetNumContacts();
-
- bool swapBodies = (bodyId0 < 0);
-
-
- RigidBody* body0,*body1;
-
- if (swapBodies)
- {
- bodyId0 = _bodyId1;
- bodyId1 = _bodyId0;
-
- body0 = (RigidBody*)manifold->GetBody1();
- body1 = (RigidBody*)manifold->GetBody0();
-
- } else
- {
- body0 = (RigidBody*)manifold->GetBody0();
- body1 = (RigidBody*)manifold->GetBody1();
- }
-
- assert(bodyId0 >= 0);
-
- for (i=0;i<numContacts;i++)
- {
-
- assert (gCurJoint < MAX_JOINTS_1);
-
- ContactJoint* cont = new (&gJointArray[gCurJoint++]) ContactJoint( manifold ,i, swapBodies,body0,body1);
-
- cont->node[0].joint = cont;
- cont->node[0].body = bodyId0 >= 0 ? bodies[bodyId0] : 0;
-
- cont->node[1].joint = cont;
- cont->node[1].body = bodyId1 >= 0 ? bodies[bodyId1] : 0;
-
- joints[numJoints++] = cont;
- for (int i=0;i<6;i++)
- cont->lambda[i] = 0.f;
-
- cont->flags = 0;
-
- }
-
- //create a new contact constraint
-};
-
diff --git a/extern/bullet/BulletDynamics/ConstraintSolver/OdeConstraintSolver2.h b/extern/bullet/BulletDynamics/ConstraintSolver/OdeConstraintSolver2.h
deleted file mode 100644
index 7ae8d0eaa49..00000000000
--- a/extern/bullet/BulletDynamics/ConstraintSolver/OdeConstraintSolver2.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2005 Erwin Coumans http://www.erwincoumans.com
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies.
- * Erwin Coumans makes no representations about the suitability
- * of this software for any purpose.
- * It is provided "as is" without express or implied warranty.
-*/
-#ifndef ODE_CONSTRAINT_SOLVER_H
-#define ODE_CONSTRAINT_SOLVER_H
-
-#include "ConstraintSolver.h"
-
-
-class OdeConstraintSolver : public ConstraintSolver
-{
-
-public:
-
- virtual ~OdeConstraintSolver() {}
-
- virtual float SolveGroup(PersistentManifold** manifold,int numManifolds,const ContactSolverInfo& info);
-
-};
-
-
-
-
-#endif //ODE_CONSTRAINT_SOLVER_H