import { Component, ReactNode } from "react"; import { SettingProvider, Setting } from "@Context/Setting"; import { HeaderBar } from "@Component/HeaderBar/HeaderBar"; import { Theme, BackgroundLevel, FontLevel } from "@Component/Theme/Theme"; import { Entry } from "../Entry/Entry"; import { StatusProvider, Status } from "@Context/Status"; import { ClassicRenderer } from "@GLRender/ClassicRenderer"; import { initializeIcons } from '@fluentui/font-icons-mdl2'; import { RootContainer } from "@Component/Container/RootContainer"; import { LayoutDirection } from "@Model/Layout"; import "./SimulatorWeb.scss"; import { CommandBar } from "@Component/CommandBar/CommandBar"; initializeIcons("https://img.mrkbear.com/fabric-cdn-prod_20210407.001/"); class SimulatorWeb extends Component { /** * 全局设置 */ private setting: Setting; /** * 全局状态 */ private status: Status; public constructor(props: any) { super(props); // TODO: 这里要读取设置 this.setting = new Setting(); (window as any).setting = (this.setting as any); // TODO: 这里要读取存档 this.status = new Status(); this.status.renderer = new ClassicRenderer({ className: "canvas" }).onLoad(); this.status.model.bindRenderer(this.status.renderer); // 测试代码 if (true) { let group = this.status.model.addGroup(); let range = this.status.model.addRange(); range.color = [.1, .5, .9]; group.new(100); group.color = [.8, .1, .6]; group.individuals.forEach((individual) => { individual.position[0] = (Math.random() - .5) * 2; individual.position[1] = (Math.random() - .5) * 2; individual.position[2] = (Math.random() - .5) * 2; }) this.status.model.update(0); } (window as any).s = this; } public componentDidMount() { this.setting.layout.setData({ items: [ { items: [ {panles: ["Label A", "Label Aa Bb", "Label aaa"]}, { items: [{panles: ["Label b", "Label bbb"]}, {panles: ["C"]}], scale: 80, layout: LayoutDirection.X } ], scale: 60, layout: LayoutDirection.Y }, { items: [{ panles: ["Label d"] }, { items: [{panles: ["Label e", "ee"]}, {panles: ["F"]}], layout: LayoutDirection.Y }], layout: LayoutDirection.Y } ], scale: 60, layout: LayoutDirection.X }) } public render(): ReactNode { return {this.renderContent()} } private renderContent(): ReactNode { return
} } Entry.renderComponent(SimulatorWeb);