diff options
Diffstat (limited to 'client/splash/face/mesh.js')
| -rw-r--r-- | client/splash/face/mesh.js | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/client/splash/face/mesh.js b/client/splash/face/mesh.js index 6561964b..6e9cbf33 100644 --- a/client/splash/face/mesh.js +++ b/client/splash/face/mesh.js @@ -34,11 +34,11 @@ export function update(name) { load(name) } -export function createFaceMeshes(geometry) { +export function createFaceMeshes(geometry, offset) { return { - blank: createBlankFace(geometry), - wireframe: createWireframeFace(geometry), - solid: createSolidFace(geometry), + blank: createBlankFace(geometry, offset), + wireframe: createWireframeFace(geometry, offset), + solid: createSolidFace(geometry, offset), } } export function remove() { @@ -52,7 +52,7 @@ export function removeMesh(name) { scene.remove(selectedObject) } -function createBlankFace(geometry) { +function createBlankFace(geometry, offset) { const material = new MeshStandardMaterial({ color: 0xFFFFFF, metalness: 0.2, @@ -63,10 +63,10 @@ function createBlankFace(geometry) { material.transparent = true material.opacity = 0 material.side = DoubleSide - return appendFace('blank', geometry, material) + return appendFace('blank', geometry, material, offset) } -function createWireframeFace(geometry) { +function createWireframeFace(geometry, offset) { const material = new MeshBasicMaterial({ vertexColors: VertexColors, alphaTest: 0.01, @@ -74,18 +74,18 @@ function createWireframeFace(geometry) { material.wireframe = true material.transparent = true material.opacity = 0 - return appendFace('wireframe', geometry, material) + return appendFace('wireframe', geometry, material, offset) } -function createSolidFace(geometry) { +function createSolidFace(geometry, offset) { const material = new MeshBasicMaterial({ vertexColors: VertexColors }) material.transparent = true material.opacity = 0 material.side = DoubleSide - return appendFace('solid', geometry, material) + return appendFace('solid', geometry, material, offset) } -function appendFace(name, bufferGeometry, material) { +function appendFace(name, bufferGeometry, material, offset) { // If the position attribute is quantized, modify the material to perform // dequantization on the GPU. if (bufferGeometry.attributes.position.isQuantized) { @@ -110,13 +110,17 @@ function appendFace(name, bufferGeometry, material) { const bbox = bufferGeometry.boundingBox const { scale, midX, midY, midZ } = getBboxScaleAndCentroid(bbox, bufferGeometry.attributes.position) geometry.scale.multiplyScalar(scale * FACE_SCALE) - geometry.position.x = -midX * scale - geometry.position.y = -midY * scale - geometry.position.z = -midZ * scale + geometry.position.x = -midX * scale + offset.x + geometry.position.y = -midY * scale + offset.y + geometry.position.z = -midZ * scale + offset.z geometry.frustumCulled = false // geometry.castShadow = true // geometry.receiveShadow = true + geometry.scale.setX(geometry.scale.x + offset.scale) + geometry.scale.setY(geometry.scale.y + offset.scale) + geometry.scale.setZ(geometry.scale.z + offset.scale) + const selectedObject = scene.getObjectByName(name) scene.remove(selectedObject) geometry.name = name |
