ODEItem v0.10
by Pascal · 01/04/2004 (1:38 pm) · 130 comments
Edit: 1/9/04 -- updated to 2nd Release w/ multiplayer and a couple more config features (see docs)
You can download the file from HERE (it was too large with the included .lib files for GG)
see the README.html file for complete installation usage instructions.
A number of short engine changes are required to get it working (three have changed since release 1, see docs)
Included are compiled versions of the .lib files for ODE as well as the slightly modified source.
Take a look at the following Movie Zipfile for a demo (I think its compressed with DivX..)
For those of you familiar with ODE I decided to use the torque engine for collision mechanism instead of the one built into ODE. While this is probably a performance hit (or maybe not, I don't really know enough to say) it does make life much easier as any DTS file with collision meshes should work correctly with the rest of the world including the terrain.
The code will need some modifications to make it useful so check out the ODE Homepage for some more info on the engine. I need to do a revamp of the code an clean up my initial confusion a little so I will probably release a new version in a couple of weeks.
Included are a crate and an trash can to get you started.
Have fun throwing crates around (I did)..
My next step is to try to get some rag dolls working but that may be a little while.
-Pascal
You can download the file from HERE (it was too large with the included .lib files for GG)
see the README.html file for complete installation usage instructions.
A number of short engine changes are required to get it working (three have changed since release 1, see docs)
Included are compiled versions of the .lib files for ODE as well as the slightly modified source.
Take a look at the following Movie Zipfile for a demo (I think its compressed with DivX..)
For those of you familiar with ODE I decided to use the torque engine for collision mechanism instead of the one built into ODE. While this is probably a performance hit (or maybe not, I don't really know enough to say) it does make life much easier as any DTS file with collision meshes should work correctly with the rest of the world including the terrain.
The code will need some modifications to make it useful so check out the ODE Homepage for some more info on the engine. I need to do a revamp of the code an clean up my initial confusion a little so I will probably release a new version in a couple of weeks.
Included are a crate and an trash can to get you started.
Have fun throwing crates around (I did)..
My next step is to try to get some rag dolls working but that may be a little while.
-Pascal
About the author
#82
08/08/2004 (7:44 pm)
I cant get this workingwith newest ODE. Problem of not being able to use dxGeom dGeomID as an object ID.What chnages did u make to ODE?
#83
I haven't tried it with the latest ODE, but
there were only a couple changes to the ODE codebase,
mostly making sure dxGeomID is used instead of dxGeom *
and commenting out a couple of funcs.
doing a diff gave me the following:
-Pascal
08/09/2004 (8:18 am)
Hi Westy,I haven't tried it with the latest ODE, but
there were only a couple changes to the ODE codebase,
mostly making sure dxGeomID is used instead of dxGeom *
and commenting out a couple of funcs.
doing a diff gave me the following:
diff include/ode/common.h ode_orig/include/ode/common.h
177,181c177,178
< typedef struct dxBody *dBodyID;
<
< //typedef struct dxGeom *dGeomID;
< typedef unsigned int dGeomID;
<
---
> typedef struct dxBody *dBodyID;
> typedef struct dxGeom *dGeomID;
Only in include/ode/: config.h
diff ode/src/collision_kernel.cpp ode_orig/ode/src/collision_kernel.cpp
256,258c256,257
<
< // ODE_CHANGE
< /*dxGeom *dGeomGetBodyNext (dxGeom *geom)
---
>
> dxGeom *dGeomGetBodyNext (dxGeom *geom)
261c260
< }*/
---
> }
diff ode/src/collision_space.cpp ode_orig/ode/src/collision_space.cpp
41,44c41,42
<
<
< // ODE_CHANGE
< /*void dGeomMoved (dxGeom *geom)
---
>
> void dGeomMoved (dxGeom *geom)
68c66
< */
---
>
diff ode/src/geom.cpp ode_orig/ode/src/geom.cpp
845,846d844
<
<
848,849c846,847
< // ODE_CHANGE
< /*void dGeomSetBody (dxGeom *g, dBodyID b)
---
>
> void dGeomSetBody (dxGeom *g, dBodyID b)
868c866
< }*/
---
> }
2166c2164
< {
---
> {
2217c2215
< /*
---
>
2227d2224
< */
diff ode/src/ode.cpp ode_orig/ode/src/ode.cpp
37,43d36
<
<
< // ODE_CHANGE
< void dGeomSetBody (dGeomID geom, dBodyID body) {
< if(body)
< body->geom = geom;
< }
332,333d324
<
<
375,376c366,367
< dGeomID next_geom = 0;
< for (dGeomID geom = b->geom; geom; geom = next_geom) {
---
> dxGeom *next_geom = 0;
> for (dxGeom *geom = b->geom; geom; geom = next_geom) {
420c411
< for (dGeomID geom = b->geom; geom; geom = dGeomGetBodyNext (geom))
---
> for (dxGeom *geom = b->geom; geom; geom = dGeomGetBodyNext (geom))
438c429
< for (dGeomID geom = b->geom; geom; geom = dGeomGetBodyNext (geom))
---
> for (dxGeom *geom = b->geom; geom; geom = dGeomGetBodyNext (geom))
454c445
< for (dGeomID geom = b->geom; geom; geom = dGeomGetBodyNext (geom))
---
> for (dxGeom *geom = b->geom; geom; geom = dGeomGetBodyNext (geom))
diff ode/src/step.cpp ode_orig/ode/src/step.cpp
293c293
< for (dGeomID geom = b->geom; geom; geom = dGeomGetBodyNext (geom))
---
> for (dxGeom *geom = b->geom; geom; geom = dGeomGetBodyNext (geom))
diff ode/src/stepfast.cpp ode_orig/ode/src/stepfast.cpp
317c312
< for (dGeomID geom = b->geom; geom; geom = dGeomGetBodyNext (geom))
---
> for (dxGeom * geom = b->geom; geom; geom = dGeomGetBodyNext (geom))-Pascal
#84
Help- I have made the above changes to the latest ODE but still get lots of errors of the type "cannot convert parameter 1 from dxGeom * to dGeomID"
- Emmanuel
09/04/2004 (10:06 am)
Hi Pascal,Help- I have made the above changes to the latest ODE but still get lots of errors of the type "cannot convert parameter 1 from dxGeom * to dGeomID"
- Emmanuel
#85
Just got it to compile, forgot to strip out the collision stuff already in ODE
-Emmanuel
09/04/2004 (10:30 am)
Hi Pascal,Just got it to compile, forgot to strip out the collision stuff already in ODE
-Emmanuel
#86
09/28/2004 (11:27 am)
Do you have a functioning download link?
#87
09/29/2004 (2:44 pm)
Link should be working again. Hosting snafu.
#88
10/01/2004 (7:31 pm)
I'm having problems with ODEItems going through static shapes, even at relatively "low" velocities. Anyone else having this problem?
#89
Linking...
ODEItem.obj : error LNK2019: unresolved external symbol _dMassSetZero referenced in function "public: __thiscall dMass::dMass(void)" (??0dMass@@QAE@XZ)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodySetAngularVel referenced in function "public: virtual void __thiscall ODEItem::setTransform(class MatrixF const &)" (?setTransform@ODEItem@@UAEXABVMatrixF@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodySetLinearVel referenced in function "public: virtual void __thiscall ODEItem::setTransform(class MatrixF const &)" (?setTransform@ODEItem@@UAEXABVMatrixF@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodySetRotation referenced in function "public: virtual void __thiscall ODEItem::setTransform(class MatrixF const &)" (?setTransform@ODEItem@@UAEXABVMatrixF@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodySetPosition referenced in function "public: virtual void __thiscall ODEItem::setTransform(class MatrixF const &)" (?setTransform@ODEItem@@UAEXABVMatrixF@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyEnable referenced in function "public: virtual void __thiscall ODEItem::setTransform(class MatrixF const &)" (?setTransform@ODEItem@@UAEXABVMatrixF@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyDisable referenced in function "public: virtual bool __thiscall ODEItem::onAdd(void)" (?onAdd@ODEItem@@UAE_NXZ)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodySetMass referenced in function "public: virtual bool __thiscall ODEItem::onAdd(void)" (?onAdd@ODEItem@@UAE_NXZ)
ODEItem.obj : error LNK2019: unresolved external symbol _dGeomSetBody referenced in function "public: virtual bool __thiscall ODEItem::onAdd(void)" (?onAdd@ODEItem@@UAE_NXZ)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyCreate referenced in function "public: virtual bool __thiscall ODEItem::onAdd(void)" (?onAdd@ODEItem@@UAE_NXZ)
ODEItem.obj : error LNK2019: unresolved external symbol _dMassAdjust referenced in function "public: virtual bool __thiscall ODEItem::onAdd(void)" (?onAdd@ODEItem@@UAE_NXZ)
ODEItem.obj : error LNK2019: unresolved external symbol _dMassSetBox referenced in function "public: virtual bool __thiscall ODEItem::onAdd(void)" (?onAdd@ODEItem@@UAE_NXZ)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyDestroy referenced in function "public: virtual void __thiscall ODEItem::onRemove(void)" (?onRemove@ODEItem@@UAEXXZ)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyGetLinearVel referenced in function "public: virtual unsigned int __thiscall ODEItem::packUpdate(class NetConnection *,unsigned int,class BitStream *)" (?packUpdate@ODEItem@@UAEIPAVNetConnection@@IPAVBitStream@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyIsEnabled referenced in function "public: virtual unsigned int __thiscall ODEItem::packUpdate(class NetConnection *,unsigned int,class BitStream *)" (?packUpdate@ODEItem@@UAEIPAVNetConnection@@IPAVBitStream@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyGetAngularVel referenced in function "public: virtual void __thiscall ODEItem::writePacketData(class GameConnection *,class BitStream *)" (?writePacketData@ODEItem@@UAEXPAVGameConnection@@PAVBitStream@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyGetQuaternion referenced in function "public: void __thiscall ODEItem::updateMove(void)" (?updateMove@ODEItem@@QAEXXZ)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyGetPosition referenced in function "public: void __thiscall ODEItem::updateMove(void)" (?updateMove@ODEItem@@QAEXXZ)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyAddForce referenced in function "public: void __thiscall ODEItem::resolveShapeBaseCollision(class ShapeBase *,struct Collision *,class Point3F)" (?resolveShapeBaseCollision@ODEItem@@QAEXPAVShapeBase@@PAUCollision@@VPoint3F@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dWorldImpulseToForce referenced in function "public: void __thiscall ODEItem::resolveShapeBaseCollision(class ShapeBase *,struct Collision *,class Point3F)" (?resolveShapeBaseCollision@ODEItem@@QAEXPAVShapeBase@@PAUCollision@@VPoint3F@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dJointAttach referenced in function "private: void __thiscall ODEItem::createContacts(class Convex *)" (?createContacts@ODEItem@@AAEXPAVConvex@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dJointCreateContact referenced in function "private: void __thiscall ODEItem::createContacts(class Convex *)" (?createContacts@ODEItem@@AAEXPAVConvex@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dAreConnected referenced in function "private: void __thiscall ODEItem::createContacts(class Convex *)" (?createContacts@ODEItem@@AAEXPAVConvex@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dInfinityValue referenced in function "private: void __thiscall ODEItem::createContacts(class Convex *)" (?createContacts@ODEItem@@AAEXPAVConvex@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyGetRotation referenced in function "public: virtual void __thiscall ODEItem::processTick(struct Move const *)" (?processTick@ODEItem@@UAEXPBUMove@@@Z)
ODEWorld.obj : error LNK2019: unresolved external symbol _dJointGroupEmpty referenced in function "bool __cdecl ODEStep(void)" (?ODEStep@@YA_NXZ)
ODEWorld.obj : error LNK2019: unresolved external symbol _dWorldStep referenced in function "bool __cdecl ODEStep(void)" (?ODEStep@@YA_NXZ)
ODEWorld.obj : error LNK2019: unresolved external symbol _dWorldSetGravity referenced in function "bool __cdecl ODECreateWorld(void)" (?ODECreateWorld@@YA_NXZ)
ODEWorld.obj : error LNK2019: unresolved external symbol _dWorldSetCFM referenced in function "bool __cdecl ODECreateWorld(void)" (?ODECreateWorld@@YA_NXZ)
ODEWorld.obj : error LNK2019: unresolved external symbol _dWorldSetERP referenced in function "bool __cdecl ODECreateWorld(void)" (?ODECreateWorld@@YA_NXZ)
ODEWorld.obj : error LNK2019: unresolved external symbol _dJointGroupCreate referenced in function "bool __cdecl ODECreateWorld(void)" (?ODECreateWorld@@YA_NXZ)
ODEWorld.obj : error LNK2019: unresolved external symbol _dWorldCreate referenced in function "bool __cdecl ODECreateWorld(void)" (?ODECreateWorld@@YA_NXZ)
ODEWorld.obj : error LNK2019: unresolved external symbol _dWorldDestroy referenced in function "bool __cdecl ODEDestroyWorld(void)" (?ODEDestroyWorld@@YA_NXZ)
ODEWorld.obj : error LNK2019: unresolved external symbol _dJointGroupDestroy referenced in function "bool __cdecl ODEDestroyWorld(void)" (?ODEDestroyWorld@@YA_NXZ)
../example/torqueDemo.exe : fatal error LNK1120: 34 unresolved externals
Build log was saved at "file://c:\Torque1_3\torque\engine\out.VC6.RELEASE\BuildLog.htm"
Torque Demo - 35 error(s), 0 warning(s)
any ideas? i cant figure it out
11/08/2004 (6:35 pm)
bit old, but im getting linker errors:Linking...
ODEItem.obj : error LNK2019: unresolved external symbol _dMassSetZero referenced in function "public: __thiscall dMass::dMass(void)" (??0dMass@@QAE@XZ)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodySetAngularVel referenced in function "public: virtual void __thiscall ODEItem::setTransform(class MatrixF const &)" (?setTransform@ODEItem@@UAEXABVMatrixF@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodySetLinearVel referenced in function "public: virtual void __thiscall ODEItem::setTransform(class MatrixF const &)" (?setTransform@ODEItem@@UAEXABVMatrixF@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodySetRotation referenced in function "public: virtual void __thiscall ODEItem::setTransform(class MatrixF const &)" (?setTransform@ODEItem@@UAEXABVMatrixF@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodySetPosition referenced in function "public: virtual void __thiscall ODEItem::setTransform(class MatrixF const &)" (?setTransform@ODEItem@@UAEXABVMatrixF@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyEnable referenced in function "public: virtual void __thiscall ODEItem::setTransform(class MatrixF const &)" (?setTransform@ODEItem@@UAEXABVMatrixF@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyDisable referenced in function "public: virtual bool __thiscall ODEItem::onAdd(void)" (?onAdd@ODEItem@@UAE_NXZ)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodySetMass referenced in function "public: virtual bool __thiscall ODEItem::onAdd(void)" (?onAdd@ODEItem@@UAE_NXZ)
ODEItem.obj : error LNK2019: unresolved external symbol _dGeomSetBody referenced in function "public: virtual bool __thiscall ODEItem::onAdd(void)" (?onAdd@ODEItem@@UAE_NXZ)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyCreate referenced in function "public: virtual bool __thiscall ODEItem::onAdd(void)" (?onAdd@ODEItem@@UAE_NXZ)
ODEItem.obj : error LNK2019: unresolved external symbol _dMassAdjust referenced in function "public: virtual bool __thiscall ODEItem::onAdd(void)" (?onAdd@ODEItem@@UAE_NXZ)
ODEItem.obj : error LNK2019: unresolved external symbol _dMassSetBox referenced in function "public: virtual bool __thiscall ODEItem::onAdd(void)" (?onAdd@ODEItem@@UAE_NXZ)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyDestroy referenced in function "public: virtual void __thiscall ODEItem::onRemove(void)" (?onRemove@ODEItem@@UAEXXZ)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyGetLinearVel referenced in function "public: virtual unsigned int __thiscall ODEItem::packUpdate(class NetConnection *,unsigned int,class BitStream *)" (?packUpdate@ODEItem@@UAEIPAVNetConnection@@IPAVBitStream@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyIsEnabled referenced in function "public: virtual unsigned int __thiscall ODEItem::packUpdate(class NetConnection *,unsigned int,class BitStream *)" (?packUpdate@ODEItem@@UAEIPAVNetConnection@@IPAVBitStream@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyGetAngularVel referenced in function "public: virtual void __thiscall ODEItem::writePacketData(class GameConnection *,class BitStream *)" (?writePacketData@ODEItem@@UAEXPAVGameConnection@@PAVBitStream@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyGetQuaternion referenced in function "public: void __thiscall ODEItem::updateMove(void)" (?updateMove@ODEItem@@QAEXXZ)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyGetPosition referenced in function "public: void __thiscall ODEItem::updateMove(void)" (?updateMove@ODEItem@@QAEXXZ)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyAddForce referenced in function "public: void __thiscall ODEItem::resolveShapeBaseCollision(class ShapeBase *,struct Collision *,class Point3F)" (?resolveShapeBaseCollision@ODEItem@@QAEXPAVShapeBase@@PAUCollision@@VPoint3F@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dWorldImpulseToForce referenced in function "public: void __thiscall ODEItem::resolveShapeBaseCollision(class ShapeBase *,struct Collision *,class Point3F)" (?resolveShapeBaseCollision@ODEItem@@QAEXPAVShapeBase@@PAUCollision@@VPoint3F@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dJointAttach referenced in function "private: void __thiscall ODEItem::createContacts(class Convex *)" (?createContacts@ODEItem@@AAEXPAVConvex@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dJointCreateContact referenced in function "private: void __thiscall ODEItem::createContacts(class Convex *)" (?createContacts@ODEItem@@AAEXPAVConvex@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dAreConnected referenced in function "private: void __thiscall ODEItem::createContacts(class Convex *)" (?createContacts@ODEItem@@AAEXPAVConvex@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dInfinityValue referenced in function "private: void __thiscall ODEItem::createContacts(class Convex *)" (?createContacts@ODEItem@@AAEXPAVConvex@@@Z)
ODEItem.obj : error LNK2019: unresolved external symbol _dBodyGetRotation referenced in function "public: virtual void __thiscall ODEItem::processTick(struct Move const *)" (?processTick@ODEItem@@UAEXPBUMove@@@Z)
ODEWorld.obj : error LNK2019: unresolved external symbol _dJointGroupEmpty referenced in function "bool __cdecl ODEStep(void)" (?ODEStep@@YA_NXZ)
ODEWorld.obj : error LNK2019: unresolved external symbol _dWorldStep referenced in function "bool __cdecl ODEStep(void)" (?ODEStep@@YA_NXZ)
ODEWorld.obj : error LNK2019: unresolved external symbol _dWorldSetGravity referenced in function "bool __cdecl ODECreateWorld(void)" (?ODECreateWorld@@YA_NXZ)
ODEWorld.obj : error LNK2019: unresolved external symbol _dWorldSetCFM referenced in function "bool __cdecl ODECreateWorld(void)" (?ODECreateWorld@@YA_NXZ)
ODEWorld.obj : error LNK2019: unresolved external symbol _dWorldSetERP referenced in function "bool __cdecl ODECreateWorld(void)" (?ODECreateWorld@@YA_NXZ)
ODEWorld.obj : error LNK2019: unresolved external symbol _dJointGroupCreate referenced in function "bool __cdecl ODECreateWorld(void)" (?ODECreateWorld@@YA_NXZ)
ODEWorld.obj : error LNK2019: unresolved external symbol _dWorldCreate referenced in function "bool __cdecl ODECreateWorld(void)" (?ODECreateWorld@@YA_NXZ)
ODEWorld.obj : error LNK2019: unresolved external symbol _dWorldDestroy referenced in function "bool __cdecl ODEDestroyWorld(void)" (?ODEDestroyWorld@@YA_NXZ)
ODEWorld.obj : error LNK2019: unresolved external symbol _dJointGroupDestroy referenced in function "bool __cdecl ODEDestroyWorld(void)" (?ODEDestroyWorld@@YA_NXZ)
../example/torqueDemo.exe : fatal error LNK1120: 34 unresolved externals
Build log was saved at "file://c:\Torque1_3\torque\engine\out.VC6.RELEASE\BuildLog.htm"
Torque Demo - 35 error(s), 0 warning(s)
any ideas? i cant figure it out
#90
11/09/2004 (9:11 am)
@Jeff: Did you link in the ODE (ODE.lib I think) library? That should cure all those unresolved external symbols.
#91
but now im getting the stupid "cant find ode/ode.h
i have the ode folder created in the include, but nothing is working
11/09/2004 (12:09 pm)
i got it linked properly(turns out the slashes were backwards :o )but now im getting the stupid "cant find ode/ode.h
i have the ode folder created in the include, but nothing is working
#92
11/09/2004 (5:13 pm)
try renaming the include to ode and the change the path to "../lib/ode"
#93
11/11/2004 (3:23 am)
that doesnt help :(
#94
Linking...
gameProcess.obj : error LNK2001: unresolved external symbol "bool __cdecl ODEStep(void)" (?ODEStep@@YA_NXZ)
main.obj : error LNK2001: unresolved external symbol "bool __cdecl ODECreateWorld(void)" (?ODECreateWorld@@YA_NXZ)
main.obj : error LNK2001: unresolved external symbol "bool __cdecl ODEDestroyWorld(void)" (?ODEDestroyWorld@@YA_NXZ)
player.obj : error LNK2001: unresolved external symbol "public: void __thiscall ODEItem::resolveShapeBaseCollision(class ShapeBase *,struct Collision *,class Point3F)" (?resolveShapeBaseCollision@ODEItem@@QAEXPAVShapeBase@@PAUCollision@@VPoint3F@@@Z
)
../example/torqueDemo_DEBUG.exe : fatal error LNK1120: 4 unresolved externals
Error executing link.exe
Got it figured out......Man this fun, thanks for bringing this to Torque
11/12/2004 (12:02 pm)
I too am having a linking problem here is what i get any advice?Linking...
gameProcess.obj : error LNK2001: unresolved external symbol "bool __cdecl ODEStep(void)" (?ODEStep@@YA_NXZ)
main.obj : error LNK2001: unresolved external symbol "bool __cdecl ODECreateWorld(void)" (?ODECreateWorld@@YA_NXZ)
main.obj : error LNK2001: unresolved external symbol "bool __cdecl ODEDestroyWorld(void)" (?ODEDestroyWorld@@YA_NXZ)
player.obj : error LNK2001: unresolved external symbol "public: void __thiscall ODEItem::resolveShapeBaseCollision(class ShapeBase *,struct Collision *,class Point3F)" (?resolveShapeBaseCollision@ODEItem@@QAEXPAVShapeBase@@PAUCollision@@VPoint3F@@@Z
)
../example/torqueDemo_DEBUG.exe : fatal error LNK1120: 4 unresolved externals
Error executing link.exe
Got it figured out......Man this fun, thanks for bringing this to Torque
#95
11/17/2004 (6:43 am)
How do i set object properties, specifically the mass for each odeitem?
#96
In the file ODEworld.h, it cannot find this file:
#include
And in the fil ode.h it cannot find this file:
#include
Anyone have any ideas? I'm using XCode 1.5 on OSX. I'm obviously somewhat new to this, as to get any resource I download to work under XCode I have to adjust the files so they are looking in the same directories that the files are located in. (Meaning, if the code says #include and I have everything in the right directories, I have to change that code to read #include or else it cannot find that file.) I wouldn't be half surprised if my doing this might be the issue
11/17/2004 (7:09 am)
This resource looks great! However, I'm getting some compiling errors...In the file ODEworld.h, it cannot find this file:
#include
And in the fil ode.h it cannot find this file:
#include
Anyone have any ideas? I'm using XCode 1.5 on OSX. I'm obviously somewhat new to this, as to get any resource I download to work under XCode I have to adjust the files so they are looking in the same directories that the files are located in. (Meaning, if the code says #include
#97
is deprecated in favor of stdlib.h. Make sure that stdlib.h is there, and just remove the malloc.
Gary (-;
11/17/2004 (9:06 am)
Gary (-;
#98
Does anyone know about isc.h? I tried commenting out and got one error about a multiplier, so it dosen't sound like that one has been depriciated.. is this something I need to add in?
11/18/2004 (3:28 pm)
Thanks Gary! That explains that half of the problem! =)Does anyone know about isc.h? I tried commenting out and got one error about a multiplier, so it dosen't sound like that one has been depriciated.. is this something I need to add in?
#99
engine\game\player.cc(2620) : error C2660: 'resolveShapeBaseCollision' : function does not take 3 parameters
LINE 2620: ODEObj-> resolveShapeBaseCollision(this, collision, ODEObj-> getVelocity() - mVelocity);
and
engine\game\main.cc(407) : error C2660: 'ODECreateWorld' : function does not take 0 parameters
LINE407: ODECreateWorld();
_____________________________________________
please help lol :o
12/03/2004 (11:28 pm)
Hey I get 2 compiling errors, any idea on what could be wrong?engine\game\player.cc(2620) : error C2660: 'resolveShapeBaseCollision' : function does not take 3 parameters
LINE 2620: ODEObj-> resolveShapeBaseCollision(this, collision, ODEObj-> getVelocity() - mVelocity);
and
engine\game\main.cc(407) : error C2660: 'ODECreateWorld' : function does not take 0 parameters
LINE407: ODECreateWorld();
_____________________________________________
please help lol :o
#100
my player can't run or walk on the ODEItem s :(
Solution:
this is because ODEItem specifies ItemObjectType in it's type mask, so when the player tries to find a surface to run or jump on, it checks for the special case of items, and doesn't do what you'd expect.
I fixed this by checking for the special case of ODEObjectType before ItemObject type in findContacts like so.
in player.cc in the findContacts function
then at the top of player.cc I also added ODEObjectType to the collision mask for movement
12/04/2004 (9:27 pm)
Problem: my player can't run or walk on the ODEItem s :(
Solution:
this is because ODEItem specifies ItemObjectType in it's type mask, so when the player tries to find a surface to run or jump on, it checks for the special case of items, and doesn't do what you'd expect.
I fixed this by checking for the special case of ODEObjectType before ItemObject type in findContacts like so.
in player.cc in the findContacts function
.....
else if (objectMask & CorpseObjectType) {
// If we've overlapped the worldbounding boxes, then that's it...
if (getWorldBox().isOverlapped(pConvex->getObject()->getWorldBox())) {
ShapeBase* col = static_cast<ShapeBase*>(pConvex->getObject());
queueCollision(col,getVelocity() - col->getVelocity());
}
}
// new stuff----------------
// CLINT we need to check for ODE objects before
// items and handle them like a regular surface
else if(objectMask & ODEObjectType){
ODEItem* odeItem = dynamic_cast<ODEItem*>(pConvex->getObject());
if(odeItem)
{
Box3F convexBox = pConvex->getBoundingBox();
if (plistBox.isOverlapped(convexBox) && serverParent == NULL)
pConvex->getPolyList(&polyList);
}
}
//CLINT end new stuff----------------
else if (objectMask & ItemObjectType) {
....then at the top of player.cc I also added ODEObjectType to the collision mask for movement
static U32 sCollisionMoveMask = (TerrainObjectType | InteriorObjectType |
WaterObjectType | PlayerObjectType |
StaticShapeObjectType | VehicleObjectType |
PhysicalZoneObjectType | StaticTSObjectType |
ODEObjectType); //CLINT we also collide with ODE physics objects now 
Torque Owner Luke Jones