]> git.r.bdr.sh - rbdr/lissajous/blobdiff - lib/systems/lissajous_position_updater.js
Add a few comments
[rbdr/lissajous] / lib / systems / lissajous_position_updater.js
index 0f5792dffd26dcae307cb48d0b9e6d4ecd8c3689..030d9bab44be5391cc9060a384fe70e9728500e3 100644 (file)
@@ -2,10 +2,16 @@ import { System } from '@serpentity/serpentity';
 import LissajousCurve from '../nodes/lissajous_curve';
 
 const internals = {
 import LissajousCurve from '../nodes/lissajous_curve';
 
 const internals = {
-  kAmplitude: 0.8,
+  kAmplitude: 1,
   kPeriod: Math.PI * 12000000
 };
 
   kPeriod: Math.PI * 12000000
 };
 
+/**
+  * Calculates the lissajous curve over time
+  * NOTE: This shouldn't store data, I should have a different entity for
+  * the actual drawable vertices. Either put the storage in the curve, or
+  * create a separate entity.
+  */
 export default class WebGLRenderer extends System {
 
   constructor() {
 export default class WebGLRenderer extends System {
 
   constructor() {
@@ -21,20 +27,19 @@ export default class WebGLRenderer extends System {
 
   removed(){
 
 
   removed(){
 
-    this.curves = undefined;
-    this.time = undefined;
+    delete this.curves;
+    delete this.time;
   }
 
   update(dt){
 
   }
 
   update(dt){
 
-    this.time = (this.time + dt / 100) % internals.kPeriod;
+    this.time = (this.time + dt / 500) % internals.kPeriod;
 
     for (const curve of this.curves) {
 
     for (const curve of this.curves) {
-      curve.position.x = this._getPosition(internals.kAmplitude, curve.frequency.a, this.time, 0);
-      curve.position.y = this._getPosition(internals.kAmplitude, curve.frequency.b, this.time, 0);
-      curve.position.z = this._getPosition(internals.kAmplitude, curve.frequency.c, this.time, 0);
+      curve.position.x = this._getPosition(curve.amplitude.a, curve.frequency.a, this.time, curve.phase.a);
+      curve.position.y = this._getPosition(curve.amplitude.b, curve.frequency.b, this.time, curve.phase.b);
+      curve.position.z = this._getPosition(curve.amplitude.c, curve.frequency.c, this.time, curve.phase.c);
     }
     }
-    console.log('UP');
   }
 
   _getPosition(amplitude, frequency, time, phaseShift) {
   }
 
   _getPosition(amplitude, frequency, time, phaseShift) {