More complex collision objects

nathanwilliams6

03-05-2006 17:07:14

I want to make a cog as a collision object, I tried using a convex hull, but of course the space in between the teeth were covered by the collision geometry.

Am I right in thinking that the only way to accurately portray a cog using ogre newt is to define a compound collision geometry and manually define where each primitive is to form the overall shape?

Is there any automated compound collision geometry creator? Given the mesh?

walaber

03-05-2006 21:01:45

you are right, that is the process. there is no automatic generation tool available, but I did release a "Rigid Body Designer" tool a while back that lets you define collision shapes visually, and saves the information to an XML file that can later be loaded with an included function...

it's floating around the forums somewhere...

[edit] here they are
http://walaber.com/misc/RigidBodyDesigner.rar
http://walaber.com/misc/RB_Loader.rar

nathanwilliams6

05-05-2006 09:29:14

cheers, i will take a look at these and let you know how i got on

nathanwilliams6

05-05-2006 11:03:12

i tried to compile the rigidbodyloader into a project i am working on, and it is having trouble compiling.

it seems the definitions for primative types is missing i got the following error

Compiling...
RigidBodyLoader.cpp
\AGDPhysics\src\RigidBodyLoader.cpp(20) : error C2664: 'bool TiXmlDocument::LoadFile(TiXmlEncoding)' : cannot convert parameter 1 from 'std::basic_string<_Elem,_Traits,_Ax>' to 'TiXmlEncoding'
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
\AGDPhysics\src\RigidBodyLoader.cpp(89) : error C2039: 'PrimitiveType' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(89) : error C2065: 'PrimitiveType' : undeclared identifier
\AGDPhysics\src\RigidBodyLoader.cpp(89) : error C2146: syntax error : missing ';' before identifier 'shape'
\AGDPhysics\src\RigidBodyLoader.cpp(89) : error C2065: 'shape' : undeclared identifier
\AGDPhysics\src\RigidBodyLoader.cpp(93) : error C2039: 'BOX' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(93) : error C2065: 'BOX' : undeclared identifier
\AGDPhysics\src\RigidBodyLoader.cpp(93) : error C3861: 'shape': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(94) : error C2039: 'ELLIPSOID' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(94) : error C2065: 'ELLIPSOID' : undeclared identifier
\AGDPhysics\src\RigidBodyLoader.cpp(94) : error C3861: 'shape': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(95) : error C2039: 'CYLINDER' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(95) : error C2065: 'CYLINDER' : undeclared identifier
\AGDPhysics\src\RigidBodyLoader.cpp(95) : error C3861: 'shape': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(96) : error C2039: 'CAPSULE' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(96) : error C2065: 'CAPSULE' : undeclared identifier
\AGDPhysics\src\RigidBodyLoader.cpp(96) : error C3861: 'shape': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(97) : error C2039: 'CONE' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(97) : error C2065: 'CONE' : undeclared identifier
\AGDPhysics\src\RigidBodyLoader.cpp(97) : error C3861: 'shape': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(98) : error C2039: 'CHAMFER_CYLINDER' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(98) : error C2065: 'CHAMFER_CYLINDER' : undeclared identifier
\AGDPhysics\src\RigidBodyLoader.cpp(98) : error C3861: 'shape': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(99) : error C2039: 'CONVEX_HULL' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(99) : error C2065: 'CONVEX_HULL' : undeclared identifier
\AGDPhysics\src\RigidBodyLoader.cpp(99) : error C3861: 'shape': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(100) : error C2039: 'TREE' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(100) : error C2065: 'TREE' : undeclared identifier
\AGDPhysics\src\RigidBodyLoader.cpp(100) : error C3861: 'shape': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(116) : error C2039: 'BOX' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(116) : error C2039: 'ELLIPSOID' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(116) : error C3861: 'shape': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(116) : error C3861: 'BOX': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(116) : error C3861: 'shape': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(116) : error C3861: 'ELLIPSOID': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(121) : error C2039: 'CYLINDER' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(121) : error C2039: 'CAPSULE' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(121) : error C2039: 'CONE' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(121) : error C2039: 'CHAMFER_CYLINDER' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(121) : error C3861: 'shape': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(121) : error C3861: 'CYLINDER': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(121) : error C3861: 'shape': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(121) : error C3861: 'CAPSULE': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(121) : error C3861: 'shape': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(121) : error C3861: 'CONE': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(121) : error C3861: 'shape': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(121) : error C3861: 'CHAMFER_CYLINDER': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(148) : error C2039: 'CONVEX_HULL' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(148) : error C3861: 'shape': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(148) : error C3861: 'CONVEX_HULL': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(172) : warning C4267: 'initializing' : conversion from 'size_t' to 'int', possible loss of data
\AGDPhysics\src\RigidBodyLoader.cpp(191) : error C3861: 'shape': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(191) : error C2050: switch expression not integral
\AGDPhysics\src\RigidBodyLoader.cpp(193) : error C2039: 'BOX' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(193) : error C3861: 'BOX': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(193) : error C2051: case expression not constant
\AGDPhysics\src\RigidBodyLoader.cpp(197) : error C2039: 'ELLIPSOID' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(197) : error C3861: 'ELLIPSOID': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(197) : error C2051: case expression not constant
\AGDPhysics\src\RigidBodyLoader.cpp(201) : error C2039: 'CYLINDER' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(201) : error C3861: 'CYLINDER': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(201) : error C2051: case expression not constant
\AGDPhysics\src\RigidBodyLoader.cpp(205) : error C2039: 'CAPSULE' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(205) : error C3861: 'CAPSULE': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(205) : error C2051: case expression not constant
\AGDPhysics\src\RigidBodyLoader.cpp(209) : error C2039: 'CONE' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(209) : error C3861: 'CONE': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(209) : error C2051: case expression not constant
\AGDPhysics\src\RigidBodyLoader.cpp(213) : error C2039: 'CHAMFER_CYLINDER' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(213) : error C3861: 'CHAMFER_CYLINDER': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(213) : error C2051: case expression not constant
\AGDPhysics\src\RigidBodyLoader.cpp(217) : error C2039: 'TREE' : is not a member of 'StuntPlayground'
\AGDPhysics\src\RigidBodyLoader.cpp(217) : error C3861: 'TREE': identifier not found, even with argument-dependent lookup
\AGDPhysics\src\RigidBodyLoader.cpp(217) : error C2051: case expression not constant
\AGDPhysics\src\RigidBodyLoader.cpp(224) : warning C4065: switch statement contains 'default' but no 'case' labels

walaber

06-05-2006 07:28:16

that loader was taken straight out of my StuntPlayground project, so you should remove the "namespace StuntPlayground" stuff from the source.

nathanwilliams6

08-05-2006 09:30:40

i removed all traces of the StuntPlayground namespace, and it still doesnt recognise any of the shapes, such as ELLIPSOID.

am i right in assuming that these are simple #defines of said names to ints to represent them ? (to make the case statements easier to read) ?

also, it doesnt appear to know what type PrimitiveType is

any information on how to define the shapes that this code needs, and how to define the PrimitiveType would be greatly appreciated

nathanwilliams6

08-05-2006 11:03:25

i read through the code and determined that PrimitiveType was probably an enumerated type, and added

enum PrimitiveType { BOX, ELLIPSOID, CYLINDER, CAPSULE, CONE, CHAMFER_CYLINDER, CONVEX_HULL, TREE };

to RigidBodyLoader.h

this alleviated all problems with PrimitiveType and shape types.

however, im having trouble getting TinyXML to link into the project, this probably isnt the place to ask about this, but i will ask anyway, given that you probably worked with tinyxml a bit.

I included, the tinyxml Release_STL and Debug_STR directories as linker directories (for release and debug builds respectivly), i included the tinxml directory as a code C/C++ source directory, and then did the PreProcessor define for TIXML_USE_STL, and also put the lib names in teh linking dependancies.

seems the tinyxml is included then linked, but alot of other linking errors appear

Linking...
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator=(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator+=(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z) already defined in tinyxmld_STL.lib(tinyxmlparser.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator+=(char const *)" (??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z) already defined in tinyxmld_STL.lib(tinyxmlparser.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator+=(char)" (??Y?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@D@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: int __thiscall std::ios_base::width(int)" (?width@ios_base@std@@QAEHH@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: void __thiscall std::basic_ios<char,struct std::char_traits<char> >::setstate(int,bool)" (?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::append(unsigned int,char)" (?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ID@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: bool __thiscall std::ctype<char>::is(short,char)const " (?is@?$ctype@D@std@@QBE_NFD@Z) already defined in tinyxmld_STL.lib(tinyxmlparser.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: static char __cdecl std::char_traits<char>::to_char_type(int const &)" (?to_char_type@?$char_traits@D@std@@SADABH@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: static bool __cdecl std::char_traits<char>::eq_int_type(int const &,int const &)" (?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: static int __cdecl std::char_traits<char>::eof(void)" (?eof@?$char_traits@D@std@@SAHXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::snextc(void)" (?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ) already defined in tinyxmld_STL.lib(tinyxmlparser.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sgetc(void)" (?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ) already defined in tinyxmld_STL.lib(tinyxmlparser.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: class std::basic_streambuf<char,struct std::char_traits<char> > * __thiscall std::basic_ios<char,struct std::char_traits<char> >::rdbuf(void)const " (?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::max_size(void)const " (?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: int __thiscall std::ios_base::width(void)const " (?width@ios_base@std@@QBEHXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::erase(unsigned int,unsigned int)" (?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: __thiscall std::locale::~locale(void)" (??1locale@std@@QAE@XZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: class std::locale __thiscall std::ios_base::getloc(void)const " (?getloc@ios_base@std@@QBE?AVlocale@2@XZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: bool __thiscall std::basic_istream<char,struct std::char_traits<char> >::_Ipfx(bool)" (?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z) already defined in tinyxmld_STL.lib(tinyxmlparser.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Unlock(void)" (?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Lock(void)" (?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: __thiscall std::_Lockit::~_Lockit(void)" (??1_Lockit@std@@QAE@XZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: void __thiscall std::locale::facet::_Incref(void)" (?_Incref@facet@locale@std@@QAEXXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: static unsigned int __cdecl std::ctype<char>::_Getcat(class std::locale::facet const * *)" (?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: __thiscall std::locale::id::operator unsigned int(void)" (??Bid@locale@std@@QAEIXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: __thiscall std::_Lockit::_Lockit(int)" (??0_Lockit@std@@QAE@H@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: char __thiscall std::basic_ios<char,struct std::char_traits<char> >::widen(char)const " (?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::size(void)const " (?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sbumpc(void)" (?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ) already defined in tinyxmld_STL.lib(tinyxmlparser.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: static int __cdecl std::char_traits<char>::to_int_type(char const &)" (?to_int_type@?$char_traits@D@std@@SAHABD@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: char const & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator[](unsigned int)const " (??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputc(char)" (?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: char __thiscall std::basic_ios<char,struct std::char_traits<char> >::fill(void)const " (?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: int __thiscall std::ios_base::flags(void)const " (?flags@ios_base@std@@QBEHXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > & __thiscall std::basic_ostream<char,struct std::char_traits<char> >::flush(void)" (?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > * __thiscall std::basic_ios<char,struct std::char_traits<char> >::tie(void)const " (?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: bool __thiscall std::ios_base::good(void)const " (?good@ios_base@std@@QBE_NXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: void __thiscall std::basic_ostream<char,struct std::char_traits<char> >::_Osfx(void)" (?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator=(char const *)" (??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: char const * __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::c_str(void)const " (?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
libcpd.lib(ios.obj) : error LNK2005: "public: void __thiscall std::ios_base::clear(int,bool)" (?clear@ios_base@std@@QAEXH_N@Z) already defined in msvcprtd.lib(MSVCP71D.dll)
libcpd.lib(ios.obj) : error LNK2005: "public: virtual __thiscall std::ios_base::~ios_base(void)" (??1ios_base@std@@UAE@XZ) already defined in msvcprtd.lib(MSVCP71D.dll)
libcpd.lib(ios.obj) : error LNK2005: "public: void __thiscall std::ios_base::_Addstd(void)" (?_Addstd@ios_base@std@@QAEXXZ) already defined in msvcprtd.lib(MSVCP71D.dll)
libcpd.lib(ios.obj) : error LNK2005: "protected: void __thiscall std::ios_base::_Init(void)" (?_Init@ios_base@std@@IAEXXZ) already defined in msvcprtd.lib(MSVCP71D.dll)
libcpd.lib(xdebug.obj) : error LNK2005: "void * __cdecl operator new(unsigned int,struct std::_DebugHeapTag_t const &,char *,int)" (??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z) already defined in msvcprtd.lib(MSVCP71D.dll)
libcpd.lib(xdebug.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int,struct std::_DebugHeapTag_t const &,char *,int)" (??_U@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z) already defined in msvcprtd.lib(MSVCP71D.dll)
libcpd.lib(xdebug.obj) : error LNK2005: "void __cdecl operator delete(void *,struct std::_DebugHeapTag_t const &,char *,int)" (??3@YAXPAXABU_DebugHeapTag_t@std@@PADH@Z) already defined in msvcprtd.lib(MSVCP71D.dll)
libcpd.lib(locale0.obj) : error LNK2005: "public: __thiscall std::locale::locale(void)" (??0locale@std@@QAE@XZ) already defined in msvcprtd.lib(MSVCP71D.dll)
libcpd.lib(locale0.obj) : error LNK2005: "public: class std::locale::facet const * __thiscall std::locale::_Getfacet(unsigned int)const " (?_Getfacet@locale@std@@QBEPBVfacet@12@I@Z) already defined in msvcprtd.lib(MSVCP71D.dll)
libcpd.lib(locale0.obj) : error LNK2005: "public: void __thiscall std::locale::facet::_Register(void)" (?_Register@facet@locale@std@@QAEXXZ) already defined in msvcprtd.lib(MSVCP71D.dll)
libcpd.lib(locale0.obj) : error LNK2005: "public: __thiscall std::_Locinfo::_Locinfo(char const *)" (??0_Locinfo@std@@QAE@PBD@Z) already defined in msvcprtd.lib(MSVCP71D.dll)
libcpd.lib(locale0.obj) : error LNK2005: "public: __thiscall std::_Locinfo::~_Locinfo(void)" (??1_Locinfo@std@@QAE@XZ) already defined in msvcprtd.lib(MSVCP71D.dll)
LIBCD.lib(dbgheap.obj) : error LNK2005: _free already defined in MSVCRTD.lib(MSVCR71D.dll)
LIBCD.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall exception::exception(void)" (??0exception@@QAE@XZ) already defined in MSVCRTD.lib(MSVCR71D.dll)
LIBCD.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall exception::exception(class exception const &)" (??0exception@@QAE@ABV0@@Z) already defined in MSVCRTD.lib(MSVCR71D.dll)
LIBCD.lib(stdexcpt.obj) : error LNK2005: "public: virtual __thiscall exception::~exception(void)" (??1exception@@UAE@XZ) already defined in MSVCRTD.lib(MSVCR71D.dll)
LIBCD.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall bad_cast::bad_cast(char const *)" (??0bad_cast@@QAE@PBD@Z) already defined in MSVCRTD.lib(MSVCR71D.dll)
LIBCD.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall bad_cast::bad_cast(class bad_cast const &)" (??0bad_cast@@QAE@ABV0@@Z) already defined in MSVCRTD.lib(MSVCR71D.dll)
LIBCD.lib(stdexcpt.obj) : error LNK2005: "public: virtual __thiscall bad_cast::~bad_cast(void)" (??1bad_cast@@UAE@XZ) already defined in MSVCRTD.lib(MSVCR71D.dll)
LIBCD.lib(crt0dat.obj) : error LNK2005: _exit already defined in MSVCRTD.lib(MSVCR71D.dll)
LIBCD.lib(crt0dat.obj) : error LNK2005: __exit already defined in MSVCRTD.lib(MSVCR71D.dll)
LIBCD.lib(crt0dat.obj) : error LNK2005: __cexit already defined in MSVCRTD.lib(MSVCR71D.dll)
LIBCD.lib(crt0dat.obj) : error LNK2005: __c_exit already defined in MSVCRTD.lib(MSVCR71D.dll)
LIBCD.lib(strcat.obj) : error LNK2005: _strcpy already defined in MSVCRTD.lib(MSVCR71D.dll)
LIBCD.lib(crt0init.obj) : error LNK2005: ___xc_z already defined in MSVCRTD.lib(cinitexe.obj)
LIBCD.lib(crt0init.obj) : error LNK2005: ___xc_a already defined in MSVCRTD.lib(cinitexe.obj)
LIBCD.lib(crt0init.obj) : error LNK2005: ___xi_z already defined in MSVCRTD.lib(cinitexe.obj)
LIBCD.lib(crt0init.obj) : error LNK2005: ___xi_a already defined in MSVCRTD.lib(cinitexe.obj)
LIBCD.lib(lconv.obj) : error LNK2005: _localeconv already defined in MSVCRTD.lib(MSVCR71D.dll)
LIBCD.lib(atox.obj) : error LNK2005: _atoi already defined in MSVCRTD.lib(MSVCR71D.dll)
LIBCD.lib(winxfltr.obj) : error LNK2005: __XcptFilter already defined in MSVCRTD.lib(MSVCR71D.dll)
LIBCD.lib(crt0.obj) : error LNK2005: __amsg_exit already defined in MSVCRTD.lib(MSVCR71D.dll)
LINK : warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; use /NODEFAULTLIB:library
LINK : warning LNK4098: defaultlib 'LIBCD' conflicts with use of other libs; use /NODEFAULTLIB:library
LIBCD.lib(crt0.obj) : error LNK2019: unresolved external symbol _main referenced in function _mainCRTStartup
..\bin\Debug\Physics.exe : fatal error LNK1120: 1 unresolved externals

Build log was saved at "file://x:\build\Debug\BuildLog.htm"
AGDPhysics - 79 error(s), 2 warning(s)


---------------------- Done ----------------------

Build: 0 succeeded, 1 failed, 0 skipped


anyone got any idea what causes this ? have i missed something ?

nathanwilliams6

08-05-2006 13:03:10

i managed to get it to work, by recompiling the tinyxml_STL as multithreaded

walaber

09-05-2006 05:43:29

cool! I will try and update the loader to work out of the box, by adding that enum...

nathanwilliams6

15-05-2006 11:25:21

i wrote a class to represent a rigid body loaded using the rigid body loader, however i was looking into scaling the rigidbody (along with its visual representitive), however, i couldnt find any methods on the OgreNewt::Body to scale it.

the only method that comes to mind (which is what i used for the other primitives) is to recreate the colision geometry and use OgreNewt::Body::setCollision.

any suggestions ?

walaber

15-05-2006 17:47:26

you can also scale (convex) collision primitives by casting to OgreNewt::ConvexCollision (iirc) and then seting a generic scale matrix.

mysterycoder

20-05-2006 22:41:52

What license is the loader code, and the visual designer under?

walaber

21-05-2006 06:05:55

the super-free-use-it-however-you-want license. seriously, there really is no license. use it however you want, make lots of money from it! :)

mysterycoder

21-05-2006 07:00:32

Sweet, thanks :wink:

turkeypotpie

22-08-2006 05:44:39

NewtonPlayGround has an option to read 3ds max files. For instance, loading up "gear.3ds" seems to give us a non convex body.

Any insight into this? Is it doing something tricky?

walaber

22-08-2006 09:02:16

it automatically makes a convex hull out of each sub-mesh (or whatever Max calls them) from the object into a single compound. so if you take care with the sub-mesh / sub-objects, it can auto-generate non-convex compounds.

turkeypotpie

22-08-2006 17:16:40

ahhh i see. thanks for clearing that up :)

Lax

19-03-2015 13:43:14

Hello Folks,

is the RigidBodyDesigner somewhere available? The walaber website is down.
Does somebody have the project to share?

Thanks in Advance!

Regards
Lax

millahjovich

04-07-2016 12:08:09

cheers, i will take a look at these and let you know how i got on

Root13

03-11-2016 13:46:05

the super-free-use-it-however-you-want license. seriously, there really is no license. use it however you want, make lots of money from it! :)
Hope, I will