Наследование: Structure, IUpdateObserver, IKOSScopeObserver
Пример #1
0
        public override void Execute(SharedObjects shared)
        {
            var vRend = new VectorRenderer( shared.UpdateHandler, shared );
            vRend.SetShow( false );

            shared.Cpu.PushStack( vRend );
        }
Пример #2
0
        public void DoExecuteWork(SharedObjects shared, Vector start, Vector vec, RgbaColor rgba, string str, double scale, bool show, double width)
        {
            var vRend = new VectorRenderer( shared.UpdateHandler, shared )
                {
                    Vector = vec,
                    Start = start,
                    Color = rgba,
                    Scale = scale,
                    Width = width
                };
            vRend.SetLabel( str );
            vRend.SetShow( show );

            ReturnValue = vRend;
        }
Пример #3
0
 public void DoExecuteWork(SharedObjects shared)
 {
     var vRend = new VectorRenderer( shared.UpdateHandler, shared );
     vRend.SetShow( false );
     
     ReturnValue = vRend;            
 }
Пример #4
0
        public override void Execute(SharedObjects shared)
        {
            bool      show  = Convert.ToBoolean(shared.Cpu.PopValue());
            double    scale = GetDouble(shared.Cpu.PopValue());
            string    str   = shared.Cpu.PopValue().ToString();
            RgbaColor rgba  = GetRgba(shared.Cpu.PopValue());
            Vector    vec   = GetVector(shared.Cpu.PopValue());
            Vector    start = GetVector(shared.Cpu.PopValue());

            var vRend = new VectorRenderer( shared.UpdateHandler, shared )
                {
                    Vector = vec,
                    Start = start,
                    Color = rgba,
                    Scale = scale
                };
            vRend.SetLabel( str );
            vRend.SetShow( show );

            shared.Cpu.PushStack( vRend );
        }
Пример #5
0
 public VectorRenderer InitVectorRenderer(Color c, double width, SharedObjects sharedObj)
 {
     VectorRenderer rend = new VectorRenderer(sharedObj.UpdateHandler, sharedObj)
     {
         Color = new RgbaColor(c.r, c.g, c.b),
         Start = Vector3d.zero,
         Vector = Vector3d.zero,
         Width = width
     };
     return rend;
 }
Пример #6
0
        public void DisposeVectorRenderers()
        {
            if (vForward != null)
            {
                vForward.Dispose();
                vForward = null;
            }
            if (vTop != null)
            {
                vTop.Dispose();
                vTop = null;
            }
            if (vStarboard != null)
            {
                vStarboard.Dispose();
                vStarboard = null;
            }

            if (vTgtForward != null)
            {
                vTgtForward.Dispose();
                vTgtForward = null;
            }
            if (vTgtTop != null)
            {
                vTgtTop.Dispose();
                vTgtTop = null;
            }
            if (vTgtStarboard != null)
            {
                vTgtStarboard.Dispose();
                vTgtStarboard = null;
            }

            if (vTgtTorqueX != null)
            {
                vTgtTorqueX.Dispose();
                vTgtTorqueX = null;
            }
            if (vTgtTorqueY != null)
            {
                vTgtTorqueY.Dispose();
                vTgtTorqueY = null;
            }
            if (vTgtTorqueZ != null)
            {
                vTgtTorqueZ.Dispose();
                vTgtTorqueZ = null;
            }

            if (vWorldX != null)
            {
                vWorldX.Dispose();
                vWorldX = null;
            }
            if (vWorldY != null)
            {
                vWorldY.Dispose();
                vWorldY = null;
            }
            if (vWorldZ != null)
            {
                vWorldZ.Dispose();
                vWorldZ = null;
            }

            if (vOmegaX != null)
            {
                vOmegaX.Dispose();
                vOmegaX = null;
            }
            if (vOmegaY != null)
            {
                vOmegaY.Dispose();
                vOmegaY = null;
            }
            if (vOmegaZ != null)
            {
                vOmegaZ.Dispose();
                vOmegaZ = null;
            }

            foreach (string key in vEngines.Keys.ToArray())
            {
                if (vEngines[key] != null)
                {
                    vEngines[key].SetShow(false);
                    vEngines[key].Dispose();
                }
                vEngines.Remove(key);
            }
            foreach (string key in vRcs.Keys.ToArray())
            {
                if (vRcs[key] != null)
                {
                    vRcs[key].SetShow(false);
                    vRcs[key].Dispose();
                }
                vRcs.Remove(key);
            }
        }
Пример #7
0
        public void UpdateVectorRenders()
        {
            if (ShowFacingVectors && enabled)
            {
                if (vForward == null)
                {
                    vForward = InitVectorRenderer(Color.red, 1, shared);
                }
                if (vTop == null)
                {
                    vTop = InitVectorRenderer(Color.red, 1, shared);
                }
                if (vStarboard == null)
                {
                    vStarboard = InitVectorRenderer(Color.red, 1, shared);
                }

                vForward.Vector = vesselForward * RENDER_MULTIPLIER;
                vTop.Vector = vesselTop * RENDER_MULTIPLIER;
                vStarboard.Vector = vesselStarboard * RENDER_MULTIPLIER;

                if (vTgtForward == null)
                {
                    vTgtForward = InitVectorRenderer(Color.blue, 1, shared);
                }
                if (vTgtTop == null)
                {
                    vTgtTop = InitVectorRenderer(Color.blue, 1, shared);
                }
                if (vTgtStarboard == null)
                {
                    vTgtStarboard = InitVectorRenderer(Color.blue, 1, shared);
                }

                vTgtForward.Vector = targetForward * RENDER_MULTIPLIER * 0.75f;
                vTgtTop.Vector = targetTop * RENDER_MULTIPLIER * 0.75f;
                vTgtStarboard.Vector = targetStarboard * RENDER_MULTIPLIER * 0.75f;

                if (vWorldX == null)
                {
                    vWorldX = InitVectorRenderer(Color.white, 1, shared);
                }
                if (vWorldY == null)
                {
                    vWorldY = InitVectorRenderer(Color.white, 1, shared);
                }
                if (vWorldZ == null)
                {
                    vWorldZ = InitVectorRenderer(Color.white, 1, shared);
                }

                vWorldX.Vector = new Vector3d(1, 0, 0) * RENDER_MULTIPLIER * 2;
                vWorldY.Vector = new Vector3d(0, 1, 0) * RENDER_MULTIPLIER * 2;
                vWorldZ.Vector = new Vector3d(0, 0, 1) * RENDER_MULTIPLIER * 2;

                if (!vForward.GetShow()) vForward.SetShow(true);
                if (!vTop.GetShow()) vTop.SetShow(true);
                if (!vStarboard.GetShow()) vStarboard.SetShow(true);

                if (!vTgtForward.GetShow()) vTgtForward.SetShow(true);
                if (!vTgtTop.GetShow()) vTgtTop.SetShow(true);
                if (!vTgtStarboard.GetShow()) vTgtStarboard.SetShow(true);

                if (!vWorldX.GetShow()) vWorldX.SetShow(true);
                if (!vWorldY.GetShow()) vWorldY.SetShow(true);
                if (!vWorldZ.GetShow()) vWorldZ.SetShow(true);
            }
            else
            {
                if (vForward != null)
                {
                    if (vForward.GetShow()) vForward.SetShow(false);
                    vForward.Dispose();
                    vForward = null;
                }
                if (vTop != null)
                {
                    if (vTop.GetShow()) vTop.SetShow(false);
                    vTop.Dispose();
                    vTop = null;
                }
                if (vStarboard != null)
                {
                    if (vStarboard.GetShow()) vStarboard.SetShow(false);
                    vStarboard.Dispose();
                    vStarboard = null;
                }

                if (vTgtForward != null)
                {
                    if (vTgtForward.GetShow()) vTgtForward.SetShow(false);
                    vTgtForward.Dispose();
                    vTgtForward = null;
                }
                if (vTgtTop != null)
                {
                    if (vTgtTop.GetShow()) vTgtTop.SetShow(false);
                    vTgtTop.Dispose();
                    vTgtTop = null;
                }
                if (vTgtStarboard != null)
                {
                    if (vTgtStarboard.GetShow()) vTgtStarboard.SetShow(false);
                    vTgtStarboard.Dispose();
                    vTgtStarboard = null;
                }

                if (vWorldX != null)
                {
                    if (vWorldX.GetShow()) vWorldX.SetShow(false);
                    vWorldX.Dispose();
                    vWorldX = null;
                }
                if (vWorldY != null)
                {
                    if (vWorldY.GetShow()) vWorldY.SetShow(false);
                    vWorldY.Dispose();
                    vWorldY = null;
                }
                if (vWorldZ != null)
                {
                    if (vWorldZ.GetShow()) vWorldZ.SetShow(false);
                    vWorldZ.Dispose();
                    vWorldZ = null;
                }
            }

            if (ShowAngularVectors && enabled)
            {
                if (vOmegaX == null)
                {
                    vOmegaX = InitVectorRenderer(Color.cyan, 1, shared);
                }
                if (vOmegaY == null)
                {
                    vOmegaY = InitVectorRenderer(Color.cyan, 1, shared);
                }
                if (vOmegaZ == null)
                {
                    vOmegaZ = InitVectorRenderer(Color.cyan, 1, shared);
                }

                vOmegaX.Vector = vesselTop * omega.x * RENDER_MULTIPLIER * 100f;
                vOmegaX.Start = vesselForward * RENDER_MULTIPLIER;
                vOmegaY.Vector = vesselStarboard * omega.y * RENDER_MULTIPLIER * 100f;
                vOmegaY.Start = vesselForward * RENDER_MULTIPLIER;
                vOmegaZ.Vector = vesselStarboard * omega.z * RENDER_MULTIPLIER * 100f;
                vOmegaZ.Start = vesselTop * RENDER_MULTIPLIER;

                if (vTgtTorqueX == null)
                {
                    vTgtTorqueX = InitVectorRenderer(Color.green, 1, shared);
                }
                if (vTgtTorqueY == null)
                {
                    vTgtTorqueY = InitVectorRenderer(Color.green, 1, shared);
                }
                if (vTgtTorqueZ == null)
                {
                    vTgtTorqueZ = InitVectorRenderer(Color.green, 1, shared);
                }

                vTgtTorqueX.Vector = vesselTop * tgtPitchOmega * RENDER_MULTIPLIER * 100f;
                vTgtTorqueX.Start = vesselForward * RENDER_MULTIPLIER;
                //vTgtTorqueX.SetLabel("tgtPitchOmega: " + tgtPitchOmega);
                vTgtTorqueY.Vector = vesselStarboard * tgtRollOmega * RENDER_MULTIPLIER * 100f;
                vTgtTorqueY.Start = vesselTop * RENDER_MULTIPLIER;
                //vTgtTorqueY.SetLabel("tgtRollOmega: " + tgtRollOmega);
                vTgtTorqueZ.Vector = vesselStarboard * tgtYawOmega * RENDER_MULTIPLIER * 100f;
                vTgtTorqueZ.Start = vesselForward * RENDER_MULTIPLIER;
                //vTgtTorqueZ.SetLabel("tgtYawOmega: " + tgtYawOmega);

                if (!vOmegaX.GetShow()) vOmegaX.SetShow(true);
                if (!vOmegaY.GetShow()) vOmegaY.SetShow(true);
                if (!vOmegaZ.GetShow()) vOmegaZ.SetShow(true);

                if (!vTgtTorqueX.GetShow()) vTgtTorqueX.SetShow(true);
                if (!vTgtTorqueY.GetShow()) vTgtTorqueY.SetShow(true);
                if (!vTgtTorqueZ.GetShow()) vTgtTorqueZ.SetShow(true);
            }
            else
            {
                if (vOmegaX != null)
                {
                    if (vOmegaX.GetShow()) vOmegaX.SetShow(false);
                    vOmegaX.Dispose();
                    vOmegaX = null;
                }
                if (vOmegaY != null)
                {
                    if (vOmegaY.GetShow()) vOmegaY.SetShow(false);
                    vOmegaY.Dispose();
                    vOmegaY = null;
                }
                if (vOmegaZ != null)
                {
                    if (vOmegaZ.GetShow()) vOmegaZ.SetShow(false);
                    vOmegaZ.Dispose();
                    vOmegaZ = null;
                }

                if (vTgtTorqueX != null)
                {
                    if (vTgtTorqueX.GetShow()) vTgtTorqueX.SetShow(false);
                    vTgtTorqueX.Dispose();
                    vTgtTorqueX = null;
                }
                if (vTgtTorqueY != null)
                {
                    if (vTgtTorqueY.GetShow()) vTgtTorqueY.SetShow(false);
                    vTgtTorqueY.Dispose();
                    vTgtTorqueY = null;
                }
                if (vTgtTorqueZ != null)
                {
                    if (vTgtTorqueZ.GetShow()) vTgtTorqueZ.SetShow(false);
                    vTgtTorqueZ.Dispose();
                    vTgtTorqueZ = null;
                }
            }

            if (ShowThrustVectors && enabled)
            {
                foreach (var fv in engineNeutVectors)
                {
                    string key = fv.ID;
                    if (!vEngines.ContainsKey(key))
                    {
                        var vecdraw = InitVectorRenderer(Color.yellow, 0.25, shared);
                        vEngines.Add(key, vecdraw);
                        vEngines[key].SetShow(true);
                    }
                    vEngines[key].Vector = fv.Force;
                    vEngines[key].Start = fv.Position;

                    key = fv.ID + "torque";
                    if (!vEngines.ContainsKey(key))
                    {
                        var vecdraw = InitVectorRenderer(Color.red, 0.25, shared);
                        vEngines.Add(key, vecdraw);
                        vEngines[key].SetShow(true);
                    }
                    vEngines[key].Vector = fv.Torque;
                    vEngines[key].Start = fv.Position;

                    key = fv.ID + "position";
                    if (!vEngines.ContainsKey(key))
                    {
                        var vecdraw = InitVectorRenderer(Color.cyan, 0.25, shared);
                        vEngines.Add(key, vecdraw);
                        vEngines[key].SetShow(true);
                    }
                    vEngines[key].Vector = fv.Position;
                }
                foreach (var fv in engineRollVectors)
                {
                    string key = fv.ID + "gimbaled";
                    if (!vEngines.ContainsKey(key))
                    {
                        var vecdraw = InitVectorRenderer(Color.magenta, 0.25, shared);
                        vEngines.Add(key, vecdraw);
                        vEngines[key].SetShow(true);
                    }
                    vEngines[key].Vector = fv.Force;
                    vEngines[key].Start = fv.Position;

                    key = fv.ID + "control";
                    if (!vEngines.ContainsKey(key))
                    {
                        var vecdraw = InitVectorRenderer(Color.blue, 0.25, shared);
                        vEngines.Add(key, vecdraw);
                        vEngines[key].SetShow(true);
                    }
                    vEngines[key].Vector = fv.Torque;
                    vEngines[key].Start = fv.Position;
                }
            }
            else
            {
                foreach (string key in vEngines.Keys)
                {
                    vEngines[key].SetShow(false);
                }
                vEngines.Clear();
            }

            if (ShowRCSVectors && enabled)
            {
                foreach (var force in rcsVectors)
                {
                    string key = force.ID;
                    if (!vRcs.ContainsKey(key))
                    {
                        var vecdraw = InitVectorRenderer(Color.magenta, 0.25, shared);
                        vecdraw.SetShow(true);
                        vRcs.Add(key, vecdraw);
                    }
                    vRcs[key].Vector = force.Force;
                    vRcs[key].Start = force.Position;

                    key = force.ID + "torque";
                    if (!vRcs.ContainsKey(key))
                    {
                        var vecdraw = InitVectorRenderer(Color.yellow, 0.25, shared);
                        vecdraw.SetShow(true);
                        vRcs.Add(key, vecdraw);
                    }
                    vRcs[key].Vector = force.Torque;
                    vRcs[key].Start = force.Position;
                }
            }
            else
            {
                foreach (string key in vRcs.Keys)
                {
                    vRcs[key].SetShow(false);
                }
                vRcs.Clear();
            }
        }
Пример #8
0
        public void UpdateVectorRenders()
        {
            if (ShowFacingVectors && enabled)
            {
                if (vForward == null)
                {
                    vForward = InitVectorRenderer(Color.red, 1, shared);
                }
                if (vTop == null)
                {
                    vTop = InitVectorRenderer(Color.red, 1, shared);
                }
                if (vStarboard == null)
                {
                    vStarboard = InitVectorRenderer(Color.red, 1, shared);
                }

                vForward.Vector = vesselForward * RENDER_MULTIPLIER;
                vTop.Vector = vesselTop * RENDER_MULTIPLIER;
                vStarboard.Vector = vesselStarboard * RENDER_MULTIPLIER;

                if (vTgtForward == null)
                {
                    vTgtForward = InitVectorRenderer(Color.blue, 1, shared);
                }
                if (vTgtTop == null)
                {
                    vTgtTop = InitVectorRenderer(Color.blue, 1, shared);
                }
                if (vTgtStarboard == null)
                {
                    vTgtStarboard = InitVectorRenderer(Color.blue, 1, shared);
                }

                vTgtForward.Vector = targetForward * RENDER_MULTIPLIER * 0.75f;
                vTgtTop.Vector = targetTop * RENDER_MULTIPLIER * 0.75f;
                vTgtStarboard.Vector = targetStarboard * RENDER_MULTIPLIER * 0.75f;

                if (vWorldX == null)
                {
                    vWorldX = InitVectorRenderer(Color.white, 1, shared);
                }
                if (vWorldY == null)
                {
                    vWorldY = InitVectorRenderer(Color.white, 1, shared);
                }
                if (vWorldZ == null)
                {
                    vWorldZ = InitVectorRenderer(Color.white, 1, shared);
                }

                vWorldX.Vector = new Vector3d(1, 0, 0) * RENDER_MULTIPLIER * 2;
                vWorldY.Vector = new Vector3d(0, 1, 0) * RENDER_MULTIPLIER * 2;
                vWorldZ.Vector = new Vector3d(0, 0, 1) * RENDER_MULTIPLIER * 2;

                if (!vForward.GetShow()) vForward.SetShow(true);
                if (!vTop.GetShow()) vTop.SetShow(true);
                if (!vStarboard.GetShow()) vStarboard.SetShow(true);

                if (!vTgtForward.GetShow()) vTgtForward.SetShow(true);
                if (!vTgtTop.GetShow()) vTgtTop.SetShow(true);
                if (!vTgtStarboard.GetShow()) vTgtStarboard.SetShow(true);

                if (!vWorldX.GetShow()) vWorldX.SetShow(true);
                if (!vWorldY.GetShow()) vWorldY.SetShow(true);
                if (!vWorldZ.GetShow()) vWorldZ.SetShow(true);
            }
            else
            {
                if (vForward != null)
                {
                    if (vForward.GetShow()) vForward.SetShow(false);
                    vForward.Dispose();
                    vForward = null;
                }
                if (vTop != null)
                {
                    if (vTop.GetShow()) vTop.SetShow(false);
                    vTop.Dispose();
                    vTop = null;
                }
                if (vStarboard != null)
                {
                    if (vStarboard.GetShow()) vStarboard.SetShow(false);
                    vStarboard.Dispose();
                    vStarboard = null;
                }

                if (vTgtForward != null)
                {
                    if (vTgtForward.GetShow()) vTgtForward.SetShow(false);
                    vTgtForward.Dispose();
                    vTgtForward = null;
                }
                if (vTgtTop != null)
                {
                    if (vTgtTop.GetShow()) vTgtTop.SetShow(false);
                    vTgtTop.Dispose();
                    vTgtTop = null;
                }
                if (vTgtStarboard != null)
                {
                    if (vTgtStarboard.GetShow()) vTgtStarboard.SetShow(false);
                    vTgtStarboard.Dispose();
                    vTgtStarboard = null;
                }

                if (vWorldX != null)
                {
                    if (vWorldX.GetShow()) vWorldX.SetShow(false);
                    vWorldX.Dispose();
                    vWorldX = null;
                }
                if (vWorldY != null)
                {
                    if (vWorldY.GetShow()) vWorldY.SetShow(false);
                    vWorldY.Dispose();
                    vWorldY = null;
                }
                if (vWorldZ != null)
                {
                    if (vWorldZ.GetShow()) vWorldZ.SetShow(false);
                    vWorldZ.Dispose();
                    vWorldZ = null;
                }
            }

            if (ShowAngularVectors && enabled && !Vessel.ActionGroups[KSPActionGroup.SAS])
            {
                if (vOmegaX == null)
                {
                    vOmegaX = InitVectorRenderer(Color.cyan, 1, shared);
                }
                if (vOmegaY == null)
                {
                    vOmegaY = InitVectorRenderer(Color.cyan, 1, shared);
                }
                if (vOmegaZ == null)
                {
                    vOmegaZ = InitVectorRenderer(Color.cyan, 1, shared);
                }

                vOmegaX.Vector = vesselTop * omega.x * RENDER_MULTIPLIER * 100f;
                vOmegaX.Start = vesselForward * RENDER_MULTIPLIER;
                vOmegaY.Vector = vesselStarboard * omega.y * RENDER_MULTIPLIER * 100f;
                vOmegaY.Start = vesselForward * RENDER_MULTIPLIER;
                vOmegaZ.Vector = vesselStarboard * omega.z * RENDER_MULTIPLIER * 100f;
                vOmegaZ.Start = vesselTop * RENDER_MULTIPLIER;

                if (vTgtTorqueX == null)
                {
                    vTgtTorqueX = InitVectorRenderer(Color.green, 1, shared);
                }
                if (vTgtTorqueY == null)
                {
                    vTgtTorqueY = InitVectorRenderer(Color.green, 1, shared);
                }
                if (vTgtTorqueZ == null)
                {
                    vTgtTorqueZ = InitVectorRenderer(Color.green, 1, shared);
                }

                vTgtTorqueX.Vector = vesselTop * tgtPitchOmega * RENDER_MULTIPLIER * 100f;
                vTgtTorqueX.Start = vesselForward * RENDER_MULTIPLIER;
                //vTgtTorqueX.SetLabel("tgtPitchOmega: " + tgtPitchOmega);
                vTgtTorqueY.Vector = vesselStarboard * tgtRollOmega * RENDER_MULTIPLIER * 100f;
                vTgtTorqueY.Start = vesselTop * RENDER_MULTIPLIER;
                //vTgtTorqueY.SetLabel("tgtRollOmega: " + tgtRollOmega);
                vTgtTorqueZ.Vector = vesselStarboard * tgtYawOmega * RENDER_MULTIPLIER * 100f;
                vTgtTorqueZ.Start = vesselForward * RENDER_MULTIPLIER;
                //vTgtTorqueZ.SetLabel("tgtYawOmega: " + tgtYawOmega);

                if (!vOmegaX.GetShow()) vOmegaX.SetShow(true);
                if (!vOmegaY.GetShow()) vOmegaY.SetShow(true);
                if (!vOmegaZ.GetShow()) vOmegaZ.SetShow(true);

                if (!vTgtTorqueX.GetShow()) vTgtTorqueX.SetShow(true);
                if (!vTgtTorqueY.GetShow()) vTgtTorqueY.SetShow(true);
                if (!vTgtTorqueZ.GetShow()) vTgtTorqueZ.SetShow(true);
            }
            else
            {
                if (vOmegaX != null)
                {
                    if (vOmegaX.GetShow()) vOmegaX.SetShow(false);
                    vOmegaX.Dispose();
                    vOmegaX = null;
                }
                if (vOmegaY != null)
                {
                    if (vOmegaY.GetShow()) vOmegaY.SetShow(false);
                    vOmegaY.Dispose();
                    vOmegaY = null;
                }
                if (vOmegaZ != null)
                {
                    if (vOmegaZ.GetShow()) vOmegaZ.SetShow(false);
                    vOmegaZ.Dispose();
                    vOmegaZ = null;
                }

                if (vTgtTorqueX != null)
                {
                    if (vTgtTorqueX.GetShow()) vTgtTorqueX.SetShow(false);
                    vTgtTorqueX.Dispose();
                    vTgtTorqueX = null;
                }
                if (vTgtTorqueY != null)
                {
                    if (vTgtTorqueY.GetShow()) vTgtTorqueY.SetShow(false);
                    vTgtTorqueY.Dispose();
                    vTgtTorqueY = null;
                }
                if (vTgtTorqueZ != null)
                {
                    if (vTgtTorqueZ.GetShow()) vTgtTorqueZ.SetShow(false);
                    vTgtTorqueZ.Dispose();
                    vTgtTorqueZ = null;
                }
            }
        }
Пример #9
0
        public void DisposeVectorRenderers()
        {
            if (vForward != null)
            {
                vForward.Dispose();
                vForward = null;
            }
            if (vTop != null)
            {
                vTop.Dispose();
                vTop = null;
            }
            if (vStarboard != null)
            {
                vStarboard.Dispose();
                vStarboard = null;
            }

            if (vTgtForward != null)
            {
                vTgtForward.Dispose();
                vTgtForward = null;
            }
            if (vTgtTop != null)
            {
                vTgtTop.Dispose();
                vTgtTop = null;
            }
            if (vTgtStarboard != null)
            {
                vTgtStarboard.Dispose();
                vTgtStarboard = null;
            }

            if (vTgtTorqueX != null)
            {
                vTgtTorqueX.Dispose();
                vTgtTorqueX = null;
            }
            if (vTgtTorqueY != null)
            {
                vTgtTorqueY.Dispose();
                vTgtTorqueY = null;
            }
            if (vTgtTorqueZ != null)
            {
                vTgtTorqueZ.Dispose();
                vTgtTorqueZ = null;
            }

            if (vWorldX != null)
            {
                vWorldX.Dispose();
                vWorldX = null;
            }
            if (vWorldY != null)
            {
                vWorldY.Dispose();
                vWorldY = null;
            }
            if (vWorldZ != null)
            {
                vWorldZ.Dispose();
                vWorldZ = null;
            }

            if (vOmegaX != null)
            {
                vOmegaX.Dispose();
                vOmegaX = null;
            }
            if (vOmegaY != null)
            {
                vOmegaY.Dispose();
                vOmegaY = null;
            }
            if (vOmegaZ != null)
            {
                vOmegaZ.Dispose();
                vOmegaZ = null;
            }
        }