| @@ -1,15 +1,15 @@ | |||
| { | |||
| "name": "threepipe", | |||
| "version": "0.0.38", | |||
| "version": "0.0.39", | |||
| "lockfileVersion": 3, | |||
| "requires": true, | |||
| "packages": { | |||
| "": { | |||
| "name": "threepipe", | |||
| "version": "0.0.38", | |||
| "version": "0.0.39", | |||
| "license": "Apache-2.0", | |||
| "dependencies": { | |||
| "@types/three": "https://github.com/repalash/three-ts-types/releases/download/v0.157.1002/package.tgz", | |||
| "@types/three": "https://github.com/repalash/three-ts-types/releases/download/v0.157.1003/package.tgz", | |||
| "@types/webxr": "^0.5.1", | |||
| "@types/wicg-file-system-access": "^2020.9.5", | |||
| "popmotion": "^11.0.5", | |||
| @@ -35,7 +35,7 @@ | |||
| "rimraf": "^5.0.1", | |||
| "rollup-plugin-glsl": "^1.3.0", | |||
| "rollup-plugin-license": "^3.0.1", | |||
| "three": "https://github.com/repalash/three.js-modded/releases/download/v0.157.1002/package.tgz", | |||
| "three": "https://github.com/repalash/three.js-modded/releases/download/v0.157.1004/package.tgz", | |||
| "tslib": "^2.5.0", | |||
| "typedoc": "^0.27.5", | |||
| "typescript": "5.7.2", | |||
| @@ -49,7 +49,7 @@ | |||
| "win-node-env": "^0.6.1" | |||
| }, | |||
| "peerDependencies": { | |||
| "three": "https://github.com/repalash/three.js-modded/releases/download/v0.157.1002/package.tgz" | |||
| "three": "https://github.com/repalash/three.js-modded/releases/download/v0.157.1004/package.tgz" | |||
| }, | |||
| "peerDependenciesMeta": { | |||
| "three": { | |||
| @@ -2327,9 +2327,9 @@ | |||
| "license": "MIT" | |||
| }, | |||
| "node_modules/@types/three": { | |||
| "version": "0.157.1002", | |||
| "resolved": "https://github.com/repalash/three-ts-types/releases/download/v0.157.1002/package.tgz", | |||
| "integrity": "sha512-Awi3M95BysLnWcQYceEwwU/9IUOd0NeXCo+ldvRWbnHjbyCAwQKb2pSsEuhYcdA6Nk6sbJQMY814Svqy0fYuJg==", | |||
| "version": "0.157.1003", | |||
| "resolved": "https://github.com/repalash/three-ts-types/releases/download/v0.157.1003/package.tgz", | |||
| "integrity": "sha512-zE6QGPd9EgQZ6n4toKKTbBHrNdwo+bDiWadKFBWAxu3pStzqKLSylDGe0RGuDwzjz5bUMVrKihZcsz69E0pWUg==", | |||
| "dependencies": { | |||
| "fflate": "~0.6.10", | |||
| "meshoptimizer": "~0.18.1" | |||
| @@ -9920,9 +9920,9 @@ | |||
| "license": "MIT" | |||
| }, | |||
| "node_modules/three": { | |||
| "version": "0.157.1002", | |||
| "resolved": "https://github.com/repalash/three.js-modded/releases/download/v0.157.1002/package.tgz", | |||
| "integrity": "sha512-xnfOnDX1UmcKc992mYitqY0EOcBNDqI7hxPoQJRdFmTCbjpTe6LYhjN0LbTozVM1RmmpUZa3Tw2Ji8h1hh7QuQ==", | |||
| "version": "0.157.1004", | |||
| "resolved": "https://github.com/repalash/three.js-modded/releases/download/v0.157.1004/package.tgz", | |||
| "integrity": "sha512-91lAxpFKhjnxV20rVODh2QehyEAgKlMghL0wiZLwxYKxueLJ/6ZH74yEEsMWHV+Jgf1I598OGzD6Xzecs8Epwg==", | |||
| "dev": true, | |||
| "license": "MIT" | |||
| }, | |||
| @@ -108,7 +108,7 @@ | |||
| "rimraf": "^5.0.1", | |||
| "rollup-plugin-glsl": "^1.3.0", | |||
| "rollup-plugin-license": "^3.0.1", | |||
| "three": "https://github.com/repalash/three.js-modded/releases/download/v0.157.1003/package.tgz", | |||
| "three": "https://github.com/repalash/three.js-modded/releases/download/v0.157.1004/package.tgz", | |||
| "tslib": "^2.5.0", | |||
| "typedoc": "^0.27.5", | |||
| "typescript": "5.7.2", | |||
| @@ -128,7 +128,7 @@ | |||
| "popmotion": "^11.0.5" | |||
| }, | |||
| "peerDependencies": { | |||
| "three": "https://github.com/repalash/three.js-modded/releases/download/v0.157.1003/package.tgz" | |||
| "three": "https://github.com/repalash/three.js-modded/releases/download/v0.157.1004/package.tgz" | |||
| }, | |||
| "peerDependenciesMeta": { | |||
| "three": { | |||
| @@ -139,7 +139,7 @@ | |||
| "dependencies": { | |||
| "uiconfig.js": "^0.1.3", | |||
| "ts-browser-helpers": "^0.16.2", | |||
| "three": "https://github.com/repalash/three.js-modded/releases/download/v0.157.1003/package.tgz", | |||
| "three": "https://github.com/repalash/three.js-modded/releases/download/v0.157.1004/package.tgz", | |||
| "three-f": "https://github.com/repalash/three.js-modded/archive/refs/tags/v0.157.1003.tar.gz", | |||
| "@types/three": "https://github.com/repalash/three-ts-types/releases/download/v0.157.1003/package.tgz", | |||
| "@types/three-f": "https://github.com/repalash/three-ts-types/archive/refs/tags/v0.157.1003.tar.gz", | |||
| @@ -4,7 +4,7 @@ | |||
| // | |||
| // // import * as GaussianSplats3D from 'gle-gs3d' | |||
| // | |||
| // export class GaussianSplatsPlugin extends AViewerPluginSync<string> { | |||
| // export class GaussianSplatsPlugin extends AViewerPluginSync { | |||
| // public static readonly PluginType: string = 'GaussianSplatsPlugin' | |||
| // enabled = true | |||
| // dependencies = [] | |||
| @@ -1,4 +1,13 @@ | |||
| import {AViewerPluginSync, createStyles, IGeometryEvent, ILoader, Importer, ThreeViewer} from 'threepipe' | |||
| import { | |||
| AViewerPluginSync, | |||
| createStyles, | |||
| EventListener, | |||
| ILoader, | |||
| Importer, | |||
| ISceneEventMap, | |||
| Scene, | |||
| ThreeViewer, | |||
| } from 'threepipe' | |||
| import styles from './ThreeGaussianSplatPlugin.css?inline' | |||
| import {GaussianSplatMesh} from './index' | |||
| import {AnyOptions} from 'ts-browser-helpers' | |||
| @@ -6,7 +15,7 @@ import {SplatLoader} from './loaders/SplatLoader' | |||
| import {SortWorkerManager} from './cpp-sorter/SortWorkerManager' | |||
| import {GaussianSplatGeometry} from './geometry/GaussianSplatGeometry' | |||
| export class ThreeGaussianSplatPlugin extends AViewerPluginSync<string> { | |||
| export class ThreeGaussianSplatPlugin extends AViewerPluginSync { | |||
| public static readonly PluginType: string = 'ThreeGaussianSplatPlugin' | |||
| enabled = true | |||
| dependencies = [] | |||
| @@ -36,7 +45,7 @@ export class ThreeGaussianSplatPlugin extends AViewerPluginSync<string> { | |||
| this.splats.forEach(async splat=>splat.update(this._viewer!.scene.mainCamera, this._viewer!.renderManager.webglRenderer)) | |||
| } | |||
| private _geometryUpdate = (event: IGeometryEvent) => { | |||
| private _geometryUpdate: EventListener<ISceneEventMap['geometryUpdate'], 'geometryUpdate', Scene> = (event) => { | |||
| if (!this._ready || this.isDisabled() || !(event.geometry as GaussianSplatGeometry)?.isGaussianSplatGeometry) return | |||
| event.geometry!.appliedMeshes.forEach(async(splat: GaussianSplatMesh)=>splat.update ? splat.update(this._viewer!.scene.mainCamera, this._viewer!.renderManager.webglRenderer) : undefined) | |||
| } | |||
| @@ -15,7 +15,7 @@ import tippy from 'tippy.js' | |||
| import tippyStyles from 'tippy.js/dist/tippy.css?inline' | |||
| import {TweakpaneUiPlugin} from '@threepipe/plugin-tweakpane' | |||
| export class TweakpaneEditorPlugin extends AViewerPluginSync<string> { | |||
| export class TweakpaneEditorPlugin extends AViewerPluginSync { | |||
| public static readonly PluginType: string = 'TweakpaneEditorPlugin' | |||
| enabled = true | |||
| @@ -14,7 +14,7 @@ import { | |||
| } from 'three' | |||
| export class Rhino3dmLoader2 extends Rhino3dmLoader { | |||
| public static LIBRARY_PATH = 'https://cdn.jsdelivr.net/npm/rhino3dm@7.15.0/' | |||
| public static LIBRARY_PATH = 'https://cdn.jsdelivr.net/npm/rhino3dm@8.9.0/' | |||
| constructor(manager?: LoadingManager) { | |||
| super(manager) | |||
| @@ -234,3 +234,4 @@ export {GLTFExporter} from 'three/examples/jsm/exporters/GLTFExporter' | |||
| export {OrbitControls} from 'three/examples/jsm/controls/OrbitControls.js' | |||
| export * from 'three/examples/jsm/utils/BufferGeometryUtils.js' | |||
| export type {Event, EventListener} from 'three' | |||
| @@ -13,6 +13,8 @@ export class OrbitControls3 extends OrbitControls implements IUiConfigContainer, | |||
| @uiToggle() enabled = true | |||
| @uiToggle() @serialize() dollyZoom = false | |||
| @uiToggle() @serialize() zoomToCursor = false | |||
| @uiToggle() @serialize() enableDamping = true | |||
| @uiInput() @serialize() dampingFactor = 0.08 | |||
| @@ -46,8 +48,6 @@ export class OrbitControls3 extends OrbitControls implements IUiConfigContainer, | |||
| @uiVector() @serialize() clampMin = new Vector3(-10000, -10000, -10000) // should be -Infinity but this breaks the UI | |||
| @uiVector() @serialize() clampMax = new Vector3(10000, 10000, 10000) // should be Infinity but this breaks the UI | |||
| @uiToggle() @serialize() zoomToCursor = false | |||
| // @uiToggle() | |||
| @serialize() screenSpacePanning = true | |||
| // @uiInput() | |||