From 49ca556530d693b05eb676b7c4501df5e2b31f92 Mon Sep 17 00:00:00 2001 From: deathcap Date: Sun, 23 Feb 2014 12:18:18 -0800 Subject: [PATCH 1/4] Add mesherExtraData argument for passing extra data to the mesher --- index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 9ab3b46..0a975ab 100644 --- a/index.js +++ b/index.js @@ -6,13 +6,13 @@ module.exports = function(data, mesher, scaleFactor, three) { module.exports.Mesh = Mesh -function Mesh(data, mesher, scaleFactor, three) { +function Mesh(data, mesher, scaleFactor, three, mesherExtraData) { this.THREE = three || THREE this.data = data var geometry = this.geometry = new this.THREE.Geometry() this.scale = scaleFactor || new this.THREE.Vector3(10, 10, 10) - var result = mesher( data.voxels, data.dims ) + var result = mesher( data.voxels, data.dims, mesherExtraData ) this.meshed = result geometry.vertices.length = 0 From 4bc4d2b2f3b5804367360ffd16d506349e1dab09 Mon Sep 17 00:00:00 2001 From: deathcap Date: Sun, 23 Feb 2014 12:58:12 -0800 Subject: [PATCH 2/4] Pass mesherExtraData through module.exports, too --- index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 0a975ab..acce035 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,7 @@ var THREE = require('three') -module.exports = function(data, mesher, scaleFactor, three) { - return new Mesh(data, mesher, scaleFactor, three) +module.exports = function(data, mesher, scaleFactor, three, mesherExtraData) { + return new Mesh(data, mesher, scaleFactor, three, mesherExtraData) } module.exports.Mesh = Mesh From 6a881552c2281648a8ad8f50e6dd71ff610ef770 Mon Sep 17 00:00:00 2001 From: deathcap Date: Mon, 24 Feb 2014 19:19:04 -0800 Subject: [PATCH 3/4] Remove three@* peer dependency, fixes npm ERR! missing: three@*, required by voxel-mesh@0.3.0 --- package.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/package.json b/package.json index b77d934..43d72b6 100644 --- a/package.json +++ b/package.json @@ -12,9 +12,6 @@ "email": "max@maxogden.com" }, "license": "MIT", - "peerDependencies": { - "three": "*" - }, "engine": { "node": ">=0.6.0" } From b170a0f18977fb8eac571d445e9522fd6073a63d Mon Sep 17 00:00:00 2001 From: deathcap Date: Sun, 6 Apr 2014 18:05:04 -0700 Subject: [PATCH 4/4] Replace Face4 with two Face3s, for three.js --- index.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index acce035..b5201cc 100644 --- a/index.js +++ b/index.js @@ -24,17 +24,24 @@ function Mesh(data, mesher, scaleFactor, three, mesherExtraData) { } for (var i = 0; i < result.faces.length; ++i) { - geometry.faceVertexUvs[0].push(this.faceVertexUv(i)) - var q = result.faces[i] if (q.length === 5) { - var f = new this.THREE.Face4(q[0], q[1], q[2], q[3]) + var uv = this.faceVertexUv(i) + + var f = new this.THREE.Face3(q[0], q[1], q[3]) f.color = new this.THREE.Color(q[4]) geometry.faces.push(f) + geometry.faceVertexUvs[0].push([uv[0], uv[1], uv[3]]) + + var g = new this.THREE.Face3(q[1], q[2], q[3]) + g.color = new this.THREE.Color(q[4]) + geometry.faces.push(g) + geometry.faceVertexUvs[0].push([uv[1], uv[2], uv[3]]) } else if (q.length == 4) { var f = new this.THREE.Face3(q[0], q[1], q[2]) f.color = new this.THREE.Color(q[3]) geometry.faces.push(f) + geometry.faceVertexUvs[0].push(this.faceVertexUv(i)) } }