diff --git a/src/main/mesh.js b/src/main/mesh.js index 37ab58d3..331fc90c 100644 --- a/src/main/mesh.js +++ b/src/main/mesh.js @@ -464,8 +464,9 @@ function object_destroy(id) { // listen for changes like dark mode toggle function set_darkmode(dark) { - let { prefs } = mesh.api; + let { prefs, selection, model } = mesh.api; let { sky, platform } = moto.Space; + prefs.map.space.dark = dark; if (dark) { mesh.material.wireframe.color.set(0xeeeeee); } else { @@ -481,7 +482,9 @@ function set_darkmode(dark) { colorMinor: 0xeeeeee, }, }); - prefs.map.space.dark = dark; + for (let m of model.list()) { + m.normals({ refresh: true }); + } prefs.save(); } diff --git a/src/mesh/util.js b/src/mesh/util.js index 13abf41a..177097a3 100644 --- a/src/mesh/util.js +++ b/src/mesh/util.js @@ -160,16 +160,17 @@ let util = mesh.util = { return avg; }, - faceNormals(mesh, opt = { }) { + faceNormals(obj, opt = { }) { const _va = new THREE.Vector3(); const _vb = new THREE.Vector3(); const _vc = new THREE.Vector3(); const _v1 = new THREE.Vector3(); const _v2 = new THREE.Vector3(); const _normalMatrix = new THREE.Matrix3(); + const defcolor = mesh.api.prefs.map.space.dark ? 0x00ffff : 0xff0000; class FaceNormalsHelper extends THREE.LineSegments { - constructor(object, size = opt.size || 1, color = opt.color || 0xff0000) { + constructor(object, size = opt.size || 1, color = opt.color || defcolor) { const objGeometry = object.geometry; const nNormals = objGeometry.attributes.position.count / 3; const geometry = new THREE.BufferGeometry(); @@ -205,7 +206,7 @@ let util = mesh.util = { } } - return new FaceNormalsHelper(mesh); + return new FaceNormalsHelper(obj); }, vertexNormals(mesh) {