UNPKG

@i3yun/editor

Version:

修复字符串的一个问题

288 lines (274 loc) 9.64 kB
///<reference types="@i3yun/viewer" /> declare namespace NBYC { class ContainerHost { static Current: { Get<T>(type: { new(): T }): T Set<T>(type: { new(): T }, build?: () => T): void; Clear(): void; } static CreateContainer(): { Get<T>(type: { new(): T }): T Set<T>(type: { new(): T }, build?: () => T): void; Clear(): void; } } class AppSetting { GuiScriptBaseUrl: string GuiDefaultVisible: boolean ViewerScriptBaseUrl: string ViewerDataBaseUrl: string ViewerEnableGL2: false | true; ViewerEnableGui: "0" | "1"; ViewerEnableEdit: false | true; ViewerElementId: string StartSceneUrl: string } class AppService { LoadFile(sceneFileName: string): Promise<void>; ModelManService: Services.ModelManService; GroupManService: Services.GroupManService; MarkupManService: Services.MarkupManService; ViewManService: Services.ViewPointManService; SettingService: Services.SettingService; } namespace Services { class DataService { } class ViewerService { viewer: Sippreep.Viewing.Viewer3D; ViewerPromise: Promise<Sippreep.Viewing.Viewer3D>; } class ModelManService { getData(): { modelLayers: { url: string, name: string, hide?: boolean, transparent?: boolean }[] } updateViewer(): Promise<void>; } class GroupManService { getData(): { groups: { name: string, color: Array<number>, disableColor?: boolean, selection: { name: string, dbIds: Array<number> }[] }[] } updateViewer(): Promise<void>; } class MarkupManService { getData(): { items: { name: string, visible: boolean, color: number[], face: boolean, connect: boolean, anchorValue: number[][] }[] }; updateViewer(): Promise<void>; OnItemClick: (item: { name: string, visible: boolean, color: number[], face: boolean, connect: boolean, anchorValue: number[][] }) => void } class ViewPointManService { getData(): { name: string, view: any }[] viewSelect(index: number): void; } class SettingService { getData(): { setting: { AOradius: number; AOintensity: number; AOopacity: number; lightPreset: number; ambientShadows: boolean; lightValue: number; toggleShadows: boolean; toggleGhosting: boolean; backTopColor: number[]; backBottomColor: number[]; ghostingOpacity: number; ghostingColor: number[]; FPSTargets: number; } }; updateViewer(): Promise<void>; } class EditorService { InitPromise: Promise<void>; events: { sceneChanged: EventHandler<ObjectApp>, nodeChanged: EventHandler<ObjectNode>, nodeSelected: EventHandler<ObjectNode>, nodeFocused: EventHandler<ObjectNode>, playerEnableChanged: EventHandler<boolean>, playerTimeChanged: EventHandler<number>, playerSpeedChanged: EventHandler<number>, pickToolCallbackedV2: EventHandler<{ point: [number, number, number], node: ObjectNode }>, pickToolCallbacked: EventHandler<[number, number, number]>, pickToolEnableChanged: EventHandler<boolean>, transformModeChanged: EventHandler<"translate" | "rotate" | "scale">, modelPartRenderCreating: EventHandler<ModelRenderComponent>, parameterChanged: EventHandler<{ [name: string]: any }>, firstPersonToolEnableChanged: EventHandler<boolean>, } getScene(): ObjectApp; setScene(value: ObjectApp): void; fitView(): void; play(): void; stop(): void; findNode(uuid: string): ObjectNode; findParent(node: ObjectNode): ObjectNode | undefined; findComponent(uuid: string): ObjectComponent; findComponentNode(component: ObjectComponent): ObjectNode | undefined; moveNode(node: ObjectNode, parent: ObjectNode, before?: ObjectNode): void; setNodeState(node: ObjectNode, state: ObjectState, excludeChildren?: boolean, excludeComponent?: boolean): void; getAnimationState(node: ObjectNode, excludeChildren?: boolean): any; setAnimationState(node: ObjectNode, state: any): void; getViewPointState(): { position: [number, number, number], target: [number, number, number] }; setViewPointState(state: { position: [number, number, number], target: [number, number, number] }, progressive?: boolean): void; } } class EventHandler<T = any> { dispatchEvent(data?: T, sender?: any): void; addEventListener(handle: (data: T, sender: any) => void): void; removeEventListener(handle: (data: T, sender: any) => void): void; } class HelperTool { static FromQuery(url?: string): any; static httpGet(requestURL: string): Promise<any> } type ObjectApp = { metadata: { type: string } scene: ObjectNode } type ObjectNode = { uuid: string, name: string, state: ObjectState, /** * 位置 */ position: [number, number, number], /** * 角度(0-360) */ rotation: [number, number, number], /** * 大小 */ scale: [number, number, number], children: ObjectNode[], components: ObjectComponent[], } /** * 对象状态 */ enum ObjectState { /** * 对象被改变 */ change, /** * 对象被删除 */ delete, /** * 对象被完成 */ done, } type ObjectComponent = { uuid: string, type: string, state: ObjectState, active: boolean } type ModelRenderComponent = ObjectComponent & { url: string, /** * 大小为(1,1,1)的模型自身坐标系的位移偏移量 */ offset?: [number, number, number] transparent?: boolean } type ModelPartRenderComponent = ObjectComponent & { part: string, /** * 局部坐标 */ offset?: [number, number, number] transparent?: boolean } type PathAnimationComponent = ObjectComponent & { time: number, pathNode: string, } type RotateAnimationComponent = ObjectComponent & { time: number, directionNode: string, } type MarkPanelComponent = ObjectComponent & { content: string } type AnimationComponent = ObjectComponent & { frames: { time: number, state: any }[] } type ParameterComponent = ObjectComponent & { formula: string, frames: { time: number state: { position: [number, number, number], rotation: [number, number, number], scale: [number, number, number], }, }[] } type ViewPointAnimationComponent = ObjectComponent & { play: boolean frames: { time: number, state: { position: [number, number, number], target: [number, number, number] }, }[] } /** * 时间线动画系统组件 * * 组成 动作,动作 组成 时间线动画 * * 此组件记录了当前物体的多个动作(sublist) * 每个动作由多个帧(frames)组成 * 每帧记录position、rotation、scale信息 */ type TimeActionComponent = ObjectComponent & { subList: { frames: { time: number, state: { position: [number, number, number], rotation: [number, number, number], scale: [number, number, number], }, }[] }[] } /** * 时间线动画系统组件 * * 组成 动作,动作 组成 时间线动画 * * 此组件与当前物体无关。 * 此组件记录了多个动作的时间排布 * 每个fragments记录了一个物体的一个动作及其开始与持续时间 */ type TimeActionLineComponent = ObjectComponent & { // 是否响应播放开关 play: boolean fragments: { actionNodeId: string, actionSubIndex: number, startTime: number, duration: number, }[] } /** * 相机控制组件 */ type CameraCtrlComponent = ObjectComponent & { } }