class MainDashboardView extends EICDomContent { //TODO should come from the API, from some sprites lib. (allow switching representations) agentTypes = { molecule1:{ "type": "Mesh", "geometry": { "type": "BoxGeometry", "args": [1, 1, 1] }, "material": { "type": "MeshStandardMaterial", "color": "orange" }, "children": [ { "type": "Mesh", "geometry": { "type": "SphereGeometry", "args": [0.3, 16, 16] }, "material": { "type": "MeshStandardMaterial", "color": "blue" }, "position": [0, 0.5, 0] } ] }, molecule2:{ "type": "Mesh", "geometry": { "type": "SphereGeometry", "args": [1, 1, 1] }, "material": { "type": "MeshStandardMaterial", "color": "green" }, "children": [ { "type": "Mesh", "geometry": { "type": "SphereGeometry", "args": [0.3, 16, 16] }, "material": { "type": "MeshStandardMaterial", "color": "red" }, "position": [0, 1, 0] } ] } } constructor() { super() Object.assign(this, app.helpers.activeAttributes) //this.tileMarkup = app.Assets.Store.html['/app/assets/html/mailing/tile.html'] } DOMContentFocused(options) { // Avoid 2nd refesh on DomContentLoaded if(this.wasBlured){ //this.refreshyoustuff() } this.wasBlured = false } DOMContentBlured(options) { this.wasBlured = true } DOMContentLoaded(options) { for(let model in options.models) this[model] = options.models[model] const components = ui.eicfy(this.el) this.setupTriggers(components) this.setupRefs(components) this.ttb = new app.LoadedModules.Threetobus(this.outputs.paper43) this.ttb.initScene() this.ttb.startRendering(options.mode) const m1 = this.ttb.buildFromJSON(this.agentTypes.molecule1) m1.name = 'toto' this.ttb.scene.add(m1) } } app.registerClass('MainDashboardView', MainDashboardView)