diff --git a/slice_test.html b/slice_test.html index 2ad4928..4d31074 100644 --- a/slice_test.html +++ b/slice_test.html @@ -61,21 +61,23 @@ var geometry = new THREE.TorusGeometry(20, 10, 10, 10); var mesh = new THREE.Mesh(geometry, material); scene.add(mesh); -var slicer = new D3D.Slicer().setGeometry(geometry); -//var slices = slicer.slice(200, 0.2); -var slices = slicer.slice(1, 1); +(function () { + var slicer = new D3D.Slicer().setGeometry(geometry); + var slices = slicer.slice(200, 0.2); + //var slices = slicer.slice(1, 1); -CAL.Scene.setCanvas(document.getElementById("canvas")); + CAL.Scene.setCanvas(document.getElementById("canvas")); + //error at layer 0; + //maybe because of geomety + var layer = 4; -var shapes = []; + var shapes = []; -for (var layer = 0; layer < slices.length; layer ++) { var slice = slices[layer]; for (var i = 0; i < slice.length; i ++) { var shape = new CAL.Shape({shapeColor: false}); - CAL.Scene.add(shape); shapes.push(shape); for (var j = 0; j < slice[i].length; j ++) { @@ -83,22 +85,21 @@ for (var layer = 0; layer < slices.length; layer ++) { shape.addPoint(new CAL.Vector((point.x-100) * 5 + 200, (point.y-100) * 5 + 200)); } } -} -CAL.Scene.draw(); + for (var i = 0; i < shapes.length; i ++) { + var shape = shapes[i]; -CAL.Scene.context.strokeStyle = "#FF0000"; + shape.draw(CAL.Scene.context); + CAL.Scene.context.strokeStyle = "#FF0000"; -for (var i = 0; i < shapes.length; i ++) { - var shape = shapes[i]; + for (var j = 0; j < shape.points.length; j ++) { + var normal = shape.getNormal(j).scale(20); + var point = shape.points[j]; - for (var j = 0; j < shape.points.length; j ++) { - var normal = shape.getNormal(j).scale(20); - var point = shape.points[j]; - - normal.draw(CAL.Scene.context, point.x, point.y); + normal.draw(CAL.Scene.context, point.x, point.y); + } } -} +})(); (function animate () { requestAnimationFrame(animate); diff --git a/src/slicer.js b/src/slicer.js index 02ee79a..3e1811d 100644 --- a/src/slicer.js +++ b/src/slicer.js @@ -87,7 +87,6 @@ D3D.Slicer.prototype.slice = function (height, step) { var plane = new THREE.Plane(); for (var z = 0; z < height; z += step) { - z += 1; plane.set(new THREE.Vector3(0, -1, 0), z); var slice = []; @@ -133,7 +132,7 @@ D3D.Slicer.prototype.slice = function (height, step) { var normal = new THREE.Vector2().copy(intersection).sub(intersections[index]).normal().normalize(); var faceNormal = faceNormals[j]; - if (normal.dot(faceNormal) < 0) { + if (normal.dot(faceNormal) > 0) { break; } else {