},
extrude: function(path, shape, shapenormals, pathnormals) {
- var guts_result = nt3d._extrude_guts(path, shape, shapenormals, pathnormals);
+ var guts_result = this._extrude_guts(path, shape, shapenormals, pathnormals);
// Add the end-caps
// XXX: This doesn't work if shape is not convex
return guts_result.points.concat(
- nt3d.trianglefan(guts_result.first_loop.reverse()),
- nt3d.trianglefan(guts_result.last_loop));
+ this.trianglefan(guts_result.first_loop.reverse()),
+ this.trianglefan(guts_result.last_loop));
},
closed_extrude: function(path, shape, shapenormals, pathnormals) {
- var guts_result = nt3d._extrude_guts(path, shape, shapenormals, pathnormals);
+ var guts_result = this._extrude_guts(path, shape, shapenormals, pathnormals);
// Stitch the ends together
return guts_result.points.concat(
- nt3d.closed_quadstrip(nt3d.zip(guts_result.first_loop, guts_result.last_loop)));
+ this.closed_quadstrip(this.zip(guts_result.first_loop, guts_result.last_loop)));
},
_extrude_guts: function(path, shape, shapenormals, pathnormals) {
var shape_fun = this.to_function(shape, false);
if (i == 0) {
result.first_loop = loop;
} else {
- result.points = result.points.concat(nt3d.closed_quadstrip(nt3d.zip(loop, prev_loop)));
+ result.points = result.points.concat(this.closed_quadstrip(this.zip(loop, prev_loop)));
}
prev_loop = loop;
}
},
project: function(a, b) { // Project b onto a
var a_magnitude = this.magnitude(a);
- return this.scale(a, this.dot(a, b) / a_magnitude * a_magnitude);
+ return this.scale(a, this.dot(a, b) / (a_magnitude * a_magnitude));
},
project_to_orthogonal: function(a, b) {
// The nearest thing to b that is orthogonal to a