]> git.scottworley.com Git - nt3d/blobdiff - nt3d.js
Cones.
[nt3d] / nt3d.js
diff --git a/nt3d.js b/nt3d.js
index bae29f2fa351aa5a9e90cd5bdc29f4a3806baad0..0443913962128ee0a511cb805d9ac404d24a509b 100644 (file)
--- a/nt3d.js
+++ b/nt3d.js
@@ -46,6 +46,22 @@ nt3d = {
        closed_quadstrip: function(strip) {
                return this.quadstrip(strip.concat([strip[0], strip[1]]));
        },
+       circle: function(r, n) {
+               var points = [];
+               for (var i = 0; i < n; i++) {
+                       points.push([r*Math.cos(2*Math.PI*i/n),
+                                    r*Math.sin(2*Math.PI*i/n),
+                                    0]);
+               }
+               return points;
+       },
+       cone: function(base_center, apex, radius, steps) {
+               var base = this.circle(radius, steps);
+               base = this.rotate_onto(base, [0,0,1], this.sub(apex, base_center));
+               base = this.translate(base, base_center);
+               return this.closed_trianglefan([apex].concat(base)).concat(
+                      this.trianglefan(base.reverse()));
+       },
        extrude: function(shape, path, shapenormals, pathnormals) {
                var guts_result = nt3d._extrude_guts(shape, path, shapenormals, pathnormals);
                // Add the end-caps