diff --git a/Demos/ColladaDemo/ColladaDemo.cpp b/Demos/ColladaDemo/ColladaDemo.cpp index cbe3f57c5..ca51c36b8 100644 --- a/Demos/ColladaDemo/ColladaDemo.cpp +++ b/Demos/ColladaDemo/ColladaDemo.cpp @@ -1499,13 +1499,55 @@ int main(int argc,char** argv) } //for each instance_rigid_body + + } //for each physics model - //we don't handle constraints just yet - for (int c=0;cgetInstance_rigid_constraint_array().getCount();i++) + //we don't handle constraints just yet + for (int m=0;mgetInstance_physics_model_array().getCount();m++) + { + domInstance_physics_modelRef instance_physicsModelRef = physicsSceneRef->getInstance_physics_model_array()[m]; + + daeElementRef ref = instance_physicsModelRef->getUrl().getElement(); + + domPhysics_modelRef model = *(domPhysics_modelRef*)&ref; + + for (int c=0;cgetInstance_rigid_constraint_array().getCount();c++) { + domInstance_rigid_constraintRef constraintRef = instance_physicsModelRef->getInstance_rigid_constraint_array().get(c); + xsNCName constraintName = constraintRef->getConstraint(); + + if (constraintName && model) + { + //try to find the rigid body + int numConstraints= model->getRigid_constraint_array().getCount(); + + for (int r=0;rgetRigid_constraint_array()[r]; + + if (rigidConstraintRef->getSid() && !strcmp(rigidConstraintRef->getSid(),constraintName)) + { + /* + //two bodies + rigidConstraintRef->getRef_attachment(); + rigidConstraintRef->getAttachment(); + + + const domRigid_constraint::domTechnique_commonRef commonRef = rigidConstraintRef->getTechnique_common(); + domFloat3 flMax = commonRef->getLimits()->getLinear()->getMax()->getValue(); + SimdVector3 maxLinearLimit(flMax.get(0),flMax.get(1),flMax.get(2)); + domFloat3 flMin = commonRef->getLimits()->getLinear()->getMin()->getValue(); + SimdVector3 minLinearLimit(flMin.get(0),flMin.get(1),flMin.get(2)); + commonRef->getLimits()->getSwing_cone_and_twist(); +*/ + + } + } + } } - } + } //2nd time, for each physics model + } } diff --git a/Extras/COLLADA_DOM/src/dae/daeMetaAttribute.cpp b/Extras/COLLADA_DOM/src/dae/daeMetaAttribute.cpp index c9af6c6ee..89d4a8c0e 100644 --- a/Extras/COLLADA_DOM/src/dae/daeMetaAttribute.cpp +++ b/Extras/COLLADA_DOM/src/dae/daeMetaAttribute.cpp @@ -25,9 +25,18 @@ daeMetaAttribute::set(daeElement* e, daeString s) daeErrorHandler::get()->handleWarning(msg); } else if ( strcmp(s, "INF") == 0 ) { - char msg[256]; - sprintf(msg, "INF encountered while setting %s attribute in %s element.\n", (daeString)_name, (daeString)_container->getName() ); - daeErrorHandler::get()->handleWarning( msg ); + //quick workaround for http://sourceforge.net/tracker/index.php?func=detail&aid=1530106&group_id=157838&atid=805424 + s = "999999.9"; + //char msg[256]; + //sprintf(msg, "INF encountered while setting %s attribute in %s element.\n", (daeString)_name, (daeString)_container->getName() ); + //daeErrorHandler::get()->handleWarning( msg ); + } + else if ( strcmp(s, "-INF") == 0 ) { + s = "-999999.9"; + //quick workaround for http://sourceforge.net/tracker/index.php?func=detail&aid=1530106&group_id=157838&atid=805424 + //char msg[256]; + //sprintf(msg, "-INF encountered while setting %s attribute in %s element.\n", (daeString)_name, (daeString)_container->getName() ); + //daeErrorHandler::get()->handleWarning( msg ); } } _type->stringToMemory((char*)s, getWritableMemory(e)); @@ -50,9 +59,18 @@ daeMetaArrayAttribute::set(daeElement* e, daeString s) daeErrorHandler::get()->handleWarning(msg); } else if ( strcmp(s, "INF") == 0 ) { - char msg[256]; - sprintf(msg, "INF encountered while setting %s attribute in %s element.\n", (daeString)_name, (daeString)_container->getName() ); - daeErrorHandler::get()->handleWarning( msg ); + s = "999999.9"; + //quick workaround for http://sourceforge.net/tracker/index.php?func=detail&aid=1530106&group_id=157838&atid=805424 + //char msg[256]; + //sprintf(msg, "INF encountered while setting %s attribute in %s element.\n", (daeString)_name, (daeString)_container->getName() ); + //daeErrorHandler::get()->handleWarning( msg ); + } + else if ( strcmp(s, "-INF") == 0 ) { + s = "-999999.9"; + //quick workaround for http://sourceforge.net/tracker/index.php?func=detail&aid=1530106&group_id=157838&atid=805424 + //char msg[256]; + //sprintf(msg, "-INF encountered while setting %s attribute in %s element.\n", (daeString)_name, (daeString)_container->getName() ); + //daeErrorHandler::get()->handleWarning( msg ); } } daeArray* array = (daeArray*)getWritableMemory(e);