Changeset 2876 for code/trunk/src/bullet/BulletCollision
- Timestamp:
- Mar 31, 2009, 2:30:26 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk/src/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h
r2873 r2876 5 5 This software is provided 'as-is', without any express or implied warranty. 6 6 In no event will the authors be held liable for any damages arising from the use of this software. 7 Permission is granted to anyone to use this software for any purpose, 8 including commercial applications, and to alter it and redistribute it freely, 7 Permission is granted to anyone to use this software for any purpose, 8 including commercial applications, and to alter it and redistribute it freely, 9 9 subject to the following restrictions: 10 10 … … 14 14 */ 15 15 16 /* 16 17 17 /** 18 18 * @mainpage Bullet Documentation … … 33 33 * Bullet comes with autogenerated Project Files for Microsoft Visual Studio 6, 7, 7.1 and 8. 34 34 * The main Workspace/Solution is located in Bullet/msvc/8/wksbullet.sln (replace 8 with your version). 35 * 35 * 36 36 * 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. 37 37 * 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. 38 38 * Jam is a build system that can build the library, demos and also autogenerate the MSVC Project Files. 39 39 * 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 40 * 40 * 41 41 * @subsection step3 Step 3: Testing demos 42 42 * Try to run and experiment with BasicDemo executable as a starting point. 43 43 * 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. 44 44 * The Dependencies can be seen in this documentation under Directories 45 * 45 * 46 46 * @subsection step4 Step 4: Integrating in your application, full Rigid Body and Soft Body simulation 47 47 * Check out BasicDemo how to create a btDynamicsWorld, btRigidBody and btCollisionShape, Stepping the simulation and synchronizing your graphics object transform. … … 57 57 * 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, 58 58 * Pierre Terdiman, Kenny Erleben, Russell Smith, Oliver Strunk, Jan Paul van Waveren, Marten Svanfeldt. 59 * 59 * 60 60 */ 61 62 61 62 63 63 64 64 #ifndef COLLISION_WORLD_H … … 80 80 { 81 81 82 82 83 83 protected: 84 84 85 85 btAlignedObjectArray<btCollisionObject*> m_collisionObjects; 86 86 87 87 btDispatcher* m_dispatcher1; 88 88 … … 95 95 btIDebugDraw* m_debugDrawer; 96 96 97 97 98 98 public: 99 99 … … 136 136 virtual void updateAabbs(); 137 137 138 138 139 139 virtual void setDebugDrawer(btIDebugDraw* debugDrawer) 140 140 { … … 154 154 int m_shapePart; 155 155 int m_triangleIndex; 156 156 157 157 //const btCollisionShape* m_shapeTemp; 158 158 //const btTransform* m_shapeLocalTransform; … … 161 161 struct LocalRayResult 162 162 { 163 LocalRayResult(btCollisionObject* collisionObject, 163 LocalRayResult(btCollisionObject* collisionObject, 164 164 LocalShapeInfo* localShapeInfo, 165 165 const btVector3& hitNormalLocal, … … 227 227 btVector3 m_hitNormalWorld; 228 228 btVector3 m_hitPointWorld; 229 229 230 230 virtual btScalar addSingleResult(LocalRayResult& rayResult,bool normalInWorldSpace) 231 231 { 232 232 //caller already does the filter on the m_closestHitFraction 233 233 btAssert(rayResult.m_hitFraction <= m_closestHitFraction); 234 234 235 235 m_closestHitFraction = rayResult.m_hitFraction; 236 236 m_collisionObject = rayResult.m_collisionObject; … … 251 251 struct LocalConvexResult 252 252 { 253 LocalConvexResult(btCollisionObject* hitCollisionObject, 253 LocalConvexResult(btCollisionObject* hitCollisionObject, 254 254 LocalShapeInfo* localShapeInfo, 255 255 const btVector3& hitNormalLocal, … … 278 278 short int m_collisionFilterGroup; 279 279 short int m_collisionFilterMask; 280 280 281 281 ConvexResultCallback() 282 282 :m_closestHitFraction(btScalar(1.)), … … 289 289 { 290 290 } 291 291 292 292 bool hasHit() const 293 293 { … … 295 295 } 296 296 297 297 298 298 299 299 virtual bool needsCollision(btBroadphaseProxy* proxy0) const … … 322 322 btVector3 m_hitPointWorld; 323 323 btCollisionObject* m_hitCollisionObject; 324 324 325 325 virtual btScalar addSingleResult(LocalConvexResult& convexResult,bool normalInWorldSpace) 326 326 { 327 327 //caller already does the filter on the m_closestHitFraction 328 328 btAssert(convexResult.m_hitFraction <= m_closestHitFraction); 329 329 330 330 m_closestHitFraction = convexResult.m_hitFraction; 331 331 m_hitCollisionObject = convexResult.m_hitCollisionObject; … … 350 350 /// rayTest performs a raycast on all objects in the btCollisionWorld, and calls the resultCallback 351 351 /// This allows for several queries: first hit, all hits, any hit, dependent on the value returned by the callback. 352 void rayTest(const btVector3& rayFromWorld, const btVector3& rayToWorld, RayResultCallback& resultCallback) const; 352 void rayTest(const btVector3& rayFromWorld, const btVector3& rayToWorld, RayResultCallback& resultCallback) const; 353 353 354 354 // convexTest performs a swept convex cast on all objects in the btCollisionWorld, and calls the resultCallback
Note: See TracChangeset
for help on using the changeset viewer.