public MultiSegmentSpring(AnimatTools.Framework.DataObject doParent) : base(doParent) { m_thDataTypes.DataTypes.Clear(); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Tension", "Tension", "Newtons", "N", 0, 1000)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("SpringTension", "Spring Tension", "Newtons", "N", 0, 1000)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("DampingTension", "Damping Tension", "Newtons", "N", 0, 1000)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("SpringLength", "Spring Length", "Meters", "m", 0, 1)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Vspring", "Spring Velocity", "m/s", "m/s", -3, 3)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Displacement", "Muscle Displacement", "Meters", "m", 0, 1)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("DisplacementRatio", "Muscle Displacement Ratio", "", "", -1, 1)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Enable", "Enable", "", "", 0, 1)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Aspring", "Acceleration", "m/s^2", "m/s^2", -100, 100)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("PotEnergy", "Potential Energy", "J", "J", -10, 10)); m_thDataTypes.ID = "Tension"; //Holdover stuff from using the muscle base class m_StimTension = new AnimatTools.DataObjects.Gains.MuscleGains.StimulusTension(this); m_LengthTension = new AnimatTools.DataObjects.Gains.MuscleGains.LengthTension(this); m_LengthTension.ShowLcePercentage = false; m_snNaturalLength = new AnimatTools.Framework.ScaledNumber(this, "NaturalLength", 1, AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "meters", "m"); m_snStiffness = new AnimatTools.Framework.ScaledNumber(this, "Stiffness", 50, AnimatTools.Framework.ScaledNumber.enumNumericScale.Kilo, "N/m", "N/m"); m_snDamping = new AnimatTools.Framework.ScaledNumber(this, "Damping", 1, AnimatTools.Framework.ScaledNumber.enumNumericScale.Kilo, "g/s", "g/s"); m_thIncomingDataType = new AnimatTools.DataObjects.DataType("Enabled", "Enabled", "", "", 0, 1, ScaledNumber.enumNumericScale.None, ScaledNumber.enumNumericScale.None); }
public override void Initialize(ref AnimatTools.Forms.AnimatApplication frmApplication, AnimatTools.Forms.MdiChild frmMdiParent, AnimatTools.Forms.AnimatForm frmParent) { base.Initialize (ref frmApplication, frmMdiParent, frmParent); System.Reflection.Assembly oAssembly = System.Reflection.Assembly.LoadFrom(Util.GetFilePath(frmApplication.ApplicationDirectory, "LicensedAnimatTools.dll")); m_chartFieldGain = (AnimatTools.Forms.Gain.GainControl) oAssembly.CreateInstance("LicensedAnimatTools.Forms.Charts.GainControl"); this.tpFieldGain.Controls.Add(this.m_chartFieldGain); this.m_chartFieldGain.Location = new System.Drawing.Point(128, 8); this.m_chartFieldGain.Name = "m_chartFieldGain"; this.m_chartFieldGain.Size = new System.Drawing.Size(208, 160); this.m_chartFieldGain.TabIndex = 5; this.m_chartFieldGain.Text = "m_chartFieldGain"; m_chartCurrentGain = (AnimatTools.Forms.Gain.GainControl) oAssembly.CreateInstance("LicensedAnimatTools.Forms.Charts.GainControl"); this.tpCurrentGain.Controls.Add(this.m_chartCurrentGain); this.m_chartCurrentGain.Location = new System.Drawing.Point(128, 8); this.m_chartCurrentGain.Name = "m_chartCurrentGain"; this.m_chartCurrentGain.Size = new System.Drawing.Size(208, 160); this.m_chartCurrentGain.TabIndex = 5; this.m_chartCurrentGain.Text = "m_chartCurrentGain"; PopulateForm(); }
public Spring(AnimatTools.Framework.DataObject doParent) : base(doParent) { Color = System.Drawing.Color.NavajoWhite; m_snNaturalLength = new AnimatTools.Framework.ScaledNumber(this, "NaturalLength", "meters", "m"); m_snStiffness = new AnimatTools.Framework.ScaledNumber(this, "Stiffness", 50, AnimatTools.Framework.ScaledNumber.enumNumericScale.Kilo, "N/m", "N/m"); m_snDamping = new AnimatTools.Framework.ScaledNumber(this, "Damping", 1, AnimatTools.Framework.ScaledNumber.enumNumericScale.Kilo, "g/s", "g/s"); if(Util.Environment != null) m_snNaturalLength.SetFromValue(1, (int) Util.Environment.DisplayDistanceUnits); AnimatTools.DataObjects.Physical.PhysicalStructure doStruct = null; if(doParent != null && doParent is AnimatTools.DataObjects.Physical.BodyPart) { AnimatTools.DataObjects.Physical.BodyPart bpPart = (AnimatTools.DataObjects.Physical.BodyPart) doParent; doStruct = bpPart.ParentStructure; } m_tpBodyPartType = typeof(VortexAnimatTools.DataObjects.Physical.RigidBodies.MuscleAttachment); m_thPrimaryAttachment = new AnimatTools.TypeHelpers.LinkedBodyPartList(doStruct, null, m_tpBodyPartType); m_thSecondaryAttachment = new AnimatTools.TypeHelpers.LinkedBodyPartList(doStruct, null, m_tpBodyPartType); m_snSpringLength = new AnimatTools.Framework.ScaledNumber(this, "SpringLength", 0, AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "Meters", "m"); m_thDataTypes.DataTypes.Clear(); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("SpringLength", "Spring Length", "Meters", "m", -10, 10)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Displacement", "Displacement", "Meters", "m", -10, 10)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Tension", "Tension", "Newtons", "N", -1000, 1000)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Energy", "Energy", "Joules", "J", -10, 10)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Enable", "Enable", "", "", 0, 1)); m_thDataTypes.ID = "SpringLength"; m_thIncomingDataType = new AnimatTools.DataObjects.DataType("Enabled", "Enabled", "", "", 0, 1, ScaledNumber.enumNumericScale.None, ScaledNumber.enumNumericScale.None); }
private Texture texZ = null; //Texture for the z axis label #endregion Fields #region Constructors public RigidBody_DX(AnimatTools.Framework.DataObject doParent) : base(doParent) { m_vrLocation = new DxLocationRef(this); m_vrRotation = new DxRotationRef(this); m_snXLocalLocation = new AnimatTools.Framework.ScaledNumber(this, "XLocalLocationScaled", "meters", "m"); m_snYLocalLocation = new AnimatTools.Framework.ScaledNumber(this, "YLocalLocationScaled", "meters", "m"); m_snZLocalLocation = new AnimatTools.Framework.ScaledNumber(this, "ZLocalLocationScaled", "meters", "m"); m_snXWorldLocation = new AnimatTools.Framework.ScaledNumber(this, "XWorldLocationScaled", "meters", "m"); m_snYWorldLocation = new AnimatTools.Framework.ScaledNumber(this, "YWorldLocationScaled", "meters", "m"); m_snZWorldLocation = new AnimatTools.Framework.ScaledNumber(this, "ZWorldLocationScaled", "meters", "m"); m_snXRotation = new AnimatTools.Framework.ScaledNumber(this, "XRotationScaled", "Degrees", "Deg"); m_snYRotation = new AnimatTools.Framework.ScaledNumber(this, "YRotationScaled", "Degrees", "Deg"); m_snZRotation = new AnimatTools.Framework.ScaledNumber(this, "ZRotationScaled", "Degrees", "Deg"); this.m_matTransparentSelectedMaterial = new Material(); this.m_matTransparentSelectedMaterial.Diffuse = Color.FromArgb(128,Color.FloralWhite); this.m_matTransparentSelectedMaterial.Ambient = Color.FromArgb(128,Color.FloralWhite); Alpha = 255; Color = Color.Red; m_d3dRFPointMaterial = new Material(); m_d3dRFPointMaterial.Ambient = Color.Green; m_d3dRFPointMaterial.Diffuse = Color.Green; m_d3dSelRFPointMaterial = new Material(); m_d3dSelRFPointMaterial.Ambient = Color.DarkRed; m_d3dSelRFPointMaterial.Diffuse = Color.DarkRed; }
public override AnimatTools.Framework.DataObject Clone(AnimatTools.Framework.DataObject doParent, bool bCutData, AnimatTools.Framework.DataObject doRoot) { Static bnPart = new Static(doParent); bnPart.CloneInternal(this, bCutData, doRoot); if(doRoot != null && doRoot == this) bnPart.AfterClone(this, bCutData, doRoot, bnPart); return bnPart; }
public Stomach(AnimatTools.Framework.DataObject doParent) : base(doParent) { try { m_thLinkedPart = new AnimatTools.TypeHelpers.LinkedBodyPartList(this); System.Reflection.Assembly myAssembly = System.Reflection.Assembly.Load("VortexAnimatTools"); this.Size = new System.Drawing.SizeF(36, 40); this.Image = AnimatTools.Framework.ImageManager.LoadImage(ref myAssembly, "VortexAnimatTools.Graphics.Stomach_Button.gif", false); this.DragImage = AnimatTools.Framework.ImageManager.LoadImage(ref myAssembly, "VortexAnimatTools.Graphics.Stomach_Button.gif", false); this.Name = "Stomach"; this.Description = "This node allows the user to collect interact with the Stomach object."; //Now lets try and find the image for this node. this.ImageIndex = FindDiagramImageIndex(this.GetType().FullName); m_tpBodyPartType = typeof(VortexAnimatTools.DataObjects.Physical.RigidBodies.Stomach); } catch(System.Exception ex) { AnimatTools.Framework.Util.DisplayError(ex); } }
public override AnimatTools.Framework.DataObject Clone(AnimatTools.Framework.DataObject doParent, bool bCutData, AnimatTools.Framework.DataObject doRoot) { OdorSensor bnPart = new OdorSensor(doParent); bnPart.CloneInternal(this, bCutData, doRoot); bnPart.m_thOdorType = m_thOdorType; if(doRoot != null && doRoot == this) bnPart.AfterClone(this, bCutData, doRoot, bnPart); return bnPart; }
public OdorSensor(AnimatTools.Framework.DataObject doParent) : base(doParent) { m_thOdorType = new AnimatTools.TypeHelpers.LinkedOdorTypeList(null); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("OdorValue", "Odor Value", "", "", -1000, 1000)); m_thDataTypes.ID = "OdorValue"; }
public LinearHillStretchReceptor(AnimatTools.Framework.DataObject doParent) : base(doParent) { m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Ia", "Ia Discharge Rate" , "Spikes/s", "Spikes/s", 0, 1000)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("II", "II Discharge Rate", "Spikes/s", "Spikes/s", 0, 1000)); m_thDataTypes.ID = "Ia"; m_snIaDischargeConstant = new AnimatTools.Framework.ScaledNumber(this, "Ia Discharge Constant", 100, AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "Spikes/sm", "Spikes/sm"); m_snIIDischargeConstant = new AnimatTools.Framework.ScaledNumber(this, "II Discharge Constant", 100, AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "Spikes/sm", "Spikes/sm"); }
public BoxContactSensor(AnimatTools.Framework.DataObject doParent) : base(doParent) { m_thDataTypes.DataTypes.Clear(); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("ContactCount", "Contact Count", "", "", 0, 1)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("BodyPositionX", "Position X Axis", "Meters", "m", -10, 10)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("BodyPositionY", "Position Y Axis", "Meters", "m", -10, 10)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("BodyPositionZ", "Position Z Axis", "Meters", "m", -10, 10)); m_thDataTypes.ID = "ContactCount"; }
public override void AddChildBody(AnimatTools.DataObjects.Physical.RigidBody rbChildBody) { //If you try and add a body to a muscle attachment then you really need to add it to the attachment parent. if(this.Parent != null) { AnimatTools.DataObjects.Physical.RigidBody rbParent = (AnimatTools.DataObjects.Physical.RigidBody) this.Parent; rbChildBody.Parent = rbParent; rbParent.AddChildBody(rbChildBody); } }
public Cylinder(AnimatTools.Framework.DataObject doParent) : base(doParent) { m_fRadius = 0.5f; m_fHeight = 1; m_snRadius = new AnimatTools.Framework.ScaledNumber(this, "RadiusScaled", "meters", "m"); m_snHeight = new AnimatTools.Framework.ScaledNumber(this, "HeightScaled", "meters", "m"); m_vrSize = new DxCylinderSizeRef(this); }
public Box(AnimatTools.Framework.DataObject doParent) : base(doParent) { m_vGraphicsBoxSize = new Vec3d(this); m_vGraphicsBoxSize.X = m_vGraphicsBoxSize.Y = m_vGraphicsBoxSize.Z = 1; m_snWidth = new AnimatTools.Framework.ScaledNumber(this, "WidthScaled", "meters", "m"); m_snHeight = new AnimatTools.Framework.ScaledNumber(this, "HeightScaled", "meters", "m"); m_snLength = new AnimatTools.Framework.ScaledNumber(this, "LengthScaled", "meters", "m"); m_vrSize = new DxBoxSizeRef(this); }
public MuscleAttachment(AnimatTools.Framework.DataObject doParent) : base(doParent) { Alpha = 128; Color = Color.Orange; this.m_fRadius = 0.1f; m_thDataTypes.DataTypes.Clear(); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("BodyPositionX", "Position X Axis", "Meters", "m", -10, 10)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("BodyPositionY", "Position Y Axis", "Meters", "m", -10, 10)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("BodyPositionZ", "Position Z Axis", "Meters", "m", -10, 10)); m_thDataTypes.ID = "BodyPositionX"; }
public Cone(AnimatTools.Framework.DataObject doParent) : base(doParent) { m_vrSize = new DxConeSizeRef(this); m_snUpperRadius = new AnimatTools.Framework.ScaledNumber(this, "UpperRadiusScaled", "meters", "m"); m_snLowerRadius = new AnimatTools.Framework.ScaledNumber(this, "LowerRadiusScaled", "meters", "m"); m_snHeight = new AnimatTools.Framework.ScaledNumber(this, "HeightScaled", "meters", "m"); m_fLowerRadius = 0.5f; m_fUpperRadius = 0; m_fHeight = 1; }
public InverseMuscleDynamics(AnimatTools.Framework.DataObject doParent) : base(doParent) { m_tpBodyPartType = typeof(VortexAnimatTools.DataObjects.Physical.RigidBodies.MuscleBase); m_thMuscle = new AnimatTools.TypeHelpers.LinkedBodyPartList(null, null, m_tpBodyPartType); m_strMuscleLengthData = ""; m_snConductance = new AnimatTools.Framework.ScaledNumber(this, "Conductance", 100, AnimatTools.Framework.ScaledNumber.enumNumericScale.nano, "Siemens", "S"); m_snRestPotential = new AnimatTools.Framework.ScaledNumber(this, "RestPotential", -100, AnimatTools.Framework.ScaledNumber.enumNumericScale.milli, "Volts", "V"); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("A", "A", "Newtons", "N", 0, 1000)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Vm", "Vm", "Volts", "V", -0.100, 0.100)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Current", "Current", "Amps", "A", -100e-9, 100e-9)); m_thDataTypes.ID = "A"; }
public VelocityClamp(AnimatTools.Framework.DataObject doParent) : base(doParent) { m_thPrimaryAttachment = new AnimatTools.TypeHelpers.LinkedBodyPartList(m_doStructure, null, m_tpBodyPartType); m_thSecondaryAttachment = new AnimatTools.TypeHelpers.LinkedBodyPartList(m_doStructure, null, m_tpBodyPartType); m_tpBodyPartType = typeof(VortexAnimatTools.DataObjects.Physical.RigidBodies.MuscleAttachment); m_snVelocity = new AnimatTools.Framework.ScaledNumber(this, "Velocity", 0, AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "meters/second", "m/s"); m_snMaxForce = new AnimatTools.Framework.ScaledNumber(this, "MaxForce", 1, AnimatTools.Framework.ScaledNumber.enumNumericScale.Kilo, "Newton", "N"); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Force", "Force", "Newtons", "N", 0, 1000)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("PError", "Proportional Error", "Meters", "m", 0, 1000)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("DError", "Derivative Error", "M/s", "m/s", 0, 1)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("IError", "Integrator Error", "m^2", "m^2", 0, 1000)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Position", "Velocity", "m/s", "m/s", 0, 1000)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Velocity", "Acceleration", "m/s^2", "m/s^2", 0, 1000)); m_thDataTypes.ID = "Force"; }
public override void LoadData(ref AnimatTools.DataObjects.Simulation dsSim, ref AnimatTools.DataObjects.Physical.PhysicalStructure doStructure, ref AnimatTools.Interfaces.StdXml oXml) { m_aryChildBodies.Clear(); oXml.IntoElem(); //'Into RigidBody Element m_strID = oXml.GetChildString("ID"); m_strName = oXml.GetChildString("Name", m_strID); m_bVisible = oXml.GetChildBool("IsVisible", m_bVisible); if(m_strID.Trim().Length == 0) m_strID = System.Guid.NewGuid().ToString(); if(m_strName.Trim().Length == 0) m_strName = m_strID; if(oXml.FindChildElement("Color", false)) { System.Drawing.Color oColor = Util.LoadColor(ref oXml, "Color"); this.Alpha = oColor.A; this.Color = oColor; } m_fRadius = oXml.GetChildFloat("Radius", m_fRadius); if(oXml.FindChildElement("Direction",false)) { this.m_v3Direction = new Vector3(); Vec3d vDirection = Util.LoadVec3d(ref oXml, "Direction", this); m_v3Direction.X = (float)vDirection.X; m_v3Direction.Y = (float)vDirection.Y; m_v3Direction.Z = (float)vDirection.Z; } if(oXml.FindChildElement("OrientationMatrix", false)) { m_mtxOrientation = Util_DX.LoadMatrix(ref oXml, "OrientationMatrix"); m_v3Rotation = Util_DX.DecomposeXYZRotationMatrix(Orientation); this.Rotation = new Vec3d(null,Geometry.RadianToDegree(m_v3Rotation.X),Geometry.RadianToDegree(m_v3Rotation.Y),Geometry.RadianToDegree(m_v3Rotation.Z)); } if(oXml.FindChildElement("TranslationMatrix",false)) m_mtxTranslation = Util_DX.LoadMatrix(ref oXml,"TranslationMatrix"); oXml.OutOfElem(); //Outof RigidBody Element }
public Mouth(AnimatTools.Framework.DataObject doParent) : base(doParent) { Alpha = 128; Color = Color.LightBlue; this.m_fRadius = 0.1f; m_snMinimumFoodRadius = new ScaledNumber(this, "MinimumFoodRadius", 10, ScaledNumber.enumNumericScale.centi, "meters", "m"); m_thDataTypes.DataTypes.Clear(); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("BodyPositionX", "Position X Axis", "Meters", "m", -10, 10)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("BodyPositionY", "Position Y Axis", "Meters", "m", -10, 10)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("BodyPositionZ", "Position Z Axis", "Meters", "m", -10, 10)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("EatingRate", "Eating Rate", "", "", 0, 100)); m_thDataTypes.ID = "EatingRate"; this.ID = "MOUTH"; }
public LinearHillMuscle(AnimatTools.Framework.DataObject doParent) : base(doParent) { m_thDataTypes.DataTypes.Clear(); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Tension", "Tension", "Newtons", "N", 0, 1000)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Tdot", "Change in Tension", "Newtons per second", "N/s", 0, 1000)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("MuscleLength", "Muscle Length", "Meters", "m", 0, 1)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("SeLength", "Se Length", "Meters", "m", 0, 1)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("SeDisplacement", "Se Displacement", "Meters", "m", 0, 1)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("PeLength", "Pe Length", "Meters", "m", 0, 1)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("A", "A", "Newtons", "N", 0, 1000)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Activation", "Activation", "", "", 0, 1000)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Vmuscle", "Muscle Velocity", "m/s", "m/s", -3, 3)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Vse", "Se Velocity", "m/s", "m/s", -3, 3)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Vpe", "Pe Velocity", "m/s", "m/s", -3, 3)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("AvgVmuscle", "Averaged Muscle Velocity", "m/s", "m/s", -3, 3)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("MembraneVoltage", "Membrane Voltage", "Volts", "V", -100, 100, ScaledNumber.enumNumericScale.milli, ScaledNumber.enumNumericScale.milli)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Displacement", "Muscle Displacement", "Meters", "m", 0, 1)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("DisplacementRatio", "Muscle Displacement Ratio", "", "", -1, 1)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Enable", "Enable", "", "", 0, 1)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Ib", "Ib Discharge Rate", "Spikes/s", "Spikes/s", 0, 1000)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Tl", "Tension-Length Percentage", "%", "%", 0, 1000)); m_thDataTypes.ID = "Tension"; m_thIncomingDataType = new AnimatTools.DataObjects.DataType("MembraneVoltage", "Membrane Voltage", "Volts", "V", -100, 100, ScaledNumber.enumNumericScale.milli, ScaledNumber.enumNumericScale.milli); m_StimTension = new AnimatTools.DataObjects.Gains.MuscleGains.StimulusTension(this); m_LengthTension = new AnimatTools.DataObjects.Gains.MuscleGains.LengthTension(this); m_LengthTension.ShowLcePercentage = false; m_snMaxTension = new AnimatTools.Framework.ScaledNumber(this, "MaxTension", 100, AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "Newtons", "N"); m_snMuscleLength = new AnimatTools.Framework.ScaledNumber(this, "MuscleLength", 0, AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "Meters", "m"); m_snKse = new AnimatTools.Framework.ScaledNumber(this, "Kse", 10, AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "Newtons per meter", "N/m"); m_snKpe = new AnimatTools.Framework.ScaledNumber(this, "Kpe", 1, AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "Newtons per meter", "N/m"); m_snB = new AnimatTools.Framework.ScaledNumber(this, "B", 1, AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "Newton-seconds per meter", "Ns/m"); m_snPeLengthPercentage = new AnimatTools.Framework.ScaledNumber(this, "PeLengthPercentage", 90, AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "%", "%"); m_snMinPeLengthPercentage = new AnimatTools.Framework.ScaledNumber(this, "MinPeLengthPercentage", 5, AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "%", "%"); m_snIbDischargeConstant = new AnimatTools.Framework.ScaledNumber(this, "Ib Discharge Constant", 100, AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "Spikes/sN", "Spikes/sN"); }
public Hinge(AnimatTools.Framework.DataObject doParent) : base(doParent) { m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("JointRotation", "Rotation", "Radians", "rad", -3.14, 3.14)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("JointRotationDeg", "Rotation (Deg)", "Degrees", "o", -180, 180)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("JointActualVelocity", "Velocity", "m/s", "m/s", -5, 5)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("JointDesiredVelocity", "Desired Velocity", "m/s", "m/s", -5, 5)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Enable", "Enable", "", "", 0, 1)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("BodyPositionX", "Position X Axis", "Meters", "m", -10, 10)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("BodyPositionY", "Position Y Axis", "Meters", "m", -10, 10)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("BodyPositionZ", "Position Z Axis", "Meters", "m", -10, 10)); m_thDataTypes.ID = "JointRotation"; Color = System.Drawing.Color.Magenta; m_snMinAngle = new AnimatTools.Framework.ScaledNumber(this, "MinRotationScaled", Util.RadiansToDegrees(m_fltMinAngle), AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "Degrees", "Deg"); m_snMaxAngle = new AnimatTools.Framework.ScaledNumber(this, "MaxRotationScaled", Util.RadiansToDegrees(m_fltMaxAngle), AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "Degrees", "Deg"); m_snMaxTorque = new AnimatTools.Framework.ScaledNumber(this, "MaxTorque", 100, AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "Newton-Meters", "Nm"); m_snMaxVelocity = new AnimatTools.Framework.ScaledNumber(this, "MaxVelocity", 100, AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "rad/s", "rad/s"); }
public Hinge(AnimatTools.Framework.DataObject doParent) : base(doParent) { m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("JointRotation", "Rotation", "Radians", "rad", -3.14, 3.14)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("JointActualVelocity", "Velocity", "m/s", "m/s", -5, 5)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("JointDesiredVelocity", "Desired Velocity", "m/s", "m/s", -5, 5)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Enable", "Enable", "", "", 0, 1)); m_thDataTypes.ID = "JointRotation"; Color = System.Drawing.Color.Magenta; m_snMinAngle = new AnimatTools.Framework.ScaledNumber(this, "MinRotationScaled", Util.RadiansToDegrees(m_fltMinAngle), AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "Degrees", "Deg"); m_snMaxAngle = new AnimatTools.Framework.ScaledNumber(this, "MaxRotationScaled", Util.RadiansToDegrees(m_fltMaxAngle), AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "Degrees", "Deg"); m_snMaxTorque = new AnimatTools.Framework.ScaledNumber(this, "MaxTorque", 100, AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "Newton-Meters", "Nm"); m_snMaxVelocity = new AnimatTools.Framework.ScaledNumber(this, "MaxVelocity", 100, AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "rad/s", "rad/s"); AddCompatibleStimulus(new AnimatTools.DataObjects.ExternalStimuli.MotorVelocity(null)); AddCompatibleStimulus(new AnimatTools.DataObjects.ExternalStimuli.Enabler(null)); AddCompatibleStimulus(new VortexAnimatTools.DataObjects.ExternalStimuli.PositionClamp(null)); }
public MuscleSpindle(AnimatTools.Framework.DataObject doParent) : base(doParent) { try { System.Reflection.Assembly myAssembly = System.Reflection.Assembly.Load("VortexAnimatTools"); this.Size = new System.Drawing.SizeF(30, 150); this.Image = AnimatTools.Framework.ImageManager.LoadImage(ref myAssembly, "VortexAnimatTools.Graphics.IconSpindle.gif", false); this.DragImage = AnimatTools.Framework.ImageManager.LoadImage(ref myAssembly, "VortexAnimatTools.Graphics.DragSpindle.gif", false); this.Name = "Stretch Receptor"; this.Description = "This node allows the user to collect propreoceptive feedback from muscle stretch receptors."; m_tpBodyPartType = typeof(VortexAnimatTools.DataObjects.Physical.RigidBodies.LinearHillStretchReceptor); } catch(System.Exception ex) { AnimatTools.Framework.Util.DisplayError(ex); } }
public Muscle(AnimatTools.Framework.DataObject doParent) : base(doParent) { try { System.Reflection.Assembly myAssembly = System.Reflection.Assembly.Load("VortexAnimatTools"); this.Size = new System.Drawing.SizeF(30, 150); this.Image = AnimatTools.Framework.ImageManager.LoadImage(ref myAssembly, "VortexAnimatTools.Graphics.ArmMuscle.gif", false); this.DragImage = AnimatTools.Framework.ImageManager.LoadImage(ref myAssembly, "VortexAnimatTools.Graphics.DragMuscle.gif", false); this.Name = "Muscle"; this.Description = "This node allows the user to connect neural output directly to a physical muscle."; m_tpBodyPartType = typeof(VortexAnimatTools.DataObjects.Physical.RigidBodies.MuscleBase); } catch(System.Exception ex) { AnimatTools.Framework.Util.DisplayError(ex); } }
public override bool HasChanged(AnimatTools.DataObjects.Physical.PartPositionInfo piEndSate) { VortexAnimatTools.DataObjects.Physical.PartPositionInfo piEnd = (VortexAnimatTools.DataObjects.Physical.PartPositionInfo) piEndSate; if(!Util_DX.MatricesEqual(m_mOrientation, piEnd.m_mOrientation)) return true; if(!Util_DX.MatricesEqual(m_mtxTranslation, piEnd.m_mtxTranslation)) return true; if(m_v3Rotation.X != piEnd.m_v3Rotation.X || m_v3Rotation.Y != piEnd.m_v3Rotation.Y || m_v3Rotation.Z != piEnd.m_v3Rotation.Z) return true; if(m_v3Direction.X != piEnd.m_v3Direction.X || m_v3Direction.Y != piEnd.m_v3Direction.Y || m_v3Direction.Z != piEnd.m_v3Direction.Z) return true; if(m_vSize.X != piEnd.m_vSize.X || m_vSize.Y != piEnd.m_vSize.Y || m_vSize.Z != piEnd.m_vSize.Z) return true; return false; }
public OdorSensor(AnimatTools.Framework.DataObject doParent) : base(doParent) { try { m_thLinkedPart = new AnimatTools.TypeHelpers.LinkedBodyPartList(this); System.Reflection.Assembly myAssembly = System.Reflection.Assembly.Load("VortexAnimatTools"); this.Size = new System.Drawing.SizeF(55, 55); this.Image = AnimatTools.Framework.ImageManager.LoadImage(ref myAssembly, "VortexAnimatTools.Graphics.OdorSensor.gif", false); this.DragImage = AnimatTools.Framework.ImageManager.LoadImage(ref myAssembly, "VortexAnimatTools.Graphics.OdorSensor.gif", false); this.Name = "OdorSensor"; this.Description = "This node allows the user to collect data directly from an odor sensor."; m_tpBodyPartType = typeof(VortexAnimatTools.DataObjects.Physical.RigidBodies.OdorSensor); } catch(System.Exception ex) { AnimatTools.Framework.Util.DisplayError(ex); } }
public Prismatic(AnimatTools.Framework.DataObject doParent) : base(doParent) { m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("JointPosition", "Position", "Meters", "m", -10, 10)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("JointActualVelocity", "Velocity", "m/s", "m/s", -5, 5)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("JointDesiredVelocity", "Desired Velocity", "m/s", "m/s", -5, 5)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("Enable", "Enable", "", "", 0, 1)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("BodyPositionX", "Position X Axis", "Meters", "m", -10, 10)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("BodyPositionY", "Position Y Axis", "Meters", "m", -10, 10)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("BodyPositionZ", "Position Z Axis", "Meters", "m", -10, 10)); m_thDataTypes.ID = "JointPosition"; Color = System.Drawing.Color.YellowGreen; m_snMinMovement = new AnimatTools.Framework.ScaledNumber(this, "MinMovementScaled", "meters", "m"); m_snMaxMovement = new AnimatTools.Framework.ScaledNumber(this, "MaxMovementScaled", "meters", "m"); m_snLength = new AnimatTools.Framework.ScaledNumber(this, "LengthScaled", "meters", "m"); m_snMaxForce = new AnimatTools.Framework.ScaledNumber(this, "MaxForce", 100, AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "Newtons", "N"); m_snMaxVelocity = new AnimatTools.Framework.ScaledNumber(this, "MaxVelocity", 100, AnimatTools.Framework.ScaledNumber.enumNumericScale.None, "m/s", "m/s"); m_vrConstraint = new DxPrismaticConstraintRef(this); }
public Joint(AnimatTools.Framework.DataObject doParent) : base(doParent) { try { m_thLinkedPart = new AnimatTools.TypeHelpers.LinkedBodyPartTree(this); System.Reflection.Assembly myAssembly = System.Reflection.Assembly.Load("VortexAnimatTools"); this.Size = new System.Drawing.SizeF(75, 70); this.Image = AnimatTools.Framework.ImageManager.LoadImage(ref myAssembly, "VortexAnimatTools.Graphics.Hinge.gif", false); this.DragImage = AnimatTools.Framework.ImageManager.LoadImage(ref myAssembly, "VortexAnimatTools.Graphics.DragHinge.gif", false); this.Name = "Joint"; this.Description = "This node allows the user to collect data directly from a joint or to control a motorized joint."; this.Alignment = enumAlignment.CenterBottom; m_tpBodyPartType = typeof(AnimatTools.DataObjects.Physical.Joint); } catch(System.Exception ex) { AnimatTools.Framework.Util.DisplayError(ex); } }
public Stomach(AnimatTools.Framework.DataObject doParent) : base(doParent) { Alpha = 128; Color = Color.LightBlue; this.m_fRadius = 0.1f; m_snMaxEnergyLevel = new ScaledNumber(this, "MaxEnergyLevel", 100, ScaledNumber.enumNumericScale.Kilo, "Calories", "C"); m_snEnergyLevel = new ScaledNumber(this, "EnergyLevel", 10, ScaledNumber.enumNumericScale.Kilo, "Calories", "C"); m_snBaseConsumptionRate = new ScaledNumber(this, "BaseConsumptionRate", 10, ScaledNumber.enumNumericScale.None, "C/s", "C/s"); m_thDataTypes.DataTypes.Clear(); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("BodyPositionX", "Position X Axis", "Meters", "m", -10, 10)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("BodyPositionY", "Position Y Axis", "Meters", "m", -10, 10)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("BodyPositionZ", "Position Z Axis", "Meters", "m", -10, 10)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("EnergyLevel", "Energy Level", "", "", -10000, 10000)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("ConsumptionRate", "Consumption Rate", "", "", -10000, 10000)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("ConsumptionForStep", "Consumption For Step", "", "", -10000, 10000)); m_thDataTypes.DataTypes.Add(new AnimatTools.DataObjects.DataType("AdapterConsumptionRate", "Adapter Consumption Rate", "", "", -10000, 10000)); m_thDataTypes.ID = "EnergyLevel"; this.ID = "STOMACH"; }
public RigidBody(AnimatTools.Framework.DataObject doParent) : base(doParent) { try { m_thLinkedPart = new AnimatTools.TypeHelpers.LinkedBodyPartTree(this); System.Reflection.Assembly myAssembly = System.Reflection.Assembly.Load("VortexAnimatTools"); this.Size = new System.Drawing.SizeF(50, 50); this.Image = AnimatTools.Framework.ImageManager.LoadImage(ref myAssembly, "VortexAnimatTools.Graphics.Bone.gif", false); this.DragImage = AnimatTools.Framework.ImageManager.LoadImage(ref myAssembly, "VortexAnimatTools.Graphics.DragBone.gif", false); this.Name = "Rigid Body"; this.Description = "This node allows the user to collect data directly from a rigid body."; this.Shape = AnimatTools.DataObjects.Behavior.Node.enumShape.Hexagon; this.FillColor = Color.LightBlue; m_tpBodyPartType = typeof(AnimatTools.DataObjects.Physical.RigidBody); } catch(System.Exception ex) { AnimatTools.Framework.Util.DisplayError(ex); } }