preserve wireframe/line settings in clones, fix opacity toggle/reload issues
This commit is contained in:
parent
a478f4b34b
commit
c998c7ec11
1 changed files with 16 additions and 7 deletions
|
|
@ -60,13 +60,13 @@ const materials = {
|
||||||
wireframe: true,
|
wireframe: true,
|
||||||
color: 0x0,
|
color: 0x0,
|
||||||
transparent: true,
|
transparent: true,
|
||||||
opacity: 0.5
|
opacity: 0.4
|
||||||
}),
|
}),
|
||||||
wireline: new LineBasicMaterial({
|
wireline: new LineBasicMaterial({
|
||||||
side: DoubleSide,
|
side: DoubleSide,
|
||||||
color: 0x0,
|
color: 0x0,
|
||||||
transparent: true,
|
transparent: true,
|
||||||
opacity: 0.5
|
opacity: 0.4
|
||||||
}),
|
}),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -270,7 +270,14 @@ class MeshModel extends meshObject {
|
||||||
let bounds = this.group.bounds;
|
let bounds = this.group.bounds;
|
||||||
group.add(model);
|
group.add(model);
|
||||||
model.position(pos.x, pos.y, pos.z);
|
model.position(pos.x, pos.y, pos.z);
|
||||||
model.wireframe(this.wireframe());
|
// preserve wireframe settings
|
||||||
|
let wireSettings = this.wireframe();
|
||||||
|
if (wireSettings.enabled) {
|
||||||
|
model.wireframe(true, {
|
||||||
|
edges: wireSettings.edges,
|
||||||
|
opacity: wireSettings.opacity
|
||||||
|
});
|
||||||
|
}
|
||||||
if (opt.select) {
|
if (opt.select) {
|
||||||
meshApi.selection.add(model);
|
meshApi.selection.add(model);
|
||||||
}
|
}
|
||||||
|
|
@ -437,6 +444,8 @@ class MeshModel extends meshObject {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
opacity: this.opacity(),
|
opacity: this.opacity(),
|
||||||
color: was ? this._wire.material.color : undefined,
|
color: was ? this._wire.material.color : undefined,
|
||||||
|
edges: this._wire._edges,
|
||||||
|
isLineSegments: this._wire.isLineSegments
|
||||||
} : {
|
} : {
|
||||||
enabled: false
|
enabled: false
|
||||||
};
|
};
|
||||||
|
|
@ -458,14 +467,14 @@ class MeshModel extends meshObject {
|
||||||
}
|
}
|
||||||
if (bool && opt.edges) {
|
if (bool && opt.edges) {
|
||||||
let edges = new THREE.EdgesGeometry(this.mesh.geometry, opt.edges);
|
let edges = new THREE.EdgesGeometry(this.mesh.geometry, opt.edges);
|
||||||
this._wire = new THREE.LineSegments(edges, materials.wireline);
|
this._wire = new THREE.LineSegments(edges, materials.wireline.clone());
|
||||||
this._wire._edges = opt.edges;
|
this._wire._edges = opt.edges;
|
||||||
this.mesh.add(this._wire);
|
this.mesh.add(this._wire);
|
||||||
this.opacity({temp: opt.opacity || 0.15});
|
this.opacity({temp: opt.opacity || meshApi.prefs.map.wireframe.opacity});
|
||||||
} else if (bool) {
|
} else if (bool) {
|
||||||
this._wire = new Mesh(this.mesh.geometry.shallowClone(), materials.wireframe);
|
this._wire = new Mesh(this.mesh.geometry.shallowClone(), materials.wireframe.clone());
|
||||||
this.mesh.add(this._wire);
|
this.mesh.add(this._wire);
|
||||||
this.opacity({temp: opt.opacity || 0.15});
|
this.opacity({temp: opt.opacity || meshApi.prefs.map.wireframe.opacity});
|
||||||
}
|
}
|
||||||
space.update();
|
space.update();
|
||||||
return was;
|
return was;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue