Refactoring:

Moved optional code to Extras: AlgebraicCCD,EPA,quickstep
Moved SimpleBroadphase data to OverlappingPairCache, and derive both SimpleBroadphase and AxisSweep3 from OverlappingPairCache.
Added ParallelPhysicsEnvironment (prepair more parallel mainloop)
Upgraded hardcoded limit from 1024/8192 to 32766/65535 (max objects / max overlapping pairs)
This commit is contained in:
ejcoumans
2006-06-29 20:57:47 +00:00
parent 28a8afe528
commit 9105c3af5a
51 changed files with 7428 additions and 7107 deletions

View File

@@ -48,6 +48,7 @@ void AxisSweep3::SetAabb(BroadphaseProxy* proxy,const SimdVector3& aabbMin,const
AxisSweep3::AxisSweep3(const SimdPoint3& worldAabbMin,const SimdPoint3& worldAabbMax, int maxHandles, int maxOverlaps)
:OverlappingPairCache(maxOverlaps)
{
//assert(bounds.HasVolume());

View File

@@ -21,13 +21,13 @@
#include "SimdPoint3.h"
#include "SimdVector3.h"
#include "SimpleBroadphase.h"
#include "OverlappingPairCache.h"
#include "BroadphaseProxy.h"
/// AxisSweep3 is an efficient implementation of the 3d axis sweep and prune broadphase.
/// It uses arrays rather then lists for storage of the 3 axis. Also it operates using integer coordinates instead of floats.
/// The TestOverlap check is optimized to check the array index, rather then the actual AABB coordinates/pos
class AxisSweep3 : public SimpleBroadphase
class AxisSweep3 : public OverlappingPairCache
{
public:

View File

@@ -0,0 +1,213 @@
/*
Bullet Continuous Collision Detection and Physics Library
Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it freely,
subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
#include "OverlappingPairCache.h"
#include "Dispatcher.h"
#include "CollisionAlgorithm.h"
OverlappingPairCache::OverlappingPairCache(int maxOverlap):
m_blockedForChanges(false),
m_NumOverlapBroadphasePair(0),
m_maxOverlap(maxOverlap)
{
m_OverlappingPairs = new BroadphasePair[maxOverlap];
}
OverlappingPairCache::~OverlappingPairCache()
{
delete [] m_OverlappingPairs;
}
void OverlappingPairCache::RemoveOverlappingPair(BroadphasePair& pair)
{
CleanOverlappingPair(pair);
int index = &pair - &m_OverlappingPairs[0];
//remove efficiently, swap with the last
m_OverlappingPairs[index] = m_OverlappingPairs[m_NumOverlapBroadphasePair-1];
m_NumOverlapBroadphasePair--;
}
void OverlappingPairCache::CleanOverlappingPair(BroadphasePair& pair)
{
for (int dispatcherId=0;dispatcherId<SIMPLE_MAX_ALGORITHMS;dispatcherId++)
{
if (pair.m_algorithms[dispatcherId])
{
{
delete pair.m_algorithms[dispatcherId];
pair.m_algorithms[dispatcherId]=0;
}
}
}
}
void OverlappingPairCache::AddOverlappingPair(BroadphaseProxy* proxy0,BroadphaseProxy* proxy1)
{
//don't add overlap with own
assert(proxy0 != proxy1);
if (!NeedsCollision(proxy0,proxy1))
return;
BroadphasePair pair(*proxy0,*proxy1);
m_OverlappingPairs[m_NumOverlapBroadphasePair] = pair;
int i;
for (i=0;i<SIMPLE_MAX_ALGORITHMS;i++)
{
assert(!m_OverlappingPairs[m_NumOverlapBroadphasePair].m_algorithms[i]);
m_OverlappingPairs[m_NumOverlapBroadphasePair].m_algorithms[i] = 0;
}
if (m_NumOverlapBroadphasePair >= m_maxOverlap)
{
//printf("Error: too many overlapping objects: m_NumOverlapBroadphasePair: %d\n",m_NumOverlapBroadphasePair);
#ifdef DEBUG
assert(0);
#endif
} else
{
m_NumOverlapBroadphasePair++;
}
}
BroadphasePair* OverlappingPairCache::FindPair(BroadphaseProxy* proxy0,BroadphaseProxy* proxy1)
{
BroadphasePair* foundPair = 0;
int i;
for (i=m_NumOverlapBroadphasePair-1;i>=0;i--)
{
BroadphasePair& pair = m_OverlappingPairs[i];
if (((pair.m_pProxy0 == proxy0) && (pair.m_pProxy1 == proxy1)) ||
((pair.m_pProxy0 == proxy1) && (pair.m_pProxy1 == proxy0)))
{
foundPair = &pair;
return foundPair;
}
}
return foundPair;
}
void OverlappingPairCache::CleanProxyFromPairs(BroadphaseProxy* proxy)
{
for (int i=0;i<m_NumOverlapBroadphasePair;i++)
{
BroadphasePair& pair = m_OverlappingPairs[i];
if (pair.m_pProxy0 == proxy ||
pair.m_pProxy1 == proxy)
{
CleanOverlappingPair(pair);
}
}
}
void OverlappingPairCache::RemoveOverlappingPairsContainingProxy(BroadphaseProxy* proxy)
{
int i;
for ( i=m_NumOverlapBroadphasePair-1;i>=0;i--)
{
BroadphasePair& pair = m_OverlappingPairs[i];
if (pair.m_pProxy0 == proxy ||
pair.m_pProxy1 == proxy)
{
RemoveOverlappingPair(pair);
}
}
}
void OverlappingPairCache::DispatchAllCollisionPairs(Dispatcher& dispatcher,DispatcherInfo& dispatchInfo)
{
m_blockedForChanges = true;
int i;
int dispatcherId = dispatcher.GetUniqueId();
RefreshOverlappingPairs();
for (i=0;i<m_NumOverlapBroadphasePair;i++)
{
BroadphasePair& pair = m_OverlappingPairs[i];
if (dispatcherId>= 0)
{
//dispatcher will keep algorithms persistent in the collision pair
if (!pair.m_algorithms[dispatcherId])
{
pair.m_algorithms[dispatcherId] = dispatcher.FindAlgorithm(
*pair.m_pProxy0,
*pair.m_pProxy1);
}
if (pair.m_algorithms[dispatcherId])
{
if (dispatchInfo.m_dispatchFunc == DispatcherInfo::DISPATCH_DISCRETE)
{
pair.m_algorithms[dispatcherId]->ProcessCollision(pair.m_pProxy0,pair.m_pProxy1,dispatchInfo);
} else
{
float toi = pair.m_algorithms[dispatcherId]->CalculateTimeOfImpact(pair.m_pProxy0,pair.m_pProxy1,dispatchInfo);
if (dispatchInfo.m_timeOfImpact > toi)
dispatchInfo.m_timeOfImpact = toi;
}
}
} else
{
//non-persistent algorithm dispatcher
CollisionAlgorithm* algo = dispatcher.FindAlgorithm(
*pair.m_pProxy0,
*pair.m_pProxy1);
if (algo)
{
if (dispatchInfo.m_dispatchFunc == DispatcherInfo::DISPATCH_DISCRETE)
{
algo->ProcessCollision(pair.m_pProxy0,pair.m_pProxy1,dispatchInfo);
} else
{
float toi = algo->CalculateTimeOfImpact(pair.m_pProxy0,pair.m_pProxy1,dispatchInfo);
if (dispatchInfo.m_timeOfImpact > toi)
dispatchInfo.m_timeOfImpact = toi;
}
}
}
}
m_blockedForChanges = false;
}

View File

@@ -0,0 +1,85 @@
/*
Bullet Continuous Collision Detection and Physics Library
Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it freely,
subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
#ifndef OVERLAPPING_PAIR_CACHE_H
#define OVERLAPPING_PAIR_CACHE_H
#include "BroadphaseInterface.h"
#include "BroadphaseProxy.h"
#include "SimdPoint3.h"
///OverlappingPairCache maintains the objects with overlapping AABB
///Typically managed by the Broadphase, Axis3Sweep or SimpleBroadphase
class OverlappingPairCache : public BroadphaseInterface
{
BroadphasePair* m_OverlappingPairs;
int m_NumOverlapBroadphasePair;
int m_maxOverlap;
//during the dispatch, check that user doesn't destroy/create proxy
bool m_blockedForChanges;
public:
OverlappingPairCache(int maxOverlap);
virtual ~OverlappingPairCache();
int GetNumOverlappingPairs() const
{
return m_NumOverlapBroadphasePair;
}
BroadphasePair& GetOverlappingPair(int index)
{
return m_OverlappingPairs[index];
}
void RemoveOverlappingPair(BroadphasePair& pair);
void CleanOverlappingPair(BroadphasePair& pair);
void AddOverlappingPair(BroadphaseProxy* proxy0,BroadphaseProxy* proxy1);
BroadphasePair* FindPair(BroadphaseProxy* proxy0,BroadphaseProxy* proxy1);
void CleanProxyFromPairs(BroadphaseProxy* proxy);
void RemoveOverlappingPairsContainingProxy(BroadphaseProxy* proxy);
inline bool NeedsCollision(BroadphaseProxy* proxy0,BroadphaseProxy* proxy1) const
{
bool collides = proxy0->m_collisionFilterGroup & proxy1->m_collisionFilterMask;
collides = collides && (proxy1->m_collisionFilterGroup & proxy0->m_collisionFilterMask);
return collides;
}
void DispatchAllCollisionPairs(Dispatcher& dispatcher,DispatcherInfo& dispatchInfo);
virtual void RefreshOverlappingPairs() =0;
};
#endif //OVERLAPPING_PAIR_CACHE_H

View File

@@ -36,18 +36,15 @@ void SimpleBroadphase::validate()
}
SimpleBroadphase::SimpleBroadphase(int maxProxies,int maxOverlap)
:m_firstFreeProxy(0),
:OverlappingPairCache(maxOverlap),
m_firstFreeProxy(0),
m_numProxies(0),
m_blockedForChanges(false),
m_NumOverlapBroadphasePair(0),
m_maxProxies(maxProxies),
m_maxOverlap(maxOverlap)
m_maxProxies(maxProxies)
{
m_proxies = new SimpleBroadphaseProxy[maxProxies];
m_freeProxies = new int[maxProxies];
m_pProxies = new SimpleBroadphaseProxy*[maxProxies];
m_OverlappingPairs = new BroadphasePair[maxOverlap];
int i;
@@ -62,7 +59,6 @@ SimpleBroadphase::~SimpleBroadphase()
delete[] m_proxies;
delete []m_freeProxies;
delete [] m_pProxies;
delete [] m_OverlappingPairs;
/*int i;
for (i=m_numProxies-1;i>=0;i--)
@@ -99,19 +95,7 @@ BroadphaseProxy* SimpleBroadphase::CreateProxy( const SimdVector3& min, const
return proxy;
}
void SimpleBroadphase::RemoveOverlappingPairsContainingProxy(BroadphaseProxy* proxy)
{
int i;
for ( i=m_NumOverlapBroadphasePair-1;i>=0;i--)
{
BroadphasePair& pair = m_OverlappingPairs[i];
if (pair.m_pProxy0 == proxy ||
pair.m_pProxy1 == proxy)
{
RemoveOverlappingPair(pair);
}
}
}
void SimpleBroadphase::DestroyProxy(BroadphaseProxy* proxyOrg)
{
@@ -148,93 +132,13 @@ void SimpleBroadphase::SetAabb(BroadphaseProxy* proxy,const SimdVector3& aabbMin
sbp->m_max = aabbMax;
}
void SimpleBroadphase::CleanOverlappingPair(BroadphasePair& pair)
{
for (int dispatcherId=0;dispatcherId<SIMPLE_MAX_ALGORITHMS;dispatcherId++)
{
if (pair.m_algorithms[dispatcherId])
{
{
delete pair.m_algorithms[dispatcherId];
pair.m_algorithms[dispatcherId]=0;
}
}
}
}
void SimpleBroadphase::CleanProxyFromPairs(BroadphaseProxy* proxy)
{
for (int i=0;i<m_NumOverlapBroadphasePair;i++)
{
BroadphasePair& pair = m_OverlappingPairs[i];
if (pair.m_pProxy0 == proxy ||
pair.m_pProxy1 == proxy)
{
CleanOverlappingPair(pair);
}
}
}
void SimpleBroadphase::AddOverlappingPair(BroadphaseProxy* proxy0,BroadphaseProxy* proxy1)
{
//don't add overlap with own
assert(proxy0 != proxy1);
if (!NeedsCollision(proxy0,proxy1))
return;
BroadphasePair pair(*proxy0,*proxy1);
m_OverlappingPairs[m_NumOverlapBroadphasePair] = pair;
int i;
for (i=0;i<SIMPLE_MAX_ALGORITHMS;i++)
{
assert(!m_OverlappingPairs[m_NumOverlapBroadphasePair].m_algorithms[i]);
m_OverlappingPairs[m_NumOverlapBroadphasePair].m_algorithms[i] = 0;
}
if (m_NumOverlapBroadphasePair >= m_maxOverlap)
{
//printf("Error: too many overlapping objects: m_NumOverlapBroadphasePair: %d\n",m_NumOverlapBroadphasePair);
#ifdef DEBUG
assert(0);
#endif
} else
{
m_NumOverlapBroadphasePair++;
}
}
BroadphasePair* SimpleBroadphase::FindPair(BroadphaseProxy* proxy0,BroadphaseProxy* proxy1)
{
BroadphasePair* foundPair = 0;
int i;
for (i=m_NumOverlapBroadphasePair-1;i>=0;i--)
{
BroadphasePair& pair = m_OverlappingPairs[i];
if (((pair.m_pProxy0 == proxy0) && (pair.m_pProxy1 == proxy1)) ||
((pair.m_pProxy0 == proxy1) && (pair.m_pProxy1 == proxy0)))
{
foundPair = &pair;
return foundPair;
}
}
return foundPair;
}
void SimpleBroadphase::RemoveOverlappingPair(BroadphasePair& pair)
{
CleanOverlappingPair(pair);
int index = &pair - &m_OverlappingPairs[0];
//remove efficiently, swap with the last
m_OverlappingPairs[index] = m_OverlappingPairs[m_NumOverlapBroadphasePair-1];
m_NumOverlapBroadphasePair--;
}
bool SimpleBroadphase::AabbOverlap(SimpleBroadphaseProxy* proxy0,SimpleBroadphaseProxy* proxy1)
{
@@ -269,9 +173,10 @@ void SimpleBroadphase::RefreshOverlappingPairs()
}
//then remove non-overlapping ones
for (i=0;i<m_NumOverlapBroadphasePair;i++)
for (i=0;i<GetNumOverlappingPairs();i++)
{
BroadphasePair& pair = m_OverlappingPairs[i];
BroadphasePair& pair = GetOverlappingPair(i);
SimpleBroadphaseProxy* proxy0 = GetSimpleProxyFromProxy(pair.m_pProxy0);
SimpleBroadphaseProxy* proxy1 = GetSimpleProxyFromProxy(pair.m_pProxy1);
if (!AabbOverlap(proxy0,proxy1))
@@ -284,69 +189,4 @@ void SimpleBroadphase::RefreshOverlappingPairs()
}
void SimpleBroadphase::DispatchAllCollisionPairs(Dispatcher& dispatcher,DispatcherInfo& dispatchInfo)
{
m_blockedForChanges = true;
int i;
int dispatcherId = dispatcher.GetUniqueId();
RefreshOverlappingPairs();
for (i=0;i<m_NumOverlapBroadphasePair;i++)
{
BroadphasePair& pair = m_OverlappingPairs[i];
if (dispatcherId>= 0)
{
//dispatcher will keep algorithms persistent in the collision pair
if (!pair.m_algorithms[dispatcherId])
{
pair.m_algorithms[dispatcherId] = dispatcher.FindAlgorithm(
*pair.m_pProxy0,
*pair.m_pProxy1);
}
if (pair.m_algorithms[dispatcherId])
{
if (dispatchInfo.m_dispatchFunc == DispatcherInfo::DISPATCH_DISCRETE)
{
pair.m_algorithms[dispatcherId]->ProcessCollision(pair.m_pProxy0,pair.m_pProxy1,dispatchInfo);
} else
{
float toi = pair.m_algorithms[dispatcherId]->CalculateTimeOfImpact(pair.m_pProxy0,pair.m_pProxy1,dispatchInfo);
if (dispatchInfo.m_timeOfImpact > toi)
dispatchInfo.m_timeOfImpact = toi;
}
}
} else
{
//non-persistent algorithm dispatcher
CollisionAlgorithm* algo = dispatcher.FindAlgorithm(
*pair.m_pProxy0,
*pair.m_pProxy1);
if (algo)
{
if (dispatchInfo.m_dispatchFunc == DispatcherInfo::DISPATCH_DISCRETE)
{
algo->ProcessCollision(pair.m_pProxy0,pair.m_pProxy1,dispatchInfo);
} else
{
float toi = algo->CalculateTimeOfImpact(pair.m_pProxy0,pair.m_pProxy1,dispatchInfo);
if (dispatchInfo.m_timeOfImpact > toi)
dispatchInfo.m_timeOfImpact = toi;
}
}
}
}
m_blockedForChanges = false;
}

View File

@@ -16,12 +16,9 @@ subject to the following restrictions:
#ifndef SIMPLE_BROADPHASE_H
#define SIMPLE_BROADPHASE_H
//#define SIMPLE_MAX_PROXIES 8192
//#define SIMPLE_MAX_OVERLAP 4096
#include "BroadphaseInterface.h"
#include "BroadphaseProxy.h"
#include "SimdPoint3.h"
#include "OverlappingPairCache.h"
struct SimpleBroadphaseProxy : public BroadphaseProxy
{
@@ -40,7 +37,7 @@ struct SimpleBroadphaseProxy : public BroadphaseProxy
};
///SimpleBroadphase is a brute force aabb culling broadphase based on O(n^2) aabb checks
class SimpleBroadphase : public BroadphaseInterface
class SimpleBroadphase : public OverlappingPairCache
{
SimpleBroadphaseProxy* m_proxies;
@@ -50,14 +47,10 @@ class SimpleBroadphase : public BroadphaseInterface
SimpleBroadphaseProxy** m_pProxies;
int m_numProxies;
//during the dispatch, check that user doesn't destroy/create proxy
bool m_blockedForChanges;
BroadphasePair* m_OverlappingPairs;
int m_NumOverlapBroadphasePair;
int m_maxProxies;
int m_maxOverlap;
inline SimpleBroadphaseProxy* GetSimpleProxyFromProxy(BroadphaseProxy* proxy)
{
@@ -70,13 +63,8 @@ class SimpleBroadphase : public BroadphaseInterface
void validate();
protected:
void RemoveOverlappingPair(BroadphasePair& pair);
void CleanOverlappingPair(BroadphasePair& pair);
void RemoveOverlappingPairsContainingProxy(BroadphaseProxy* proxy);
void AddOverlappingPair(BroadphaseProxy* proxy0,BroadphaseProxy* proxy1);
BroadphasePair* FindPair(BroadphaseProxy* proxy0,BroadphaseProxy* proxy1);
virtual void RefreshOverlappingPairs();
public:
SimpleBroadphase(int maxProxies=4096,int maxOverlap=8192);
@@ -88,17 +76,10 @@ public:
virtual void DestroyProxy(BroadphaseProxy* proxy);
virtual void SetAabb(BroadphaseProxy* proxy,const SimdVector3& aabbMin,const SimdVector3& aabbMax);
virtual void CleanProxyFromPairs(BroadphaseProxy* proxy);
virtual void DispatchAllCollisionPairs(Dispatcher& dispatcher,DispatcherInfo& dispatchInfo);
inline bool NeedsCollision(BroadphaseProxy* proxy0,BroadphaseProxy* proxy1) const
{
bool collides = proxy0->m_collisionFilterGroup & proxy1->m_collisionFilterMask;
collides = collides && (proxy1->m_collisionFilterGroup & proxy0->m_collisionFilterMask);
return collides;
}
};

View File

@@ -79,7 +79,9 @@ CollisionDispatcher::CollisionDispatcher ():
PersistentManifold* CollisionDispatcher::GetNewManifold(void* b0,void* b1)
{
gNumManifold++;
//printf("GetNewManifoldResult: gNumManifold %d\n",gNumManifold);
//ASSERT(gNumManifold < 65535);
CollisionObject* body0 = (CollisionObject*)b0;
CollisionObject* body1 = (CollisionObject*)b1;

View File

@@ -14,7 +14,7 @@ subject to the following restrictions:
*/
#include "SimpleConstraintSolver.h"
#include "SequentialImpulseConstraintSolver.h"
#include "NarrowPhaseCollision/PersistentManifold.h"
#include "Dynamics/RigidBody.h"
#include "ContactConstraint.h"
@@ -45,14 +45,14 @@ bool MyContactDestroyedCallback(void* userPersistentData)
}
SimpleConstraintSolver::SimpleConstraintSolver()
SequentialImpulseConstraintSolver::SequentialImpulseConstraintSolver()
{
gContactCallback = &MyContactDestroyedCallback;
}
/// SimpleConstraintSolver Sequentially applies impulses
float SimpleConstraintSolver::SolveGroup(PersistentManifold** manifoldPtr, int numManifolds,const ContactSolverInfo& infoGlobal,IDebugDraw* debugDrawer)
/// SequentialImpulseConstraintSolver Sequentially applies impulses
float SequentialImpulseConstraintSolver::SolveGroup(PersistentManifold** manifoldPtr, int numManifolds,const ContactSolverInfo& infoGlobal,IDebugDraw* debugDrawer)
{
ContactSolverInfo info = infoGlobal;
@@ -113,7 +113,7 @@ SimdScalar restitutionCurve(SimdScalar rel_vel, SimdScalar restitution)
float SimpleConstraintSolver::Solve(PersistentManifold* manifoldPtr, const ContactSolverInfo& info,int iter,IDebugDraw* debugDrawer)
float SequentialImpulseConstraintSolver::Solve(PersistentManifold* manifoldPtr, const ContactSolverInfo& info,int iter,IDebugDraw* debugDrawer)
{
RigidBody* body0 = (RigidBody*)manifoldPtr->GetBody0();
@@ -294,7 +294,7 @@ float SimpleConstraintSolver::Solve(PersistentManifold* manifoldPtr, const Conta
return maxImpulse;
}
float SimpleConstraintSolver::SolveFriction(PersistentManifold* manifoldPtr, const ContactSolverInfo& info,int iter,IDebugDraw* debugDrawer)
float SequentialImpulseConstraintSolver::SolveFriction(PersistentManifold* manifoldPtr, const ContactSolverInfo& info,int iter,IDebugDraw* debugDrawer)
{
RigidBody* body0 = (RigidBody*)manifoldPtr->GetBody0();
RigidBody* body1 = (RigidBody*)manifoldPtr->GetBody1();

View File

@@ -13,17 +13,17 @@ subject to the following restrictions:
3. This notice may not be removed or altered from any source distribution.
*/
#ifndef SIMPLE_CONSTRAINT_SOLVER_H
#define SIMPLE_CONSTRAINT_SOLVER_H
#ifndef SEQUENTIAL_IMPULSE_CONSTRAINT_SOLVER_H
#define SEQUENTIAL_IMPULSE_CONSTRAINT_SOLVER_H
#include "ConstraintSolver.h"
class IDebugDraw;
/// SimpleConstraintSolver uses a Propagation Method and Sequentially applies impulses
/// SequentialImpulseConstraintSolver uses a Propagation Method and Sequentially applies impulses
/// The approach is the 3D version of Erin Catto's GDC 2006 tutorial. See http://www.gphysics.com
/// Although Sequential Impulse is more intuitive, it is mathematically equivalent to Projected Successive Overrelaxation (iterative LCP)
/// Applies impulses for combined restitution and penetration recovery and to simulate friction
class SimpleConstraintSolver : public ConstraintSolver
class SequentialImpulseConstraintSolver : public ConstraintSolver
{
float Solve(PersistentManifold* manifold, const ContactSolverInfo& info,int iter,IDebugDraw* debugDrawer);
float SolveFriction(PersistentManifold* manifoldPtr, const ContactSolverInfo& info,int iter,IDebugDraw* debugDrawer);
@@ -31,13 +31,13 @@ class SimpleConstraintSolver : public ConstraintSolver
public:
SimpleConstraintSolver();
SequentialImpulseConstraintSolver();
virtual ~SimpleConstraintSolver() {}
virtual ~SequentialImpulseConstraintSolver() {}
virtual float SolveGroup(PersistentManifold** manifold,int numManifolds,const ContactSolverInfo& info, IDebugDraw* debugDrawer=0);
};
#endif //SIMPLE_CONSTRAINT_SOLVER_H
#endif //SEQUENTIAL_IMPULSE_CONSTRAINT_SOLVER_H

View File

@@ -31,7 +31,6 @@ typedef SimdScalar dMatrix3[4*3];
extern float gLinearAirDamping;
extern bool gUseEpa;
#define MAX_RIGIDBODIES 8192
/// RigidBody class for RigidBody Dynamics

View File

@@ -69,14 +69,17 @@ extern float eye[3];
extern int glutScreenWidth;
extern int glutScreenHeight;
const int maxProxies = 32766;
const int maxOverlap = 65535;
#ifdef _DEBUG
const int numObjects = 22;
const int numObjects = 5000;
#else
const int numObjects = 120;
const int numObjects = 2000;
#endif
const int maxNumObjects = 450;
const int maxNumObjects = 32760;
MyMotionState ms[maxNumObjects];
CcdPhysicsController* physObjects[maxNumObjects] = {0,0,0,0};
@@ -127,11 +130,11 @@ int main(int argc,char** argv)
CollisionDispatcher* dispatcher = new CollisionDispatcher();
SimdVector3 worldAabbMin(-10000,-10000,-10000);
SimdVector3 worldAabbMax(10000,10000,10000);
SimdVector3 worldAabbMin(-30000,-30000,-30000);
SimdVector3 worldAabbMax(30000,30000,30000);
BroadphaseInterface* broadphase = new AxisSweep3(worldAabbMin,worldAabbMax);
//BroadphaseInterface* broadphase = new SimpleBroadphase();
//BroadphaseInterface* broadphase = new AxisSweep3(worldAabbMin,worldAabbMax,maxProxies,maxOverlap);
BroadphaseInterface* broadphase = new SimpleBroadphase(maxProxies,maxOverlap);
physicsEnvironmentPtr = new CcdPhysicsEnvironment(dispatcher,broadphase);
physicsEnvironmentPtr->setDeactivationTime(2.f);

View File

@@ -22,8 +22,8 @@ subject to the following restrictions:
#include "Dynamics/RigidBody.h"
#include "BroadphaseCollision/AxisSweep3.h"
#include "ConstraintSolver/SimpleConstraintSolver.h"
#include "ConstraintSolver/OdeConstraintSolver.h"
#include "ConstraintSolver/SequentialImpulseConstraintSolver.h"
//#include "ConstraintSolver/OdeConstraintSolver.h"
#include "CollisionDispatch/CollisionDispatcher.h"
#include "BroadphaseCollision/SimpleBroadphase.h"
#include "CollisionShapes/TriangleMeshShape.h"
@@ -216,8 +216,8 @@ int main(int argc,char** argv)
// GLDebugDrawer debugDrawer;
//ConstraintSolver* solver = new SimpleConstraintSolver;
ConstraintSolver* solver = new OdeConstraintSolver;
ConstraintSolver* solver = new SequentialImpulseConstraintSolver;
//ConstraintSolver* solver = new OdeConstraintSolver;
CollisionDispatcher* dispatcher = new CollisionDispatcher();

View File

@@ -22,8 +22,8 @@ subject to the following restrictions:
#include "CollisionShapes/EmptyShape.h"
#include "Dynamics/RigidBody.h"
#include "ConstraintSolver/SimpleConstraintSolver.h"
#include "ConstraintSolver/OdeConstraintSolver.h"
#include "ConstraintSolver/SequentialImpulseConstraintSolver.h"
//#include "ConstraintSolver/OdeConstraintSolver.h"
#include "CollisionDispatch/CollisionDispatcher.h"
#include "BroadphaseCollision/SimpleBroadphase.h"
#include "IDebugDraw.h"
@@ -72,7 +72,7 @@ int main(int argc,char** argv)
{
ConstraintSolver* solver = new SimpleConstraintSolver;
ConstraintSolver* solver = new SequentialImpulseConstraintSolver;
//ConstraintSolver* solver = new OdeConstraintSolver;
CollisionDispatcher* dispatcher = new CollisionDispatcher();

View File

@@ -48,9 +48,11 @@ subject to the following restrictions:
#include "NarrowPhaseCollision/Epa.h"
#include "NarrowPhaseCollision/ConvexPenetrationDepthSolver.h"
#include "NarrowPhaseCollision/EpaPenetrationDepthSolver.h"
EpaPenetrationDepthSolver epaPenDepthSolver;
SimplexSolverInterface simplexSolver;
EpaPenetrationDepthSolver epaPenDepthSolver;
int screenWidth = 640.f;
int screenHeight = 480.f;

View File

@@ -29,7 +29,10 @@
#include "NarrowPhaseCollision/GjkConvexCast.h"
#include "NarrowPhaseCollision/ContinuousConvexCollision.h"
#include "NarrowPhaseCollision/SubSimplexConvexCast.h"
#ifdef USE_ALGEBRAIC_CCD
#include "NarrowPhaseCollision/BU_CollisionPair.h"
#endif //USE_ALGEBRAIC_CCD
#include "CollisionShapes/SphereShape.h"
@@ -191,7 +194,7 @@ void clientDisplay(void) {
GjkConvexCast convexCaster1(shapePtr[0],shapePtr[i],&gGjkSimplexSolver);
//BU_CollisionPair (algebraic version) is currently broken, will look into this
BU_CollisionPair convexCaster2(shapePtr[0],shapePtr[i]);
//BU_CollisionPair convexCaster2(shapePtr[0],shapePtr[i]);
SubsimplexConvexCast convexCaster3(shapePtr[0],shapePtr[i],&gGjkSimplexSolver);
gGjkSimplexSolver.reset();

View File

@@ -30,8 +30,9 @@ Very basic raytracer, rendering into a texture.
#include "NarrowPhaseCollision/SubSimplexConvexCast.h"
#include "NarrowPhaseCollision/GjkConvexCast.h"
#include "NarrowPhaseCollision/ContinuousConvexCollision.h"
#ifdef USE_ALGEBRAIC_CCD
#include "NarrowPhaseCollision/BU_CollisionPair.h"
#endif //USE_ALGEBRAIC_CCD
#include "CollisionShapes/SphereShape.h"

View File

@@ -36,8 +36,7 @@ subject to the following restrictions:
#include "BroadphaseCollision/Dispatcher.h"
#include "NarrowPhaseCollision/PersistentManifold.h"
#include "CollisionShapes/TriangleMeshShape.h"
#include "ConstraintSolver/OdeConstraintSolver.h"
#include "ConstraintSolver/SimpleConstraintSolver.h"
#include "ConstraintSolver/SequentialImpulseConstraintSolver.h"
//profiling/timings
@@ -325,7 +324,7 @@ static void DrawAabb(IDebugDraw* debugDrawer,const SimdVector3& from,const SimdV
CcdPhysicsEnvironment::CcdPhysicsEnvironment(CollisionDispatcher* dispatcher,BroadphaseInterface* broadphase)
:m_scalingPropagated(false),
m_numIterations(10),
m_numIterations(4),
m_numTimeSubSteps(1),
m_ccdMode(0),
m_solverType(-1),
@@ -1034,7 +1033,7 @@ void CcdPhysicsEnvironment::setSolverType(int solverType)
if (m_solverType != solverType)
{
m_solver = new SimpleConstraintSolver();
m_solver = new SequentialImpulseConstraintSolver();
break;
}
@@ -1044,7 +1043,7 @@ void CcdPhysicsEnvironment::setSolverType(int solverType)
default:
if (m_solverType != solverType)
{
m_solver = new OdeConstraintSolver();
// m_solver = new OdeConstraintSolver();
break;
}

View File

@@ -53,6 +53,9 @@ class BU_Joint;
//see below
//to bridge with ODE quickstep, we make a temp copy of the rigidbodies in each simultion island, stored in an array of size MAX_RIGIDBODIES
#define MAX_QUICKSTEP_RIGIDBODIES 8192
OdeConstraintSolver::OdeConstraintSolver():
m_cfm(0.f),//1e-5f),
m_erp(0.4f)
@@ -72,10 +75,10 @@ float OdeConstraintSolver::SolveGroup(PersistentManifold** manifoldPtr, int numM
m_CurJoint = 0;
RigidBody* bodies [MAX_RIGIDBODIES];
RigidBody* bodies [MAX_QUICKSTEP_RIGIDBODIES];
int numBodies = 0;
BU_Joint* joints [MAX_RIGIDBODIES*4];
BU_Joint* joints [MAX_QUICKSTEP_RIGIDBODIES*4];
int numJoints = 0;
for (int j=0;j<numManifolds;j++)
@@ -186,7 +189,7 @@ int OdeConstraintSolver::ConvertBody(RigidBody* body,RigidBody** bodies,int& num
#define MAX_JOINTS_1 8192
#define MAX_JOINTS_1 65535
static ContactJoint gJointArray[MAX_JOINTS_1];

View File

@@ -1,15 +1,17 @@
<?xml version="1.0" encoding = "Windows-1252"?>
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="libbullet"
ProjectGUID="{90F5975E-550B-EEC8-9A8A-B8581D3FCF97}"
SccProjectName=""
SccLocalPath="">
>
<Platforms>
<Platform
Name="Win32"/>
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Release|Win32"
@@ -17,73 +19,82 @@
IntermediateDirectory="..\..\out\release8\build\libbullet\"
ConfigurationType="4"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE">
ATLMinimizesCRunTimeLibraryUsage="false"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG;_LIB;_WINDOWS"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName="..\..\out\release8\build\libbullet\libbullet.tlb"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
StringPooling="TRUE"
EnableFunctionLevelLinking="TRUE"
RuntimeLibrary="0"
DebugInformationFormat="3"
BufferSecurityCheck="FALSE"
PreprocessorDefinitions="NDEBUG;_LIB;_WINDOWS;WIN32"
OptimizeForProcessor="1"
ExceptionHandling="0"
AdditionalOptions=" "
Optimization="2"
AdditionalIncludeDirectories=".;..\..;..\..\Bullet;..\..\BulletDynamics;..\..\LinearMath"
PreprocessorDefinitions="NDEBUG;_LIB;_WINDOWS;WIN32"
StringPooling="true"
ExceptionHandling="0"
RuntimeLibrary="0"
BufferSecurityCheck="false"
EnableFunctionLevelLinking="true"
TreatWChar_tAsBuiltInType="false"
PrecompiledHeaderFile="..\..\out\release8\build\libbullet\libbullet.pch"
AssemblerListingLocation="..\..\out\release8\build\libbullet\"
ObjectFile="..\..\out\release8\build\libbullet\"
ProgramDataBaseFileName="..\..\out\release8\build\libbullet\bullet.pdb"
WarningLevel="3"
SuppressStartupBanner="TRUE"
Detect64BitPortabilityProblems="TRUE"
TreatWChar_tAsBuiltInType="false"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
LinkIncremental="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
GenerateDebugInformation="TRUE"
IgnoreDefaultLibraryNames="LIBC,LIBCD"
AdditionalOptions=" "
AdditionalDependencies=""
IgnoreImportLibrary="TRUE"
SuppressStartupBanner="TRUE"
GenerateManifest="false"
AdditionalLibraryDirectories=""
ProgramDatabaseFile="..\..\out\release8\build\libbullet\bullet.pdb"
TargetMachine="1"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\..\out\release8\libs\libbullet.lib"
SuppressStartupBanner="TRUE"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG;_LIB;_WINDOWS"
MkTypLibCompatible="TRUE"
SuppressStartupBanner="TRUE"
TargetEnvironment="1"
TypeLibraryName="..\..\out\release8\build\libbullet\libbullet.tlb"/>
<Tool
Name="VCPostBuildEventTool"
SuppressStartupBanner="true"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
CompileAs="0"
/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG;_LIB;_WINDOWS;PROJECTGEN_VERSION=8"
Culture="1033"
AdditionalIncludeDirectories=".;..\..;..\..\Bullet;..\..\BulletDynamics;..\..\LinearMath"
Culture="1033"/>
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCWebDeploymentTool"/>
Name="VCLibrarianTool"
OutputFile="..\..\out\release8\libs\libbullet.lib"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug|Win32"
@@ -91,471 +102,554 @@
IntermediateDirectory="..\..\out\debug8\build\libbullet\"
ConfigurationType="4"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE">
ATLMinimizesCRunTimeLibraryUsage="false"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG;_LIB;_WINDOWS"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName="..\..\out\debug8\build\libbullet\libbullet.tlb"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
MinimalRebuild="TRUE"
DebugInformationFormat="4"
RuntimeTypeInfo="FALSE"
RuntimeLibrary="1"
PreprocessorDefinitions="_DEBUG;_LIB;_WINDOWS;WIN32"
OptimizeForProcessor="1"
ExceptionHandling="0"
AdditionalOptions=" "
Optimization="0"
AdditionalIncludeDirectories=".;..\..;..\..\Bullet;..\..\BulletDynamics;..\..\LinearMath"
PreprocessorDefinitions="_DEBUG;_LIB;_WINDOWS;WIN32"
MinimalRebuild="true"
ExceptionHandling="0"
RuntimeLibrary="1"
TreatWChar_tAsBuiltInType="false"
RuntimeTypeInfo="false"
PrecompiledHeaderFile="..\..\out\debug8\build\libbullet\libbullet.pch"
AssemblerListingLocation="..\..\out\debug8\build\libbullet\"
ObjectFile="..\..\out\debug8\build\libbullet\"
ProgramDataBaseFileName="..\..\out\debug8\build\libbullet\bullet.pdb"
WarningLevel="3"
SuppressStartupBanner="TRUE"
Detect64BitPortabilityProblems="TRUE"
TreatWChar_tAsBuiltInType="false"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="TRUE"
IgnoreDefaultLibraryNames="LIBC,LIBCD"
AdditionalOptions=" "
AdditionalDependencies=""
IgnoreImportLibrary="TRUE"
SuppressStartupBanner="TRUE"
GenerateManifest="false"
AdditionalLibraryDirectories=""
ProgramDatabaseFile="..\..\out\debug8\build\libbullet\bullet.pdb"
TargetMachine="1"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\..\out\debug8\libs\libbullet_d.lib"
SuppressStartupBanner="TRUE"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG;_LIB;_WINDOWS"
MkTypLibCompatible="TRUE"
SuppressStartupBanner="TRUE"
TargetEnvironment="1"
TypeLibraryName="..\..\out\debug8\build\libbullet\libbullet.tlb"/>
<Tool
Name="VCPostBuildEventTool"
SuppressStartupBanner="true"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
CompileAs="0"
/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG;_LIB;_WINDOWS;PROJECTGEN_VERSION=8"
Culture="1033"
AdditionalIncludeDirectories=".;..\..;..\..\Bullet;..\..\BulletDynamics;..\..\LinearMath"
Culture="1033"/>
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCWebDeploymentTool"/>
Name="VCLibrarianTool"
OutputFile="..\..\out\debug8\libs\libbullet_d.lib"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="">
>
<File
RelativePath="..\..\Bullet\BroadphaseCollision\AxisSweep3.cpp">
RelativePath="..\..\Bullet\BroadphaseCollision\AxisSweep3.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\BroadphaseCollision\BroadphaseProxy.cpp">
RelativePath="..\..\Bullet\CollisionShapes\BoxShape.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\BroadphaseCollision\CollisionAlgorithm.cpp">
RelativePath="..\..\Bullet\BroadphaseCollision\BroadphaseProxy.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\BroadphaseCollision\Dispatcher.cpp">
RelativePath="..\..\Bullet\CollisionShapes\BvhTriangleMeshShape.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\BroadphaseCollision\SimpleBroadphase.cpp">
RelativePath="..\..\Bullet\BroadphaseCollision\CollisionAlgorithm.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionDispatch\CollisionDispatcher.cpp">
RelativePath="..\..\Bullet\CollisionDispatch\CollisionDispatcher.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionDispatch\CollisionObject.cpp">
RelativePath="..\..\Bullet\CollisionDispatch\CollisionObject.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionDispatch\CollisionWorld.cpp">
RelativePath="..\..\Bullet\CollisionShapes\CollisionShape.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionDispatch\CompoundCollisionAlgorithm.cpp">
RelativePath="..\..\Bullet\CollisionDispatch\CollisionWorld.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionDispatch\ConvexConcaveCollisionAlgorithm.cpp">
RelativePath="..\..\Bullet\CollisionDispatch\CompoundCollisionAlgorithm.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionDispatch\ConvexConvexAlgorithm.cpp">
RelativePath="..\..\Bullet\CollisionShapes\CompoundShape.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionDispatch\EmptyCollisionAlgorithm.cpp">
RelativePath="..\..\Bullet\CollisionShapes\ConeShape.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionDispatch\ManifoldResult.cpp">
RelativePath="..\..\Bullet\NarrowPhaseCollision\ContinuousConvexCollision.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionDispatch\UnionFind.cpp">
RelativePath="..\..\Bullet\NarrowPhaseCollision\ConvexCast.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\BoxShape.cpp">
RelativePath="..\..\Bullet\CollisionDispatch\ConvexConcaveCollisionAlgorithm.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\BvhTriangleMeshShape.cpp">
RelativePath="..\..\Bullet\CollisionDispatch\ConvexConvexAlgorithm.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\CollisionShape.cpp">
RelativePath="..\..\Bullet\CollisionShapes\ConvexHullShape.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\CompoundShape.cpp">
RelativePath="..\..\Bullet\CollisionShapes\ConvexShape.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\ConeShape.cpp">
RelativePath="..\..\Bullet\CollisionShapes\ConvexTriangleMeshShape.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\ConvexHullShape.cpp">
RelativePath="..\..\Bullet\CollisionShapes\CylinderShape.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\ConvexShape.cpp">
RelativePath="..\..\Bullet\BroadphaseCollision\Dispatcher.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\ConvexTriangleMeshShape.cpp">
RelativePath="..\..\Bullet\CollisionDispatch\EmptyCollisionAlgorithm.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\CylinderShape.cpp">
RelativePath="..\..\Bullet\CollisionShapes\EmptyShape.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\EmptyShape.cpp">
RelativePath="..\..\Bullet\NarrowPhaseCollision\GjkConvexCast.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\MinkowskiSumShape.cpp">
RelativePath="..\..\Bullet\NarrowPhaseCollision\GjkPairDetector.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\MultiSphereShape.cpp">
RelativePath="..\..\Bullet\NarrowPhaseCollision\Hull.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\OptimizedBvh.cpp">
RelativePath="..\..\Bullet\NarrowPhaseCollision\ManifoldContactAddResult.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\PolyhedralConvexShape.cpp">
RelativePath="..\..\Bullet\CollisionDispatch\ManifoldResult.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\Simplex1to4Shape.cpp">
RelativePath="..\..\Bullet\NarrowPhaseCollision\MinkowskiPenetrationDepthSolver.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\SphereShape.cpp">
RelativePath="..\..\Bullet\CollisionShapes\MinkowskiSumShape.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\StridingMeshInterface.cpp">
RelativePath="..\..\Bullet\CollisionShapes\MultiSphereShape.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\TriangleCallback.cpp">
RelativePath="..\..\Bullet\CollisionShapes\OptimizedBvh.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\TriangleIndexVertexArray.cpp">
RelativePath="..\..\Bullet\NarrowPhaseCollision\PersistentManifold.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\TriangleMesh.cpp">
RelativePath="..\..\Bullet\CollisionShapes\PolyhedralConvexShape.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\TriangleMeshShape.cpp">
RelativePath="..\..\Bullet\NarrowPhaseCollision\RaycastCallback.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_AlgebraicPolynomialSolver.cpp">
RelativePath="..\..\Bullet\NarrowPhaseCollision\Shape.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_Collidable.cpp">
RelativePath="..\..\Bullet\BroadphaseCollision\SimpleBroadphase.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_CollisionPair.cpp">
RelativePath="..\..\Bullet\CollisionShapes\Simplex1to4Shape.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_EdgeEdge.cpp">
RelativePath="..\..\Bullet\CollisionShapes\SphereShape.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_Screwing.cpp">
RelativePath="..\..\Bullet\CollisionShapes\StridingMeshInterface.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_VertexPoly.cpp">
RelativePath="..\..\Bullet\NarrowPhaseCollision\SubSimplexConvexCast.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\ContinuousConvexCollision.cpp">
RelativePath="..\..\Bullet\CollisionShapes\TriangleCallback.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\ConvexCast.cpp">
RelativePath="..\..\Bullet\CollisionShapes\TriangleIndexVertexArray.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\Epa.cpp">
RelativePath="..\..\Bullet\CollisionShapes\TriangleMesh.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\EpaFace.cpp">
RelativePath="..\..\Bullet\CollisionShapes\TriangleMeshShape.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\EpaPenetrationDepthSolver.cpp">
RelativePath="..\..\Bullet\CollisionDispatch\UnionFind.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\EpaPolyhedron.cpp">
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\GjkConvexCast.cpp">
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\GjkPairDetector.cpp">
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\Hull.cpp">
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\ManifoldContactAddResult.cpp">
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\MinkowskiPenetrationDepthSolver.cpp">
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\PersistentManifold.cpp">
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\RaycastCallback.cpp">
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\Shape.cpp">
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\SubSimplexConvexCast.cpp">
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\VoronoiSimplexSolver.cpp">
RelativePath="..\..\Bullet\NarrowPhaseCollision\VoronoiSimplexSolver.cpp"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="">
>
<File
RelativePath="..\..\Bullet\BroadphaseCollision\AxisSweep3.h">
RelativePath="..\..\Bullet\BroadphaseCollision\AxisSweep3.h"
>
</File>
<File
RelativePath="..\..\Bullet\BroadphaseCollision\BroadphaseInterface.h">
RelativePath="..\..\Bullet\CollisionShapes\BoxShape.h"
>
</File>
<File
RelativePath="..\..\Bullet\BroadphaseCollision\BroadphaseProxy.h">
RelativePath="..\..\Bullet\BroadphaseCollision\BroadphaseInterface.h"
>
</File>
<File
RelativePath="..\..\Bullet\BroadphaseCollision\CollisionAlgorithm.h">
RelativePath="..\..\Bullet\BroadphaseCollision\BroadphaseProxy.h"
>
</File>
<File
RelativePath="..\..\Bullet\BroadphaseCollision\Dispatcher.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_AlgebraicPolynomialSolver.h"
>
</File>
<File
RelativePath="..\..\Bullet\BroadphaseCollision\SimpleBroadphase.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_Collidable.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionDispatch\CollisionDispatcher.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_CollisionPair.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionDispatch\CollisionObject.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_EdgeEdge.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionDispatch\CollisionWorld.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_MotionStateInterface.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionDispatch\CompoundCollisionAlgorithm.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_PolynomialSolverInterface.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionDispatch\ConvexConcaveCollisionAlgorithm.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_Screwing.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionDispatch\ConvexConvexAlgorithm.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_StaticMotionState.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionDispatch\EmptyCollisionAlgorithm.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_VertexPoly.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionDispatch\ManifoldResult.h">
RelativePath="..\..\Bullet\CollisionShapes\BvhTriangleMeshShape.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionDispatch\UnionFind.h">
RelativePath="..\..\Bullet\BroadphaseCollision\CollisionAlgorithm.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\BoxShape.h">
RelativePath="..\..\Bullet\CollisionDispatch\CollisionDispatcher.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\BvhTriangleMeshShape.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\CollisionMargin.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\CollisionMargin.h">
RelativePath="..\..\Bullet\CollisionShapes\CollisionMargin.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\CollisionShape.h">
RelativePath="..\..\Bullet\CollisionDispatch\CollisionObject.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\CompoundShape.h">
RelativePath="..\..\Bullet\CollisionShapes\CollisionShape.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\ConeShape.h">
RelativePath="..\..\Bullet\CollisionDispatch\CollisionWorld.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\ConvexHullShape.h">
RelativePath="..\..\Bullet\CollisionDispatch\CompoundCollisionAlgorithm.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\ConvexShape.h">
RelativePath="..\..\Bullet\CollisionShapes\CompoundShape.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\ConvexTriangleMeshShape.h">
RelativePath="..\..\Bullet\CollisionShapes\ConeShape.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\CylinderShape.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\ContinuousConvexCollision.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\EmptyShape.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\ConvexCast.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\MinkowskiSumShape.h">
RelativePath="..\..\Bullet\CollisionDispatch\ConvexConcaveCollisionAlgorithm.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\MultiSphereShape.h">
RelativePath="..\..\Bullet\CollisionDispatch\ConvexConvexAlgorithm.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\OptimizedBvh.h">
RelativePath="..\..\Bullet\CollisionShapes\ConvexHullShape.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\PolyhedralConvexShape.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\ConvexPenetrationDepthSolver.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\Simplex1to4Shape.h">
RelativePath="..\..\Bullet\CollisionShapes\ConvexShape.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\SphereShape.h">
RelativePath="..\..\Bullet\CollisionShapes\ConvexTriangleMeshShape.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\StridingMeshInterface.h">
RelativePath="..\..\Bullet\CollisionShapes\CylinderShape.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\TriangleCallback.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\DiscreteCollisionDetectorInterface.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\TriangleIndexVertexArray.h">
RelativePath="..\..\Bullet\BroadphaseCollision\Dispatcher.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\TriangleMesh.h">
RelativePath="..\..\Bullet\CollisionDispatch\EmptyCollisionAlgorithm.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\TriangleMeshShape.h">
RelativePath="..\..\Bullet\CollisionShapes\EmptyShape.h"
>
</File>
<File
RelativePath="..\..\Bullet\CollisionShapes\TriangleShape.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\GjkConvexCast.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_AlgebraicPolynomialSolver.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\GjkPairDetector.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_Collidable.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\Hull.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_CollisionPair.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\HullContactCollector.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_EdgeEdge.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\ManifoldContactAddResult.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_MotionStateInterface.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\ManifoldPoint.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_PolynomialSolverInterface.h">
RelativePath="..\..\Bullet\CollisionDispatch\ManifoldResult.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_Screwing.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\MinkowskiPenetrationDepthSolver.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_StaticMotionState.h">
RelativePath="..\..\Bullet\CollisionShapes\MinkowskiSumShape.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\BU_VertexPoly.h">
RelativePath="..\..\Bullet\CollisionShapes\MultiSphereShape.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\CollisionMargin.h">
RelativePath="..\..\Bullet\CollisionShapes\OptimizedBvh.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\ContinuousConvexCollision.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\PersistentManifold.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\ConvexCast.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\PointCollector.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\ConvexPenetrationDepthSolver.h">
RelativePath="..\..\Bullet\CollisionShapes\PolyhedralConvexShape.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\DiscreteCollisionDetectorInterface.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\RaycastCallback.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\Epa.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\Shape.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\EpaCommon.h">
RelativePath="..\..\Bullet\BroadphaseCollision\SimpleBroadphase.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\EpaFace.h">
RelativePath="..\..\Bullet\CollisionShapes\Simplex1to4Shape.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\EpaHalfEdge.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\SimplexSolverInterface.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\EpaPenetrationDepthSolver.h">
RelativePath="..\..\Bullet\CollisionShapes\SphereShape.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\EpaPolyhedron.h">
RelativePath="..\..\Bullet\CollisionShapes\StridingMeshInterface.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\EpaVertex.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\SubSimplexConvexCast.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\GjkConvexCast.h">
RelativePath="..\..\Bullet\CollisionShapes\TriangleCallback.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\GjkPairDetector.h">
RelativePath="..\..\Bullet\CollisionShapes\TriangleIndexVertexArray.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\Hull.h">
RelativePath="..\..\Bullet\CollisionShapes\TriangleMesh.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\HullContactCollector.h">
RelativePath="..\..\Bullet\CollisionShapes\TriangleMeshShape.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\ManifoldContactAddResult.h">
RelativePath="..\..\Bullet\CollisionShapes\TriangleShape.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\ManifoldPoint.h">
RelativePath="..\..\Bullet\CollisionDispatch\UnionFind.h"
>
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\MinkowskiPenetrationDepthSolver.h">
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\PersistentManifold.h">
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\PointCollector.h">
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\RaycastCallback.h">
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\Shape.h">
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\SimplexSolverInterface.h">
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\SubSimplexConvexCast.h">
</File>
<File
RelativePath="..\..\Bullet\NarrowPhaseCollision\VoronoiSimplexSolver.h">
RelativePath="..\..\Bullet\NarrowPhaseCollision\VoronoiSimplexSolver.h"
>
</File>
</Filter>
<File
RelativePath="..\..\Bullet\BroadphaseCollision\OverlappingPairCache.cpp"
>
</File>
<File
RelativePath="..\..\Bullet\BroadphaseCollision\OverlappingPairCache.h"
>
</File>
</Files>
<Globals>
</Globals>

View File

@@ -1,15 +1,17 @@
<?xml version="1.0" encoding = "Windows-1252"?>
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="libbulletccdphysics"
ProjectGUID="{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}"
SccProjectName=""
SccLocalPath="">
>
<Platforms>
<Platform
Name="Win32"/>
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Release|Win32"
@@ -17,73 +19,82 @@
IntermediateDirectory="..\..\out\release8\build\libbulletccdphysics\"
ConfigurationType="4"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE">
ATLMinimizesCRunTimeLibraryUsage="false"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG;_LIB;_WINDOWS"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName="..\..\out\release8\build\libbulletccdphysics\libbulletccdphysics.tlb"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
StringPooling="TRUE"
EnableFunctionLevelLinking="TRUE"
RuntimeLibrary="0"
DebugInformationFormat="3"
BufferSecurityCheck="FALSE"
PreprocessorDefinitions="NDEBUG;_LIB;_WINDOWS;WIN32"
OptimizeForProcessor="1"
ExceptionHandling="0"
AdditionalOptions=" "
Optimization="2"
AdditionalIncludeDirectories=".;..\..;..\..\Bullet;..\..\BulletDynamics;..\..\LinearMath;..\..\Extras\PhysicsInterface\Common"
PreprocessorDefinitions="NDEBUG;_LIB;_WINDOWS;WIN32"
StringPooling="true"
ExceptionHandling="0"
RuntimeLibrary="0"
BufferSecurityCheck="false"
EnableFunctionLevelLinking="true"
TreatWChar_tAsBuiltInType="false"
PrecompiledHeaderFile="..\..\out\release8\build\libbulletccdphysics\libbulletccdphysics.pch"
AssemblerListingLocation="..\..\out\release8\build\libbulletccdphysics\"
ObjectFile="..\..\out\release8\build\libbulletccdphysics\"
ProgramDataBaseFileName="..\..\out\release8\build\libbulletccdphysics\bulletccdphysics.pdb"
WarningLevel="3"
SuppressStartupBanner="TRUE"
Detect64BitPortabilityProblems="TRUE"
TreatWChar_tAsBuiltInType="false"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
LinkIncremental="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
GenerateDebugInformation="TRUE"
IgnoreDefaultLibraryNames="LIBC,LIBCD"
AdditionalOptions=" "
AdditionalDependencies=""
IgnoreImportLibrary="TRUE"
SuppressStartupBanner="TRUE"
GenerateManifest="false"
AdditionalLibraryDirectories=""
ProgramDatabaseFile="..\..\out\release8\build\libbulletccdphysics\bulletccdphysics.pdb"
TargetMachine="1"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\..\out\release8\libs\libbulletccdphysics.lib"
SuppressStartupBanner="TRUE"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG;_LIB;_WINDOWS"
MkTypLibCompatible="TRUE"
SuppressStartupBanner="TRUE"
TargetEnvironment="1"
TypeLibraryName="..\..\out\release8\build\libbulletccdphysics\libbulletccdphysics.tlb"/>
<Tool
Name="VCPostBuildEventTool"
SuppressStartupBanner="true"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
CompileAs="0"
/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG;_LIB;_WINDOWS;PROJECTGEN_VERSION=8"
Culture="1033"
AdditionalIncludeDirectories=".;..\..;..\..\Bullet;..\..\BulletDynamics;..\..\LinearMath;..\..\Extras\PhysicsInterface\Common"
Culture="1033"/>
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCWebDeploymentTool"/>
Name="VCLibrarianTool"
OutputFile="..\..\out\release8\libs\libbulletccdphysics.lib"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug|Win32"
@@ -91,91 +102,116 @@
IntermediateDirectory="..\..\out\debug8\build\libbulletccdphysics\"
ConfigurationType="4"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE">
ATLMinimizesCRunTimeLibraryUsage="false"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG;_LIB;_WINDOWS"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName="..\..\out\debug8\build\libbulletccdphysics\libbulletccdphysics.tlb"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
MinimalRebuild="TRUE"
DebugInformationFormat="4"
RuntimeTypeInfo="FALSE"
RuntimeLibrary="1"
PreprocessorDefinitions="_DEBUG;_LIB;_WINDOWS;WIN32"
OptimizeForProcessor="1"
ExceptionHandling="0"
AdditionalOptions=" "
Optimization="0"
AdditionalIncludeDirectories=".;..\..;..\..\Bullet;..\..\BulletDynamics;..\..\LinearMath;..\..\Extras\PhysicsInterface\Common"
PreprocessorDefinitions="_DEBUG;_LIB;_WINDOWS;WIN32"
MinimalRebuild="true"
ExceptionHandling="0"
RuntimeLibrary="1"
TreatWChar_tAsBuiltInType="false"
RuntimeTypeInfo="false"
PrecompiledHeaderFile="..\..\out\debug8\build\libbulletccdphysics\libbulletccdphysics.pch"
AssemblerListingLocation="..\..\out\debug8\build\libbulletccdphysics\"
ObjectFile="..\..\out\debug8\build\libbulletccdphysics\"
ProgramDataBaseFileName="..\..\out\debug8\build\libbulletccdphysics\bulletccdphysics.pdb"
WarningLevel="3"
SuppressStartupBanner="TRUE"
Detect64BitPortabilityProblems="TRUE"
TreatWChar_tAsBuiltInType="false"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="TRUE"
IgnoreDefaultLibraryNames="LIBC,LIBCD"
AdditionalOptions=" "
AdditionalDependencies=""
IgnoreImportLibrary="TRUE"
SuppressStartupBanner="TRUE"
GenerateManifest="false"
AdditionalLibraryDirectories=""
ProgramDatabaseFile="..\..\out\debug8\build\libbulletccdphysics\bulletccdphysics.pdb"
TargetMachine="1"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\..\out\debug8\libs\libbulletccdphysics_d.lib"
SuppressStartupBanner="TRUE"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG;_LIB;_WINDOWS"
MkTypLibCompatible="TRUE"
SuppressStartupBanner="TRUE"
TargetEnvironment="1"
TypeLibraryName="..\..\out\debug8\build\libbulletccdphysics\libbulletccdphysics.tlb"/>
<Tool
Name="VCPostBuildEventTool"
SuppressStartupBanner="true"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
CompileAs="0"
/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG;_LIB;_WINDOWS;PROJECTGEN_VERSION=8"
Culture="1033"
AdditionalIncludeDirectories=".;..\..;..\..\Bullet;..\..\BulletDynamics;..\..\LinearMath;..\..\Extras\PhysicsInterface\Common"
Culture="1033"/>
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCWebDeploymentTool"/>
Name="VCLibrarianTool"
OutputFile="..\..\out\debug8\libs\libbulletccdphysics_d.lib"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="">
>
<File
RelativePath="..\..\Extras\PhysicsInterface\CcdPhysics\CcdPhysicsController.cpp">
RelativePath="..\..\Extras\PhysicsInterface\CcdPhysics\CcdPhysicsController.cpp"
>
</File>
<File
RelativePath="..\..\Extras\PhysicsInterface\CcdPhysics\CcdPhysicsEnvironment.cpp">
RelativePath="..\..\Extras\PhysicsInterface\CcdPhysics\CcdPhysicsEnvironment.cpp"
>
</File>
<File
RelativePath="..\..\Extras\PhysicsInterface\CcdPhysics\ParallelPhysicsEnvironment.cpp"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="">
>
<File
RelativePath="..\..\Extras\PhysicsInterface\CcdPhysics\CcdPhysicsController.h">
RelativePath="..\..\Extras\PhysicsInterface\CcdPhysics\CcdPhysicsController.h"
>
</File>
<File
RelativePath="..\..\Extras\PhysicsInterface\CcdPhysics\CcdPhysicsEnvironment.h">
RelativePath="..\..\Extras\PhysicsInterface\CcdPhysics\CcdPhysicsEnvironment.h"
>
</File>
<File
RelativePath="..\..\Extras\PhysicsInterface\CcdPhysics\ParallelPhysicsEnvironment.h"
>
</File>
</Filter>
</Files>

View File

@@ -1,15 +1,17 @@
<?xml version="1.0" encoding = "Windows-1252"?>
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="libbulletdynamics"
ProjectGUID="{61BD1097-CF2E-B296-DAA9-73A6FE135319}"
SccProjectName=""
SccLocalPath="">
>
<Platforms>
<Platform
Name="Win32"/>
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Release|Win32"
@@ -17,73 +19,82 @@
IntermediateDirectory="..\..\out\release8\build\libbulletdynamics\"
ConfigurationType="4"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE">
ATLMinimizesCRunTimeLibraryUsage="false"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG;_LIB;_WINDOWS"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName="..\..\out\release8\build\libbulletdynamics\libbulletdynamics.tlb"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
StringPooling="TRUE"
EnableFunctionLevelLinking="TRUE"
RuntimeLibrary="0"
DebugInformationFormat="3"
BufferSecurityCheck="FALSE"
PreprocessorDefinitions="NDEBUG;_LIB;_WINDOWS;WIN32"
OptimizeForProcessor="1"
ExceptionHandling="0"
AdditionalOptions=" "
Optimization="2"
AdditionalIncludeDirectories=".;..\..;..\..\Bullet;..\..\BulletDynamics;..\..\LinearMath"
PreprocessorDefinitions="NDEBUG;_LIB;_WINDOWS;WIN32"
StringPooling="true"
ExceptionHandling="0"
RuntimeLibrary="0"
BufferSecurityCheck="false"
EnableFunctionLevelLinking="true"
TreatWChar_tAsBuiltInType="false"
PrecompiledHeaderFile="..\..\out\release8\build\libbulletdynamics\libbulletdynamics.pch"
AssemblerListingLocation="..\..\out\release8\build\libbulletdynamics\"
ObjectFile="..\..\out\release8\build\libbulletdynamics\"
ProgramDataBaseFileName="..\..\out\release8\build\libbulletdynamics\bulletdynamics.pdb"
WarningLevel="3"
SuppressStartupBanner="TRUE"
Detect64BitPortabilityProblems="TRUE"
TreatWChar_tAsBuiltInType="false"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
LinkIncremental="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
GenerateDebugInformation="TRUE"
IgnoreDefaultLibraryNames="LIBC,LIBCD"
AdditionalOptions=" "
AdditionalDependencies=""
IgnoreImportLibrary="TRUE"
SuppressStartupBanner="TRUE"
GenerateManifest="false"
AdditionalLibraryDirectories=""
ProgramDatabaseFile="..\..\out\release8\build\libbulletdynamics\bulletdynamics.pdb"
TargetMachine="1"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\..\out\release8\libs\libbulletdynamics.lib"
SuppressStartupBanner="TRUE"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG;_LIB;_WINDOWS"
MkTypLibCompatible="TRUE"
SuppressStartupBanner="TRUE"
TargetEnvironment="1"
TypeLibraryName="..\..\out\release8\build\libbulletdynamics\libbulletdynamics.tlb"/>
<Tool
Name="VCPostBuildEventTool"
SuppressStartupBanner="true"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
CompileAs="0"
/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG;_LIB;_WINDOWS;PROJECTGEN_VERSION=8"
Culture="1033"
AdditionalIncludeDirectories=".;..\..;..\..\Bullet;..\..\BulletDynamics;..\..\LinearMath"
Culture="1033"/>
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCWebDeploymentTool"/>
Name="VCLibrarianTool"
OutputFile="..\..\out\release8\libs\libbulletdynamics.lib"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug|Win32"
@@ -91,165 +102,202 @@
IntermediateDirectory="..\..\out\debug8\build\libbulletdynamics\"
ConfigurationType="4"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE">
ATLMinimizesCRunTimeLibraryUsage="false"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG;_LIB;_WINDOWS"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName="..\..\out\debug8\build\libbulletdynamics\libbulletdynamics.tlb"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
MinimalRebuild="TRUE"
DebugInformationFormat="4"
RuntimeTypeInfo="FALSE"
RuntimeLibrary="1"
PreprocessorDefinitions="_DEBUG;_LIB;_WINDOWS;WIN32"
OptimizeForProcessor="1"
ExceptionHandling="0"
AdditionalOptions=" "
Optimization="0"
AdditionalIncludeDirectories=".;..\..;..\..\Bullet;..\..\BulletDynamics;..\..\LinearMath"
PreprocessorDefinitions="_DEBUG;_LIB;_WINDOWS;WIN32"
MinimalRebuild="true"
ExceptionHandling="0"
RuntimeLibrary="1"
TreatWChar_tAsBuiltInType="false"
RuntimeTypeInfo="false"
PrecompiledHeaderFile="..\..\out\debug8\build\libbulletdynamics\libbulletdynamics.pch"
AssemblerListingLocation="..\..\out\debug8\build\libbulletdynamics\"
ObjectFile="..\..\out\debug8\build\libbulletdynamics\"
ProgramDataBaseFileName="..\..\out\debug8\build\libbulletdynamics\bulletdynamics.pdb"
WarningLevel="3"
SuppressStartupBanner="TRUE"
Detect64BitPortabilityProblems="TRUE"
TreatWChar_tAsBuiltInType="false"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="TRUE"
IgnoreDefaultLibraryNames="LIBC,LIBCD"
AdditionalOptions=" "
AdditionalDependencies=""
IgnoreImportLibrary="TRUE"
SuppressStartupBanner="TRUE"
GenerateManifest="false"
AdditionalLibraryDirectories=""
ProgramDatabaseFile="..\..\out\debug8\build\libbulletdynamics\bulletdynamics.pdb"
TargetMachine="1"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\..\out\debug8\libs\libbulletdynamics_d.lib"
SuppressStartupBanner="TRUE"/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG;_LIB;_WINDOWS"
MkTypLibCompatible="TRUE"
SuppressStartupBanner="TRUE"
TargetEnvironment="1"
TypeLibraryName="..\..\out\debug8\build\libbulletdynamics\libbulletdynamics.tlb"/>
<Tool
Name="VCPostBuildEventTool"
SuppressStartupBanner="true"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
CompileAs="0"
/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG;_LIB;_WINDOWS;PROJECTGEN_VERSION=8"
Culture="1033"
AdditionalIncludeDirectories=".;..\..;..\..\Bullet;..\..\BulletDynamics;..\..\LinearMath"
Culture="1033"/>
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCWebDeploymentTool"/>
Name="VCLibrarianTool"
OutputFile="..\..\out\debug8\libs\libbulletdynamics_d.lib"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="">
>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\ContactConstraint.cpp">
RelativePath="..\..\BulletDynamics\Dynamics\BU_Joint.cpp"
>
</File>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\Generic6DofConstraint.cpp">
RelativePath="..\..\BulletDynamics\ConstraintSolver\ContactConstraint.cpp"
>
</File>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\HingeConstraint.cpp">
RelativePath="..\..\BulletDynamics\Dynamics\ContactJoint.cpp"
>
</File>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\OdeConstraintSolver.cpp">
RelativePath="..\..\BulletDynamics\ConstraintSolver\Generic6DofConstraint.cpp"
>
</File>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\Point2PointConstraint.cpp">
RelativePath="..\..\BulletDynamics\ConstraintSolver\HingeConstraint.cpp"
>
</File>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\SimpleConstraintSolver.cpp">
RelativePath="..\..\BulletDynamics\ConstraintSolver\Point2PointConstraint.cpp"
>
</File>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\Solve2LinearConstraint.cpp">
RelativePath="..\..\BulletDynamics\Dynamics\RigidBody.cpp"
>
</File>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\SorLcp.cpp">
RelativePath="..\..\BulletDynamics\ConstraintSolver\Solve2LinearConstraint.cpp"
>
</File>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\TypedConstraint.cpp">
</File>
<File
RelativePath="..\..\BulletDynamics\Dynamics\BU_Joint.cpp">
</File>
<File
RelativePath="..\..\BulletDynamics\Dynamics\ContactJoint.cpp">
</File>
<File
RelativePath="..\..\BulletDynamics\Dynamics\RigidBody.cpp">
RelativePath="..\..\BulletDynamics\ConstraintSolver\TypedConstraint.cpp"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="">
>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\ConstraintSolver.h">
RelativePath="..\..\BulletDynamics\Dynamics\BU_Joint.h"
>
</File>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\ContactConstraint.h">
RelativePath="..\..\BulletDynamics\ConstraintSolver\ConstraintSolver.h"
>
</File>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\ContactSolverInfo.h">
RelativePath="..\..\BulletDynamics\ConstraintSolver\ContactConstraint.h"
>
</File>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\Generic6DofConstraint.h">
RelativePath="..\..\BulletDynamics\Dynamics\ContactJoint.h"
>
</File>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\HingeConstraint.h">
RelativePath="..\..\BulletDynamics\ConstraintSolver\ContactSolverInfo.h"
>
</File>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\JacobianEntry.h">
RelativePath="..\..\BulletDynamics\ConstraintSolver\Generic6DofConstraint.h"
>
</File>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\OdeConstraintSolver.h">
RelativePath="..\..\BulletDynamics\ConstraintSolver\HingeConstraint.h"
>
</File>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\Point2PointConstraint.h">
RelativePath="..\..\BulletDynamics\ConstraintSolver\JacobianEntry.h"
>
</File>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\SimpleConstraintSolver.h">
RelativePath="..\..\BulletDynamics\Dynamics\MassProps.h"
>
</File>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\Solve2LinearConstraint.h">
RelativePath="..\..\BulletDynamics\ConstraintSolver\OdeConstraintSolver.h"
>
</File>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\SorLcp.h">
RelativePath="..\..\BulletDynamics\ConstraintSolver\Point2PointConstraint.h"
>
</File>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\TypedConstraint.h">
RelativePath="..\..\BulletDynamics\Dynamics\RigidBody.h"
>
</File>
<File
RelativePath="..\..\BulletDynamics\Dynamics\BU_Joint.h">
RelativePath="..\..\BulletDynamics\ConstraintSolver\SimpleConstraintSolver.h"
>
</File>
<File
RelativePath="..\..\BulletDynamics\Dynamics\ContactJoint.h">
RelativePath="..\..\BulletDynamics\ConstraintSolver\Solve2LinearConstraint.h"
>
</File>
<File
RelativePath="..\..\BulletDynamics\Dynamics\MassProps.h">
RelativePath="..\..\BulletDynamics\ConstraintSolver\SorLcp.h"
>
</File>
<File
RelativePath="..\..\BulletDynamics\Dynamics\RigidBody.h">
RelativePath="..\..\BulletDynamics\ConstraintSolver\TypedConstraint.h"
>
</File>
</Filter>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\SequentialImpulseConstraintSolver.cpp"
>
</File>
<File
RelativePath="..\..\BulletDynamics\ConstraintSolver\SequentialImpulseConstraintSolver.h"
>
</File>
</Files>
<Globals>
</Globals>

View File

@@ -1,34 +1,172 @@
Microsoft Visual Studio Solution File, Format Version 9.00
# Visual C++ Express 2005
# Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appCcdPhysicsDemo", "appCcdPhysicsDemo.vcproj", "{7284F809-AF30-6315-88C6-86F1C0798760}"
ProjectSection(ProjectDependencies) = postProject
{85BCCE3E-992B-B6D7-28F6-CF0A12680822} = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{7C428E76-9271-6284-20F0-9B38ED6931E3} = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A} = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{61BD1097-CF2E-B296-DAA9-73A6FE135319} = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E} = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{90F5975E-550B-EEC8-9A8A-B8581D3FCF97} = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appColladaDemo", "appColladaDemo.vcproj", "{D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}"
ProjectSection(ProjectDependencies) = postProject
{A0958CD9-0E39-4A77-3711-9B488F508FBF} = {A0958CD9-0E39-4A77-3711-9B488F508FBF}
{8050F819-5B5B-1504-BC6D-7F2B4C6C85F3} = {8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}
{5E57E40B-B2C3-7595-57AB-A3936FFBD7D4} = {5E57E40B-B2C3-7595-57AB-A3936FFBD7D4}
{85BCCE3E-992B-B6D7-28F6-CF0A12680822} = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{7C428E76-9271-6284-20F0-9B38ED6931E3} = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A} = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{61BD1097-CF2E-B296-DAA9-73A6FE135319} = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E} = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{90F5975E-550B-EEC8-9A8A-B8581D3FCF97} = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appCollisionDemo", "appCollisionDemo.vcproj", "{E70DB92E-C1F5-AE72-F9E2-DB9B4B3DBEC9}"
ProjectSection(ProjectDependencies) = postProject
{85BCCE3E-992B-B6D7-28F6-CF0A12680822} = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{7C428E76-9271-6284-20F0-9B38ED6931E3} = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A} = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{61BD1097-CF2E-B296-DAA9-73A6FE135319} = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E} = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{90F5975E-550B-EEC8-9A8A-B8581D3FCF97} = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appCollisionInterfaceDemo", "appCollisionInterfaceDemo.vcproj", "{F38629D2-EEB2-1A09-FB82-52B8A8DE759B}"
ProjectSection(ProjectDependencies) = postProject
{85BCCE3E-992B-B6D7-28F6-CF0A12680822} = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{7C428E76-9271-6284-20F0-9B38ED6931E3} = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A} = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{61BD1097-CF2E-B296-DAA9-73A6FE135319} = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E} = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{90F5975E-550B-EEC8-9A8A-B8581D3FCF97} = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appConcaveDemo", "appConcaveDemo.vcproj", "{B94C19C6-F6E7-2F60-56E2-E0BA681B74B3}"
ProjectSection(ProjectDependencies) = postProject
{85BCCE3E-992B-B6D7-28F6-CF0A12680822} = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{7C428E76-9271-6284-20F0-9B38ED6931E3} = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A} = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{61BD1097-CF2E-B296-DAA9-73A6FE135319} = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E} = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{90F5975E-550B-EEC8-9A8A-B8581D3FCF97} = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appConstraintDemo", "appConstraintDemo.vcproj", "{DAA547D0-0166-C085-0F93-B88CAB800F97}"
ProjectSection(ProjectDependencies) = postProject
{85BCCE3E-992B-B6D7-28F6-CF0A12680822} = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{7C428E76-9271-6284-20F0-9B38ED6931E3} = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A} = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{61BD1097-CF2E-B296-DAA9-73A6FE135319} = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E} = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{90F5975E-550B-EEC8-9A8A-B8581D3FCF97} = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appContinuousConvexCollision", "appContinuousConvexCollision.vcproj", "{801CB6D4-A45C-C9D2-B176-9711A74B9164}"
ProjectSection(ProjectDependencies) = postProject
{85BCCE3E-992B-B6D7-28F6-CF0A12680822} = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{7C428E76-9271-6284-20F0-9B38ED6931E3} = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A} = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{61BD1097-CF2E-B296-DAA9-73A6FE135319} = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E} = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{90F5975E-550B-EEC8-9A8A-B8581D3FCF97} = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appConvexDecompositionDemo", "appConvexDecompositionDemo.vcproj", "{69C821C7-1E18-D894-068D-C55E063F4859}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appEPAPenDepthDemo", "appEPAPenDepthDemo.vcproj", "{1125C7F3-9E0D-27B1-C97B-CDAB5CE161A3}"
ProjectSection(ProjectDependencies) = postProject
{A0958CD9-0E39-4A77-3711-9B488F508FBF} = {A0958CD9-0E39-4A77-3711-9B488F508FBF}
{8050F819-5B5B-1504-BC6D-7F2B4C6C85F3} = {8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}
{5E57E40B-B2C3-7595-57AB-A3936FFBD7D4} = {5E57E40B-B2C3-7595-57AB-A3936FFBD7D4}
{85BCCE3E-992B-B6D7-28F6-CF0A12680822} = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{7C428E76-9271-6284-20F0-9B38ED6931E3} = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A} = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{61BD1097-CF2E-B296-DAA9-73A6FE135319} = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E} = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{90F5975E-550B-EEC8-9A8A-B8581D3FCF97} = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appGjkConvexCastDemo", "appGjkConvexCastDemo.vcproj", "{780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}"
ProjectSection(ProjectDependencies) = postProject
{85BCCE3E-992B-B6D7-28F6-CF0A12680822} = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{7C428E76-9271-6284-20F0-9B38ED6931E3} = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A} = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{61BD1097-CF2E-B296-DAA9-73A6FE135319} = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E} = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{90F5975E-550B-EEC8-9A8A-B8581D3FCF97} = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appRaytracer", "appRaytracer.vcproj", "{60F71B6A-F888-C449-EF49-268BB9F7C963}"
ProjectSection(ProjectDependencies) = postProject
{85BCCE3E-992B-B6D7-28F6-CF0A12680822} = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{7C428E76-9271-6284-20F0-9B38ED6931E3} = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A} = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{61BD1097-CF2E-B296-DAA9-73A6FE135319} = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E} = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{90F5975E-550B-EEC8-9A8A-B8581D3FCF97} = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appSimplexDemo", "appSimplexDemo.vcproj", "{60A1DC9D-F837-3923-E9DE-A7925394A578}"
ProjectSection(ProjectDependencies) = postProject
{85BCCE3E-992B-B6D7-28F6-CF0A12680822} = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{7C428E76-9271-6284-20F0-9B38ED6931E3} = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A} = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{61BD1097-CF2E-B296-DAA9-73A6FE135319} = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E} = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{90F5975E-550B-EEC8-9A8A-B8581D3FCF97} = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpall_bullet", "grpall_bullet.vcproj", "{6210A080-01C0-6D67-F1DB-669393175402}"
ProjectSection(ProjectDependencies) = postProject
{A0958CD9-0E39-4A77-3711-9B488F508FBF} = {A0958CD9-0E39-4A77-3711-9B488F508FBF}
{8050F819-5B5B-1504-BC6D-7F2B4C6C85F3} = {8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}
{5E57E40B-B2C3-7595-57AB-A3936FFBD7D4} = {5E57E40B-B2C3-7595-57AB-A3936FFBD7D4}
{85BCCE3E-992B-B6D7-28F6-CF0A12680822} = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{7C428E76-9271-6284-20F0-9B38ED6931E3} = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A} = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{61BD1097-CF2E-B296-DAA9-73A6FE135319} = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E} = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{90F5975E-550B-EEC8-9A8A-B8581D3FCF97} = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
{60A1DC9D-F837-3923-E9DE-A7925394A578} = {60A1DC9D-F837-3923-E9DE-A7925394A578}
{60F71B6A-F888-C449-EF49-268BB9F7C963} = {60F71B6A-F888-C449-EF49-268BB9F7C963}
{780752A8-6322-5D3E-EF42-D0FD8BF9CEA1} = {780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}
{69C821C7-1E18-D894-068D-C55E063F4859} = {69C821C7-1E18-D894-068D-C55E063F4859}
{801CB6D4-A45C-C9D2-B176-9711A74B9164} = {801CB6D4-A45C-C9D2-B176-9711A74B9164}
{DAA547D0-0166-C085-0F93-B88CAB800F97} = {DAA547D0-0166-C085-0F93-B88CAB800F97}
{B94C19C6-F6E7-2F60-56E2-E0BA681B74B3} = {B94C19C6-F6E7-2F60-56E2-E0BA681B74B3}
{F38629D2-EEB2-1A09-FB82-52B8A8DE759B} = {F38629D2-EEB2-1A09-FB82-52B8A8DE759B}
{E70DB92E-C1F5-AE72-F9E2-DB9B4B3DBEC9} = {E70DB92E-C1F5-AE72-F9E2-DB9B4B3DBEC9}
{D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF} = {D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}
{7284F809-AF30-6315-88C6-86F1C0798760} = {7284F809-AF30-6315-88C6-86F1C0798760}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpapps_bullet", "grpapps_bullet.vcproj", "{9E59B16D-0924-409C-1611-DF2207A0053F}"
ProjectSection(ProjectDependencies) = postProject
{60A1DC9D-F837-3923-E9DE-A7925394A578} = {60A1DC9D-F837-3923-E9DE-A7925394A578}
{60F71B6A-F888-C449-EF49-268BB9F7C963} = {60F71B6A-F888-C449-EF49-268BB9F7C963}
{780752A8-6322-5D3E-EF42-D0FD8BF9CEA1} = {780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}
{69C821C7-1E18-D894-068D-C55E063F4859} = {69C821C7-1E18-D894-068D-C55E063F4859}
{801CB6D4-A45C-C9D2-B176-9711A74B9164} = {801CB6D4-A45C-C9D2-B176-9711A74B9164}
{DAA547D0-0166-C085-0F93-B88CAB800F97} = {DAA547D0-0166-C085-0F93-B88CAB800F97}
{B94C19C6-F6E7-2F60-56E2-E0BA681B74B3} = {B94C19C6-F6E7-2F60-56E2-E0BA681B74B3}
{F38629D2-EEB2-1A09-FB82-52B8A8DE759B} = {F38629D2-EEB2-1A09-FB82-52B8A8DE759B}
{E70DB92E-C1F5-AE72-F9E2-DB9B4B3DBEC9} = {E70DB92E-C1F5-AE72-F9E2-DB9B4B3DBEC9}
{D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF} = {D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}
{7284F809-AF30-6315-88C6-86F1C0798760} = {7284F809-AF30-6315-88C6-86F1C0798760}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grplibs_bullet", "grplibs_bullet.vcproj", "{DFAF0062-4CD7-9AB8-0683-A6026B326F56}"
ProjectSection(ProjectDependencies) = postProject
{A0958CD9-0E39-4A77-3711-9B488F508FBF} = {A0958CD9-0E39-4A77-3711-9B488F508FBF}
{8050F819-5B5B-1504-BC6D-7F2B4C6C85F3} = {8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}
{5E57E40B-B2C3-7595-57AB-A3936FFBD7D4} = {5E57E40B-B2C3-7595-57AB-A3936FFBD7D4}
{85BCCE3E-992B-B6D7-28F6-CF0A12680822} = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{7C428E76-9271-6284-20F0-9B38ED6931E3} = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A} = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{61BD1097-CF2E-B296-DAA9-73A6FE135319} = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E} = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{90F5975E-550B-EEC8-9A8A-B8581D3FCF97} = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbullet", "libbullet.vcproj", "{90F5975E-550B-EEC8-9A8A-B8581D3FCF97}"
EndProject
@@ -49,232 +187,105 @@ EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblibxml", "liblibxml.vcproj", "{A0958CD9-0E39-4A77-3711-9B488F508FBF}"
EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
ConfigName.0 = Release
ConfigName.1 = Debug
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectDependencies) = postSolution
{7284F809-AF30-6315-88C6-86F1C0798760}.0 = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
{7284F809-AF30-6315-88C6-86F1C0798760}.1 = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{7284F809-AF30-6315-88C6-86F1C0798760}.2 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{7284F809-AF30-6315-88C6-86F1C0798760}.3 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{7284F809-AF30-6315-88C6-86F1C0798760}.4 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{7284F809-AF30-6315-88C6-86F1C0798760}.5 = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}.0 = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
{D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}.1 = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}.2 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}.3 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}.4 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}.5 = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}.6 = {5E57E40B-B2C3-7595-57AB-A3936FFBD7D4}
{D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}.7 = {8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}
{D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}.8 = {A0958CD9-0E39-4A77-3711-9B488F508FBF}
{E70DB92E-C1F5-AE72-F9E2-DB9B4B3DBEC9}.0 = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
{E70DB92E-C1F5-AE72-F9E2-DB9B4B3DBEC9}.1 = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{E70DB92E-C1F5-AE72-F9E2-DB9B4B3DBEC9}.2 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{E70DB92E-C1F5-AE72-F9E2-DB9B4B3DBEC9}.3 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{E70DB92E-C1F5-AE72-F9E2-DB9B4B3DBEC9}.4 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{E70DB92E-C1F5-AE72-F9E2-DB9B4B3DBEC9}.5 = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{F38629D2-EEB2-1A09-FB82-52B8A8DE759B}.0 = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
{F38629D2-EEB2-1A09-FB82-52B8A8DE759B}.1 = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{F38629D2-EEB2-1A09-FB82-52B8A8DE759B}.2 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{F38629D2-EEB2-1A09-FB82-52B8A8DE759B}.3 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{F38629D2-EEB2-1A09-FB82-52B8A8DE759B}.4 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{F38629D2-EEB2-1A09-FB82-52B8A8DE759B}.5 = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{B94C19C6-F6E7-2F60-56E2-E0BA681B74B3}.0 = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
{B94C19C6-F6E7-2F60-56E2-E0BA681B74B3}.1 = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{B94C19C6-F6E7-2F60-56E2-E0BA681B74B3}.2 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{B94C19C6-F6E7-2F60-56E2-E0BA681B74B3}.3 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{B94C19C6-F6E7-2F60-56E2-E0BA681B74B3}.4 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{B94C19C6-F6E7-2F60-56E2-E0BA681B74B3}.5 = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{DAA547D0-0166-C085-0F93-B88CAB800F97}.0 = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
{DAA547D0-0166-C085-0F93-B88CAB800F97}.1 = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{DAA547D0-0166-C085-0F93-B88CAB800F97}.2 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{DAA547D0-0166-C085-0F93-B88CAB800F97}.3 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{DAA547D0-0166-C085-0F93-B88CAB800F97}.4 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{DAA547D0-0166-C085-0F93-B88CAB800F97}.5 = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{801CB6D4-A45C-C9D2-B176-9711A74B9164}.0 = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
{801CB6D4-A45C-C9D2-B176-9711A74B9164}.1 = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{801CB6D4-A45C-C9D2-B176-9711A74B9164}.2 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{801CB6D4-A45C-C9D2-B176-9711A74B9164}.3 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{801CB6D4-A45C-C9D2-B176-9711A74B9164}.4 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{801CB6D4-A45C-C9D2-B176-9711A74B9164}.5 = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{69C821C7-1E18-D894-068D-C55E063F4859}.0 = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
{69C821C7-1E18-D894-068D-C55E063F4859}.1 = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{69C821C7-1E18-D894-068D-C55E063F4859}.2 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{69C821C7-1E18-D894-068D-C55E063F4859}.3 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{69C821C7-1E18-D894-068D-C55E063F4859}.4 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{69C821C7-1E18-D894-068D-C55E063F4859}.5 = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{69C821C7-1E18-D894-068D-C55E063F4859}.6 = {5E57E40B-B2C3-7595-57AB-A3936FFBD7D4}
{69C821C7-1E18-D894-068D-C55E063F4859}.7 = {8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}
{69C821C7-1E18-D894-068D-C55E063F4859}.8 = {A0958CD9-0E39-4A77-3711-9B488F508FBF}
{1125C7F3-9E0D-27B1-C97B-CDAB5CE161A3}.0 = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
{1125C7F3-9E0D-27B1-C97B-CDAB5CE161A3}.1 = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{1125C7F3-9E0D-27B1-C97B-CDAB5CE161A3}.2 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{1125C7F3-9E0D-27B1-C97B-CDAB5CE161A3}.3 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{1125C7F3-9E0D-27B1-C97B-CDAB5CE161A3}.4 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{1125C7F3-9E0D-27B1-C97B-CDAB5CE161A3}.5 = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}.0 = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
{780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}.1 = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}.2 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}.3 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}.4 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}.5 = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{60F71B6A-F888-C449-EF49-268BB9F7C963}.0 = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
{60F71B6A-F888-C449-EF49-268BB9F7C963}.1 = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{60F71B6A-F888-C449-EF49-268BB9F7C963}.2 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{60F71B6A-F888-C449-EF49-268BB9F7C963}.3 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{60F71B6A-F888-C449-EF49-268BB9F7C963}.4 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{60F71B6A-F888-C449-EF49-268BB9F7C963}.5 = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{60A1DC9D-F837-3923-E9DE-A7925394A578}.0 = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
{60A1DC9D-F837-3923-E9DE-A7925394A578}.1 = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{60A1DC9D-F837-3923-E9DE-A7925394A578}.2 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{60A1DC9D-F837-3923-E9DE-A7925394A578}.3 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{60A1DC9D-F837-3923-E9DE-A7925394A578}.4 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{60A1DC9D-F837-3923-E9DE-A7925394A578}.5 = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{6210A080-01C0-6D67-F1DB-669393175402}.0 = {7284F809-AF30-6315-88C6-86F1C0798760}
{6210A080-01C0-6D67-F1DB-669393175402}.1 = {D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}
{6210A080-01C0-6D67-F1DB-669393175402}.2 = {E70DB92E-C1F5-AE72-F9E2-DB9B4B3DBEC9}
{6210A080-01C0-6D67-F1DB-669393175402}.3 = {F38629D2-EEB2-1A09-FB82-52B8A8DE759B}
{6210A080-01C0-6D67-F1DB-669393175402}.4 = {B94C19C6-F6E7-2F60-56E2-E0BA681B74B3}
{6210A080-01C0-6D67-F1DB-669393175402}.5 = {DAA547D0-0166-C085-0F93-B88CAB800F97}
{6210A080-01C0-6D67-F1DB-669393175402}.6 = {801CB6D4-A45C-C9D2-B176-9711A74B9164}
{6210A080-01C0-6D67-F1DB-669393175402}.7 = {69C821C7-1E18-D894-068D-C55E063F4859}
{6210A080-01C0-6D67-F1DB-669393175402}.8 = {1125C7F3-9E0D-27B1-C97B-CDAB5CE161A3}
{6210A080-01C0-6D67-F1DB-669393175402}.9 = {780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}
{6210A080-01C0-6D67-F1DB-669393175402}.10 = {60F71B6A-F888-C449-EF49-268BB9F7C963}
{6210A080-01C0-6D67-F1DB-669393175402}.11 = {60A1DC9D-F837-3923-E9DE-A7925394A578}
{6210A080-01C0-6D67-F1DB-669393175402}.12 = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
{6210A080-01C0-6D67-F1DB-669393175402}.13 = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{6210A080-01C0-6D67-F1DB-669393175402}.14 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{6210A080-01C0-6D67-F1DB-669393175402}.15 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{6210A080-01C0-6D67-F1DB-669393175402}.16 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{6210A080-01C0-6D67-F1DB-669393175402}.17 = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{6210A080-01C0-6D67-F1DB-669393175402}.18 = {5E57E40B-B2C3-7595-57AB-A3936FFBD7D4}
{6210A080-01C0-6D67-F1DB-669393175402}.19 = {8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}
{6210A080-01C0-6D67-F1DB-669393175402}.20 = {A0958CD9-0E39-4A77-3711-9B488F508FBF}
{9E59B16D-0924-409C-1611-DF2207A0053F}.0 = {7284F809-AF30-6315-88C6-86F1C0798760}
{9E59B16D-0924-409C-1611-DF2207A0053F}.1 = {D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}
{9E59B16D-0924-409C-1611-DF2207A0053F}.2 = {E70DB92E-C1F5-AE72-F9E2-DB9B4B3DBEC9}
{9E59B16D-0924-409C-1611-DF2207A0053F}.3 = {F38629D2-EEB2-1A09-FB82-52B8A8DE759B}
{9E59B16D-0924-409C-1611-DF2207A0053F}.4 = {B94C19C6-F6E7-2F60-56E2-E0BA681B74B3}
{9E59B16D-0924-409C-1611-DF2207A0053F}.5 = {DAA547D0-0166-C085-0F93-B88CAB800F97}
{9E59B16D-0924-409C-1611-DF2207A0053F}.6 = {801CB6D4-A45C-C9D2-B176-9711A74B9164}
{9E59B16D-0924-409C-1611-DF2207A0053F}.7 = {69C821C7-1E18-D894-068D-C55E063F4859}
{9E59B16D-0924-409C-1611-DF2207A0053F}.8 = {1125C7F3-9E0D-27B1-C97B-CDAB5CE161A3}
{9E59B16D-0924-409C-1611-DF2207A0053F}.9 = {780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}
{9E59B16D-0924-409C-1611-DF2207A0053F}.10 = {60F71B6A-F888-C449-EF49-268BB9F7C963}
{9E59B16D-0924-409C-1611-DF2207A0053F}.11 = {60A1DC9D-F837-3923-E9DE-A7925394A578}
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.0 = {90F5975E-550B-EEC8-9A8A-B8581D3FCF97}
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.1 = {C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.2 = {61BD1097-CF2E-B296-DAA9-73A6FE135319}
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.3 = {7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.4 = {7C428E76-9271-6284-20F0-9B38ED6931E3}
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.5 = {85BCCE3E-992B-B6D7-28F6-CF0A12680822}
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.6 = {5E57E40B-B2C3-7595-57AB-A3936FFBD7D4}
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.7 = {8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.8 = {A0958CD9-0E39-4A77-3711-9B488F508FBF}
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{7284F809-AF30-6315-88C6-86F1C0798760}.Debug|Win32.ActiveCfg = Debug|Win32
{7284F809-AF30-6315-88C6-86F1C0798760}.Debug|Win32.Build.0 = Debug|Win32
{7284F809-AF30-6315-88C6-86F1C0798760}.Release|Win32.ActiveCfg = Release|Win32
{7284F809-AF30-6315-88C6-86F1C0798760}.Release|Win32.Build.0 = Release|Win32
{D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}.Debug|Win32.ActiveCfg = Debug|Win32
{D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}.Debug|Win32.Build.0 = Debug|Win32
{D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}.Release|Win32.ActiveCfg = Release|Win32
{D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}.Release|Win32.Build.0 = Release|Win32
{E70DB92E-C1F5-AE72-F9E2-DB9B4B3DBEC9}.Debug|Win32.ActiveCfg = Debug|Win32
{E70DB92E-C1F5-AE72-F9E2-DB9B4B3DBEC9}.Debug|Win32.Build.0 = Debug|Win32
{E70DB92E-C1F5-AE72-F9E2-DB9B4B3DBEC9}.Release|Win32.ActiveCfg = Release|Win32
{E70DB92E-C1F5-AE72-F9E2-DB9B4B3DBEC9}.Release|Win32.Build.0 = Release|Win32
{F38629D2-EEB2-1A09-FB82-52B8A8DE759B}.Debug|Win32.ActiveCfg = Debug|Win32
{F38629D2-EEB2-1A09-FB82-52B8A8DE759B}.Debug|Win32.Build.0 = Debug|Win32
{F38629D2-EEB2-1A09-FB82-52B8A8DE759B}.Release|Win32.ActiveCfg = Release|Win32
{F38629D2-EEB2-1A09-FB82-52B8A8DE759B}.Release|Win32.Build.0 = Release|Win32
{B94C19C6-F6E7-2F60-56E2-E0BA681B74B3}.Debug|Win32.ActiveCfg = Debug|Win32
{B94C19C6-F6E7-2F60-56E2-E0BA681B74B3}.Debug|Win32.Build.0 = Debug|Win32
{B94C19C6-F6E7-2F60-56E2-E0BA681B74B3}.Release|Win32.ActiveCfg = Release|Win32
{B94C19C6-F6E7-2F60-56E2-E0BA681B74B3}.Release|Win32.Build.0 = Release|Win32
{DAA547D0-0166-C085-0F93-B88CAB800F97}.Debug|Win32.ActiveCfg = Debug|Win32
{DAA547D0-0166-C085-0F93-B88CAB800F97}.Debug|Win32.Build.0 = Debug|Win32
{DAA547D0-0166-C085-0F93-B88CAB800F97}.Release|Win32.ActiveCfg = Release|Win32
{DAA547D0-0166-C085-0F93-B88CAB800F97}.Release|Win32.Build.0 = Release|Win32
{801CB6D4-A45C-C9D2-B176-9711A74B9164}.Debug|Win32.ActiveCfg = Debug|Win32
{801CB6D4-A45C-C9D2-B176-9711A74B9164}.Debug|Win32.Build.0 = Debug|Win32
{801CB6D4-A45C-C9D2-B176-9711A74B9164}.Release|Win32.ActiveCfg = Release|Win32
{801CB6D4-A45C-C9D2-B176-9711A74B9164}.Release|Win32.Build.0 = Release|Win32
{69C821C7-1E18-D894-068D-C55E063F4859}.Debug|Win32.ActiveCfg = Debug|Win32
{69C821C7-1E18-D894-068D-C55E063F4859}.Debug|Win32.Build.0 = Debug|Win32
{69C821C7-1E18-D894-068D-C55E063F4859}.Release|Win32.ActiveCfg = Release|Win32
{69C821C7-1E18-D894-068D-C55E063F4859}.Release|Win32.Build.0 = Release|Win32
{780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}.Debug|Win32.ActiveCfg = Debug|Win32
{780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}.Debug|Win32.Build.0 = Debug|Win32
{780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}.Release|Win32.ActiveCfg = Release|Win32
{780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}.Release|Win32.Build.0 = Release|Win32
{60F71B6A-F888-C449-EF49-268BB9F7C963}.Debug|Win32.ActiveCfg = Debug|Win32
{60F71B6A-F888-C449-EF49-268BB9F7C963}.Debug|Win32.Build.0 = Debug|Win32
{60F71B6A-F888-C449-EF49-268BB9F7C963}.Release|Win32.ActiveCfg = Release|Win32
{60F71B6A-F888-C449-EF49-268BB9F7C963}.Release|Win32.Build.0 = Release|Win32
{60A1DC9D-F837-3923-E9DE-A7925394A578}.Debug|Win32.ActiveCfg = Debug|Win32
{60A1DC9D-F837-3923-E9DE-A7925394A578}.Debug|Win32.Build.0 = Debug|Win32
{60A1DC9D-F837-3923-E9DE-A7925394A578}.Release|Win32.ActiveCfg = Release|Win32
{60A1DC9D-F837-3923-E9DE-A7925394A578}.Release|Win32.Build.0 = Release|Win32
{6210A080-01C0-6D67-F1DB-669393175402}.Debug|Win32.ActiveCfg = Debug|Win32
{6210A080-01C0-6D67-F1DB-669393175402}.Debug|Win32.Build.0 = Debug|Win32
{6210A080-01C0-6D67-F1DB-669393175402}.Release|Win32.ActiveCfg = Release|Win32
{6210A080-01C0-6D67-F1DB-669393175402}.Release|Win32.Build.0 = Release|Win32
{9E59B16D-0924-409C-1611-DF2207A0053F}.Debug|Win32.ActiveCfg = Debug|Win32
{9E59B16D-0924-409C-1611-DF2207A0053F}.Debug|Win32.Build.0 = Debug|Win32
{9E59B16D-0924-409C-1611-DF2207A0053F}.Release|Win32.ActiveCfg = Release|Win32
{9E59B16D-0924-409C-1611-DF2207A0053F}.Release|Win32.Build.0 = Release|Win32
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.Debug|Win32.ActiveCfg = Debug|Win32
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.Debug|Win32.Build.0 = Debug|Win32
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.Release|Win32.ActiveCfg = Release|Win32
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.Release|Win32.Build.0 = Release|Win32
{90F5975E-550B-EEC8-9A8A-B8581D3FCF97}.Debug|Win32.ActiveCfg = Debug|Win32
{90F5975E-550B-EEC8-9A8A-B8581D3FCF97}.Debug|Win32.Build.0 = Debug|Win32
{90F5975E-550B-EEC8-9A8A-B8581D3FCF97}.Release|Win32.ActiveCfg = Release|Win32
{90F5975E-550B-EEC8-9A8A-B8581D3FCF97}.Release|Win32.Build.0 = Release|Win32
{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}.Debug|Win32.ActiveCfg = Debug|Win32
{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}.Debug|Win32.Build.0 = Debug|Win32
{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}.Release|Win32.ActiveCfg = Release|Win32
{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}.Release|Win32.Build.0 = Release|Win32
{61BD1097-CF2E-B296-DAA9-73A6FE135319}.Debug|Win32.ActiveCfg = Debug|Win32
{61BD1097-CF2E-B296-DAA9-73A6FE135319}.Debug|Win32.Build.0 = Debug|Win32
{61BD1097-CF2E-B296-DAA9-73A6FE135319}.Release|Win32.ActiveCfg = Release|Win32
{61BD1097-CF2E-B296-DAA9-73A6FE135319}.Release|Win32.Build.0 = Release|Win32
{7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}.Debug|Win32.ActiveCfg = Debug|Win32
{7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}.Debug|Win32.Build.0 = Debug|Win32
{7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}.Release|Win32.ActiveCfg = Release|Win32
{7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}.Release|Win32.Build.0 = Release|Win32
{7C428E76-9271-6284-20F0-9B38ED6931E3}.Debug|Win32.ActiveCfg = Debug|Win32
{7C428E76-9271-6284-20F0-9B38ED6931E3}.Debug|Win32.Build.0 = Debug|Win32
{7C428E76-9271-6284-20F0-9B38ED6931E3}.Release|Win32.ActiveCfg = Release|Win32
{7C428E76-9271-6284-20F0-9B38ED6931E3}.Release|Win32.Build.0 = Release|Win32
{85BCCE3E-992B-B6D7-28F6-CF0A12680822}.Debug|Win32.ActiveCfg = Debug|Win32
{85BCCE3E-992B-B6D7-28F6-CF0A12680822}.Debug|Win32.Build.0 = Debug|Win32
{85BCCE3E-992B-B6D7-28F6-CF0A12680822}.Release|Win32.ActiveCfg = Release|Win32
{85BCCE3E-992B-B6D7-28F6-CF0A12680822}.Release|Win32.Build.0 = Release|Win32
{5E57E40B-B2C3-7595-57AB-A3936FFBD7D4}.Debug|Win32.ActiveCfg = Debug|Win32
{5E57E40B-B2C3-7595-57AB-A3936FFBD7D4}.Debug|Win32.Build.0 = Debug|Win32
{5E57E40B-B2C3-7595-57AB-A3936FFBD7D4}.Release|Win32.ActiveCfg = Release|Win32
{5E57E40B-B2C3-7595-57AB-A3936FFBD7D4}.Release|Win32.Build.0 = Release|Win32
{8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}.Debug|Win32.ActiveCfg = Debug|Win32
{8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}.Debug|Win32.Build.0 = Debug|Win32
{8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}.Release|Win32.ActiveCfg = Release|Win32
{8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}.Release|Win32.Build.0 = Release|Win32
{A0958CD9-0E39-4A77-3711-9B488F508FBF}.Debug|Win32.ActiveCfg = Debug|Win32
{A0958CD9-0E39-4A77-3711-9B488F508FBF}.Debug|Win32.Build.0 = Debug|Win32
{A0958CD9-0E39-4A77-3711-9B488F508FBF}.Release|Win32.ActiveCfg = Release|Win32
{A0958CD9-0E39-4A77-3711-9B488F508FBF}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
{7284F809-AF30-6315-88C6-86F1C0798760}.Release.ActiveCfg = Release|Win32
{7284F809-AF30-6315-88C6-86F1C0798760}.Release.Build.0 = Release|Win32
{7284F809-AF30-6315-88C6-86F1C0798760}.Debug.ActiveCfg = Debug|Win32
{7284F809-AF30-6315-88C6-86F1C0798760}.Debug.Build.0 = Debug|Win32
{D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}.Release.ActiveCfg = Release|Win32
{D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}.Release.Build.0 = Release|Win32
{D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}.Debug.ActiveCfg = Debug|Win32
{D7BF5DDA-C097-9E8B-5EC1-40DE45FB46BF}.Debug.Build.0 = Debug|Win32
{E70DB92E-C1F5-AE72-F9E2-DB9B4B3DBEC9}.Release.ActiveCfg = Release|Win32
{E70DB92E-C1F5-AE72-F9E2-DB9B4B3DBEC9}.Release.Build.0 = Release|Win32
{E70DB92E-C1F5-AE72-F9E2-DB9B4B3DBEC9}.Debug.ActiveCfg = Debug|Win32
{E70DB92E-C1F5-AE72-F9E2-DB9B4B3DBEC9}.Debug.Build.0 = Debug|Win32
{F38629D2-EEB2-1A09-FB82-52B8A8DE759B}.Release.ActiveCfg = Release|Win32
{F38629D2-EEB2-1A09-FB82-52B8A8DE759B}.Release.Build.0 = Release|Win32
{F38629D2-EEB2-1A09-FB82-52B8A8DE759B}.Debug.ActiveCfg = Debug|Win32
{F38629D2-EEB2-1A09-FB82-52B8A8DE759B}.Debug.Build.0 = Debug|Win32
{B94C19C6-F6E7-2F60-56E2-E0BA681B74B3}.Release.ActiveCfg = Release|Win32
{B94C19C6-F6E7-2F60-56E2-E0BA681B74B3}.Release.Build.0 = Release|Win32
{B94C19C6-F6E7-2F60-56E2-E0BA681B74B3}.Debug.ActiveCfg = Debug|Win32
{B94C19C6-F6E7-2F60-56E2-E0BA681B74B3}.Debug.Build.0 = Debug|Win32
{DAA547D0-0166-C085-0F93-B88CAB800F97}.Release.ActiveCfg = Release|Win32
{DAA547D0-0166-C085-0F93-B88CAB800F97}.Release.Build.0 = Release|Win32
{DAA547D0-0166-C085-0F93-B88CAB800F97}.Debug.ActiveCfg = Debug|Win32
{DAA547D0-0166-C085-0F93-B88CAB800F97}.Debug.Build.0 = Debug|Win32
{801CB6D4-A45C-C9D2-B176-9711A74B9164}.Release.ActiveCfg = Release|Win32
{801CB6D4-A45C-C9D2-B176-9711A74B9164}.Release.Build.0 = Release|Win32
{801CB6D4-A45C-C9D2-B176-9711A74B9164}.Debug.ActiveCfg = Debug|Win32
{801CB6D4-A45C-C9D2-B176-9711A74B9164}.Debug.Build.0 = Debug|Win32
{69C821C7-1E18-D894-068D-C55E063F4859}.Release.ActiveCfg = Release|Win32
{69C821C7-1E18-D894-068D-C55E063F4859}.Release.Build.0 = Release|Win32
{69C821C7-1E18-D894-068D-C55E063F4859}.Debug.ActiveCfg = Debug|Win32
{69C821C7-1E18-D894-068D-C55E063F4859}.Debug.Build.0 = Debug|Win32
{1125C7F3-9E0D-27B1-C97B-CDAB5CE161A3}.Release.ActiveCfg = Release|Win32
{1125C7F3-9E0D-27B1-C97B-CDAB5CE161A3}.Release.Build.0 = Release|Win32
{1125C7F3-9E0D-27B1-C97B-CDAB5CE161A3}.Debug.ActiveCfg = Debug|Win32
{1125C7F3-9E0D-27B1-C97B-CDAB5CE161A3}.Debug.Build.0 = Debug|Win32
{780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}.Release.ActiveCfg = Release|Win32
{780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}.Release.Build.0 = Release|Win32
{780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}.Debug.ActiveCfg = Debug|Win32
{780752A8-6322-5D3E-EF42-D0FD8BF9CEA1}.Debug.Build.0 = Debug|Win32
{60F71B6A-F888-C449-EF49-268BB9F7C963}.Release.ActiveCfg = Release|Win32
{60F71B6A-F888-C449-EF49-268BB9F7C963}.Release.Build.0 = Release|Win32
{60F71B6A-F888-C449-EF49-268BB9F7C963}.Debug.ActiveCfg = Debug|Win32
{60F71B6A-F888-C449-EF49-268BB9F7C963}.Debug.Build.0 = Debug|Win32
{60A1DC9D-F837-3923-E9DE-A7925394A578}.Release.ActiveCfg = Release|Win32
{60A1DC9D-F837-3923-E9DE-A7925394A578}.Release.Build.0 = Release|Win32
{60A1DC9D-F837-3923-E9DE-A7925394A578}.Debug.ActiveCfg = Debug|Win32
{60A1DC9D-F837-3923-E9DE-A7925394A578}.Debug.Build.0 = Debug|Win32
{6210A080-01C0-6D67-F1DB-669393175402}.Release.ActiveCfg = Release|Win32
{6210A080-01C0-6D67-F1DB-669393175402}.Release.Build.0 = Release|Win32
{6210A080-01C0-6D67-F1DB-669393175402}.Debug.ActiveCfg = Debug|Win32
{6210A080-01C0-6D67-F1DB-669393175402}.Debug.Build.0 = Debug|Win32
{9E59B16D-0924-409C-1611-DF2207A0053F}.Release.ActiveCfg = Release|Win32
{9E59B16D-0924-409C-1611-DF2207A0053F}.Release.Build.0 = Release|Win32
{9E59B16D-0924-409C-1611-DF2207A0053F}.Debug.ActiveCfg = Debug|Win32
{9E59B16D-0924-409C-1611-DF2207A0053F}.Debug.Build.0 = Debug|Win32
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.Release.ActiveCfg = Release|Win32
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.Release.Build.0 = Release|Win32
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.Debug.ActiveCfg = Debug|Win32
{DFAF0062-4CD7-9AB8-0683-A6026B326F56}.Debug.Build.0 = Debug|Win32
{90F5975E-550B-EEC8-9A8A-B8581D3FCF97}.Release.ActiveCfg = Release|Win32
{90F5975E-550B-EEC8-9A8A-B8581D3FCF97}.Release.Build.0 = Release|Win32
{90F5975E-550B-EEC8-9A8A-B8581D3FCF97}.Debug.ActiveCfg = Debug|Win32
{90F5975E-550B-EEC8-9A8A-B8581D3FCF97}.Debug.Build.0 = Debug|Win32
{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}.Release.ActiveCfg = Release|Win32
{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}.Release.Build.0 = Release|Win32
{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}.Debug.ActiveCfg = Debug|Win32
{C63CFD5B-23E8-FB4F-79DB-E40F463B0C1E}.Debug.Build.0 = Debug|Win32
{61BD1097-CF2E-B296-DAA9-73A6FE135319}.Release.ActiveCfg = Release|Win32
{61BD1097-CF2E-B296-DAA9-73A6FE135319}.Release.Build.0 = Release|Win32
{61BD1097-CF2E-B296-DAA9-73A6FE135319}.Debug.ActiveCfg = Debug|Win32
{61BD1097-CF2E-B296-DAA9-73A6FE135319}.Debug.Build.0 = Debug|Win32
{7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}.Release.ActiveCfg = Release|Win32
{7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}.Release.Build.0 = Release|Win32
{7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}.Debug.ActiveCfg = Debug|Win32
{7D6E339F-9C2C-31DA-FDB0-5EE50973CF2A}.Debug.Build.0 = Debug|Win32
{7C428E76-9271-6284-20F0-9B38ED6931E3}.Release.ActiveCfg = Release|Win32
{7C428E76-9271-6284-20F0-9B38ED6931E3}.Release.Build.0 = Release|Win32
{7C428E76-9271-6284-20F0-9B38ED6931E3}.Debug.ActiveCfg = Debug|Win32
{7C428E76-9271-6284-20F0-9B38ED6931E3}.Debug.Build.0 = Debug|Win32
{85BCCE3E-992B-B6D7-28F6-CF0A12680822}.Release.ActiveCfg = Release|Win32
{85BCCE3E-992B-B6D7-28F6-CF0A12680822}.Release.Build.0 = Release|Win32
{85BCCE3E-992B-B6D7-28F6-CF0A12680822}.Debug.ActiveCfg = Debug|Win32
{85BCCE3E-992B-B6D7-28F6-CF0A12680822}.Debug.Build.0 = Debug|Win32
{5E57E40B-B2C3-7595-57AB-A3936FFBD7D4}.Release.ActiveCfg = Release|Win32
{5E57E40B-B2C3-7595-57AB-A3936FFBD7D4}.Release.Build.0 = Release|Win32
{5E57E40B-B2C3-7595-57AB-A3936FFBD7D4}.Debug.ActiveCfg = Debug|Win32
{5E57E40B-B2C3-7595-57AB-A3936FFBD7D4}.Debug.Build.0 = Debug|Win32
{8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}.Release.ActiveCfg = Release|Win32
{8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}.Release.Build.0 = Release|Win32
{8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}.Debug.ActiveCfg = Debug|Win32
{8050F819-5B5B-1504-BC6D-7F2B4C6C85F3}.Debug.Build.0 = Debug|Win32
{A0958CD9-0E39-4A77-3711-9B488F508FBF}.Release.ActiveCfg = Release|Win32
{A0958CD9-0E39-4A77-3711-9B488F508FBF}.Release.Build.0 = Release|Win32
{A0958CD9-0E39-4A77-3711-9B488F508FBF}.Debug.ActiveCfg = Debug|Win32
{A0958CD9-0E39-4A77-3711-9B488F508FBF}.Debug.Build.0 = Debug|Win32
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
GlobalSection(ExtensibilityAddIns) = postSolution
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal