UNPKG

soonspacejs

Version:
178 lines (177 loc) 5.62 kB
import { Box3, DirectionalLight, HemisphereLight, SpotLight, PointLight, RectAreaLight } from 'three'; import { BaseObjectInfo, IColor, IVector2, Position, Rotation, Scale } from './base'; import { BaseObject3D, ModelInfo, PoiInfo } from '../Library'; import { AnimationOptions } from './animation'; interface UserDataPropertyFindFunc<T = BaseObject3D['userData']> { (userData: T): T; } interface BaseLightInfo { id: string; name?: string; color?: IColor; intensity?: number; } type AmbientLightOptions = BaseLightInfo; export interface ShadowOptions { openShadow?: boolean; shadowAutoUpdate?: boolean; mapSize?: number; } interface DirectionalLightOptions extends BaseLightInfo, ShadowOptions { position?: Position; target?: Position; } interface HemisphereLightOptions extends BaseLightInfo { position?: Position; skyColor?: IColor; groundColor?: IColor; } interface SpotLightOptions extends BaseLightInfo, ShadowOptions { position?: Position; angle?: number; target?: Position; } interface PointLightOptions extends BaseLightInfo, ShadowOptions { position?: Position; distance?: number; } interface RectAreaLightOptions extends BaseLightInfo { position?: Position; width?: number; height?: number; } interface ModelLoadingProgress { total: number; loaded: number; timeStamp: number; } interface ModelLoadingProgressCallback { (progress: ModelLoadingProgress): void; } interface GroupProgress { modelTotal: number; loadingModelIndex: number; current: ModelLoadingProgress; } interface GroupProgressCallback { (groupProgress: GroupProgress): void; } type CloneModelInfo = Omit<ModelInfo, 'url'>; type ClonePoiInfo = Omit<PoiInfo, 'url' | 'type'>; interface TopologyInfoForGml extends BaseObjectInfo { url: string; linkWidth?: number; linkColor?: IColor; renderNode?: boolean; nodeColor?: IColor; nodeRadius?: number; } interface TopologyEffectInfo { renderLink?: boolean; linkWidth?: number; linkColor?: IColor | IColor[]; renderNode?: boolean; nodeColor?: IColor; nodeRadius?: number; imgUrl?: string; animation?: boolean | AnimationOptions; } interface ShortestPathInfo extends BaseObjectInfo, TopologyEffectInfo { start: Position; end: Position; } interface ShortestPathByMultipleStartPoints extends BaseObjectInfo, TopologyEffectInfo { start: Position[]; end: Position; } interface ShortestPathByMultipleEndPoints extends BaseObjectInfo, TopologyEffectInfo { start: Position; end: Position[]; } interface TopologyPassableInfo { sourceNodeId: BaseObjectInfo['id']; targetNodeId: BaseObjectInfo['id']; passable: number; } interface TopologyNodeGraph { targetNodeId: string; linkInfo: { id: string; name?: string; }; passable: number; } interface TopologyNodeInfo { id: BaseObjectInfo['id']; name?: BaseObjectInfo['name']; position: Position; graphs?: TopologyNodeGraph[]; } type TopologyInnerNodeInfo = Omit<TopologyNodeInfo, 'graphs'> & { graphs: TopologyNodeGraph[]; }; interface TwoWaysLink { pointAIndex: number; pointBIndex: number; } interface BaseHelperOptions { id: string; } interface GridHelperOptions extends BaseHelperOptions { size?: number; divisions?: number; color?: IColor; position?: Position; rotation?: Rotation; scale?: Scale; } interface AxesHelperOptions extends BaseHelperOptions { axesLength?: number; } interface BoxHelperOptions extends BaseHelperOptions { box: Box3; color?: IColor; } interface PlaneHelperOptions extends BaseHelperOptions { width?: number; height?: number; color?: IColor; opacity?: number; position?: Position; rotation?: Rotation; scale?: Scale; } interface GroundHelperOptions extends BaseHelperOptions { imgUrl: string; width?: number; height?: number; opacity?: number; position?: Position; rotation?: Position; scale?: Scale; repeat?: IVector2; } interface DirectionalLightHelperOptions extends BaseHelperOptions { light: DirectionalLight; color?: IColor; size?: number; } interface HemisphereLightHelperOptions extends BaseHelperOptions { light: HemisphereLight; color?: IColor; size?: number; } interface SpotLightHelperOptions extends BaseHelperOptions { light: SpotLight; color?: IColor; } interface PointLightHelperOptions extends BaseHelperOptions { light: PointLight; color?: IColor; size?: number; } interface RectAreaLightHelperOptions extends BaseHelperOptions { light: RectAreaLight; color?: IColor; } export { UserDataPropertyFindFunc, BaseLightInfo, AmbientLightOptions, DirectionalLightOptions, HemisphereLightOptions, SpotLightOptions, PointLightOptions, RectAreaLightOptions, CloneModelInfo, ModelLoadingProgress, ModelLoadingProgressCallback, GroupProgress, GroupProgressCallback, ClonePoiInfo, TopologyInfoForGml, TopologyEffectInfo, ShortestPathInfo, ShortestPathByMultipleStartPoints, ShortestPathByMultipleEndPoints, TopologyPassableInfo, TwoWaysLink, TopologyNodeGraph, TopologyNodeInfo, TopologyInnerNodeInfo, GridHelperOptions, AxesHelperOptions, BoxHelperOptions, PlaneHelperOptions, GroundHelperOptions, DirectionalLightHelperOptions, HemisphereLightHelperOptions, SpotLightHelperOptions, PointLightHelperOptions, RectAreaLightHelperOptions, };