aboutsummaryrefslogtreecommitdiff
path: root/lib/main.js
diff options
context:
space:
mode:
authorRuben Beltran del Rio <git@r.bdr.sh>2024-05-07 22:37:27 +0200
committerRuben Beltran del Rio <git@r.bdr.sh>2024-05-07 22:37:27 +0200
commit362f91160b243453578633e3f9af67ce40179d8c (patch)
treea9ee95e2f8a9c59189ea904ce87bfe54ed5be107 /lib/main.js
parent5f6ef99eae91f53239f08143cead1249893fef81 (diff)
Make 3D
Diffstat (limited to 'lib/main.js')
-rw-r--r--lib/main.js34
1 files changed, 29 insertions, 5 deletions
diff --git a/lib/main.js b/lib/main.js
index 6a2ea8f..6018957 100644
--- a/lib/main.js
+++ b/lib/main.js
@@ -1,8 +1,18 @@
import Serpentity from '@serpentity/serpentity';
+import { canvasId, settingsId, fps } from './config';
+
+// Systems
+import CameraRotator from './systems/camera_rotator';
import WebGLRenderer from './systems/webgl_renderer';
import LissajousPositionUpdater from './systems/lissajous_position_updater';
+import CameraAdjuster from './systems/camera_adjuster';
+import FrequencyAdjuster from './systems/frequency_adjuster';
+import AmplitudeAdjuster from './systems/amplitude_adjuster';
+import GlobalAdjuster from './systems/global_adjuster';
+
+// Factories
import { lissajousCurve } from './factories/curves';
-import { canvasId, fps } from './config';
+import { camera, configuration } from './factories/global';
const internals = {
@@ -16,12 +26,26 @@ const internals = {
// Create entities
const engine = new Serpentity();
- // Add Systems
- engine.addSystem(new LissajousPositionUpdater(canvasId));
- engine.addSystem(new WebGLRenderer(canvasId));
-
// Add Entities
+ engine.addEntity(camera());
engine.addEntity(lissajousCurve());
+ engine.addEntity(configuration());
+
+ // Select elements
+ const canvas = document.getElementById(canvasId);
+ const settings = document.getElementById(settingsId);
+
+ // Add Systems
+ engine.addSystem(new CameraRotator());
+ engine.addSystem(new LissajousPositionUpdater());
+ engine.addSystem(new WebGLRenderer(canvas));
+
+ // IMPROVEMENT NOTE: I believe adjusters can be generalized further.
+ // We could potentially have a factory for this.
+ engine.addSystem(new GlobalAdjuster(settings));
+ engine.addSystem(new CameraAdjuster(settings));
+ engine.addSystem(new FrequencyAdjuster(settings));
+ engine.addSystem(new AmplitudeAdjuster(settings));
internals.engine = engine;
},