Files
P42_UI/app/controllers/live/DashboardsController.js
T
2025-10-13 20:52:24 +00:00

80 lines
2.2 KiB
JavaScript

class DashboardsController extends EICController {
constructor(params) {
super(params)
this.arenaConfig = app.Assets.Store.json.arenaConfig
this.agentDefs = app.Assets.Store.json.agentDefs
this.eventsMapping = app.Assets.Store.json.eventsMapping
}
/**
*
* @returns
*/
async spaceViewer() {
const models = {
agents : new AgentsModel('/agents')
}
const ttb = new app.LoadedModules.Threetobus({
eventsMapping: this.eventsMapping,
sceneSize: this.arenaConfig.arenaSize,
})
ttb.initScene({
axes: true,
grid: true,
})
this.agentDefs = await models.agents.getSprites('Basic 3D')
const a1 = ttb.agentFromJSON('agent42', this.agentDefs.nocode1)
const a2 = ttb.agentFromJSON('agent42', this.agentDefs.nocode2)
ttb.scene.add(a1)
ttb.scene.add(a2)
//TODO: eventsMapping: address child by suffix in assignations
this.loadWindow(
'visualisers/SpaceView',
{
title: '<i class="icon-bolt"></i> Live arena 3D view',
static: true,
expanded: false,
withSettings: true,
windowStyle: EICDomContent.boxFromPrefs('live.spaceview.3D', { x: 50, y:100, w:600, h:400 }),
},
{
models: models,
agentDefs: this.agentDefs,
rendererId:'3drenderer',
mode: '3D',
ttb: ttb,
}
)
this.loadWindow(
'visualisers/SpaceView',
{
title: '<i class="icon-bolt"></i> Live arena 2D View',
static: true,
expanded: false,
withSettings: true,
windowStyle: EICDomContent.boxFromPrefs('live.spaceview.2D', { x: 500, y:100, w:600, h:400 }),
},
{
models: models,
agentDefs: this.agentDefs,
rendererId:'2drenderer',
mode: '2D',
ttb: ttb,
}
)
}
}
app.registerClass('DashboardsController', DashboardsController);