|
From: Ben S. <non...@us...> - 2002-11-11 04:39:49
|
nonchocoboy 2002/11/10 20:39:48 PST
Modified files:
src BoundsSweepCollisionDetector.cpp
BoundsSweepCollisionDetector.h
CollisionDetector.h GameState.cpp
OpenSGSceneViewer.cpp OpenSGSceneViewer.h
PhysicsEngine.cpp RigidBody.cpp
RigidBody.h SConscript
vc7/midworld midworld.vcproj
Added files:
src BodyChangeEvent.cpp BodyChangeEvent.h
BodyChangeListener.h
Log:
Bug fixed: Actually use the body's path in when testing against the
spatial index rather than its bounds at its initial pos.
This fixes problems where objects were allowed to pass
through walls.
Bug fixed: Stop sticking! We now "push back" objects a bit from the
point of collision so that we don't leave them in a
colliding state for the next frame.
Bug fixed: All objects no longer collide against everybody else during
the first frame. We now force OpenSG to update the bounding
volume each time an entity is changed.
Sorry for the tons of debugging output, but I wanted to make this huge
commit now while it works. Big changes here.
Rigid bodies now fire events to listeners when they are changed. This makes
it so that we can update ourscene graph (and thus the body's bounds)
immediately rather than the next frame.
I reverted CollisionDetector back to only reporting the first collision. I
don't know what I was thinking earlier.
Our hack of a ground plane collision is now made before the body change is
"committed" so that the bounding volume is correct for the collision
detector.
Revision Changes Path
1.1 +15 -0 midworld/src/BodyChangeEvent.cpp (new)
1.1 +20 -0 midworld/src/BodyChangeEvent.h (new)
1.1 +17 -0 midworld/src/BodyChangeListener.h (new)
1.5 +58 -33 midworld/src/BoundsSweepCollisionDetector.cpp
1.3 +2 -3 midworld/src/BoundsSweepCollisionDetector.h
1.8 +3 -8 midworld/src/CollisionDetector.h
1.113 +5 -2 midworld/src/GameState.cpp
1.12 +113 -41 midworld/src/OpenSGSceneViewer.cpp
1.6 +14 -3 midworld/src/OpenSGSceneViewer.h
1.10 +32 -9 midworld/src/PhysicsEngine.cpp
1.21 +28 -2 midworld/src/RigidBody.cpp
1.24 +16 -2 midworld/src/RigidBody.h
1.61 +2 -2 midworld/src/SConscript
1.31 +9 -0 midworld/vc7/midworld/midworld.vcproj
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/isugamedev/midworld/src/BodyChangeEvent.cpp?rev=1.1&content-type=text/plain
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/isugamedev/midworld/src/BodyChangeEvent.h?rev=1.1&content-type=text/plain
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/isugamedev/midworld/src/BodyChangeListener.h?rev=1.1&content-type=text/plain
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/isugamedev/midworld/src/BoundsSweepCollisionDetector.cpp.diff?r1=1.4&r2=1.5&diff_format=h
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/isugamedev/midworld/src/BoundsSweepCollisionDetector.h.diff?r1=1.2&r2=1.3&diff_format=h
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/isugamedev/midworld/src/CollisionDetector.h.diff?r1=1.7&r2=1.8&diff_format=h
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/isugamedev/midworld/src/GameState.cpp.diff?r1=1.112&r2=1.113&diff_format=h
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/isugamedev/midworld/src/OpenSGSceneViewer.cpp.diff?r1=1.11&r2=1.12&diff_format=h
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/isugamedev/midworld/src/OpenSGSceneViewer.h.diff?r1=1.5&r2=1.6&diff_format=h
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/isugamedev/midworld/src/PhysicsEngine.cpp.diff?r1=1.9&r2=1.10&diff_format=h
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/isugamedev/midworld/src/RigidBody.cpp.diff?r1=1.20&r2=1.21&diff_format=h
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/isugamedev/midworld/src/RigidBody.h.diff?r1=1.23&r2=1.24&diff_format=h
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/isugamedev/midworld/src/SConscript.diff?r1=1.60&r2=1.61&diff_format=h
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/isugamedev/midworld/vc7/midworld/midworld.vcproj.diff?r1=1.30&r2=1.31&diff_format=h
|