summaryrefslogtreecommitdiff
path: root/client/splash/face/mesh.js
diff options
context:
space:
mode:
Diffstat (limited to 'client/splash/face/mesh.js')
-rw-r--r--client/splash/face/mesh.js32
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