Files
P42_UI/app/views/dashboards/MainDashboardView.js
T
2025-09-26 21:02:32 +00:00

71 lines
2.1 KiB
JavaScript

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)
}
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.changeCamera(options.camName)
this.ttb.startRendering()
const m1 = this.ttb.buildFromJSON(this.agentTypes.molecule1)
m1.name = 'toto'
this.ttb.scene.add(m1)
}
}
app.registerClass('MainDashboardView', MainDashboardView)