mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-05-06 21:58:36 +02:00
Merge pull request #4834 from huffman/edit-draw-zone-boundaries
Remove old zone drawing
This commit is contained in:
commit
0bc12f40e6
2 changed files with 2 additions and 152 deletions
|
@ -28,7 +28,6 @@ Script.include([
|
||||||
"libraries/gridTool.js",
|
"libraries/gridTool.js",
|
||||||
"libraries/entityList.js",
|
"libraries/entityList.js",
|
||||||
"libraries/lightOverlayManager.js",
|
"libraries/lightOverlayManager.js",
|
||||||
"libraries/zoneOverlayManager.js",
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
var selectionDisplay = SelectionDisplay;
|
var selectionDisplay = SelectionDisplay;
|
||||||
|
@ -36,7 +35,6 @@ var selectionManager = SelectionManager;
|
||||||
var entityPropertyDialogBox = EntityPropertyDialogBox;
|
var entityPropertyDialogBox = EntityPropertyDialogBox;
|
||||||
|
|
||||||
var lightOverlayManager = new LightOverlayManager();
|
var lightOverlayManager = new LightOverlayManager();
|
||||||
var zoneOverlayManager = new ZoneOverlayManager();
|
|
||||||
|
|
||||||
var cameraManager = new CameraManager();
|
var cameraManager = new CameraManager();
|
||||||
|
|
||||||
|
@ -49,7 +47,6 @@ var entityListTool = EntityListTool();
|
||||||
selectionManager.addEventListener(function() {
|
selectionManager.addEventListener(function() {
|
||||||
selectionDisplay.updateHandles();
|
selectionDisplay.updateHandles();
|
||||||
lightOverlayManager.updatePositions();
|
lightOverlayManager.updatePositions();
|
||||||
zoneOverlayManager.updatePositions();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
var windowDimensions = Controller.getViewportDimensions();
|
var windowDimensions = Controller.getViewportDimensions();
|
||||||
|
@ -246,7 +243,7 @@ var toolBar = (function () {
|
||||||
}
|
}
|
||||||
toolBar.selectTool(activeButton, isActive);
|
toolBar.selectTool(activeButton, isActive);
|
||||||
lightOverlayManager.setVisible(isActive && Menu.isOptionChecked(MENU_SHOW_LIGHTS_IN_EDIT_MODE));
|
lightOverlayManager.setVisible(isActive && Menu.isOptionChecked(MENU_SHOW_LIGHTS_IN_EDIT_MODE));
|
||||||
zoneOverlayManager.setVisible(isActive && Menu.isOptionChecked(MENU_SHOW_ZONES_IN_EDIT_MODE));
|
Entities.setDrawZoneBoundaries(isActive && Menu.isOptionChecked(MENU_SHOW_ZONES_IN_EDIT_MODE));
|
||||||
};
|
};
|
||||||
|
|
||||||
// Sets visibility of tool buttons, excluding the power button
|
// Sets visibility of tool buttons, excluding the power button
|
||||||
|
@ -1000,7 +997,7 @@ function handeMenuEvent(menuItem) {
|
||||||
} else if (menuItem == MENU_SHOW_LIGHTS_IN_EDIT_MODE) {
|
} else if (menuItem == MENU_SHOW_LIGHTS_IN_EDIT_MODE) {
|
||||||
lightOverlayManager.setVisible(isActive && Menu.isOptionChecked(MENU_SHOW_LIGHTS_IN_EDIT_MODE));
|
lightOverlayManager.setVisible(isActive && Menu.isOptionChecked(MENU_SHOW_LIGHTS_IN_EDIT_MODE));
|
||||||
} else if (menuItem == MENU_SHOW_ZONES_IN_EDIT_MODE) {
|
} else if (menuItem == MENU_SHOW_ZONES_IN_EDIT_MODE) {
|
||||||
zoneOverlayManager.setVisible(isActive && Menu.isOptionChecked(MENU_SHOW_ZONES_IN_EDIT_MODE));
|
Entities.setDrawZoneBoundaries(isActive && Menu.isOptionChecked(MENU_SHOW_ZONES_IN_EDIT_MODE));
|
||||||
}
|
}
|
||||||
tooltip.show(false);
|
tooltip.show(false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,147 +0,0 @@
|
||||||
ZoneOverlayManager = function(isEntityFunc, entityAddedFunc, entityRemovedFunc, entityMovedFunc) {
|
|
||||||
var self = this;
|
|
||||||
|
|
||||||
var visible = false;
|
|
||||||
|
|
||||||
// List of all created overlays
|
|
||||||
var allOverlays = [];
|
|
||||||
|
|
||||||
// List of overlays not currently being used
|
|
||||||
var unusedOverlays = [];
|
|
||||||
|
|
||||||
// Map from EntityItemID.id to overlay id
|
|
||||||
var entityOverlays = {};
|
|
||||||
|
|
||||||
// Map from EntityItemID.id to EntityItemID object
|
|
||||||
var entityIDs = {};
|
|
||||||
|
|
||||||
this.updatePositions = function(ids) {
|
|
||||||
for (var id in entityIDs) {
|
|
||||||
var entityID = entityIDs[id];
|
|
||||||
var properties = Entities.getEntityProperties(entityID);
|
|
||||||
Overlays.editOverlay(entityOverlays[entityID.id].solid, {
|
|
||||||
position: properties.position,
|
|
||||||
rotation: properties.rotation,
|
|
||||||
dimensions: properties.dimensions,
|
|
||||||
});
|
|
||||||
Overlays.editOverlay(entityOverlays[entityID.id].outline, {
|
|
||||||
position: properties.position,
|
|
||||||
rotation: properties.rotation,
|
|
||||||
dimensions: properties.dimensions,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
this.setVisible = function(isVisible) {
|
|
||||||
if (visible != isVisible) {
|
|
||||||
visible = isVisible;
|
|
||||||
Entities.setDrawZoneBoundaries(visible);
|
|
||||||
for (var id in entityOverlays) {
|
|
||||||
Overlays.editOverlay(entityOverlays[id].solid, { visible: visible });
|
|
||||||
Overlays.editOverlay(entityOverlays[id].outline, { visible: visible });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// Allocate or get an unused overlay
|
|
||||||
function getOverlay() {
|
|
||||||
if (unusedOverlays.length == 0) {
|
|
||||||
var overlay = Overlays.addOverlay("cube", {
|
|
||||||
});
|
|
||||||
allOverlays.push(overlay);
|
|
||||||
} else {
|
|
||||||
var overlay = unusedOverlays.pop();
|
|
||||||
};
|
|
||||||
return overlay;
|
|
||||||
}
|
|
||||||
|
|
||||||
function releaseOverlay(overlay) {
|
|
||||||
unusedOverlays.push(overlay);
|
|
||||||
Overlays.editOverlay(overlay, { visible: false });
|
|
||||||
}
|
|
||||||
|
|
||||||
function addEntity(entityID) {
|
|
||||||
var properties = Entities.getEntityProperties(entityID);
|
|
||||||
if (properties.type == "Zone" && !(entityID.id in entityOverlays)) {
|
|
||||||
var overlaySolid = getOverlay();
|
|
||||||
var overlayOutline = getOverlay();
|
|
||||||
|
|
||||||
entityOverlays[entityID.id] = {
|
|
||||||
solid: overlaySolid,
|
|
||||||
outline: overlayOutline,
|
|
||||||
}
|
|
||||||
entityIDs[entityID.id] = entityID;
|
|
||||||
|
|
||||||
var color = {
|
|
||||||
red: Math.round(Math.random() * 255),
|
|
||||||
green: Math.round(Math.random() * 255),
|
|
||||||
blue: Math.round(Math.random() * 255)
|
|
||||||
};
|
|
||||||
Overlays.editOverlay(overlaySolid, {
|
|
||||||
position: properties.position,
|
|
||||||
rotation: properties.rotation,
|
|
||||||
dimensions: properties.dimensions,
|
|
||||||
visible: visible,
|
|
||||||
solid: true,
|
|
||||||
alpha: 0.1,
|
|
||||||
color: color,
|
|
||||||
ignoreRayIntersection: true,
|
|
||||||
});
|
|
||||||
Overlays.editOverlay(overlayOutline, {
|
|
||||||
position: properties.position,
|
|
||||||
rotation: properties.rotation,
|
|
||||||
dimensions: properties.dimensions,
|
|
||||||
visible: visible,
|
|
||||||
solid: false,
|
|
||||||
dashed: false,
|
|
||||||
lineWidth: 2.0,
|
|
||||||
alpha: 1.0,
|
|
||||||
color: color,
|
|
||||||
ignoreRayIntersection: true,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function deleteEntity(entityID) {
|
|
||||||
if (entityID.id in entityOverlays) {
|
|
||||||
releaseOverlay(entityOverlays[entityID.id].outline);
|
|
||||||
releaseOverlay(entityOverlays[entityID.id].solid);
|
|
||||||
delete entityIDs[entityID.id];
|
|
||||||
delete entityOverlays[entityID.id];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function changeEntityID(oldEntityID, newEntityID) {
|
|
||||||
entityOverlays[newEntityID.id] = entityOverlays[oldEntityID.id];
|
|
||||||
entityIDs[newEntityID.id] = newEntityID;
|
|
||||||
|
|
||||||
delete entityOverlays[oldEntityID.id];
|
|
||||||
delete entityIDs[oldEntityID.id];
|
|
||||||
}
|
|
||||||
|
|
||||||
function clearEntities() {
|
|
||||||
for (var id in entityOverlays) {
|
|
||||||
releaseOverlay(entityOverlays[id].outline);
|
|
||||||
releaseOverlay(entityOverlays[id].solid);
|
|
||||||
}
|
|
||||||
entityOverlays = {};
|
|
||||||
entityIDs = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
Entities.addingEntity.connect(addEntity);
|
|
||||||
Entities.changingEntityID.connect(changeEntityID);
|
|
||||||
Entities.deletingEntity.connect(deleteEntity);
|
|
||||||
Entities.clearingEntities.connect(clearEntities);
|
|
||||||
|
|
||||||
// Add existing entities
|
|
||||||
var ids = Entities.findEntities(MyAvatar.position, 64000);
|
|
||||||
for (var i = 0; i < ids.length; i++) {
|
|
||||||
addEntity(ids[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
Script.scriptEnding.connect(function() {
|
|
||||||
for (var i = 0; i < allOverlays.length; i++) {
|
|
||||||
Overlays.deleteOverlay(allOverlays[i]);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
Loading…
Reference in a new issue