aboutsummaryrefslogtreecommitdiffhomepage
path: root/public/bluebey-studio/src/props.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/bluebey-studio/src/props.js')
-rw-r--r--public/bluebey-studio/src/props.js22
1 files changed, 22 insertions, 0 deletions
diff --git a/public/bluebey-studio/src/props.js b/public/bluebey-studio/src/props.js
index 3f09651..70a258d 100644
--- a/public/bluebey-studio/src/props.js
+++ b/public/bluebey-studio/src/props.js
@@ -353,6 +353,24 @@ const buildFuton = prop((group, material) => {
* default variant: an open cardboard box stands about a third taller again, so
* the offered scale stays sensible either way.
*/
+/** 鉛筆: an oversized pencil standing on its eraser, point up. */
+const buildPencil = prop((group, material) => {
+ const r = 0.13;
+ addCylinder(group, material('accent', 0.85), r * 0.9, r * 0.98, 0.16, [0, 0.08, 0], 6);
+ addCylinder(group, material('metal', 0.9), r, r, 0.12, [0, 0.22, 0], 6);
+ addCylinder(group, material('accent'), r, r, 1.30, [0, 0.93, 0], 6);
+ addCylinder(group, material('wood'), 0, r, 0.30, [0, 1.73, 0], 6);
+ addCylinder(group, material('metal', 0.3), 0, r * 0.3, 0.12, [0, 1.94, 0], 6);
+});
+
+/** コップ: a mug with a rim, a handle and a little drink inside. */
+const buildCup = prop((group, material) => {
+ addCylinder(group, material('paper'), 0.34, 0.30, 0.66, [0, 0.33, 0], 18);
+ addCylinder(group, material('paper', 0.86), 0.30, 0.30, 0.05, [0, 0.645, 0], 18);
+ addCylinder(group, material('wood', 0.5), 0.28, 0.28, 0.02, [0, 0.61, 0], 18);
+ addMesh(group, new THREE.TorusGeometry(0.16, 0.045, 8, 16), material('paper'), 0.36, 0.36, 0);
+});
+
export const PROP_LIBRARY = [
{ id: 'podium', label: '演台', height: 2.2, build: buildPodium },
{ id: 'desk', label: '机', height: 1.5, build: buildDesk },
@@ -363,6 +381,8 @@ export const PROP_LIBRARY = [
{ id: 'can', label: '空いた缶詰', height: 0.65, build: buildCan },
{ id: 'bed', label: 'ベッド', height: 2.0, build: buildBed },
{ id: 'futon', label: '布団', height: 0.65, build: buildFuton },
+ { id: 'pencil', label: '鉛筆', height: 2.0, build: buildPencil },
+ { id: 'cup', label: 'コップ', height: 0.66, build: buildCup },
];
/**
@@ -385,6 +405,8 @@ export const PROP_DEFAULTS = {
can: { x: 1.7, y: 0, z: 1.5, rotY: -0.5, scale: 1 },
bed: { x: 0, y: 0, z: -4.7, rotY: 0, scale: 1 },
futon: { x: 4.2, y: 0, z: -0.6, rotY: -0.35, scale: 1 },
+ pencil: { x: -1.4, y: 0, z: 2.6, rotY: 0.3, scale: 1 },
+ cup: { x: 1.5, y: 0, z: 2.5, rotY: -0.4, scale: 1 },
};
/** The palette entry each part reads, derived from the app's colours. */