visual tweaks, colors, solids, platform
This commit is contained in:
parent
31348708dd
commit
1efa45943c
7 changed files with 80 additions and 23 deletions
|
|
@ -503,6 +503,10 @@ var gs_base_polygon = exports;
|
|||
layer.poly(this, color, recursive, open);
|
||||
};
|
||||
|
||||
PRO.renderSolid = function(layer, color) {
|
||||
layer.solid(this, color);
|
||||
};
|
||||
|
||||
/**
|
||||
* add new point and return polygon reference for chaining
|
||||
*
|
||||
|
|
|
|||
|
|
@ -335,7 +335,7 @@ let gs_kiri_sla = exports;
|
|||
polys.forEach(poly => {
|
||||
poly = poly.clone(true).move(widget.track.pos);
|
||||
layer.poly(poly, 0x010101, true);
|
||||
layer.solid(poly, 0x00bbee);
|
||||
layer.solid(poly, 0x0099cc);
|
||||
count++;
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -49,7 +49,8 @@ var gs_kiri_init = exports;
|
|||
o2js = API.o2js,
|
||||
selectedTool = null,
|
||||
editTools = null,
|
||||
maxTool = 0;
|
||||
maxTool = 0,
|
||||
platformColor;
|
||||
|
||||
// extend KIRI API with local functions
|
||||
API.show.devices = showDevices;
|
||||
|
|
@ -983,18 +984,19 @@ var gs_kiri_init = exports;
|
|||
evt.stopPropagation();
|
||||
evt.preventDefault();
|
||||
evt.dataTransfer.dropEffect = 'copy';
|
||||
SPACE.platform.setColor(0x00ff00);
|
||||
let oldcolor = SPACE.platform.setColor(0x00ff00);
|
||||
if (oldcolor !== 0x00ff00) platformColor = oldcolor;
|
||||
}
|
||||
|
||||
function dragLeave() {
|
||||
SPACE.platform.setColor(0x555555);
|
||||
SPACE.platform.setColor(platformColor);
|
||||
}
|
||||
|
||||
function dropHandler(evt) {
|
||||
evt.stopPropagation();
|
||||
evt.preventDefault();
|
||||
|
||||
SPACE.platform.setColor(0x555555);
|
||||
SPACE.platform.setColor(platformColor);
|
||||
|
||||
let files = evt.dataTransfer.files,
|
||||
plate = files.length < 5 || confirm(`add ${files.length} objects to workspace?`),
|
||||
|
|
|
|||
|
|
@ -16,14 +16,14 @@ let gs_kiri_layer = exports;
|
|||
KIRI.Layer = Layer;
|
||||
KIRI.newLayer = function(view) { return new Layer(view) };
|
||||
|
||||
function materialFor(color, mesh, linewidth) {
|
||||
function materialFor(layer, color, mesh, linewidth) {
|
||||
let m = mcache[color];
|
||||
if (!m) {
|
||||
m = mcache[color] = mesh ? new THREE.MeshPhongMaterial({
|
||||
specular: 0x181818,
|
||||
shininess: 100,
|
||||
transparent: true,
|
||||
opacity: 0.15,
|
||||
transparent: layer.transparent,
|
||||
shininess: layer.shininess,
|
||||
specular: layer.specular,
|
||||
opacity: layer.opacity,
|
||||
color: color,
|
||||
side: THREE.DoubleSide
|
||||
}) : new THREE.LineBasicMaterial({
|
||||
|
|
@ -80,6 +80,26 @@ let gs_kiri_layer = exports;
|
|||
this.solids = null;
|
||||
this.view = view;
|
||||
this.bycolor = {};
|
||||
this.opacity = 0.15,
|
||||
this.specular = 0x181818,
|
||||
this.shininess = 100,
|
||||
this.transparent = true;
|
||||
};
|
||||
|
||||
LP.setOpacity = function(v) {
|
||||
this.opacity = v;
|
||||
};
|
||||
|
||||
LP.setSpecular = function(v) {
|
||||
this.specular = v;
|
||||
};
|
||||
|
||||
LP.setShininess = function(v) {
|
||||
this.shininess = v;
|
||||
};
|
||||
|
||||
LP.setTransparent = function(b) {
|
||||
this.transparent = b;
|
||||
};
|
||||
|
||||
LP.setVisible = function(vis) {
|
||||
|
|
@ -163,7 +183,7 @@ let gs_kiri_layer = exports;
|
|||
for (let key in bycolor) {
|
||||
if (!bycolor.hasOwnProperty(key)) continue;
|
||||
|
||||
let arr = [], mat = materialFor(parseInt(key), true);
|
||||
let arr = [], mat = materialFor(this, parseInt(key), true);
|
||||
|
||||
bycolor[key].forEach(function(obj) {
|
||||
if (obj.solid) {
|
||||
|
|
@ -173,8 +193,16 @@ let gs_kiri_layer = exports;
|
|||
|
||||
if (arr.length > 0) {
|
||||
let geo = new THREE.BufferGeometry();
|
||||
|
||||
geo.setAttribute('position', new THREE.BufferAttribute(arr.toFloat32(), 3));
|
||||
this.solids.add(new THREE.Mesh(geo, mat));
|
||||
geo.computeFaceNormals();
|
||||
geo.computeVertexNormals();
|
||||
|
||||
let mesh = new THREE.Mesh(geo, mat);
|
||||
mesh.castShadow = true;
|
||||
mesh.receiveShadow = true;
|
||||
|
||||
this.solids.add(mesh);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -192,7 +220,7 @@ let gs_kiri_layer = exports;
|
|||
|
||||
let geo = new THREE.Geometry(),
|
||||
arr = geo.vertices,
|
||||
mat = materialFor(parseInt(key));
|
||||
mat = materialFor(this, parseInt(key));
|
||||
|
||||
added = bycolor[key];
|
||||
|
||||
|
|
|
|||
|
|
@ -22,6 +22,11 @@ let gs_kiri_slice = exports;
|
|||
MAX = Math.max,
|
||||
NOKEY = BASE.key.NONE,
|
||||
outline_colors = [
|
||||
0xeeee00,
|
||||
0xeebb00,
|
||||
0xee8800
|
||||
],
|
||||
outline_solid_colors = [
|
||||
0xffff00,
|
||||
0xffcc00,
|
||||
0xff9900
|
||||
|
|
@ -36,13 +41,16 @@ let gs_kiri_slice = exports;
|
|||
0xffffff,
|
||||
0x000000
|
||||
],
|
||||
trace_color = 0x000000,
|
||||
trace_color = 0x0,
|
||||
sparse_fill_color = 0x333366,
|
||||
fill_offset_color = 0xeeeeee,
|
||||
fill_color = 0x333333,
|
||||
flat_color = 0xff00aa,
|
||||
bridge_color = 0x00aaff,
|
||||
solid_outline_color = 0x00dd00;
|
||||
flat_outline_color = 0xee0099,
|
||||
flat_solid_color = 0xff00aa,
|
||||
bridge_outline_color = 0x0099ee,
|
||||
bridge_solid_color = 0x00aaff,
|
||||
solid_outline_color = 0x00cc00,
|
||||
solid_solid_color = 0x00dd00;
|
||||
|
||||
KIRI.Top = Top;
|
||||
KIRI.newTop = newTop;
|
||||
|
|
@ -327,7 +335,7 @@ let gs_kiri_slice = exports;
|
|||
*
|
||||
* @param {number} renderMode
|
||||
*/
|
||||
PRO.renderOutline = function(renderMode,color) {
|
||||
PRO.renderOutline = function(renderMode, color) {
|
||||
if (!this.view) return;
|
||||
|
||||
let process = KIRI.driver.CAM.process,
|
||||
|
|
@ -342,6 +350,7 @@ let gs_kiri_slice = exports;
|
|||
open = (slice.camMode === process.FINISH_X || slice.camMode === process.FINISH_Y);
|
||||
|
||||
layer.clear();
|
||||
// layer.setOpacity(0.05);
|
||||
|
||||
switch (renderMode % 5) {
|
||||
// un-processed lines
|
||||
|
|
@ -375,15 +384,16 @@ let gs_kiri_slice = exports;
|
|||
break;
|
||||
// all polygons in yellow
|
||||
case 4:
|
||||
colors = outline_colors;
|
||||
tops.forEach(function(top) {
|
||||
layer.poly(top.poly, colors[color], true, open);
|
||||
if (top.inner) layer.poly(top.inner, 0x999999, true, null);
|
||||
layer.poly(top.poly, outline_colors[color], true, open);
|
||||
// layer.solid(top.poly, outline_solid_colors[color]);
|
||||
if (top.inner) layer.poly(top.inner, 0x777777, true);
|
||||
// if (top.thinner) layer.poly(top.thinner, 0x559999, true, null);
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
// layer.renderSolid();
|
||||
layer.render();
|
||||
};
|
||||
|
||||
|
|
@ -834,15 +844,19 @@ let gs_kiri_slice = exports;
|
|||
|
||||
if (bridges) bridges.forEach(function (t) {
|
||||
t.setZ(scope.z);
|
||||
t.render(bridgeLayer, bridge_color, true);
|
||||
t.render(bridgeLayer, bridge_outline_color, true);
|
||||
t.renderSolid(bridgeLayer, bridge_solid_color);
|
||||
});
|
||||
|
||||
if (flats) flats.forEach(function (t) {
|
||||
t.setZ(scope.z);
|
||||
t.render(flatLayer, flat_color, true);
|
||||
t.render(flatLayer, flat_outline_color, true);
|
||||
t.renderSolid(flatLayer, flat_solid_color);
|
||||
});
|
||||
|
||||
bridgeLayer.renderSolid();
|
||||
bridgeLayer.render();
|
||||
flatLayer.renderSolid();
|
||||
flatLayer.render();
|
||||
};
|
||||
|
||||
|
|
@ -989,8 +1003,10 @@ let gs_kiri_slice = exports;
|
|||
|
||||
if (trimmed) trimmed.forEach(function(poly) {
|
||||
poly.render(layer, solid_outline_color, true);
|
||||
poly.renderSolid(layer, solid_solid_color, true);
|
||||
});
|
||||
|
||||
layer.renderSolid();
|
||||
layer.render();
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1898,6 +1898,11 @@ self.kiri.copyright = exports.COPYRIGHT;
|
|||
settings.device = clone(settings.cdev[mode]);
|
||||
API.event.emit('device.set', currentDeviceName());
|
||||
}
|
||||
if (MODE === MODES.CAM) {
|
||||
SPACE.platform.setColor(0xeeeeee);
|
||||
} else {
|
||||
SPACE.platform.setColor(0xcccccc);
|
||||
}
|
||||
MODE = MODES[mode];
|
||||
// updates right-hand menu by enabling/disabling fields
|
||||
UC.setMode(MODE);
|
||||
|
|
|
|||
|
|
@ -194,8 +194,10 @@ var MOTO = window.moto = window.moto || {};
|
|||
}
|
||||
|
||||
function setPlatformColor(color) {
|
||||
let was = platform.material.color.getHex();
|
||||
platform.material.color.set(color);
|
||||
requestRefresh();
|
||||
return was;
|
||||
}
|
||||
|
||||
function setGrid(unitMajor, unitMinor, colorMajor, colorMinor) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue