From a44e0bf00a5d000dd408fbbe0a86b448675185c5 Mon Sep 17 00:00:00 2001 From: bstewart Date: Tue, 11 Oct 2011 07:33:03 -0700 Subject: [PATCH] Add: added load/save/new capabilities --- config/common.xml | 6 +++ config/input.xml | 8 +++- config/js.xml | 6 ++- config/runtime.xml | 2 +- scripts/capture.js | 24 ++++++++++- scripts/carrierMain.js | 9 ++++ scripts/fileMenu.js | 18 +++++--- scripts/helicopterMain.js | 86 +++++++++++++++++++++++++++++++-------- scripts/seaConst.js | 1 + 9 files changed, 131 insertions(+), 29 deletions(-) mode change 100644 => 100755 config/common.xml mode change 100644 => 100755 config/input.xml mode change 100644 => 100755 config/js.xml mode change 100644 => 100755 config/runtime.xml mode change 100644 => 100755 scripts/capture.js mode change 100644 => 100755 scripts/carrierMain.js mode change 100644 => 100755 scripts/fileMenu.js mode change 100644 => 100755 scripts/helicopterMain.js mode change 100644 => 100755 scripts/seaConst.js diff --git a/config/common.xml b/config/common.xml old mode 100644 new mode 100755 index 357db02..9b1f720 --- a/config/common.xml +++ b/config/common.xml @@ -31,6 +31,8 @@ + + @@ -38,6 +40,10 @@ + + + + diff --git a/config/input.xml b/config/input.xml old mode 100644 new mode 100755 index 494f26d..84e4142 --- a/config/input.xml +++ b/config/input.xml @@ -9,7 +9,9 @@ + @@ -52,6 +54,7 @@ + @@ -87,7 +91,7 @@ - + @@ -155,6 +159,7 @@ + diff --git a/config/js.xml b/config/js.xml old mode 100644 new mode 100755 index 0fba211..079a0ee --- a/config/js.xml +++ b/config/js.xml @@ -11,6 +11,8 @@ + + @@ -24,12 +26,12 @@ - + - + diff --git a/config/runtime.xml b/config/runtime.xml old mode 100644 new mode 100755 index 2fe5bf3..e039854 --- a/config/runtime.xml +++ b/config/runtime.xml @@ -57,7 +57,7 @@ - + diff --git a/scripts/capture.js b/scripts/capture.js old mode 100644 new mode 100755 index d4b4d98..8468eee --- a/scripts/capture.js +++ b/scripts/capture.js @@ -125,6 +125,25 @@ dmz.object.create.observe(self, function (handle, type) { else if (type.isOfType(SensorType)) { _targets.push(handle); } }); +dmz.object.destroy.observe(self, function (handle) { + + if (_source == handle) { _source = 0; } + else { + + var len = _targets.length + , ix = 0 + ; + + for (ix = 0; ix < len; ix++) { + + if (_targets[ix] == handle) { + + _targets.splice(ix, 1); ix = len; + } + } + } +}); + dmz.module.subscribe(self, "simulation", function (Mode, module) { if (Mode === dmz.module.Activate) { @@ -155,9 +174,10 @@ dmz.module.subscribe(self, "simulation", function (Mode, module) { ); }); -// module.reset(self, function () { + module.reset(self, function () { -// }); + graphView.clearData (); + }); module.timeSlice(self, function (time) { diff --git a/scripts/carrierMain.js b/scripts/carrierMain.js old mode 100644 new mode 100755 index 556a545..f15fa52 --- a/scripts/carrierMain.js +++ b/scripts/carrierMain.js @@ -54,6 +54,15 @@ _update = function (time) { } }; +dmz.object.destroy.observe(self, function (handle) { + + if (_carriers[handle]) { + + _carriers.splice(handle,1); + //_carriers[handle] = 0; + } +}); + dmz.module.subscribe(self, "objectInit", function (Mode, module) { if (Mode === dmz.module.Activate) { diff --git a/scripts/fileMenu.js b/scripts/fileMenu.js old mode 100644 new mode 100755 index 767a249..107eede --- a/scripts/fileMenu.js +++ b/scripts/fileMenu.js @@ -74,12 +74,14 @@ _save = function (file) { } }; -dmz.main.addMenu (self, "&File", "New", { shortcut: "new" }, function () { +dmz.main.insertMenu (self, "&File", "E&xit", "New", { shortcut: "new" }, +function () { _reset (); }); -dmz.main.addMenu (self, "&File", "Open", { shortcut: "open" }, function () { +dmz.main.insertMenu (self, "&File", "E&xit", "Open", { shortcut: "open" }, +function () { var data , archive @@ -89,7 +91,7 @@ dmz.main.addMenu (self, "&File", "Open", { shortcut: "open" }, function () { _reset (); file = dmz.fileDialog.getOpenFileName( - { caption: "Load file", filter: "Data File (*.csdf)" }, + { caption: "Load file", filter: "Data File (*" + FileExt + ")" }, dmz.main.window()); if (file) { @@ -117,15 +119,16 @@ dmz.main.addMenu (self, "&File", "Open", { shortcut: "open" }, function () { else { self.log.error("No file selected"); } }); -dmz.main.addSeparator("&File"); +dmz.main.insertSeparator("&File", "E&xit"); -dmz.main.addMenu(self, "&File", "Save", { shortcut: "save" }, function () { +dmz.main.insertMenu(self, "&File", "E&xit", "Save", { shortcut: "save" }, +function () { if (_currentFile) { _save(_currentFile); } else if (_saveAsAction) { _saveAsAction.trigger(); } }); -_saveAsAction = dmz.main.addMenu(self, "&File", "Save As", { shortcut: "saveas" }, +_saveAsAction = dmz.main.insertMenu(self, "&File", "E&xit", "Save As", { shortcut: "saveas" }, function () { var archive @@ -155,3 +158,6 @@ function () { _save(name); } }); + +dmz.main.insertSeparator("&File", "E&xit"); + diff --git a/scripts/helicopterMain.js b/scripts/helicopterMain.js old mode 100644 new mode 100755 index d28123d..718b8d7 --- a/scripts/helicopterMain.js +++ b/scripts/helicopterMain.js @@ -10,6 +10,7 @@ var dmz = , time: require("dmz/runtime/time") , undo: require("inspectorUndo") , vector: require("dmz/types/vector") + , mask: require("dmz/types/mask") , util: require("dmz/types/util") } // Constants @@ -40,16 +41,18 @@ var dmz = , _helos = [] , _carrier , _path = -// // Back and Forth -// [ dmz.vector.create([0.5, 0.0, 0.0]) -// , dmz.vector.create([-0.5, 0.0, 0.0]) -// ] -// // Sideways V -// [ dmz.vector.create([-0.5, 0.0, 0.0]) -// , dmz.vector.create([0.5, 0.0, -0.5]) -// , dmz.vector.create([-0.5, 0.0, 0.0]) -// , dmz.vector.create([0.5, 0.0, 0.5]) -// ] +/* // Back and Forth + [ dmz.vector.create([0.5, 0.0, 0.0]) + , dmz.vector.create([-0.5, 0.0, 0.0]) + ] +*/ +/* // Sideways V + [ dmz.vector.create([-0.5, 0.0, 0.0]) + , dmz.vector.create([0.5, 0.0, -0.5]) + , dmz.vector.create([-0.5, 0.0, 0.0]) + , dmz.vector.create([0.5, 0.0, 0.5]) + ] +*/ // Box [ dmz.vector.create([0.5, 0.0, 0.0]) , dmz.vector.create([0.5, 0.0, -0.5]) @@ -58,6 +61,7 @@ var dmz = , dmz.vector.create([-0.5, 0.0, 0.5]) , dmz.vector.create([0.5, 0.0, 0.5]) ] + , _pathWidth = 800 , _pathHeight = 200 , _sim @@ -253,13 +257,54 @@ dmz.object.create.observe(self, function (handle, type) { if (type.isOfType(CarrierType)) { - if (dmz.object.hil()) { dmz.object.flag(handle, dmz.object.HILAttribute, false); } + if (dmz.object.hil()) { + + dmz.object.flag(handle, dmz.object.HILAttribute, false); + } _carrier = handle; + dmz.object.flag(handle, dmz.object.HILAttribute, true); } }); +dmz.object.destroy.observe(self, function (handle) { + + if (_helos[handle]) { + + dmz.object.destroy (_helos[handle].icon); + + _helos.splice(handle,1); + } + else if (_carrier == handle) { _carrier = 0; } +}); + +/* - not necessary unless using a UI to switch path types +dmz.object.state.observe(self, function (handle, attribute, state){ + + var type = dmz.object.type(handle) + , obj + ; + + if (type.isOfType(HelicopterType) && + attribute == dmz.seaConst.PathAtt) { + +self.log.warn("Helicopter::PathAtt: "); + if (_sim && !_sim.control.isRunning()) { + } + if (handle && dmz.object.isObject(handle)) { + + state = dmz.object.state(handle); + + if (!state) { state = dmz.mask.create(); } + + state = state.or(HighlightState); + + dmz.object.state(handle, null, state); + } + } +}); +*/ dmz.object.position.observe(self, function (handle, attr, pos){ var type = dmz.object.type(handle) @@ -281,8 +326,8 @@ dmz.object.position.observe(self, function (handle, attr, pos){ dmz.object.vector(handle, dmz.seaConst.OffsetAttr, offset); dmz.object.counter(handle, dmz.seaConst.TargetAttr, 0); - dmz.object.position(handle, dmz.seaConst.TargetAttr, _targetPosition(obj)); -// _targetPosition(_helos[handle]); + dmz.object.position( + handle, dmz.seaConst.TargetAttr, _targetPosition(obj)); } } }); @@ -312,14 +357,21 @@ dmz.module.subscribe(self, "objectInit", function (Mode, module) { dmz.object.orientation(handle, null, StartDir); dmz.object.velocity(handle, null, [0, 0, 0]); - dmz.object.position(handle, dmz.seaConst.StartAttr, dmz.object.position(handle)); + dmz.object.position( + handle, dmz.seaConst.StartAttr, dmz.object.position(handle)); dmz.object.vector(handle, dmz.seaConst.OffsetAttr, [0, 0 ,0]); dmz.object.scalar(handle, dmz.seaConst.SpeedAttr, 0); + +// dmz.object.state(handle, dmz.seaConst.PathAttr, dmz.mask.create ()); + dmz.object.counter(handle, dmz.seaConst.TargetAttr, 0); - dmz.object.counter.min(handle, dmz.seaConst.TargetAttr, 0); - dmz.object.counter.max(handle, dmz.seaConst.TargetAttr, _path.length-1); + dmz.object.counter.min( + handle, dmz.seaConst.TargetAttr, 0); + dmz.object.counter.max( + handle, dmz.seaConst.TargetAttr, _path.length-1); dmz.object.counter.rollover(handle, dmz.seaConst.TargetAttr, true); - dmz.object.position(handle, dmz.seaConst.TargetAttr, _targetPosition(obj)); + dmz.object.position( + handle, dmz.seaConst.TargetAttr, _targetPosition(obj)); }); } }); diff --git a/scripts/seaConst.js b/scripts/seaConst.js old mode 100644 new mode 100755 index 55350fa..f3b79d2 --- a/scripts/seaConst.js +++ b/scripts/seaConst.js @@ -5,6 +5,7 @@ var util = require("dmz/types/util") util.defineConst(exports, "NetLink", defs.createNamedHandle("Network Link")); util.defineConst(exports, "EquipmentLink", defs.createNamedHandle("Equipment Link")); util.defineConst(exports, "NameAttr", defs.createNamedHandle("Name")); +//util.defineConst(exports, "PathAttr", defs.createNamedHandle("Path")); util.defineConst(exports, "RadiusAttr", defs.createNamedHandle("Radius")); util.defineConst(exports, "TargetAttr", defs.createNamedHandle("Target")); util.defineConst(exports, "StartAttr", defs.createNamedHandle("Start"));