create-definedmotion 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/index.js +3 -0
- package/package.json +37 -0
- package/src/cli.js +100 -0
- package/template/.editorconfig +9 -0
- package/template/.prettierignore +6 -0
- package/template/.prettierrc.yaml +10 -0
- package/template/_gitignore +10 -0
- package/template/build/entitlements.mac.plist +12 -0
- package/template/build/icon.icns +0 -0
- package/template/build/icon.ico +0 -0
- package/template/build/icon.png +0 -0
- package/template/electron-builder.yml +43 -0
- package/template/electron.vite.config.ts +50 -0
- package/template/eslint.config.mjs +24 -0
- package/template/package-lock.json +10299 -0
- package/template/package.json +64 -0
- package/template/resources/icon.png +0 -0
- package/template/src/assets/audio/fadeSound.mp3 +0 -0
- package/template/src/assets/audio/fadeSound2.mp3 +0 -0
- package/template/src/assets/audio/interstellar.mp3 +0 -0
- package/template/src/assets/audio/keyboard1.mp3 +0 -0
- package/template/src/assets/audio/keyboard2.mp3 +0 -0
- package/template/src/assets/audio/keyboard3.mp3 +0 -0
- package/template/src/assets/audio/tick_sound.mp3 +0 -0
- package/template/src/assets/base.css +67 -0
- package/template/src/assets/electron.svg +10 -0
- package/template/src/assets/fonts/Geo-Regular.woff +0 -0
- package/template/src/assets/fonts/Montserrat-Italic-VariableFont_wght.woff2 +0 -0
- package/template/src/assets/fonts/Montserrat-Medium.ttf +0 -0
- package/template/src/assets/fonts/Montserrat-Medium.woff +0 -0
- package/template/src/assets/fonts/Montserrat-VariableFont_wght.woff2 +0 -0
- package/template/src/assets/fonts/glitch.ttf +0 -0
- package/template/src/assets/hdri/indoor1.hdr +0 -0
- package/template/src/assets/hdri/metro1.hdr +0 -0
- package/template/src/assets/hdri/outdoor1.hdr +0 -0
- package/template/src/assets/hdri/photo-studio1.hdr +0 -0
- package/template/src/assets/hdri/photo-studio2.hdr +0 -0
- package/template/src/assets/hdri/photo-studio3.hdr +0 -0
- package/template/src/assets/objects/keyboardScene/ibm-keyboard.glb +0 -0
- package/template/src/assets/wavy-lines.svg +25 -0
- package/template/src/entry.ts +20 -0
- package/template/src/example_scenes/alternativesScene.ts +88 -0
- package/template/src/example_scenes/dependencyScene.ts +116 -0
- package/template/src/example_scenes/fourierMachineScene.ts +108 -0
- package/template/src/example_scenes/fourierSeriesScene.ts +678 -0
- package/template/src/example_scenes/keyboardScene.ts +447 -0
- package/template/src/example_scenes/surfaceScene.ts +88 -0
- package/template/src/example_scenes/tutorials/easy1.ts +59 -0
- package/template/src/example_scenes/tutorials/easy2.ts +141 -0
- package/template/src/example_scenes/tutorials/easy3.ts +133 -0
- package/template/src/example_scenes/tutorials/medium1.ts +154 -0
- package/template/src/example_scenes/vectorField.ts +209 -0
- package/template/src/example_scenes/visulizingFunctions.ts +246 -0
- package/template/src/main/index.ts +101 -0
- package/template/src/main/rendering.ts +219 -0
- package/template/src/main/storage.ts +35 -0
- package/template/src/preload/index.d.ts +8 -0
- package/template/src/preload/index.ts +36 -0
- package/template/src/renderer/index.html +17 -0
- package/template/src/renderer/src/App.svelte +130 -0
- package/template/src/renderer/src/app.css +24 -0
- package/template/src/renderer/src/env.d.ts +2 -0
- package/template/src/renderer/src/lib/animation/animations.ts +214 -0
- package/template/src/renderer/src/lib/animation/captureCanvas.ts +85 -0
- package/template/src/renderer/src/lib/animation/helpers.ts +7 -0
- package/template/src/renderer/src/lib/animation/interpolations.ts +155 -0
- package/template/src/renderer/src/lib/animation/protocols.ts +79 -0
- package/template/src/renderer/src/lib/audio/loader.ts +104 -0
- package/template/src/renderer/src/lib/fonts/Roboto_Regular.json +1 -0
- package/template/src/renderer/src/lib/fonts/montserrat-medium.json +1 -0
- package/template/src/renderer/src/lib/fonts/montserrat.json +1 -0
- package/template/src/renderer/src/lib/general/helpers.ts +77 -0
- package/template/src/renderer/src/lib/general/onDestory.ts +10 -0
- package/template/src/renderer/src/lib/mathHelpers/vectors.ts +18 -0
- package/template/src/renderer/src/lib/rendering/bumpMaps/noise.ts +84 -0
- package/template/src/renderer/src/lib/rendering/helpers.ts +35 -0
- package/template/src/renderer/src/lib/rendering/lighting3d.ts +387 -0
- package/template/src/renderer/src/lib/rendering/materials.ts +6 -0
- package/template/src/renderer/src/lib/rendering/objects/import.ts +148 -0
- package/template/src/renderer/src/lib/rendering/objects2d.ts +489 -0
- package/template/src/renderer/src/lib/rendering/objects3d.ts +89 -0
- package/template/src/renderer/src/lib/rendering/protocols.ts +21 -0
- package/template/src/renderer/src/lib/rendering/setup.ts +71 -0
- package/template/src/renderer/src/lib/rendering/svg/drawing.ts +213 -0
- package/template/src/renderer/src/lib/rendering/svg/parsing.ts +717 -0
- package/template/src/renderer/src/lib/rendering/svg/rastered.ts +42 -0
- package/template/src/renderer/src/lib/rendering/svgObjects.ts +1137 -0
- package/template/src/renderer/src/lib/scene/helpers.ts +89 -0
- package/template/src/renderer/src/lib/scene/sceneClass.ts +648 -0
- package/template/src/renderer/src/lib/shaders/background_gradient/frag.glsl +12 -0
- package/template/src/renderer/src/lib/shaders/background_gradient/vert.glsl +6 -0
- package/template/src/renderer/src/lib/shaders/hdri_blur/frag.glsl +45 -0
- package/template/src/renderer/src/lib/shaders/hdri_blur/vert.glsl +5 -0
- package/template/src/renderer/src/main.ts +9 -0
- package/template/svelte.config.mjs +7 -0
- package/template/tsconfig.json +4 -0
- package/template/tsconfig.node.json +10 -0
- package/template/tsconfig.web.json +32 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import * as THREE from 'three'
|
|
2
|
+
|
|
3
|
+
export const placeNextTo = (
|
|
4
|
+
objectToPlace: THREE.Object3D,
|
|
5
|
+
target: THREE.Object3D,
|
|
6
|
+
axis: string = 'X',
|
|
7
|
+
padding: number = 0 // New padding parameter
|
|
8
|
+
) => {
|
|
9
|
+
const targetBox = new THREE.Box3().setFromObject(target)
|
|
10
|
+
const objectBox = new THREE.Box3().setFromObject(objectToPlace)
|
|
11
|
+
|
|
12
|
+
const direction = axis.startsWith('-') ? -1 : 1
|
|
13
|
+
const axisIndex = axis.toUpperCase().replace('-', '')[0]
|
|
14
|
+
let axisNum
|
|
15
|
+
|
|
16
|
+
switch (axisIndex) {
|
|
17
|
+
case 'X':
|
|
18
|
+
axisNum = 0
|
|
19
|
+
break
|
|
20
|
+
case 'Y':
|
|
21
|
+
axisNum = 1
|
|
22
|
+
break
|
|
23
|
+
case 'Z':
|
|
24
|
+
axisNum = 2
|
|
25
|
+
break
|
|
26
|
+
default:
|
|
27
|
+
throw new Error('Invalid axis. Use X, Y, Z or -X, -Y, -Z')
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const targetEdge = direction === 1 ? targetBox.max : targetBox.min
|
|
31
|
+
const objectEdge = direction === 1 ? objectBox.min : objectBox.max
|
|
32
|
+
|
|
33
|
+
const delta = new THREE.Vector3()
|
|
34
|
+
// Add padding calculation here
|
|
35
|
+
const componentDelta =
|
|
36
|
+
targetEdge.getComponent(axisNum) - objectEdge.getComponent(axisNum) + direction * padding // Modified line for padding
|
|
37
|
+
|
|
38
|
+
delta.setComponent(axisNum, componentDelta)
|
|
39
|
+
|
|
40
|
+
const worldPosition = new THREE.Vector3()
|
|
41
|
+
objectToPlace.getWorldPosition(worldPosition)
|
|
42
|
+
worldPosition.add(delta)
|
|
43
|
+
|
|
44
|
+
if (objectToPlace.parent) {
|
|
45
|
+
objectToPlace.parent.worldToLocal(worldPosition)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
objectToPlace.position.copy(worldPosition)
|
|
49
|
+
objectToPlace.updateMatrixWorld()
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export const getPositionNextTo = (
|
|
53
|
+
target: THREE.Object3D,
|
|
54
|
+
objectToPlace: THREE.Object3D,
|
|
55
|
+
axis: string = 'X',
|
|
56
|
+
padding: number = 0
|
|
57
|
+
): THREE.Vector3 => {
|
|
58
|
+
const targetBox = new THREE.Box3().setFromObject(target)
|
|
59
|
+
const objectBox = new THREE.Box3().setFromObject(objectToPlace)
|
|
60
|
+
const direction = axis.startsWith('-') ? -1 : 1
|
|
61
|
+
const axisIndex = axis.toUpperCase().replace('-', '')[0]
|
|
62
|
+
let axisNum
|
|
63
|
+
switch (axisIndex) {
|
|
64
|
+
case 'X':
|
|
65
|
+
axisNum = 0
|
|
66
|
+
break
|
|
67
|
+
case 'Y':
|
|
68
|
+
axisNum = 1
|
|
69
|
+
break
|
|
70
|
+
case 'Z':
|
|
71
|
+
axisNum = 2
|
|
72
|
+
break
|
|
73
|
+
default:
|
|
74
|
+
throw new Error('Invalid axis. Use X, Y, Z or -X, -Y, -Z')
|
|
75
|
+
}
|
|
76
|
+
const targetEdge = direction === 1 ? targetBox.max : targetBox.min
|
|
77
|
+
const objectEdge = direction === 1 ? objectBox.min : objectBox.max
|
|
78
|
+
const delta = new THREE.Vector3()
|
|
79
|
+
const componentDelta =
|
|
80
|
+
targetEdge.getComponent(axisNum) - objectEdge.getComponent(axisNum) + direction * padding
|
|
81
|
+
delta.setComponent(axisNum, componentDelta)
|
|
82
|
+
const worldPosition = new THREE.Vector3()
|
|
83
|
+
objectToPlace.getWorldPosition(worldPosition)
|
|
84
|
+
worldPosition.add(delta)
|
|
85
|
+
if (objectToPlace.parent) {
|
|
86
|
+
objectToPlace.parent.worldToLocal(worldPosition)
|
|
87
|
+
}
|
|
88
|
+
return worldPosition
|
|
89
|
+
}
|