favreau / bullet Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/bullet
Automatically exported from code.google.com/p/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
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
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
See:
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1894
Will be planned for Bullet 2.68
Original issue reported on code.google.com by erwin.coumans
on 27 Feb 2008 at 8:40
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
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
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
I discovered that btSubSimplexConvexCast will return true if there is a hit
at any point in the future, not just within the specified interval of 0.0
to 1.0.
Original issue reported on code.google.com by [email protected]
on 21 Apr 2008 at 8:52
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?
f=9&t=1970&start=0&st=0&sk=t&sd=a
This isn't a bug or a must-have, but it's a nice-to-have.
Original issue reported on code.google.com by [email protected]
on 11 Apr 2008 at 5:55
CollisionShape can be re-used, so reference counting makes sense there.
Also, allowing custom memory allocator is very useful, instead of global system
new/delete
Original issue reported on code.google.com by erwin.coumans
on 26 Sep 2006 at 4:53
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
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
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:
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
Would be good to have a SAT implementation for convex polyhedra.
See implementation in Bullet\Extras\SATConvexCollision, or take one of the
contributions.
Original issue reported on code.google.com by erwin.coumans
on 1 Mar 2008 at 7:30
It would be nice if bullet support buoyancy
Original issue reported on code.google.com by [email protected]
on 7 Mar 2008 at 10:40
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
In the copy constructor initializer list of LocalRayResult in
btCollisionWorld.h line 139 (version 2.48) it reads:
m_localShapeInfo(m_localShapeInfo),
which should be:
m_localShapeInfo(localShapeInfo),
Original issue reported on code.google.com by [email protected]
on 21 Mar 2007 at 5:02
Feature information / callback mechanism will be added, and per-contact
point friction/restitution too.
Some functionality in the BVH tree is already prepared for this.
Original issue reported on code.google.com by erwin.coumans
on 7 Aug 2006 at 7:48
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
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
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
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
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
Add slider sample and make sure there is no instability, as described in
this topic:
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1939
Original issue reported on code.google.com by erwin.coumans
on 26 Feb 2008 at 5:27
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
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
At the moment, only integeger (DWORD) indices are supported.
Original issue reported on code.google.com by erwin.coumans
on 6 Sep 2006 at 6:37
If you use just AxisSweep3 this is not a problem since it does not need
this call to work properly, but if you use e.g. the SimpleBroadphase you
never get any collisions.
Original issue reported on code.google.com by erwin.coumans
on 25 Aug 2006 at 6:49
See discussion here:
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1814
Original issue reported on code.google.com by erwin.coumans
on 27 Feb 2008 at 8:44
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
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
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
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:
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
add the check for
Original issue reported on code.google.com by erwin.coumans
on 5 Sep 2006 at 10:47
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
At the moment, the user has to create and delete a temporarily copy for
meshes.
Original issue reported on code.google.com by erwin.coumans
on 6 Sep 2006 at 6:39
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
some old interfacing stuff is still unused in the demos
Also, check usage of per-rigidbody gravity
Original issue reported on code.google.com by erwin.coumans
on 26 Sep 2006 at 4:52
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
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
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
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
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
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
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
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
For some ideas, see video and discussions here:
https://mollyrocket.com/forums/viewforum.php?f=13
Original issue reported on code.google.com by erwin.coumans
on 1 Mar 2008 at 7:48
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.