Marker interface intentionally left empty. Built-in panels populate it via declare module augmentation in builtinPanels.ts; SDK users register custom panels by augmenting it from their own code.

Each entry has the shape { panel: SomePanel; params: SomeParams }. Use void for params when the panel takes no per-call config.

interface PanelMap {
    angleMeasurements: {
        panel: AngleMeasurementsTool;
        params: { view: View } & Partial<AngleMeasurementsToolParams>;
    };
    angleMeasurementsPanel: {
        panel: AngleMeasurementsPanel;
        params: { view: View };
    };
    boundariesPanel: { panel: BoundariesPanel; params: void };
    cameraTourPanel: { panel: CameraTourPanel; params: void };
    cullingPanel: { panel: CullingPanel; params: void };
    dataHealth: {
        panel: DataHealthPanel;
        params: { focusDataModel?: DataModel; schema?: DataFormatSchema };
    };
    dataStats: { panel: DataStatsPanel; params: void };
    dataTexturesPanel: { panel: DataTexturesPanel; params: void };
    daylightAnalysisPanel: {
        panel: DaylightAnalysisPanel;
        params: {
            initialDaysPerYear?: number;
            initialGrid?: AnalysisGrid;
            initialHoursPerDay?: number;
            initialSkyModel?: SkyModel;
            initialYear?: number;
            scene: Scene;
            sunStudy: SunStudy;
        };
    };
    distanceMeasurements: {
        panel: DistanceMeasurementTool;
        params: { view: View } & Partial<DistanceMeasurementToolParams>;
    };
    distanceMeasurementsPanel: {
        panel: DistanceMeasurementsPanel;
        params: { view: View };
    };
    drawingsPanel: { panel: DrawingsPanel; params: void };
    explorerPanel: { panel: ExplorerPanel; params: void };
    exportBCFPanel: { panel: ExportBCFPanel; params: void };
    exportDialog: { panel: ExportDialog; params: void };
    gpuMemory: { panel: GPUMemoryPanel; params: void };
    issuesPanel: { panel: IssuesPanel; params: void };
    modelsPanel: { panel: ModelsPanel; params: void };
    navCube: {
        panel: NavCube;
        params: { view: View } & Partial<NavCubeParams>;
    };
    pdfImport: { panel: PdfImportPanel; params: void };
    rendererPanel: { panel: RendererPanel; params: void };
    sampleModels: { panel: SampleModelsPanel; params: void };
    sceneHealth: {
        panel: SceneHealthPanel;
        params: { focusSceneModel?: SceneModel };
    };
    sceneStats: { panel: SceneStatsPanel; params: void };
    schedulePanel: { panel: SchedulePanel; params: { player: SchedulePlayer } };
    schemaMaterials: {
        panel: SchemaMaterialsPanel;
        params: { focusSceneModel?: SceneModel };
    };
    sectionPlanesPanel: { panel: SectionPlanesPanel; params: { view: View } };
    shadersPanel: { panel: ShadersPanel; params: void };
    sunStudyPanel: {
        panel: SunStudyPanel;
        params: { player?: AnnualSunPlayer; sunStudy: SunStudy };
    };
    tasksPanel: { panel: TasksPanel; params: void };
    tilesPanel: { panel: TilesPanel; params: void };
    toolbar: { panel: Toolbar; params: void };
    transformControls: {
        panel: TransformControls;
        params: { view: View } & Partial<TransformControlsParams>;
    };
    viewerConfig: { panel: ViewerConfigPanel; params: void };
    volumeOverlayPanel: {
        panel: VolumeOverlayPanel;
        params: {
            grid: VoxelGrid;
            initialAxis?: SliceAxis;
            initialColormap?: string;
            initialIsovalue?: number;
            initialPosition?: number;
            initialSeedDensity?: number;
            initialTechnique?: "slice" | "isosurface" | "streamlines";
            scene: Scene;
            vectorGrid?: VectorGrid;
        };
    };
}

Properties

angleMeasurements: {
    panel: AngleMeasurementsTool;
    params: { view: View } & Partial<AngleMeasurementsToolParams>;
}
angleMeasurementsPanel: {
    panel: AngleMeasurementsPanel;
    params: { view: View };
}
boundariesPanel: { panel: BoundariesPanel; params: void }
cameraTourPanel: { panel: CameraTourPanel; params: void }
cullingPanel: { panel: CullingPanel; params: void }
dataHealth: {
    panel: DataHealthPanel;
    params: { focusDataModel?: DataModel; schema?: DataFormatSchema };
}
dataStats: { panel: DataStatsPanel; params: void }
dataTexturesPanel: { panel: DataTexturesPanel; params: void }
daylightAnalysisPanel: {
    panel: DaylightAnalysisPanel;
    params: {
        initialDaysPerYear?: number;
        initialGrid?: AnalysisGrid;
        initialHoursPerDay?: number;
        initialSkyModel?: SkyModel;
        initialYear?: number;
        scene: Scene;
        sunStudy: SunStudy;
    };
}
distanceMeasurements: {
    panel: DistanceMeasurementTool;
    params: { view: View } & Partial<DistanceMeasurementToolParams>;
}
distanceMeasurementsPanel: {
    panel: DistanceMeasurementsPanel;
    params: { view: View };
}
drawingsPanel: { panel: DrawingsPanel; params: void }
explorerPanel: { panel: ExplorerPanel; params: void }
exportBCFPanel: { panel: ExportBCFPanel; params: void }
exportDialog: { panel: ExportDialog; params: void }
gpuMemory: { panel: GPUMemoryPanel; params: void }
issuesPanel: { panel: IssuesPanel; params: void }
modelsPanel: { panel: ModelsPanel; params: void }
navCube: { panel: NavCube; params: { view: View } & Partial<NavCubeParams> }
pdfImport: { panel: PdfImportPanel; params: void }
rendererPanel: { panel: RendererPanel; params: void }
sampleModels: { panel: SampleModelsPanel; params: void }
sceneHealth: {
    panel: SceneHealthPanel;
    params: { focusSceneModel?: SceneModel };
}
sceneStats: { panel: SceneStatsPanel; params: void }
schedulePanel: { panel: SchedulePanel; params: { player: SchedulePlayer } }
schemaMaterials: {
    panel: SchemaMaterialsPanel;
    params: { focusSceneModel?: SceneModel };
}
sectionPlanesPanel: { panel: SectionPlanesPanel; params: { view: View } }
shadersPanel: { panel: ShadersPanel; params: void }
sunStudyPanel: {
    panel: SunStudyPanel;
    params: { player?: AnnualSunPlayer; sunStudy: SunStudy };
}
tasksPanel: { panel: TasksPanel; params: void }
tilesPanel: { panel: TilesPanel; params: void }
toolbar: { panel: Toolbar; params: void }
transformControls: {
    panel: TransformControls;
    params: { view: View } & Partial<TransformControlsParams>;
}
viewerConfig: { panel: ViewerConfigPanel; params: void }
volumeOverlayPanel: {
    panel: VolumeOverlayPanel;
    params: {
        grid: VoxelGrid;
        initialAxis?: SliceAxis;
        initialColormap?: string;
        initialIsovalue?: number;
        initialPosition?: number;
        initialSeedDensity?: number;
        initialTechnique?: "slice" | "isosurface" | "streamlines";
        scene: Scene;
        vectorGrid?: VectorGrid;
    };
}