40 #ifndef _physicsconstraint_cpp 
   41 #define _physicsconstraint_cpp 
   43 #include "Physics/constraint.h" 
   44 #include "Physics/physicsenumerations.h" 
   45 #include "Physics/rigidproxy.h" 
   47 #include "actormanager.h" 
   50 #include "stringtool.h" 
   53 #include <btBulletDynamicsCommon.h> 
   69                 case Con_Stop_ERP:      
return String(
"Con_Stop_ERP");
 
   71                 case Con_Stop_CFM:      
return String(
"Con_Stop_CFM");
 
   98                                 { 
return Con_Stop_ERP; }
 
  100                                 { MEZZ_EXCEPTION(
Exception::PARAMETERS_EXCEPTION,
"Attempted to convert invalid String to Constraint Paramater: Appears to be Con_Stop_ERP but isn't."); }
 
  103                                 { 
return Con_Stop_CFM; }
 
  105                                 { MEZZ_EXCEPTION(
Exception::PARAMETERS_EXCEPTION,
"Attempted to convert invalid String to Constraint Paramater: Appears to be Con_Stop_CFM but isn't."); }
 
  109                             { MEZZ_EXCEPTION(
Exception::PARAMETERS_EXCEPTION,
"Attempted to convert invalid String to Constraint Paramater: Appeared to be Con_Stop_Something, but wasn't."); }
 
  120                 case '-': 
return -1;         
break;
 
  121                 case '0': 
return 0;          
break;
 
  122                 case '1': 
return 1;          
break;
 
  123                 case '2': 
return 2;          
break;
 
  124                 case '3': 
return 3;          
break;
 
  125                 case '4': 
return 4;          
break;
 
  126                 case '5': 
return 5;          
break;
 
  185             XML::Attribute Version = ConstraintNode.AppendAttribute(
"Version");
 
  186             XML::Attribute ActorNameA = ConstraintNode.AppendAttribute(
"ActorNameA");
 
  187             XML::Attribute ActorNameB = ConstraintNode.AppendAttribute(
"ActorNameB");
 
  189             if (Version && ActorNameA && ActorNameB)
 
  200             for(AxisList::iterator AxisIter=AllAxis.begin(); AllAxis.end()!=AxisIter; ++AxisIter)
 
  202                 XML::Node OneAxisNode;
 
  205                 for(ParamList::iterator ParamIter=AxisParams.begin(); AxisParams.end()!=ParamIter; ++ParamIter)
 
  211                             OneAxisNode = ConstraintNode.AppendChild(CurrentAxisName);
 
  217                         if (!CurrenParamAttribute)
 
  219                         CurrenParamAttribute.SetValue( this->
GetParam(*ParamIter,*AxisIter));
 
  229                 if(OneNode.GetAttribute(
"Version").AsInt() == 1)
 
  252                     XML::Node TheAxis = OneNode.GetFirstChild();
 
  255                         String EnemyName(TheAxis.Name());                            
 
  256                         if(4>EnemyName.size())                                       
 
  262                         XML::Attribute AxisAttribute = TheAxis.GetFirstAttribute();
 
  266                             AxisAttribute = AxisAttribute.GetNextAttribute();
 
  269                         TheAxis = TheAxis.GetNextSibling();
 
  281             { 
return String(
"Constraint"); }