Code Monkey home page Code Monkey logo

bullet's People

Watchers

 avatar  avatar

bullet's Issues

improve performance of raycast versus compound shapes


Performance of raycasting against btCompoundShape should be improved.

See http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1940

Original issue reported on code.google.com by erwin.coumans on 27 Feb 2008 at 8:20

complete btContinuousDynamicsWorld

btContinuousDynamicsWorld has been 'work in progress' for a long time.

The CCD query is available, so make sure it is used.
See also:
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=4&t=20

Original issue reported on code.google.com by erwin.coumans on 12 Feb 2008 at 7:13

CCD between convex and non-convex is not implemented

At the moment, there is only time of impact/CCD between convex objects. fast 
moving objects still 
miss collisions on a triangle mesh.

Original issue reported on code.google.com by erwin.coumans on 5 Aug 2006 at 5:46

m_internalOwner is never initialized for collision objects

What steps will reproduce the problem?
1. Create a btDiscreteDynamicsWorld
2. Create a btCollisionObject and add it to the world with ->addCollisionObject
3. Run a stepSimulation and watch it crash

What is the expected output? What do you see instead?
Bullet crashes because it thinks the collision object is a rigid body (look
at line 87 of btDiscreteDynamicsWorld.cpp.  It performs an upcast on the
collision object, which really just returns m_internalOwner. But
m_internalOwner is never initialized so it's garbage, and on the next line
of code it thinks it's a valid rigid body.

to fix this problem, initialize m_internalOwner in the constructor for the
collision object.

What version of the product are you using? On what operating system?
bullet 2.51 on windows XP

Original issue reported on code.google.com by [email protected] on 27 May 2007 at 11:14

Attachments:

Show how to deal with very small dynamic objects in Bullet

By default, Bullet is configured to work well when object sizes are 
defined using units in meter. The internal collision margins and contact 
reduction/clustering constants are setup as 0.04 units.

For a pool game, a game developer specified the pool balls in different 
units, resulting in drifing/instable simulation.

There are at least two options to solve this, we need to demonstrate how 
to deal with this:

1) external upscaling/downscaling of objects: create a demo how to do this
2) add documented API calls that allow to tweak the internal constants + 
demo how to do this

See also:

http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1099&p=4043

and at GDAlgorithms mailing list at sourceforge:

http://sourceforge.net/mailarchive/forum.php?
thread_name=78DBA487C79BC540937453477A79F6A737E1D0%
40server.rubicon.local&forum_name=gdalgorithms-list

Original issue reported on code.google.com by erwin.coumans on 2 Apr 2008 at 5:17

Cleanup the API, prefixes and constent lower-case method names



currently, classes pollute namespace. potential for name clashes etc. Also 
method names are not 
constently upper case or lower case, its a mix.

Cleanup, and make all classes and filename in the core library start with bt.
So btVector3, btCollisionWorld, btRigidBody

class btRigidBody
{
public:
    void setMass(float mass);

};

Original issue reported on code.google.com by erwin.coumans on 26 Sep 2006 at 4:51

Floating point exception in btVoronoiSimplexSolver::closestPtPointTriangle

In closestPtPointTriangle in btVoronoiSimplexSolver.cpp, in the section:

// Check if P in edge region of AB, if so return projection of P onto AB

in solving for V there is an occasional divide by zero, causing a floating
point exception.  I think this can only be caused by a degenerate tri (if I
understand the code correctly).



Similarly, in the section:

// Check if P in edge region of AC, if so return projection of P onto AC

solving for W has the same problem

Original issue reported on code.google.com by [email protected] on 21 Mar 2007 at 5:03

Add Featherstone constraint solver for articulated systems


For NaturalMotion forward dynamics, powering ragdoll joints using strong 
motors, it is useful to have a Featherstone implementation available.

- including motors
- handling contacts

See Vangelis Kokkevis comments/paper on Bullet forums:
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?
f=4&t=148&hilit=vangelis

We received some Featherstone implementations that need cleanup.

Original issue reported on code.google.com by erwin.coumans on 1 Mar 2008 at 7:51

get/setGravity for rigidbodies is inconsistent/needs fixing

When I call btRigidBody::setMassProps [b]after[/b] the body was added to 
world, mass changes but gravity acceleration does not. It changes only 
when btRigidBody::setGravity is called. So all of us must call setGravity 
after setMassProps to get reliable simulation.
And there is another issue - getGravity will never return the same value 
that was an argument of setGravity unless the mass is not equal to 1. This 
is because getGravity returns value multiplied on mass.

See discussion here:
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1852

1) review and update gravity acceleration after setMassProps  is called
2) make get/setGravity consistent

Original issue reported on code.google.com by erwin.coumans on 13 Feb 2008 at 8:18

Errors on x86_64

What steps will reproduce the problem?
1. Compile Bullet on the x86_64 platform

What is the expected output? What do you see instead?
Correctly compiled binaries are expected. Errors occur while trying to
compile Bullet.

What version of the product are you using? On what operating system?
bullet-2.67 on Archlinux (Linux 2.6.24-ARCH #1 SMP PREEMPT x86_64 AMD
Athlon(tm) 64 Processor 3200+ AuthenticAMD)

Please provide any additional information below.

C++ ./out/linux/optimize/Extras/BulletMultiThreaded/SpuRaycastTaskProcess.o 
Extras/BulletMultiThreaded/SpuRaycastTaskProcess.cpp: In constructor
‘SpuRaycastTaskProcess::SpuRaycastTaskProcess(btThreadSupportInterface*,
unsigned int)’:
Extras/BulletMultiThreaded/SpuRaycastTaskProcess.cpp:27: warning:
comparison between signed and unsigned integer expressions
Extras/BulletMultiThreaded/SpuRaycastTaskProcess.cpp: In member function
‘void SpuRaycastTaskProcess::initialize2(void*, int)’:
Extras/BulletMultiThreaded/SpuRaycastTaskProcess.cpp:60: warning:
comparison between signed and unsigned integer expressions
Extras/BulletMultiThreaded/SpuRaycastTaskProcess.cpp: In member function
‘void SpuRaycastTaskProcess::issueTask2()’:
Extras/BulletMultiThreaded/SpuRaycastTaskProcess.cpp:82: error: cast from
‘SpuRaycastTaskDesc*’ to ‘uint32_t’ loses precision

    g++ -c -o
./out/linux/optimize/Extras/BulletMultiThreaded/SpuRaycastTaskProcess.o -I.
-I./src -I. -pipe -Wall -Wno-unknown-pragmas -fno-exceptions -O3
-fomit-frame-pointer -ffast-math -fPIC -I./Extras/BulletMultiThreaded 
Extras/BulletMultiThreaded/SpuRaycastTaskProcess.cpp

...failed C++
./out/linux/optimize/Extras/BulletMultiThreaded/SpuRaycastTaskProcess.o ...
C++ ./out/linux/optimize/Extras/BulletMultiThreaded/Win32ThreadSupport.o 
C++ ./out/linux/optimize/Extras/BulletMultiThreaded/SequentialThreadSupport.o 
C++ ./out/linux/optimize/Extras/BulletMultiThreaded/SpuParallelSolver.o 
Extras/BulletMultiThreaded/SpuParallelSolver.cpp: In member function
‘virtual void btParallelSequentialImpulseSolver::allSolved(const
btContactSolverInfo&, btIDebugDraw*, btStackAlloc*)’:
Extras/BulletMultiThreaded/SpuParallelSolver.cpp:431: warning: comparison
between signed and unsigned integer expressions
Extras/BulletMultiThreaded/SpuParallelSolver.cpp: In member function ‘void
SolverTaskScheduler::issueTask()’:
Extras/BulletMultiThreaded/SpuParallelSolver.cpp:569: error: cast from
‘SpuSolverTaskDesc*’ to ‘uint32_t’ loses precision
Extras/BulletMultiThreaded/SpuParallelSolver.cpp: At global scope:
Extras/BulletMultiThreaded/SpuParallelSolver.cpp:234: warning: ‘void
printDependencyMatrix(SpuSolverHash*)’ defined but not used

    g++ -c -o
./out/linux/optimize/Extras/BulletMultiThreaded/SpuParallelSolver.o -I.
-I./src -I. -pipe -Wall -Wno-unknown-pragmas -fno-exceptions -O3
-fomit-frame-pointer -ffast-math -fPIC -I./Extras/BulletMultiThreaded 
Extras/BulletMultiThreaded/SpuParallelSolver.cpp

...failed C++
./out/linux/optimize/Extras/BulletMultiThreaded/SpuParallelSolver.o ...
C++ ./out/linux/optimize/Extras/BulletMultiThreaded/SpuLibspe2Support.o 
C++ ./out/linux/optimize/Extras/BulletMultiThreaded/SpuFakeDma.o 
C++ ./out/linux/optimize/Extras/BulletMultiThreaded/SpuBatchRaycaster.o 
./src/LinearMath/btAlignedObjectArray.h: In member function ‘void
SpuBatchRaycaster::addRay(const btVector3&, const btVector3&)’:
./src/LinearMath/btAlignedObjectArray.h:213: warning:
‘workUnitOut.SpuRaycastTaskWorkUnitOut::shapeInfo.btCollisionWorld::LocalShape
Info::m_triangleIndex’
is used uninitialized in this function
Extras/BulletMultiThreaded/SpuBatchRaycaster.cpp:60: note:
‘workUnitOut.SpuRaycastTaskWorkUnitOut::shapeInfo.btCollisionWorld::LocalShape
Info::m_triangleIndex’
was declared here
./src/LinearMath/btAlignedObjectArray.h:213: warning:
‘workUnitOut.SpuRaycastTaskWorkUnitOut::shapeInfo.btCollisionWorld::LocalShape
Info::m_shapePart’
is used uninitialized in this function
Extras/BulletMultiThreaded/SpuBatchRaycaster.cpp:60: note:
‘workUnitOut.SpuRaycastTaskWorkUnitOut::shapeInfo.btCollisionWorld::LocalShape
Info::m_shapePart’
was declared here
./src/LinearMath/btAlignedObjectArray.h:213: warning:
‘workUnit.SpuRaycastTaskWorkUnit::output’ is used uninitialized in this
function
Extras/BulletMultiThreaded/SpuBatchRaycaster.cpp:66: note:
‘workUnit.SpuRaycastTaskWorkUnit::output’ was declared here
C++
./out/linux/optimize/Extras/BulletMultiThreaded/SpuCollisionObjectWrapper.o 
Extras/BulletMultiThreaded/SpuCollisionObjectWrapper.cpp: In constructor
‘SpuCollisionObjectWrapper::SpuCollisionObjectWrapper(const
btCollisionObject*)’:
Extras/BulletMultiThreaded/SpuCollisionObjectWrapper.cpp:27: error: cast
from ‘const btCollisionObject*’ to ‘ppu_address_t’ loses precision

    g++ -c -o
./out/linux/optimize/Extras/BulletMultiThreaded/SpuCollisionObjectWrapper.o
-I. -I./src -I. -pipe -Wall -Wno-unknown-pragmas -fno-exceptions -O3
-fomit-frame-pointer -ffast-math -fPIC -I./Extras/BulletMultiThreaded 
Extras/BulletMultiThreaded/SpuCollisionObjectWrapper.cpp

...failed C++
./out/linux/optimize/Extras/BulletMultiThreaded/SpuCollisionObjectWrapper.o ...
C++ ./out/linux/optimize/Extras/BulletMultiThreaded/SpuSampleTaskProcess.o 
Extras/BulletMultiThreaded/SpuSampleTaskProcess.cpp: In constructor
‘SpuSampleTaskProcess::SpuSampleTaskProcess(btThreadSupportInterface*,
unsigned int)’:
Extras/BulletMultiThreaded/SpuSampleTaskProcess.cpp:69: warning: comparison
between signed and unsigned integer expressions
Extras/BulletMultiThreaded/SpuSampleTaskProcess.cpp: In member function
‘void SpuSampleTaskProcess::initialize()’:
Extras/BulletMultiThreaded/SpuSampleTaskProcess.cpp:97: warning: comparison
between signed and unsigned integer expressions
Extras/BulletMultiThreaded/SpuSampleTaskProcess.cpp: In member function
‘void SpuSampleTaskProcess::issueTask(void*, int)’:
Extras/BulletMultiThreaded/SpuSampleTaskProcess.cpp:132: error: cast from
‘SpuSampleTaskDesc*’ to ‘uint32_t’ loses precision

    g++ -c -o
./out/linux/optimize/Extras/BulletMultiThreaded/SpuSampleTaskProcess.o -I.
-I./src -I. -pipe -Wall -Wno-unknown-pragmas -fno-exceptions -O3
-fomit-frame-pointer -ffast-math -fPIC -I./Extras/BulletMultiThreaded 
Extras/BulletMultiThreaded/SpuSampleTaskProcess.cpp

...failed C++
./out/linux/optimize/Extras/BulletMultiThreaded/SpuSampleTaskProcess.o ...
C++
./out/linux/optimize/Extras/BulletMultiThreaded/SpuGatheringCollisionDispatcher.
o

C++ ./out/linux/optimize/Extras/BulletMultiThreaded/btThreadSupportInterface.o 
C++ ./out/linux/optimize/Extras/BulletMultiThreaded/SpuCollisionTaskProcess.o 
Extras/BulletMultiThreaded/SpuCollisionTaskProcess.cpp: In constructor
‘SpuCollisionTaskProcess::SpuCollisionTaskProcess(btThreadSupportInterface*, 
unsigned
int)’:
Extras/BulletMultiThreaded/SpuCollisionTaskProcess.cpp:37: warning:
comparison between signed and unsigned integer expressions
Extras/BulletMultiThreaded/SpuCollisionTaskProcess.cpp:53: warning: format
‘%d’ expects type ‘int’, but argument 2 has type ‘long unsigned int’
Extras/BulletMultiThreaded/SpuCollisionTaskProcess.cpp: In member function
‘void SpuCollisionTaskProcess::initialize2()’:
Extras/BulletMultiThreaded/SpuCollisionTaskProcess.cpp:85: warning:
comparison between signed and unsigned integer expressions
Extras/BulletMultiThreaded/SpuCollisionTaskProcess.cpp: In member function
‘void SpuCollisionTaskProcess::issueTask2()’:
Extras/BulletMultiThreaded/SpuCollisionTaskProcess.cpp:127: error: cast
from ‘SpuGatherAndProcessPairsTaskDesc*’ to ‘uint32_t’ loses precision

    g++ -c -o
./out/linux/optimize/Extras/BulletMultiThreaded/SpuCollisionTaskProcess.o
-I. -I./src -I. -pipe -Wall -Wno-unknown-pragmas -fno-exceptions -O3
-fomit-frame-pointer -ffast-math -fPIC -I./Extras/BulletMultiThreaded 
Extras/BulletMultiThreaded/SpuCollisionTaskProcess.cpp

...failed C++
./out/linux/optimize/Extras/BulletMultiThreaded/SpuCollisionTaskProcess.o ...
C++
./out/linux/optimize/Extras/BulletMultiThreaded/SpuContactManifoldCollisionAlgor
ithm.o

MkDir1
./out/linux/optimize/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask 
C++
./out/linux/optimize/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuC
ontactResult.o

Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.cpp: In
function ‘bool ManifoldResultAddContactPoint(const btVector3&, const
btVector3&, float, btPersistentManifold*, btTransform&, btTransform&,
btScalar, btScalar, bool)’:
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.cpp:87:
warning: unused variable ‘contactTreshold’
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.cpp: In
member function ‘void
SpuContactResult::writeDoubleBufferedManifold(btPersistentManifold*,
btPersistentManifold*)’:
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.cpp:167:
error: cast from ‘btPersistentManifold*’ to ‘uint32_t’ loses precision

    g++ -c -o
./out/linux/optimize/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuC
ontactResult.o
-I. -I./src -I. -pipe -Wall -Wno-unknown-pragmas -fno-exceptions -O3
-fomit-frame-pointer -ffast-math -fPIC -I./Extras/BulletMultiThreaded 
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.cpp

...failed C++
./out/linux/optimize/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuC
ontactResult.o
...
C++
./out/linux/optimize/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuM
inkowskiPenetrationDepthSolver.o

Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuMinkowskiPenetrationDe
pthSolver.cpp:
In member function ‘virtual bool
SpuMinkowskiPenetrationDepthSolver::calcPenDepth(SpuVoronoiSimplexSolver&,
void*, void*, int, int, float, float, btTransform&, const btTransform&,
btVector3&, btPoint3&, btPoint3&, btIDebugDraw*, btStackAlloc*,
SpuConvexPolyhedronVertexData*, SpuConvexPolyhedronVertexData*) const’:
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuMinkowskiPenetrationDe
pthSolver.cpp:116:
warning:
‘minNorm.btVector3::<anonymous>.btQuadWord::<anonymous>.btQuadWordStorage::m_z
’
may be used uninitialized in this function
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuMinkowskiPenetrationDe
pthSolver.cpp:116:
warning:
‘minNorm.btVector3::<anonymous>.btQuadWord::<anonymous>.btQuadWordStorage::m_y
’
may be used uninitialized in this function
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuMinkowskiPenetrationDe
pthSolver.cpp:116:
warning:
‘minNorm.btVector3::<anonymous>.btQuadWord::<anonymous>.btQuadWordStorage::m_x
’
may be used uninitialized in this function
C++
./out/linux/optimize/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuG
jkPairDetector.o

C++
./out/linux/optimize/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuG
atheringCollisionTask.o

Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:
In constructor ‘spuNodeCallback::spuNodeCallback(SpuCollisionPairInput*,
CollisionTask_LocalStoreMemory*, SpuContactResult&)’:
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:232:
warning: ‘spuNodeCallback::m_lsMemPtr’ will be initialized after
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:231:
warning:   ‘SpuContactResult& spuNodeCallback::m_spuContacts’
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:240:
warning:   when initialized here
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:
In member function ‘virtual void spuNodeCallback::processNode(int, int)’:
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:262:
error: cast from ‘short int*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:263:
error: cast from ‘short int*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:264:
error: cast from ‘short int*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:274:
error: cast from ‘int*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:275:
error: cast from ‘int*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:276:
error: cast from ‘int*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:298:
error: cast from ‘btScalar*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:299:
error: cast from ‘btScalar*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:300:
error: cast from ‘btScalar*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:
In function ‘void ProcessConvexConcaveSpuCollision(SpuCollisionPairInput*,
CollisionTask_LocalStoreMemory*, SpuContactResult&)’:
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:397:
error: cast from ‘btBvhSubtreeInfo*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:338:
warning: unused variable ‘dmaSize’
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:339:
warning: unused variable ‘dmaPpuAddress2’
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:
In function ‘void ProcessSpuConvexConvexCollision(SpuCollisionPairInput*,
CollisionTask_LocalStoreMemory*, SpuContactResult&)’:
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:530:
error: cast from ‘btPersistentManifold*’ to ‘ppu_address_t’ loses 
precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:
In function ‘void dmaAndSetupCollisionObjects(SpuCollisionPairInput&,
CollisionTask_LocalStoreMemory&)’:
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:562:
error: cast from ‘void*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:566:
error: cast from ‘void*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:
In function ‘void handleCollisionPair(SpuCollisionPairInput&,
CollisionTask_LocalStoreMemory&, SpuContactResult&, ppu_address_t, void*,
ppu_address_t, void*, bool)’:
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:658:
error: cast from ‘btCollisionShape*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:659:
error: cast from ‘btCollisionShape*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:683:
error: cast from ‘btCollisionShape*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:692:
error: cast from ‘btCollisionShape*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:714:
error: cast from ‘btCollisionShape*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:723:
error: cast from ‘btCollisionShape*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:582:
warning: unused variable ‘dmaSize’
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:583:
warning: unused variable ‘dmaPpuAddress2’
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:
In function ‘void processCollisionTask(void*, void*)’:
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:874:
error: cast from ‘void*’ to ‘int’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:883:
error: cast from ‘btCollisionAlgorithm*’ to ‘ppu_address_t’ loses 
precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:900:
error: cast from ‘btBroadphaseProxy*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:905:
error: cast from ‘btPersistentManifold*’ to ‘ppu_address_t’ loses 
precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:911:
error: cast from ‘btBroadphaseProxy*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:956:
error: cast from ‘btCollisionShape*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp:957:
error: cast from ‘btCollisionShape*’ to ‘ppu_address_t’ loses precision

    g++ -c -o
./out/linux/optimize/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuG
atheringCollisionTask.o
-I. -I./src -I. -pipe -Wall -Wno-unknown-pragmas -fno-exceptions -O3
-fomit-frame-pointer -ffast-math -fPIC -I./Extras/BulletMultiThreaded 
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask
.cpp

...failed C++
./out/linux/optimize/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuG
atheringCollisionTask.o
...
C++
./out/linux/optimize/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuV
oronoiSimplexSolver.o

C++
./out/linux/optimize/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuC
ollisionShapes.o

Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.cpp:
In function ‘void dmaBvhShapeData(bvhMeshShape_LocalStoreMemory*,
btBvhTriangleMeshShape*)’:
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.cpp:29
9:
error: cast from ‘btStridingMeshInterface*’ to ‘ppu_address_t’ loses 
precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.cpp:30
7:
error: cast from ‘btOptimizedBvh*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.cpp:
In function ‘void dmaBvhIndexedMesh(btIndexedMesh*, IndexedMeshArray&, int,
uint32_t)’:
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.cpp:31
6:
error: cast from ‘btIndexedMesh*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.cpp:
In function ‘void dmaBvhSubTreeNodes(btQuantizedBvhNode*, const
btBvhSubtreeInfo&, QuantizedNodeArray&, int)’:
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.cpp:32
7:
error: cast from ‘btQuantizedBvhNode*’ to ‘ppu_address_t’ loses 
precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.cpp:
In function ‘void dmaConvexVertexData(SpuConvexPolyhedronVertexData*,
btConvexHullShape*)’:
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.cpp:40
0:
error: cast from ‘btPoint3*’ to ‘ppu_address_t’ loses precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.cpp:
In function ‘void dmaCompoundShapeInfo(CompoundShape_LocalStoreMemory*,
btCompoundShape*, uint32_t)’:
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.cpp:41
7:
error: cast from ‘btCompoundShapeChild*’ to ‘ppu_address_t’ loses 
precision
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.cpp:
In function ‘void dmaCompoundSubShapes(CompoundShape_LocalStoreMemory*,
btCompoundShape*, uint32_t)’:
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.cpp:42
9:
error: cast from ‘btCollisionShape*’ to ‘ppu_address_t’ loses precision

    g++ -c -o
./out/linux/optimize/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuC
ollisionShapes.o
-I. -I./src -I. -pipe -Wall -Wno-unknown-pragmas -fno-exceptions -O3
-fomit-frame-pointer -ffast-math -fPIC -I./Extras/BulletMultiThreaded 
Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.cpp

...failed C++
./out/linux/optimize/Extras/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuC
ollisionShapes.o
...


When trying to investigate this strange error (since it's usually a
warning) I came across http://www.amanith.org/forum/viewtopic.php?id=29
which explains that the pointers are 64bit but are being cast to 32bit
integers.
   "The problem is pointers are 64 bit on a 64 bit machine and an unsigned
int 32 bit. You should be able to replace those unsigned int with a DWORD
or some other equivalent 64 bit integer type."

Original issue reported on code.google.com by [email protected] on 7 Mar 2008 at 12:08

Fix btConeTwistConstraint, quaternion inverse, quatRotate, Ragdoll demo


Issues are reported here:

http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?
f=9&t=2001&p=7752&hilit=inverse#p7752
and
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1980
and
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?
f=9&t=1980&hilit=inverse

- constraint limits are scaled wrongly
- unit quaternion inverse should be (-x,-y,-z,w) instead of (x,y,z,w)
- when making the fixes, the ragdoll demo will have issues

Original issue reported on code.google.com by erwin.coumans on 7 Apr 2008 at 5:29

compile issue w/ opengl

unable to determine the cause myself.

What steps will reproduce the problem?
1. Extract latest zip / get latest svn

2.
C:\trunk>cmake -G "MSYS Makefiles" .
-- Check for working C compiler: C:/MinGW/bin/gcc.exe
-- Check for working C compiler: C:/MinGW/bin/gcc.exe -- works
-- Check size of void*
-- Check size of void* - done
-- Check for working CXX compiler: C:/MinGW/bin/g++.exe
-- Check for working CXX compiler: C:/MinGW/bin/g++.exe -- works
-- Configuring done
-- Generating done
-- Build files have been written to: C:/trunk

C:\trunk>make


What is the expected output? What do you see instead?

Linking CXX static library libLibOpenGLSupport.a
[ 21%] Built target LibOpenGLSupport
Scanning dependencies of target CcdPhysicsDemo
[ 22%] Building CXX object
Demos/CcdPhysicsDemo/CMakeFiles/CcdPhysicsDemo.dir/Cc
dPhysicsDemo.obj
Linking CXX executable CcdPhysicsDemo.exe
c:/trunk/Demos/OpenGL\libLibOpen
GLSupport.a(DemoApplication.obj)(.text+0xb28):DemoApplication.cpp:
undefined reference to `gluLookAt@72'
c:/trunk/Demos/OpenGL\libLibOpen
GLSupport.a(DemoApplication.obj)(.text+0x25ec):DemoApplication.cpp:
undefined reference to `gluOrtho2D@32'
c:/trunk/Demos/OpenGL\libLibOpen
GLSupport.a(GL_ShapeDrawer.obj)(.text+0x4b1):GL_ShapeDrawer.cpp: undefined
reference to `gluNewQuadric@0'
c:/trunk/Demos/OpenGL\libLibOpen
GLSupport.a(GL_ShapeDrawer.obj)(.text+0x677):GL_ShapeDrawer.cpp: undefined
reference to `gluQuadricDrawStyle@8'
c:/trunk/Demos/OpenGL\libLibOpen
GLSupport.a(GL_ShapeDrawer.obj)(.text+0x68d):GL_ShapeDrawer.cpp: undefined
reference to `gluQuadricNormals@8'
c:/trunk/Demos/OpenGL\libLibOpen
GLSupport.a(GL_ShapeDrawer.obj)(.text+0x6cb):GL_ShapeDrawer.cpp: undefined
reference to `gluCylinder@36'
c:/trunk/Demos/OpenGL\libLibOpen
GLSupport.a(GL_ShapeDrawer.obj)(.text+0x6de):GL_ShapeDrawer.cpp: undefined
reference to `gluDeleteQuadric@4'
collect2: ld returned 1 exit status
make[2]: *** [Demos/CcdPhysicsDemo/CcdPhysicsDemo.exe] Error 1
make[1]: *** [Demos/CcdPhysicsDemo/CMakeFiles/CcdPhysicsDemo.dir/all] Error 2
make: *** [all] Error 2


What version of the product are you using? On what operating system?

latest zip (2.42) and svn
windows xp. with msys and mingw, both about 6 months old.


Please provide any additional information below.

Original issue reported on code.google.com by [email protected] on 3 Jan 2007 at 12:54

test

this is only a test
What steps will reproduce the problem?
1.
2.
3.

What is the expected output? What do you see instead?


What version of the product are you using? On what operating system?


Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 8 Mar 2008 at 12:04

Patch for btGjkEPA: better readable/more memory friendly for multi-core


A patch from Presson Nathanael for EPA:

For multi threading, the new version fit in less than 20kb (in double, ~10 
in float, can be tuned via EPA_MAX_VERTICES) of stack-frame and do not 
malloc so should be suitable for SPU's too.

Performances are about the the same as the old version on a single thread.

To resume:
- Its a complete rewrite, cleaner, more readable code.
- Stack frame only, low memory usage.

Sources:
- btGjkEpa2(h/cpp) : new implementation.
- patched v2.67beta1 of btGjkEpaPenetrationDepthSolver.cpp(35) to replace 
old version.
- patched v2.67beta1 of btGjkPairDetector.cpp(86) to switch from Bullet 
GJK to my GJK for testing.

Asides:
- Source should fit in 80 columns :)
- GJK-EPA operate in shape0 local space to reduce transforms calls.
- I will remove my typedefs and helpers if the new version become part of 
Bullet source distribution.
- Compile with 0 warnings at level 4 under vc2005, but didn't try on a 
Linux box.
- Accuracy,EPA_MAX_ITERATIONS or vertices>EPA_MAX_VERTICES stop epa 
iterations, and output the current result, so there is a trade off here 
(ex: thin ellipsoids PD may be inaccurate).

Original issue reported on code.google.com by erwin.coumans on 28 Feb 2008 at 10:29

Attachments:

Kinematic character controller

Currently the character controller in bullet is part of the dynamics world.
More fine grained control can be had by making the character purely kinematic.

Original issue reported on code.google.com by [email protected] on 7 Mar 2008 at 10:40

Figure out why btSubsimplexConvexCast fails under certain conditions


Right now, btSubsimplexConvexCast only works reliably for moving points. 
When sweeping convex hulls, it can fail, so the more costly 
btGjkConvexCast has to be used instead.

http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?
f=9&t=1725&p=6494#p6494

Reproduction case: uncomment btSubsimplexConvexCast in 
Demos\GjkConvexCastDemo\LinearConvexCastDemo.cpp


Original issue reported on code.google.com by erwin.coumans on 1 Mar 2008 at 7:27

Allow custom friction models

See also http://continuousphysics.com/Bullet/phpBB2/viewtopic.php?p=1592

currently the friction model is simplified, and has artefacts during 
sliding. Improvements are suggested and it would be good to enable custom 
friction models.

Original issue reported on code.google.com by erwin.coumans on 25 Aug 2006 at 6:54

another test


this is still just test

What steps will reproduce the problem?
1.
2.
3.

What is the expected output? What do you see instead?


What version of the product are you using? On what operating system?


Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 8 Mar 2008 at 12:10

Put back in MotionState and kinematic support


The interfaces for PHY_IMotionState and the kinematic support have been 
removed during refactoring. 

Request to put both back in version 2.13, in the btDynamicsWorld derived 
class.



Original issue reported on code.google.com by erwin.coumans on 5 Oct 2006 at 4:52

fix memory leak in OptimizedBvh.cpp

The variable m_contiguousNodes is never deleted, causing a memory leak in 
OptimizedBvh.cpp.

Original issue reported on code.google.com by erwin.coumans on 25 Aug 2006 at 6:46

Add more doxygen documentation


See also http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?
f=9&t=1973&p=7598

Original issue reported on code.google.com by erwin.coumans on 13 Mar 2008 at 5:34

yet another test

this is yet another test
What steps will reproduce the problem?
1.
2.
3.

What is the expected output? What do you see instead?


What version of the product are you using? On what operating system?


Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 8 Mar 2008 at 12:13

complete btMultiSapBroadphase

btMultiSapBroadphase is work in progress, and not in a useable state.

It would be good to make this work. See also Pierre Terdiman document and 
thread here:
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=4&t=1329
and
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=6&t=1497&p=5458#p5458


Original issue reported on code.google.com by erwin.coumans on 12 Feb 2008 at 7:11

Let user select wether to ignore penetration at the start or not, in time of impact queries

Add some customizable behaviour for TOI queries, when starting in 
penetrating state. For example:

Right now, when objects start in penetration/touching state, there is no 
time-of-impact returned.

The User might want the result to depend on separating normal (objects 
moving towards eachother report TOI=0 when in penetrating state, objects 
moving away report no TOI (>=1), even when starting in penetrating state).

Could be dealt with by a callback, or some hard-coded options to select 
from.

Original issue reported on code.google.com by erwin.coumans on 29 Feb 2008 at 12:18

Complete the Bullet C-API


Currently, Bullet mainly provides a C++ API. However, there is a 
rudimentary start for a C-API proposal.

Currently only two know places that use this C-API:
- A demo that uses it (see Bullet/Demos/BulletDinoDemo)
- Blender uses the Bullet C++ API in the Blender Game Engine, and Bullet C-
API for some internal Blender collision tasks (Blender is mainly C-code).

Complete it further. See discussion here:
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1976

Original issue reported on code.google.com by erwin.coumans on 14 Mar 2008 at 4:08

provide root collision shape, next to child shape for callback


During a collision callback with complex shapes, only the child shape 
(triangle) is available. Sometimes the root shape is also needed.

Having access to the original shape that the body was created with would 
solve it.

Provide access to the root shape.
See discussion here:
http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2088

Original issue reported on code.google.com by erwin.coumans on 24 Apr 2008 at 5:27

Fix collada bugs

The collada importer sometimes doesn't use the names attached to objects in
the DOM.

Also, there is a crash when calling save() followed by a load().

Original issue reported on code.google.com by [email protected] on 7 Mar 2008 at 10:39

Quantized BVH fails with planar mesh

What steps will reproduce the problem?
1. Create polygon plane in Maya
2. Scale the plane to appropriate size
3. Freeze transforms (unless your exporter already does this)
4. Export
5. Import mesh into app
6. Create a btBvhTriangleMeshShape with the mesh, setting useQuantized to true

What is the expected output?

Proper collision

What do you see instead?

No collision

What version of the product are you using? On what operating system?

2.46

Please provide any additional information below.

If I set useQuantized to false, I get proper collision.  Also, if I rotate
the plane by .1 degrees around the Z axis before step 3 above, the
quantized version works.

Original issue reported on code.google.com by [email protected] on 14 May 2007 at 6:08

Add alternative multiple contact generation methods to improve quality.


Bullet adds one contact point each frame. Although this provides stable 
stacking and collision behaviour, there are cases where higher quality is 
desired.

For example simulating e.g. a sledgehammer that wants to bounce off its 
constraint due to the symmetry breakage.




Original issue reported on code.google.com by erwin.coumans on 11 Feb 2008 at 9:37

Expose RayTestSingle in CollisionWorld API

Currently, in CollisionWorld only the CollisionWorld::RayTest is exposed, 
which performs ray casting against all objects. Internally it uses 
RayTestSingle for a single object. This should be exposed for users.

Original issue reported on code.google.com by erwin.coumans on 25 Aug 2006 at 6:44

CCD between convex and non-convex is not implemented

At the moment, there is only time of impact/CCD between convex objects. fast 
moving objects still 
miss collisions on a triangle mesh.

Original issue reported on code.google.com by erwin.coumans on 5 Aug 2006 at 5:46

Add a simulation substep/internal tick callback


Bullet uses an internal fixed timestep, and when providing a variable 
timestep it slices the frame in multiple fixed substeps.

For games, this internal tick can be useful for AI and gamelogic purposes 
etc.

It would be useful to provide a callback to the developer.

Original issue reported on code.google.com by erwin.coumans on 6 Apr 2008 at 7:51

correction for shortestArcQuat


In certain cases, where two vectors are near-parallel, the shortestArcQuat 
can produce wrong results.

See Stan Melax' discussion here.

http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1989



Original issue reported on code.google.com by erwin.coumans on 22 Mar 2008 at 11:18

Fix hinge limits for single-bodies.


Hinge limits for objects attach to the world (single rigidbody/frame) don't
work as expected.

See discussion here:
http://www.bulletphysics.com/Bullet/phpBB3/posting.php?mode=reply&f=9&t=1958

Proposed solution:
Add additional frame to constructor, or modify the 'setLimit'
implementation to rotate frame B accordingly.

Original issue reported on code.google.com by erwin.coumans on 8 Mar 2008 at 3:51

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.