public override void Execute(SharedObjects shared) { var vRend = new VectorRenderer( shared.UpdateHandler, shared ); vRend.SetShow( false ); shared.Cpu.PushStack( vRend ); }
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; }
public void DoExecuteWork(SharedObjects shared) { var vRend = new VectorRenderer( shared.UpdateHandler, shared ); vRend.SetShow( false ); ReturnValue = vRend; }
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 ); }
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; }
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); } }
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(); } }
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; } } }
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; } }