48 lines
869 B
JavaScript
48 lines
869 B
JavaScript
class Visual {
|
|
constructor() {
|
|
this.data = []; //for drawing
|
|
this.dataArray = [];
|
|
}
|
|
|
|
updateData() {
|
|
|
|
}
|
|
|
|
draw() {
|
|
}
|
|
|
|
setup() {
|
|
}
|
|
}
|
|
|
|
class VisualDrawer {
|
|
constructor() {
|
|
this.visuals = {
|
|
"sphere": new Sphere(),
|
|
"wave": new Wave(),
|
|
"water": new Water()
|
|
}
|
|
this.c = "wave";
|
|
}
|
|
|
|
init() {
|
|
this.visuals[this.c].setup();
|
|
this.updateLoop();
|
|
}
|
|
|
|
switch(visual) {
|
|
if (this.visuals[visual] != null) {
|
|
this.c = visual;
|
|
this.visuals[this.c].setup();
|
|
}
|
|
}
|
|
|
|
updateLoop() {
|
|
let self = this;
|
|
let pro = shaderHandler.use(self.c);
|
|
let vis = self.visuals[self.c];
|
|
vis.updateData();
|
|
vis.draw(pro);
|
|
requestAnimationFrame(self.updateLoop.bind(self))
|
|
}
|
|
} |