public override void LoadData(ref AnimatTools.DataObjects.Simulation dsSim, ref AnimatTools.DataObjects.Physical.PhysicalStructure doStructure, ref AnimatTools.Interfaces.StdXml oXml) { base.LoadData (ref dsSim, ref doStructure, ref oXml); oXml.IntoElem(); oXml.IntoChildElement("Constraint"); m_fltMinAngle = oXml.GetAttribFloat("Low"); m_fltMaxAngle = oXml.GetAttribFloat("High"); oXml.OutOfElem(); //out of Constraint m_snMinAngle.SetFromValue(Util.RadiansToDegrees(m_fltMinAngle), AnimatTools.Framework.ScaledNumber.enumNumericScale.None); m_snMaxAngle.SetFromValue(Util.RadiansToDegrees(m_fltMaxAngle), AnimatTools.Framework.ScaledNumber.enumNumericScale.None); m_bEnableMotor = oXml.GetChildBool("EnableMotor"); m_bServoMotor = oXml.GetChildBool("ServoMotor", m_bServoMotor); m_fltServoGain = oXml.GetChildFloat("ServoGain", m_fltServoGain); //based on whether this is a servo motor or not the incoming data type will change. if(m_bServoMotor) m_thIncomingDataType = new AnimatTools.DataObjects.DataType("Position", "Position", "rad", "rad", -3.142, 3.142, ScaledNumber.enumNumericScale.None, ScaledNumber.enumNumericScale.None); else m_thIncomingDataType = new AnimatTools.DataObjects.DataType("DesiredVelocity", "Desired Velocity", "m/s", "m/s", -5, 5, ScaledNumber.enumNumericScale.None, ScaledNumber.enumNumericScale.None); if(oXml.FindChildElement("MaxTorque", false)) m_snMaxTorque.LoadData(ref oXml, "MaxTorque"); if(oXml.FindChildElement("MaxVelocity", false)) m_snMaxTorque.LoadData(ref oXml, "MaxVelocity"); // if(oXml.FindChildElement("RotationAxis", false)) // { // Vec3d vTmp = Util.LoadVec3d(ref oXml, "RotationAxis", this); // m_v3Axis = new Vector3((float)vTmp.X, (float)vTmp.Y, (float)vTmp.Z); // } m_v3Axis = new Vector3(0,0,1); oXml.OutOfElem(); //out of body }
public override void LoadData(ref AnimatTools.DataObjects.Simulation dsSim, ref AnimatTools.DataObjects.Physical.PhysicalStructure doStructure, ref AnimatTools.Interfaces.StdXml oXml) { base.LoadData (ref dsSim, ref doStructure, ref oXml); oXml.IntoElem(); if(oXml.FindChildElement("Constraint", false)) { oXml.IntoChildElement("Constraint"); m_fltMinMovement = oXml.GetAttribFloat("Low"); m_fltMaxMovement = oXml.GetAttribFloat("High"); oXml.OutOfElem(); //out of Constraint } m_fltLength = oXml.GetChildFloat("Length", m_fltLength); m_bEnableMotor = oXml.GetChildBool("EnableMotor", false); m_bServoMotor = oXml.GetChildBool("ServoMotor", m_bServoMotor); m_fltServoGain = oXml.GetChildFloat("ServoGain", m_fltServoGain); if(oXml.FindChildElement("MaxForce", false)) m_snMaxForce.LoadData(ref oXml, "MaxForce"); if(oXml.FindChildElement("MaxVelocity", false)) m_snMaxVelocity.LoadData(ref oXml, "MaxVelocity"); oXml.OutOfElem(); //out of body }