diff --git a/web/app/cad/scene/wrappers/unmanagedSceneObject.js b/web/app/cad/scene/wrappers/unmanagedSceneObject.js index c175dd42..b7283d6e 100644 --- a/web/app/cad/scene/wrappers/unmanagedSceneObject.js +++ b/web/app/cad/scene/wrappers/unmanagedSceneObject.js @@ -47,10 +47,12 @@ export class UnmanagedSceneSolid extends SceneSolid { tr = tr[0]; } tr.forEach(p => geom.vertices.push(vec(p))); - if (!normales && faceData.surface.TYPE === 'PLANE') { - normales = vec(faceData.surface.normal); - if (faceData.inverted) { - normales.negate(); + if (!normales) { + if (faceData.surface.normal) { + normales = vec(faceData.surface.normal); + if (faceData.inverted) { + normales.negate(); + } } } else { if (faceData.inverted) { @@ -61,12 +63,19 @@ export class UnmanagedSceneSolid extends SceneSolid { } } } - - let testNormal = Array.isArray(normales) ? normalizedSumOfTHREE(normales) : normales; let indices = [off, off + 1, off + 2]; let trNormal = normalOfCCWSeqTHREE(indices.map(i => geom.vertices[i])); - if (testNormal.dot(trNormal) < 0) { - indices.reverse(); + if (normales) { + let testNormal = Array.isArray(normales) ? normalizedSumOfTHREE(normales) : normales; + if (testNormal.dot(trNormal) < 0) { + indices.reverse(); + } + } else { + normales = trNormal; + if (faceData.inverted) { + normales.negate(); + indices.reverse(); + } } let [a, b, c] = indices; diff --git a/web/app/cad/sketch/sketchModel.js b/web/app/cad/sketch/sketchModel.js index 9fdb8284..fa4f3434 100644 --- a/web/app/cad/sketch/sketchModel.js +++ b/web/app/cad/sketch/sketchModel.js @@ -27,7 +27,7 @@ class SketchPrimitive { } isCurve() { - return this.constructor.name != 'Segment'; + return this.constructor.name !== 'Segment'; } toNurbs(plane) {