var m = dojox.gfx3d.matrix.multiply(camera, this.matrix); var c = dojo.map(this.object.points, function(item){ return dojox.gfx3d.matrix.multiplyPoint(m, item); }); this.cache = []; var pool = c.slice(0, 2); var center = c[0]; if(this.object.style == "strip"){ dojo.forEach(c.slice(2), function(item){ pool.push(item); pool.push(pool[0]); this.cache.push(pool); pool = pool.slice(1, 3); }, this); } else if(this.object.style == "fan"){ dojo.forEach(c.slice(2), function(item){ pool.push(item); pool.push(center); this.cache.push(pool); pool = [center, item]; }, this); } else { for(var i = 0; i < c.length; ){ this.cache.push( [ c[i], c[i+1], c[i+2], c[i] ]); i += 3; } }