diff --git a/types/three/OTHER_FILES.txt b/types/three/OTHER_FILES.txt index e31c4e456..509f1c1bc 100644 --- a/types/three/OTHER_FILES.txt +++ b/types/three/OTHER_FILES.txt @@ -215,3 +215,4 @@ examples/jsm/webxr/OculusHandPointerModel.d.ts examples/jsm/webxr/Text2D.d.ts examples/jsm/webxr/XREstimatedLight.d.ts examples/jsm/webxr/XRPlanes.d.ts +examples/jsm/Addons.d.ts diff --git a/types/three/examples/jsm/Addons.d.ts b/types/three/examples/jsm/Addons.d.ts new file mode 100644 index 000000000..7e273d41a --- /dev/null +++ b/types/three/examples/jsm/Addons.d.ts @@ -0,0 +1,290 @@ +export * from './animation/AnimationClipCreator.js'; +export * from './animation/CCDIKSolver.js'; +export * from './animation/MMDAnimationHelper.js'; +export * from './animation/MMDPhysics.js'; + +export * from './cameras/CinematicCamera.js'; + +export { default as WebGL } from './capabilities/WebGL.js'; + +export * from './controls/ArcballControls.js'; +export * from './controls/DragControls.js'; +export * from './controls/FirstPersonControls.js'; +export * from './controls/FlyControls.js'; +export * from './controls/MapControls.js'; +export * from './controls/OrbitControls.js'; +export * from './controls/PointerLockControls.js'; +export * from './controls/TrackballControls.js'; +export * from './controls/TransformControls.js'; + +export * from './csm/CSM.js'; +export * from './csm/CSMFrustum.js'; +export * from './csm/CSMHelper.js'; +export * from './csm/CSMShader.js'; + +export * as Curves from './curves/CurveExtras.js'; +export * from './curves/NURBSCurve.js'; +export * from './curves/NURBSSurface.js'; +export * as NURBSUtils from './curves/NURBSUtils.js'; + +export * from './effects/AnaglyphEffect.js'; +export * from './effects/AsciiEffect.js'; +export * from './effects/OutlineEffect.js'; +export * from './effects/ParallaxBarrierEffect.js'; +export * from './effects/PeppersGhostEffect.js'; +export * from './effects/StereoEffect.js'; + +export * from './environments/DebugEnvironment.js'; +export * from './environments/RoomEnvironment.js'; + +export * from './exporters/DRACOExporter.js'; +export * from './exporters/EXRExporter.js'; +export * from './exporters/GLTFExporter.js'; +export * from './exporters/KTX2Exporter.js'; +export * from './exporters/MMDExporter.js'; +export * from './exporters/OBJExporter.js'; +export * from './exporters/PLYExporter.js'; +export * from './exporters/STLExporter.js'; +export * from './exporters/USDZExporter.js'; + +export * from './geometries/BoxLineGeometry.js'; +export * from './geometries/ConvexGeometry.js'; +export * from './geometries/DecalGeometry.js'; +export * from './geometries/ParametricGeometries.js'; +export * from './geometries/ParametricGeometry.js'; +export * from './geometries/RoundedBoxGeometry.js'; +export * from './geometries/TeapotGeometry.js'; +export * from './geometries/TextGeometry.js'; + +export * from './helpers/LightProbeHelper.js'; +export * from './helpers/OctreeHelper.js'; +export * from './helpers/PositionalAudioHelper.js'; +export * from './helpers/RectAreaLightHelper.js'; +export * from './helpers/VertexNormalsHelper.js'; +export * from './helpers/VertexTangentsHelper.js'; +export * from './helpers/ViewHelper.js'; + +export * from './interactive/HTMLMesh.js'; +export * from './interactive/InteractiveGroup.js'; +export * from './interactive/SelectionBox.js'; +export * from './interactive/SelectionHelper.js'; + +export { default as IESSpotLight } from './lights/IESSpotLight.js'; +export * from './lights/LightProbeGenerator.js'; +export * from './lights/RectAreaLightUniformsLib.js'; + +export * from './lines/Line2.js'; +export * from './lines/LineGeometry.js'; +export * from './lines/LineMaterial.js'; +export * from './lines/LineSegments2.js'; +export * from './lines/LineSegmentsGeometry.js'; +export * from './lines/Wireframe.js'; +export * from './lines/WireframeGeometry2.js'; + +export * from './loaders/3DMLoader.js'; +export * from './loaders/3MFLoader.js'; +export * from './loaders/AMFLoader.js'; +export * from './loaders/BVHLoader.js'; +export * from './loaders/ColladaLoader.js'; +export * from './loaders/DDSLoader.js'; +export * from './loaders/DRACOLoader.js'; +export * from './loaders/EXRLoader.js'; +export * from './loaders/FBXLoader.js'; +export * from './loaders/FontLoader.js'; +export * from './loaders/GCodeLoader.js'; +export * from './loaders/GLTFLoader.js'; +export * from './loaders/HDRCubeTextureLoader.js'; +export * from './loaders/IESLoader.js'; +export * from './loaders/KMZLoader.js'; +export * from './loaders/KTX2Loader.js'; +export * from './loaders/KTXLoader.js'; +export * from './loaders/LDrawLoader.js'; +export * from './loaders/LUT3dlLoader.js'; +export * from './loaders/LUTCubeLoader.js'; +export * from './loaders/LWOLoader.js'; +export * from './loaders/LogLuvLoader.js'; +export * from './loaders/LottieLoader.js'; +export * from './loaders/MD2Loader.js'; +export * from './loaders/MDDLoader.js'; +export * from './loaders/MMDLoader.js'; +export * from './loaders/MTLLoader.js'; +export * from './loaders/NRRDLoader.js'; +export * from './loaders/OBJLoader.js'; +export * from './loaders/PCDLoader.js'; +export * from './loaders/PDBLoader.js'; +export * from './loaders/PLYLoader.js'; +export * from './loaders/PVRLoader.js'; +export * from './loaders/RGBELoader.js'; +export * from './loaders/RGBMLoader.js'; +export * from './loaders/STLLoader.js'; +export * from './loaders/SVGLoader.js'; +export * from './loaders/TDSLoader.js'; +export * from './loaders/TGALoader.js'; +export * from './loaders/TIFFLoader.js'; +export * from './loaders/TTFLoader.js'; +export * from './loaders/TiltLoader.js'; +export * from './loaders/USDZLoader.js'; +export * from './loaders/VOXLoader.js'; +export * from './loaders/VRMLLoader.js'; +export * from './loaders/VTKLoader.js'; +export * from './loaders/XYZLoader.js'; + +export * from './materials/MeshGouraudMaterial.js'; + +export * from './math/Capsule.js'; +export * from './math/ColorConverter.js'; +export * from './math/ConvexHull.js'; +export * from './math/ImprovedNoise.js'; +export * from './math/Lut.js'; +export * from './math/MeshSurfaceSampler.js'; +export * from './math/OBB.js'; +export * from './math/Octree.js'; +export * from './math/SimplexNoise.js'; + +export * from './misc/ConvexObjectBreaker.js'; +export * from './misc/GPUComputationRenderer.js'; +export * from './misc/Gyroscope.js'; +export * from './misc/MD2Character.js'; +export * from './misc/MD2CharacterComplex.js'; +export * from './misc/MorphAnimMesh.js'; +export * from './misc/MorphBlendMesh.js'; +export * from './misc/ProgressiveLightMap.js'; +export * from './misc/RollerCoaster.js'; +export * from './misc/TubePainter.js'; +export * from './misc/Volume.js'; +export * from './misc/VolumeSlice.js'; + +export * from './modifiers/CurveModifier.js'; +export * from './modifiers/EdgeSplitModifier.js'; +export * from './modifiers/SimplifyModifier.js'; +export * from './modifiers/TessellateModifier.js'; + +export * from './objects/BatchedMesh.js'; +export * from './objects/GroundProjectedSkybox.js'; +export * from './objects/Lensflare.js'; +export * from './objects/MarchingCubes.js'; +export * from './objects/Reflector.js'; +export * from './objects/ReflectorForSSRPass.js'; +export * from './objects/Refractor.js'; +export * from './objects/ShadowMesh.js'; +export * from './objects/Sky.js'; +export * from './objects/Water.js'; +export { Water as Water2 } from './objects/Water2.js'; + +export * from './physics/AmmoPhysics.js'; +export * from './physics/RapierPhysics.js'; + +export * from './postprocessing/AfterimagePass.js'; +export * from './postprocessing/BloomPass.js'; +export * from './postprocessing/BokehPass.js'; +export * from './postprocessing/ClearPass.js'; +export * from './postprocessing/CubeTexturePass.js'; +export * from './postprocessing/DotScreenPass.js'; +export * from './postprocessing/EffectComposer.js'; +export * from './postprocessing/FilmPass.js'; +export * from './postprocessing/GlitchPass.js'; +export * from './postprocessing/HalftonePass.js'; +export * from './postprocessing/LUTPass.js'; +export * from './postprocessing/MaskPass.js'; +export * from './postprocessing/OutlinePass.js'; +export * from './postprocessing/OutputPass.js'; +export * from './postprocessing/Pass.js'; +export * from './postprocessing/RenderPass.js'; +export * from './postprocessing/RenderPixelatedPass.js'; +export * from './postprocessing/SAOPass.js'; +export * from './postprocessing/SMAAPass.js'; +export * from './postprocessing/SSAARenderPass.js'; +export * from './postprocessing/SSAOPass.js'; +export * from './postprocessing/SSRPass.js'; +export * from './postprocessing/SavePass.js'; +export * from './postprocessing/ShaderPass.js'; +export * from './postprocessing/TAARenderPass.js'; +export * from './postprocessing/TexturePass.js'; +export * from './postprocessing/UnrealBloomPass.js'; + +export * from './renderers/CSS2DRenderer.js'; +export * from './renderers/CSS3DRenderer.js'; +export * from './renderers/Projector.js'; +export * from './renderers/SVGRenderer.js'; + +export * from './shaders/ACESFilmicToneMappingShader.js'; +export * from './shaders/AfterimageShader.js'; +export * from './shaders/BasicShader.js'; +export * from './shaders/BleachBypassShader.js'; +export * from './shaders/BlendShader.js'; +export * from './shaders/BokehShader.js'; +export { BokehShader as BokehShader2 } from './shaders/BokehShader2.js'; +export * from './shaders/BrightnessContrastShader.js'; +export * from './shaders/ColorCorrectionShader.js'; +export * from './shaders/ColorifyShader.js'; +export * from './shaders/ConvolutionShader.js'; +export * from './shaders/CopyShader.js'; +export * from './shaders/DOFMipMapShader.js'; +export * from './shaders/DepthLimitedBlurShader.js'; +export * from './shaders/DigitalGlitch.js'; +export * from './shaders/DotScreenShader.js'; +export * from './shaders/ExposureShader.js'; +export * from './shaders/FXAAShader.js'; +export * from './shaders/FilmShader.js'; +export * from './shaders/FocusShader.js'; +export * from './shaders/FreiChenShader.js'; +export * from './shaders/GammaCorrectionShader.js'; +export * from './shaders/GodRaysShader.js'; +export * from './shaders/HalftoneShader.js'; +export * from './shaders/HorizontalBlurShader.js'; +export * from './shaders/HorizontalTiltShiftShader.js'; +export * from './shaders/HueSaturationShader.js'; +export * from './shaders/KaleidoShader.js'; +export * from './shaders/LuminosityHighPassShader.js'; +export * from './shaders/LuminosityShader.js'; +export * from './shaders/MMDToonShader.js'; +export * from './shaders/MirrorShader.js'; +export * from './shaders/NormalMapShader.js'; +export * from './shaders/OutputShader.js'; +export * from './shaders/RGBShiftShader.js'; +export * from './shaders/SAOShader.js'; +export * from './shaders/SMAAShader.js'; +export * from './shaders/SSAOShader.js'; +export * from './shaders/SSRShader.js'; +export * from './shaders/SepiaShader.js'; +export * from './shaders/SobelOperatorShader.js'; +export * from './shaders/SubsurfaceScatteringShader.js'; +export * from './shaders/TechnicolorShader.js'; +export * from './shaders/ToonShader.js'; +export * from './shaders/TriangleBlurShader.js'; +export * from './shaders/UnpackDepthRGBAShader.js'; +export * from './shaders/VelocityShader.js'; +export * from './shaders/VerticalBlurShader.js'; +export * from './shaders/VerticalTiltShiftShader.js'; +export * from './shaders/VignetteShader.js'; +export * from './shaders/VolumeShader.js'; +export * from './shaders/WaterRefractionShader.js'; + +export * from './textures/FlakesTexture.js'; + +export * as BufferGeometryUtils from './utils/BufferGeometryUtils.js'; +export * as CameraUtils from './utils/CameraUtils.js'; +export * from './utils/GPUStatsPanel.js'; +export * as GeometryCompressionUtils from './utils/GeometryCompressionUtils.js'; +export * as GeometryUtils from './utils/GeometryUtils.js'; +export * from './utils/LDrawUtils.js'; +export * from './utils/PackedPhongMaterial.js'; +export * as SceneUtils from './utils/SceneUtils.js'; +export * from './utils/ShadowMapViewer.js'; +export * as SkeletonUtils from './utils/SkeletonUtils.js'; +export * from './utils/TextureUtils.js'; +export * from './utils/UVsDebug.js'; +export * from './utils/WorkerPool.js'; + +export * from './webxr/ARButton.js'; +export * from './webxr/OculusHandModel.js'; +export * from './webxr/OculusHandPointerModel.js'; +export * from './webxr/Text2D.js'; +export * from './webxr/VRButton.js'; +export * from './webxr/XRButton.js'; +export * from './webxr/XRControllerModelFactory.js'; +export * from './webxr/XREstimatedLight.js'; +export * from './webxr/XRHandMeshModel.js'; +export * from './webxr/XRHandModelFactory.js'; +export * from './webxr/XRHandPrimitiveModel.js'; +export * from './webxr/XRPlanes.js'; diff --git a/types/three/examples/jsm/lights/IESSpotLight.d.ts b/types/three/examples/jsm/lights/IESSpotLight.d.ts new file mode 100644 index 000000000..e170fd85e --- /dev/null +++ b/types/three/examples/jsm/lights/IESSpotLight.d.ts @@ -0,0 +1,7 @@ +import { SpotLight, Texture } from 'three'; + +class IESSpotLight extends SpotLight { + iesMap: Texture | null; +} + +export default IESSpotLight; diff --git a/types/three/examples/jsm/loaders/IESLoader.d.ts b/types/three/examples/jsm/loaders/IESLoader.d.ts new file mode 100644 index 000000000..decc54b69 --- /dev/null +++ b/types/three/examples/jsm/loaders/IESLoader.d.ts @@ -0,0 +1,5 @@ +import { Loader, Texture } from 'three'; + +export class IESLoader extends Loader { + parse(text: string): Texture; +} diff --git a/types/three/examples/jsm/objects/BatchedMesh.d.ts b/types/three/examples/jsm/objects/BatchedMesh.d.ts new file mode 100644 index 000000000..ffe9e872f --- /dev/null +++ b/types/three/examples/jsm/objects/BatchedMesh.d.ts @@ -0,0 +1,40 @@ +import { Matrix4, Mesh, BufferGeometry, Material, DataTexture, IUniform } from '../../../src/Three.js'; + +declare class BatchedMesh extends Mesh { + _vertexStarts: number[]; + _vertexCounts: number[]; + _indexStarts: number[]; + _indexCounts: number[]; + _visibles: boolean[]; + _alives: boolean[]; + _maxGeometryCount: number; + _maxVertexCount: number; + _maxIndexCount: number; + _geometryInitialized: boolean; + _geometryCount: number; + _vertexCount: number; + _indexCount: number; + _matrices: Matrix4[]; + _matricesArray: Float32Array | null; + _matricesTexture: DataTexture | null; + _matricesTextureSize: number | null; + _customUniforms: Record; + constructor(maxGeometryCount: number, maxVertexCount: number, maxIndexCount?: number, material?: Material); + _initMatricesTexture(): void; + _initShader(): void; + getGeometryCount(): number; + getVertexCount(): number; + getIndexCount(): number; + applyGeometry(geometry: BufferGeometry): number; + deleteGeometry(geometryId: number): this; + optimize(): this; + setMatrixAt(geometryId: number, matrix: Matrix4): this; + getMatrixAt(geometryId: number, matrix: Matrix4): Matrix4; + setVisibleAt(geometryId: number, visible: boolean): this; + getVisibleAt(geometryId: number): boolean; + copy(source: BatchedMesh): this; + toJSON(meta: any): any; + dispose(): this; +} + +export { BatchedMesh }; diff --git a/types/three/examples/jsm/shaders/ExposureShader.d.ts b/types/three/examples/jsm/shaders/ExposureShader.d.ts new file mode 100644 index 000000000..afd9517cb --- /dev/null +++ b/types/three/examples/jsm/shaders/ExposureShader.d.ts @@ -0,0 +1,11 @@ +import { IUniform, Texture } from '../../../src/Three.js'; + +export const ExposureShader: { + name: 'ExposureShader'; + uniforms: { + tDiffuse: IUniform; + exposure: IUniform; + }; + vertexShader: string; + fragmentShader: string; +}; diff --git a/types/three/examples/jsm/shaders/MMDToonShader.d.ts b/types/three/examples/jsm/shaders/MMDToonShader.d.ts new file mode 100644 index 000000000..dfeb76bf7 --- /dev/null +++ b/types/three/examples/jsm/shaders/MMDToonShader.d.ts @@ -0,0 +1,14 @@ +import { IUniform } from '../../../src/Three.js'; + +export const MMDToonShader: { + defines: { + TOON: boolean; + MATCAP: boolean; + MATCAP_BLENDING_ADD: boolean; + }; + uniforms: { + [key: string]: IUniform; + }; + vertexShader: string; + fragmentShader: string; +}; diff --git a/types/three/examples/jsm/utils/TextureUtils.d.ts b/types/three/examples/jsm/utils/TextureUtils.d.ts new file mode 100644 index 000000000..1ee051240 --- /dev/null +++ b/types/three/examples/jsm/utils/TextureUtils.d.ts @@ -0,0 +1,3 @@ +import { Texture, WebGLRenderer } from 'three'; + +export function decompress(texture: Texture, maxTextureSize?: number, renderer?: WebGLRenderer): Texture; diff --git a/types/three/examples/jsm/utils/WorkerPool.d.ts b/types/three/examples/jsm/utils/WorkerPool.d.ts new file mode 100644 index 000000000..1e5c1e4f8 --- /dev/null +++ b/types/three/examples/jsm/utils/WorkerPool.d.ts @@ -0,0 +1,26 @@ +/** + * @author Deepkolos / https://github.com/deepkolos + */ + +export class WorkerPool { + pool: number; + quene: Array<{ + resolve: (e: any) => void; + msg: any; + transfer: Array; + }>; + workers: Array; + workersResolve: Array<(e: any) => void>; + workerStatus: number; + + constructor(pool?: number); + + _initWorker(workerId: number): void; + workerCreator(): Worker; + _getIdleWorker(): void; + _onMessage(workerId: number, msg: any): void; + setWorkerCreator(workerCreator: () => Worker): void; + setWorkerLimit(pool: number): void; + postMessage(msg: any, transfer?: Array): Promise; + dispose(): void; +} diff --git a/types/three/package.json b/types/three/package.json index fb6f974c8..394043c89 100644 --- a/types/three/package.json +++ b/types/three/package.json @@ -13,6 +13,7 @@ }, "./examples/fonts/*": "./examples/fonts/*", "./examples/jsm/*": "./examples/jsm/*", + "./addons": "./examples/jsm/Addons.js", "./addons/*": "./examples/jsm/*", "./src/*": "./src/*", "./nodes": "./examples/jsm/nodes/Nodes.js"