protected override void CloneInternal(AnimatTools.Framework.DataObject doOriginal, bool bCutData, AnimatTools.Framework.DataObject doRoot) { base.CloneInternal (doOriginal, bCutData, doRoot); MultiSegmentSpring doOrigBody = (MultiSegmentSpring) doOriginal; m_aryAttachmentPoints = (VortexAnimatTools.Collections.MuscleAttachments) doOrigBody.m_aryAttachmentPoints.Copy(); m_bEnabled = doOrigBody.m_bEnabled; m_StimTension = (AnimatTools.DataObjects.Gains.MuscleGains.StimulusTension) doOrigBody.m_StimTension.Clone(this, bCutData, doRoot); m_LengthTension = (AnimatTools.DataObjects.Gains.MuscleGains.LengthTension) doOrigBody.m_LengthTension.Clone(this, bCutData, doRoot); m_snMaxTension = (AnimatTools.Framework.ScaledNumber) doOrigBody.m_snMaxTension.Clone(this, bCutData, doRoot); m_snMuscleLength = (AnimatTools.Framework.ScaledNumber) doOrigBody.m_snMuscleLength.Clone(this, bCutData, doRoot); m_snNaturalLength = (AnimatTools.Framework.ScaledNumber) doOrigBody.m_snNaturalLength.Clone(this, bCutData, doRoot); m_snStiffness = (AnimatTools.Framework.ScaledNumber) doOrigBody.m_snStiffness.Clone(this, bCutData, doRoot); m_snDamping = (AnimatTools.Framework.ScaledNumber) doOrigBody.m_snDamping.Clone(this, bCutData, doRoot); m_eForceType = doOrigBody.m_eForceType; }
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(); //'Into RigidBody Element if(oXml.FindChildElement("NaturalLength", false)) m_snNaturalLength.LoadData(ref oXml, "NaturalLength"); m_snStiffness.LoadData(ref oXml, "Stiffness"); m_snDamping.LoadData(ref oXml, "Damping"); //This code converts old versions of the spring code into //the new version that has multiple attachment points if(oXml.FindChildElement("PrimaryAttachmentID", false)) { m_aryAttachmentPointIDs.Clear(); string strAttachID; if(oXml.FindChildElement("PrimaryAttachmentID", false)) { strAttachID = oXml.GetChildString("PrimaryAttachmentID"); m_aryAttachmentPointIDs.Add(strAttachID); } if(oXml.FindChildElement("SecondaryAttachmentID", false)) { strAttachID = oXml.GetChildString("SecondaryAttachmentID"); m_aryAttachmentPointIDs.Add(strAttachID); } } if(oXml.FindChildElement("ForceType", false)) m_eForceType = (VortexAnimatTools.DataObjects.Physical.RigidBodies.MultiSegmentSpring.enumForceTypes) Enum.Parse(typeof(VortexAnimatTools.DataObjects.Physical.RigidBodies.MultiSegmentSpring.enumForceTypes), oXml.GetChildString("ForceType"), true); oXml.OutOfElem(); //Outof RigidBody Element }