var x = [size, 0, 0];
var y = [0, size, 0];
var xy = [size, size, 0];
- return nt3d.extrude([origin, x, xy, y],
- [[0, 0, 0], [0, 0, 1]],
+ return nt3d.extrude([[0, 0, 0], [0, 0, 1]],
+ [origin, x, xy, y],
[[0, 0, 1], [0, 0, 1]],
[[1, 0, 0], [1, 0, 0]]);
}
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);
+ extrude: function(path, shape, shapenormals, pathnormals) {
+
+ var guts_result = nt3d._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.last_loop));
},
- closed_extrude: function(shape, path, shapenormals, pathnormals) {
- var guts_result = nt3d._extrude_guts(shape, path, shapenormals, pathnormals);
+ closed_extrude: function(path, shape, shapenormals, pathnormals) {
+ var guts_result = nt3d._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)));
}
return fixedpathnormals;
},
- _extrude_guts: function(shape, path, shapenormals, pathnormals) {
+ _extrude_guts: function(path, shape, shapenormals, pathnormals) {
var fixedpathnormals = this._fix_pathnormals(shapenormals, pathnormals);
var result = { points: [] };
var prev_loop;
<script type="text/javascript" src="nt3d.js"></script>
<script type="text/javascript">
function torus_by_extrude(torus_radius, cross_section_radius, long_steps, short_steps) {
- var cross_section = nt3d.circle(cross_section_radius, short_steps);
var path = nt3d.circle(torus_radius, long_steps);
+ var cross_section = nt3d.circle(cross_section_radius, short_steps);
var cross_section_normals = nt3d.rotate_about_origin(path, [0,0,1], Math.PI/2);
var path_normals = [];
path_normals.length = long_steps;
for (var i = 0; i < long_steps; i++) {
path_normals[i] = [0, 0, 1];
}
- return nt3d.closed_extrude(cross_section, path, cross_section_normals, path_normals);
+ return nt3d.closed_extrude(path, cross_section, cross_section_normals, path_normals);
}
var params = [["Torus radus", 100],
["Cross section radius", 40],