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"));