more somewhat aesthetic space api changes
This commit is contained in:
parent
0b89e0d94b
commit
a16986ef9d
3 changed files with 83 additions and 92 deletions
|
|
@ -2158,7 +2158,7 @@
|
||||||
API.space.reload();
|
API.space.reload();
|
||||||
};
|
};
|
||||||
|
|
||||||
SPACE.addEventHandlers(self, [
|
SPACE.event.addHandlers(self, [
|
||||||
'keyup', keyUpHandler,
|
'keyup', keyUpHandler,
|
||||||
'keydown', keyDownHandler,
|
'keydown', keyDownHandler,
|
||||||
'keypress', keyHandler,
|
'keypress', keyHandler,
|
||||||
|
|
@ -2229,7 +2229,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SPACE.onEnterKey([
|
SPACE.event.onEnterKey([
|
||||||
UI.scaleX, selectionScale,
|
UI.scaleX, selectionScale,
|
||||||
UI.scaleY, selectionScale,
|
UI.scaleY, selectionScale,
|
||||||
UI.scaleZ, selectionScale,
|
UI.scaleZ, selectionScale,
|
||||||
|
|
|
||||||
|
|
@ -1355,7 +1355,7 @@
|
||||||
let alert = feature.work_alerts ? API.show.alert("Rendering") : null;
|
let alert = feature.work_alerts ? API.show.alert("Rendering") : null;
|
||||||
startTime = Date.now();
|
startTime = Date.now();
|
||||||
STACKS.clear();
|
STACKS.clear();
|
||||||
const stack = STACKS.create('print', SPACE.platform.world)
|
const stack = STACKS.create('print', SPACE.world)
|
||||||
output.forEach(layer => {
|
output.forEach(layer => {
|
||||||
stack.add(layer);
|
stack.add(layer);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,9 @@
|
||||||
DOC = document,
|
DOC = document,
|
||||||
SCENE = new THREE.Scene(),
|
SCENE = new THREE.Scene(),
|
||||||
WORLD = new THREE.Group(),
|
WORLD = new THREE.Group(),
|
||||||
WC = WORLD.children,
|
|
||||||
PI = Math.PI,
|
PI = Math.PI,
|
||||||
PI2 = PI / 2,
|
PI2 = PI / 2,
|
||||||
PI4 = PI / 4,
|
PI4 = PI / 4,
|
||||||
ROUND = Math.round,
|
|
||||||
panX = 0,
|
panX = 0,
|
||||||
panY = 0,
|
panY = 0,
|
||||||
panZ = 0,
|
panZ = 0,
|
||||||
|
|
@ -339,7 +337,13 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function setRulers(xon = ruler.xon, yon = ruler.yon, factor = ruler.factor, xl = ruler.xlabel, yl = ruler.ylabel) {
|
function setRulers(
|
||||||
|
xon = ruler.xon,
|
||||||
|
yon = ruler.yon,
|
||||||
|
factor = ruler.factor,
|
||||||
|
xl = ruler.xlabel,
|
||||||
|
yl = ruler.ylabel)
|
||||||
|
{
|
||||||
if (xon !== ruler.xon || yon !== ruler.yon || factor !== ruler.factor || xl !== ruler.xlabel || yl !== ruler.ylabel) {
|
if (xon !== ruler.xon || yon !== ruler.yon || factor !== ruler.factor || xl !== ruler.xlabel || yl !== ruler.ylabel) {
|
||||||
ruler.factor = factor;
|
ruler.factor = factor;
|
||||||
ruler.xon = xon;
|
ruler.xon = xon;
|
||||||
|
|
@ -406,7 +410,12 @@
|
||||||
requestRefresh();
|
requestRefresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setGrid(unitMajor = grid.unitMajor, unitMinor = grid.unitMinor, colorMajor = grid.colorMajor, colorMinor = grid.colorMinor) {
|
function setGrid(
|
||||||
|
unitMajor = grid.unitMajor,
|
||||||
|
unitMinor = grid.unitMinor,
|
||||||
|
colorMajor = grid.colorMajor,
|
||||||
|
colorMinor = grid.colorMinor)
|
||||||
|
{
|
||||||
if (!unitMajor) {
|
if (!unitMajor) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -568,6 +577,30 @@
|
||||||
updateDraws();
|
updateDraws();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setRound(bool) {
|
||||||
|
let current = platform;
|
||||||
|
isRound = bool;
|
||||||
|
if (bool) {
|
||||||
|
platform = new THREE.Mesh(
|
||||||
|
new THREE.CylinderGeometry(.5, .5, 1, 60),
|
||||||
|
platformMaterial
|
||||||
|
);
|
||||||
|
platform.rotation.x = 0;
|
||||||
|
} else {
|
||||||
|
platform = new THREE.Mesh(
|
||||||
|
new THREE.BoxGeometry(1, 1, 1),
|
||||||
|
platformMaterial
|
||||||
|
);
|
||||||
|
platform.rotation.x = -PI2;
|
||||||
|
}
|
||||||
|
|
||||||
|
platform.position.y = current.position.y;
|
||||||
|
platform.visible = current.visible;
|
||||||
|
|
||||||
|
SCENE.remove(current);
|
||||||
|
SCENE.add(platform);
|
||||||
|
}
|
||||||
|
|
||||||
function refresh() {
|
function refresh() {
|
||||||
refreshRequested = false;
|
refreshRequested = false;
|
||||||
clearTimeout(refreshTimeout);
|
clearTimeout(refreshTimeout);
|
||||||
|
|
@ -838,14 +871,17 @@
|
||||||
******************************************************************* */
|
******************************************************************* */
|
||||||
|
|
||||||
let Space = MOTO.Space = {
|
let Space = MOTO.Space = {
|
||||||
alignTracking: alignTracking,
|
|
||||||
addEventListener: addEventListener,
|
|
||||||
addEventHandlers: addEventHandlers,
|
|
||||||
onEnterKey: onEnterKey,
|
|
||||||
onResize: onResize,
|
|
||||||
update: requestRefresh,
|
|
||||||
raycast: intersect,
|
|
||||||
refresh: refresh,
|
refresh: refresh,
|
||||||
|
update: requestRefresh,
|
||||||
|
|
||||||
|
alignTracking: alignTracking,
|
||||||
|
raycast: intersect,
|
||||||
|
|
||||||
|
event: {
|
||||||
|
addHandlers: addEventHandlers,
|
||||||
|
onEnterKey: onEnterKey,
|
||||||
|
onResize: onResize
|
||||||
|
},
|
||||||
|
|
||||||
sky: {
|
sky: {
|
||||||
showGrid: (b) => {
|
showGrid: (b) => {
|
||||||
|
|
@ -876,15 +912,7 @@
|
||||||
active: updateLastAction
|
active: updateLastAction
|
||||||
},
|
},
|
||||||
|
|
||||||
world: {
|
world: WORLD,
|
||||||
add: function(o) {
|
|
||||||
WORLD.add(o);
|
|
||||||
},
|
|
||||||
|
|
||||||
remove: function(o) {
|
|
||||||
WORLD.remove(o);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
platform: {
|
platform: {
|
||||||
update: updateDraws,
|
update: updateDraws,
|
||||||
|
|
@ -894,59 +922,36 @@
|
||||||
setRulers: setRulers,
|
setRulers: setRulers,
|
||||||
setGrid: setGrid,
|
setGrid: setGrid,
|
||||||
setFont: setFont,
|
setFont: setFont,
|
||||||
|
setRound: setRound,
|
||||||
showAxes: showAxes,
|
showAxes: showAxes,
|
||||||
showVolume: showVolume,
|
showVolume: showVolume,
|
||||||
|
showGrid: (b) => { grid.view.visible = b },
|
||||||
setMaxZ: (z) => { panY = z / 2 },
|
setMaxZ: (z) => { panY = z / 2 },
|
||||||
setCenter: (x,y,z) => { panX = x; panY = z, panZ = y },
|
setCenter: (x,y,z) => { panX = x; panY = z, panZ = y },
|
||||||
isHidden: () => { return !showPlatform },
|
|
||||||
setHidden: (b) => { showPlatform = !b; platform.visible = !b },
|
setHidden: (b) => { showPlatform = !b; platform.visible = !b },
|
||||||
setHiding: (b) => { hidePlatformBelow = b },
|
setHiding: (b) => { hidePlatformBelow = b },
|
||||||
setZOff: (z) => { platformZOff = z; updatePlatformPosition() },
|
setZOff: (z) => { platformZOff = z; updatePlatformPosition() },
|
||||||
setGridZOff:(z) => { gridZOff = z; updatePlatformPosition() },
|
setGridZOff:(z) => { gridZOff = z; updatePlatformPosition() },
|
||||||
|
isHidden: () => { return !showPlatform },
|
||||||
|
isVisible: () => { return platform.visible },
|
||||||
opacity: (o) => { platform.material.opacity = o },
|
opacity: (o) => { platform.material.opacity = o },
|
||||||
onMove: (f) => { platformOnMove = f },
|
onMove: (f) => { platformOnMove = f },
|
||||||
onHover: (f) => { platformHover = f },
|
onHover: (f) => { platformHover = f },
|
||||||
onClick: (f) => { platformClick = f},
|
onClick: (f) => { platformClick = f},
|
||||||
size: () => { return platform.scale },
|
size: () => { return platform.scale }
|
||||||
isVisible: () => { return platform.visible },
|
|
||||||
showGrid: (b) => { grid.view.visible = b },
|
|
||||||
setRound: (bool) => {
|
|
||||||
let current = platform;
|
|
||||||
isRound = bool;
|
|
||||||
if (bool) {
|
|
||||||
platform = new THREE.Mesh(
|
|
||||||
new THREE.CylinderGeometry(.5, .5, 1, 60),
|
|
||||||
platformMaterial
|
|
||||||
);
|
|
||||||
platform.rotation.x = 0;
|
|
||||||
} else {
|
|
||||||
platform = new THREE.Mesh(
|
|
||||||
new THREE.BoxGeometry(1, 1, 1),
|
|
||||||
platformMaterial
|
|
||||||
);
|
|
||||||
platform.rotation.x = -PI2;
|
|
||||||
}
|
|
||||||
|
|
||||||
platform.position.y = current.position.y;
|
|
||||||
platform.visible = current.visible;
|
|
||||||
|
|
||||||
SCENE.remove(current);
|
|
||||||
SCENE.add(platform);
|
|
||||||
},
|
|
||||||
world: WORLD
|
|
||||||
},
|
},
|
||||||
|
|
||||||
view: {
|
view: {
|
||||||
top: (then) => { tweenCam({left: home, up: 0, panX, panY, panZ, then}) },
|
top: (then) => { tweenCam({left: home, up: 0, panX, panY, panZ, then}) },
|
||||||
back: (then) => { tweenCam({left: PI, up: PI2, panX, panY, panZ, then}) },
|
back: (then) => { tweenCam({left: PI, up: PI2, panX, panY, panZ, then}) },
|
||||||
home: (then) => { tweenCam({left: home, up, panX, panY, panZ, then}) },
|
home: (then) => { tweenCam({left: home, up, panX, panY, panZ, then}) },
|
||||||
front: (then) => { tweenCam({left: 0, up: PI2, panX, panY, panZ, then}) },
|
front: (then) => { tweenCam({left: 0, up: PI2, panX, panY, panZ, then}) },
|
||||||
right: (then) => { tweenCam({left: PI2, up: PI2, panX, panY, panZ, then}) },
|
right: (then) => { tweenCam({left: PI2, up: PI2, panX, panY, panZ, then}) },
|
||||||
left: (then) => { tweenCam({left: -PI2, up: PI2, panX, panY, panZ, then}) },
|
left: (then) => { tweenCam({left: -PI2, up: PI2, panX, panY, panZ, then}) },
|
||||||
reset: () => { viewControl.reset(); requestRefresh() },
|
reset: () => { viewControl.reset(); requestRefresh() },
|
||||||
load: (cam) => { viewControl.setPosition(cam) },
|
load: (cam) => { viewControl.setPosition(cam) },
|
||||||
save: () => { return viewControl.getPosition(true) },
|
save: () => { return viewControl.getPosition(true) },
|
||||||
panTo: (x,y,z) => { tweenCamPan(x,y,z) },
|
panTo: (x,y,z) => { tweenCamPan(x,y,z) },
|
||||||
setZoom: (r,v) => { viewControl.setZoom(r,v) },
|
setZoom: (r,v) => { viewControl.setZoom(r,v) },
|
||||||
setCtrl: (name) => {
|
setCtrl: (name) => {
|
||||||
if (name === 'onshape') {
|
if (name === 'onshape') {
|
||||||
|
|
@ -957,27 +962,24 @@
|
||||||
},
|
},
|
||||||
getFPS: () => { return fps },
|
getFPS: () => { return fps },
|
||||||
getFocus: () => { return viewControl.getTarget() },
|
getFocus: () => { return viewControl.getTarget() },
|
||||||
setFocus: (v) => {
|
setFocus: (v) => { viewControl.setTarget(v); refresh() },
|
||||||
viewControl.setTarget(v);
|
|
||||||
refresh();
|
|
||||||
},
|
|
||||||
setHome: (r,u) => {
|
setHome: (r,u) => {
|
||||||
home = r || 0;
|
home = r || 0;
|
||||||
up = u || PI4;
|
up = u || PI4;
|
||||||
},
|
},
|
||||||
spin: (then, count) => {
|
spin: (then, count) => {
|
||||||
Space.view.front(() => {
|
Space.view.front(() => {
|
||||||
Space.view.right(() => {
|
Space.view.right(() => {
|
||||||
Space.view.back(() => {
|
Space.view.back(() => {
|
||||||
Space.view.left(() => {
|
Space.view.left(() => {
|
||||||
if (--count > 0) {
|
if (--count > 0) {
|
||||||
Space.view.spin(then, count);
|
Space.view.spin(then, count);
|
||||||
} else {
|
} else {
|
||||||
Space.view.front(then);
|
Space.view.front(then);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -991,25 +993,14 @@
|
||||||
onHover: (f) => { mouseHover = f }
|
onHover: (f) => { mouseHover = f }
|
||||||
},
|
},
|
||||||
|
|
||||||
useDefaultKeys: (b) => {
|
tween: {
|
||||||
defaultKeys = b;
|
setTime: (t) => { tweenTime = t || 500 },
|
||||||
|
setDelay: (d) => { tweenDelay = d || 20 }
|
||||||
},
|
},
|
||||||
|
|
||||||
selectRecurse: (b) => {
|
useDefaultKeys: (b) => { defaultKeys = b },
|
||||||
selectRecurse = b;
|
selectRecurse: (b) => { selectRecurse = b },
|
||||||
},
|
objects: () => { return WORLD.children },
|
||||||
|
|
||||||
setTweenTime: (t) => {
|
|
||||||
tweenTime = t || 500;
|
|
||||||
},
|
|
||||||
|
|
||||||
setTweenDelay: (d) => {
|
|
||||||
tweenDelay = d || 20;
|
|
||||||
},
|
|
||||||
|
|
||||||
objects: () => {
|
|
||||||
return WC;
|
|
||||||
},
|
|
||||||
|
|
||||||
screenshot: (format, options) => {
|
screenshot: (format, options) => {
|
||||||
return renderer.domElement.toDataURL(format || "image/png", options);
|
return renderer.domElement.toDataURL(format || "image/png", options);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue