[Orxonox-commit 207] r2877 - trunk/src/bullet/BulletCollision/CollisionDispatch
bknecht at orxonox.net
bknecht at orxonox.net
Tue Mar 31 14:41:24 CEST 2009
Author: bknecht
Date: 2009-03-31 14:41:24 +0200 (Tue, 31 Mar 2009)
New Revision: 2877
Modified:
trunk/src/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h
Log:
reverted back everything, sorry KDevelop screws things up sometimes
Modified: trunk/src/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h
===================================================================
--- trunk/src/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h 2009-03-31 12:30:26 UTC (rev 2876)
+++ trunk/src/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h 2009-03-31 12:41:24 UTC (rev 2877)
@@ -4,8 +4,8 @@
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,
+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.
@@ -32,17 +32,17 @@
* @subsection step2 Step 2: Building
* Bullet comes with autogenerated Project Files for Microsoft Visual Studio 6, 7, 7.1 and 8.
* The main Workspace/Solution is located in Bullet/msvc/8/wksbullet.sln (replace 8 with your version).
- *
+ *
* Under other platforms, like Linux or Mac OS-X, Bullet can be build using either using make, cmake, http://www.cmake.org , or jam, http://www.perforce.com/jam/jam.html . cmake can autogenerate Xcode, KDevelop, MSVC and other build systems. just run cmake . in the root of Bullet.
* So if you are not using MSVC or cmake, you can run ./autogen.sh ./configure to create both Makefile and Jamfile and then run make or jam.
* Jam is a build system that can build the library, demos and also autogenerate the MSVC Project Files.
* If you don't have jam installed, you can make jam from the included jam-2.5 sources, or download jam from ftp://ftp.perforce.com/jam
- *
+ *
* @subsection step3 Step 3: Testing demos
* Try to run and experiment with BasicDemo executable as a starting point.
* Bullet can be used in several ways, as Full Rigid Body simulation, as Collision Detector Library or Low Level / Snippets like the GJK Closest Point calculation.
* The Dependencies can be seen in this documentation under Directories
- *
+ *
* @subsection step4 Step 4: Integrating in your application, full Rigid Body and Soft Body simulation
* Check out BasicDemo how to create a btDynamicsWorld, btRigidBody and btCollisionShape, Stepping the simulation and synchronizing your graphics object transform.
* Check out SoftDemo how to use soft body dynamics, using btSoftRigidDynamicsWorld.
@@ -56,10 +56,12 @@
* Copyright (C) 2005-2008 Erwin Coumans, some contributions Copyright Gino van den Bergen, Christer Ericson, Simon Hobbs, Ricardo Padrela, F Richter(res), Stephane Redon
* Special thanks to all visitors of the Bullet Physics forum, and in particular above contributors, John McCutchan, Nathanael Presson, Dave Eberle, Dirk Gregorius, Erin Catto, Dave Eberle, Adam Moravanszky,
* Pierre Terdiman, Kenny Erleben, Russell Smith, Oliver Strunk, Jan Paul van Waveren, Marten Svanfeldt.
- *
+ *
*/
+
+
#ifndef COLLISION_WORLD_H
#define COLLISION_WORLD_H
@@ -80,10 +82,12 @@
{
+
protected:
btAlignedObjectArray<btCollisionObject*> m_collisionObjects;
+
btDispatcher* m_dispatcher1;
btDispatcherInfo m_dispatchInfo;
@@ -95,6 +99,7 @@
btIDebugDraw* m_debugDrawer;
+
public:
//this constructor doesn't own the dispatcher and paircache/broadphase
@@ -136,6 +141,7 @@
virtual void updateAabbs();
+
virtual void setDebugDrawer(btIDebugDraw* debugDrawer)
{
m_debugDrawer = debugDrawer;
@@ -154,13 +160,14 @@
int m_shapePart;
int m_triangleIndex;
+
//const btCollisionShape* m_shapeTemp;
//const btTransform* m_shapeLocalTransform;
};
struct LocalRayResult
{
- LocalRayResult(btCollisionObject* collisionObject,
+ LocalRayResult(btCollisionObject* collisionObject,
LocalShapeInfo* localShapeInfo,
const btVector3& hitNormalLocal,
btScalar hitFraction)
@@ -227,11 +234,13 @@
btVector3 m_hitNormalWorld;
btVector3 m_hitPointWorld;
+
virtual btScalar addSingleResult(LocalRayResult& rayResult,bool normalInWorldSpace)
{
//caller already does the filter on the m_closestHitFraction
btAssert(rayResult.m_hitFraction <= m_closestHitFraction);
+
m_closestHitFraction = rayResult.m_hitFraction;
m_collisionObject = rayResult.m_collisionObject;
if (normalInWorldSpace)
@@ -250,7 +259,7 @@
struct LocalConvexResult
{
- LocalConvexResult(btCollisionObject* hitCollisionObject,
+ LocalConvexResult(btCollisionObject* hitCollisionObject,
LocalShapeInfo* localShapeInfo,
const btVector3& hitNormalLocal,
const btVector3& hitPointLocal,
@@ -278,6 +287,7 @@
short int m_collisionFilterGroup;
short int m_collisionFilterMask;
+
ConvexResultCallback()
:m_closestHitFraction(btScalar(1.)),
m_collisionFilterGroup(btBroadphaseProxy::DefaultFilter),
@@ -289,12 +299,14 @@
{
}
+
bool hasHit() const
{
return (m_closestHitFraction < btScalar(1.));
}
+
virtual bool needsCollision(btBroadphaseProxy* proxy0) const
{
@@ -322,11 +334,13 @@
btVector3 m_hitPointWorld;
btCollisionObject* m_hitCollisionObject;
+
virtual btScalar addSingleResult(LocalConvexResult& convexResult,bool normalInWorldSpace)
{
//caller already does the filter on the m_closestHitFraction
btAssert(convexResult.m_hitFraction <= m_closestHitFraction);
+
m_closestHitFraction = convexResult.m_hitFraction;
m_hitCollisionObject = convexResult.m_hitCollisionObject;
if (normalInWorldSpace)
@@ -349,7 +363,7 @@
/// rayTest performs a raycast on all objects in the btCollisionWorld, and calls the resultCallback
/// This allows for several queries: first hit, all hits, any hit, dependent on the value returned by the callback.
- void rayTest(const btVector3& rayFromWorld, const btVector3& rayToWorld, RayResultCallback& resultCallback) const;
+ void rayTest(const btVector3& rayFromWorld, const btVector3& rayToWorld, RayResultCallback& resultCallback) const;
// convexTest performs a swept convex cast on all objects in the btCollisionWorld, and calls the resultCallback
// This allows for several queries: first hit, all hits, any hit, dependent on the value return by the callback.
More information about the Orxonox-commit
mailing list