UNPKG

soonspacejs

Version:
209 lines (208 loc) 5.7 kB
import { Object3D } from 'three'; import { Tween } from 'three/examples/jsm/libs/tween.module.js'; import { IColor, Position, BaseSelectOptions } from './base'; import { GridHelperOptions } from './manager'; import { ControlsOptions } from './controls'; export type IColorSpace = 'Linear' | 'sRGB'; export type CameraType = 'perspective' | 'orthographic'; interface CameraViewpointData { position: Position; target: Position; zoom: number; } interface CameraViewpointDataLegacy { position: Position; rotation: Position; } interface FlyToOptions { enableTransition?: boolean; } interface FlyToObjOptions { enableTransition?: boolean; padding?: number | string; minPadding?: number; viewpointSpace?: 'world' | 'local'; } interface SurroundOptions { duration?: number; startAngle?: number; endAngle?: number; end?: number; onStart?: (tween: Tween<{ radian: number; }>) => void; } interface LabelOptions { mode?: 'scene' | 'screen'; extendScale?: number; } interface InternalOptions { enableRenderCss2D: boolean; enableRenderCss3D: boolean; } interface SelectModelOptions<TOptions> { objects: Object3D[]; options?: TOptions; } interface EdgeSelectOptions { color?: IColor; hideColor?: IColor; edgeThickness?: number; edgeStrength?: number; } interface StrokeSelectOptions extends BaseSelectOptions { isOpacityShow?: boolean; edgeColor?: IColor; edgeOpacity?: number; modelCache?: boolean; firstChild?: boolean; } type OpacitySelectOptions = BaseSelectOptions; type HighlightSelectOptions = BaseSelectOptions; interface EmissiveSelectOptions extends Omit<BaseSelectOptions, 'opacity'> { baseColor?: IColor; minOpacity?: number; maxOpacity?: number; duration?: number; yoyo?: boolean; } interface FogOptions { color?: IColor; density?: number; } interface SkyOptions { enabled?: boolean; position?: Position; scalar?: number; turbidity?: number; rayleigh?: number; elevation?: number; azimuth?: number; } interface ViewportOptions { showInfo?: boolean; showStats?: boolean; showViewHelper?: boolean; showGrid?: boolean | GridHelperOptions; background?: { color?: IColor | null; alpha?: boolean; img?: string; skyBox?: string | { dirPath: string; fileNames: string[]; }; }; fog?: boolean | FogOptions; controls?: ControlsOptions; hoverEnabled?: boolean; levelEnabled?: boolean; scaleFixedEnabled?: boolean; fileCacheEnabled?: boolean; closeInfoLog?: boolean; closeWarnLog?: boolean; useIndexedDB?: boolean; } interface ViewportState { useFreq: number; delta: number; /** * 是否启用后处理 */ enabledPostprocessing: boolean; /** * 是否暂停 render */ isPausedRender: boolean; /** * 场景是否被销毁 */ isDisposed: boolean; } interface IntersectsOptions { isFilterHideObject?: boolean; } export interface GetTextureOptions { path?: string; file: string | string[]; } export interface EnvironmentOptions extends GetTextureOptions { background?: boolean; } export interface BloomOptions { enabled?: boolean; mipmapBlur?: boolean; radius?: number; intensity?: number; threshold?: number; smoothing?: number; scalar?: number; opacity?: number; selection?: Object3D[]; } export interface SSAOOptions { enabled?: boolean; aoRadius?: number; distanceFalloff?: number; intensity?: number; aoSamples?: number; denoiseSamples?: number; denoiseRadius?: number; color?: IColor; } export interface SSGIOptions { enabled?: boolean; distance?: number; thickness?: number; autoThickness?: boolean; maxRoughness?: number; blend?: number; denoiseIterations?: number; denoiseKernel?: number; denoiseDiffuse?: number; denoiseSpecular?: number; depthPhi?: number; normalPhi?: number; roughnessPhi?: number; envBlur?: number; importanceSampling?: boolean; directLightMultiplier?: number; maxEnvLuminance?: number; steps?: number; refineSteps?: number; spp?: number; resolutionScale?: number; missedRays?: boolean; } export interface SSROptions { enabled?: boolean; intensity?: number; exponent?: number; distance?: number; fade?: number; roughnessFade?: number; thickness?: number; ior?: number; maxRoughness?: number; maxDepthDifference?: number; blend?: number; correction?: number; correctionRadius?: number; blur?: number; blurKernel?: number; blurSharpness?: number; jitter?: number; jitterRoughness?: number; steps?: number; refineSteps?: number; missedRays?: boolean; useNormalMap?: boolean; useRoughnessMap?: boolean; resolutionScale?: number; velocityResolutionScale?: number; } export interface ToneMappingOptions { type?: 'None' | 'Reinhard' | 'Cineon' | 'ACESFilmic' | 'AGX'; exposure?: number; } export { CameraViewpointData, CameraViewpointDataLegacy, FlyToOptions, FlyToObjOptions, SurroundOptions, LabelOptions, InternalOptions, SelectModelOptions, EdgeSelectOptions, StrokeSelectOptions, OpacitySelectOptions, HighlightSelectOptions, EmissiveSelectOptions, FogOptions, SkyOptions, ViewportOptions, ViewportState, IntersectsOptions, };