lythreeframe 1.2.27 → 1.2.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1539,12 +1539,34 @@ class Viewport {
1539
1539
  this.outlineObjects = [];
1540
1540
  this.postProcessParam = Object.assign({}, postProcessParam);
1541
1541
  this._app = app;
1542
- let element = null;
1543
1542
  if (viewportParam.elementId) {
1544
- element = document.getElementById(viewportParam.elementId);
1545
- if (!element) {
1546
- throw Error(`Can not find domElement which id is ${viewportParam.elementId}`);
1543
+ this._canvas = document.getElementById(viewportParam.elementId);
1544
+ }
1545
+ this.createRenderer(rendererParam);
1546
+ if (viewportParam.isLabelRendererNeeded) {
1547
+ this.createLabelRenderer();
1548
+ }
1549
+ if (this._canvas) {
1550
+ this.resizeObserver = new ResizeObserver((entries) => {
1551
+ for (let entry of entries) {
1552
+ if (entry.contentBoxSize) {
1553
+ this.onWindowResize();
1554
+ }
1555
+ }
1556
+ });
1557
+ this.resizeObserver.observe(this._canvas);
1558
+ }
1559
+ this.app.onCameraChangedDelegate.add(() => {
1560
+ this.setupPostProcess();
1561
+ });
1562
+ }
1563
+ createRenderer(rendererParam) {
1564
+ const element = this._canvas;
1565
+ if (this._renderer) {
1566
+ if (element) {
1567
+ element.removeChild(this._renderer.domElement);
1547
1568
  }
1569
+ this._renderer.dispose();
1548
1570
  }
1549
1571
  let width = element ? element.clientWidth : 512;
1550
1572
  let height = element ? element.clientHeight : 512;
@@ -1564,34 +1586,29 @@ class Viewport {
1564
1586
  this._renderer.shadowMap.type = rendererParam.shadowMapType;
1565
1587
  this._renderer.toneMapping = rendererParam.toneMapping;
1566
1588
  this._renderer.toneMappingExposure = rendererParam.toneMappingExposure;
1567
- if (viewportParam.isLabelRendererNeeded) {
1568
- this.labelRenderer = new Addons_js.CSS2DRenderer();
1569
- this.labelRenderer.setSize(width, height);
1570
- this.labelRenderer.domElement.style.pointerEvents = 'none';
1571
- this.labelRenderer.domElement.style.position = 'absolute';
1572
- this.labelRenderer.domElement.style.top = '0px';
1573
- this.labelRenderer.domElement.className = 'scene-labelRenderer';
1589
+ if (element) {
1590
+ element.appendChild(this._renderer.domElement);
1591
+ }
1592
+ }
1593
+ createLabelRenderer() {
1594
+ const element = this._canvas;
1595
+ if (this.labelRenderer) {
1574
1596
  if (element) {
1575
- element.appendChild(this.labelRenderer.domElement);
1597
+ element.removeChild(this.labelRenderer.domElement);
1576
1598
  }
1599
+ this.labelRenderer.dispose();
1577
1600
  }
1601
+ let width = element ? element.clientWidth : 512;
1602
+ let height = element ? element.clientHeight : 512;
1603
+ this.labelRenderer = new Addons_js.CSS2DRenderer();
1604
+ this.labelRenderer.setSize(width, height);
1605
+ this.labelRenderer.domElement.style.pointerEvents = 'none';
1606
+ this.labelRenderer.domElement.style.position = 'absolute';
1607
+ this.labelRenderer.domElement.style.top = '0px';
1608
+ this.labelRenderer.domElement.className = 'scene-labelRenderer';
1578
1609
  if (element) {
1579
- element.appendChild(this._renderer.domElement);
1580
- this._canvas = element;
1610
+ element.appendChild(this.labelRenderer.domElement);
1581
1611
  }
1582
- if (this._canvas) {
1583
- this.resizeObserver = new ResizeObserver((entries) => {
1584
- for (let entry of entries) {
1585
- if (entry.contentBoxSize) {
1586
- this.onWindowResize();
1587
- }
1588
- }
1589
- });
1590
- this.resizeObserver.observe(this._canvas);
1591
- }
1592
- this.app.onCameraChangedDelegate.add(() => {
1593
- this.setupPostProcess();
1594
- });
1595
1612
  }
1596
1613
  init() {
1597
1614
  this.setupPostProcess();
@@ -1693,6 +1710,10 @@ class Viewport {
1693
1710
  this.postProcessParam.steps = steps;
1694
1711
  this.setupPostProcess();
1695
1712
  }
1713
+ updateRendererSettings(data) {
1714
+ this.createRenderer(data);
1715
+ this.markRenderStateDirty();
1716
+ }
1696
1717
  // updateBloomPass(params: BloomParam)
1697
1718
  // {
1698
1719
  // this.postProcessParam.bloom = { ...params };
@@ -2194,59 +2215,90 @@ class Controller {
2194
2215
 
2195
2216
  class CameraFactory {
2196
2217
  static createCamera(param) {
2197
- let cam = null;
2198
- if ("fov" in param.param && "aspect" in param.param) {
2199
- cam = new webgpu.PerspectiveCamera(param.param.fov, param.param.aspect, param.near, param.far);
2200
- }
2201
- if ("left" in param.param && "right" in param.param && "top" in param.param && "bottom" in param.param) {
2202
- cam = new webgpu.OrthographicCamera(param.param.left, param.param.right, param.param.top, param.param.bottom, param.near, param.far);
2218
+ try {
2219
+ switch (param.type) {
2220
+ case "Perspective":
2221
+ {
2222
+ let data = param;
2223
+ return new webgpu.PerspectiveCamera(data.fov, data.aspect, data.near, data.far);
2224
+ }
2225
+ case "Orthographic":
2226
+ {
2227
+ let data = param;
2228
+ return new webgpu.OrthographicCamera(data.left, data.right, data.top, data.bottom, data.near, data.far);
2229
+ }
2230
+ default:
2231
+ {
2232
+ throw new Error("Invalid camera type");
2233
+ }
2234
+ }
2203
2235
  }
2204
- if (!cam) {
2205
- console.error("create camera failed");
2206
- debugger;
2207
- throw Error("create camera failed");
2236
+ catch (error) {
2237
+ console.warn("[CameraFactory]Error occurred while creating camera: ", error);
2238
+ console.warn("[CameraFactory]Create default perspective camera instead");
2239
+ return new webgpu.PerspectiveCamera(50, 1, 0.1, 1000);
2208
2240
  }
2209
- return cam;
2210
2241
  }
2211
2242
  static updataCamera(param, camera) {
2212
- if ("fov" in param.param && "aspect" in param.param) {
2213
- if (camera instanceof webgpu.PerspectiveCamera) {
2214
- camera.near = param.near;
2215
- camera.far = param.far;
2216
- camera.fov = param.param.fov;
2217
- camera.aspect = param.param.aspect;
2218
- return camera;
2219
- }
2220
- else {
2221
- return new webgpu.PerspectiveCamera(param.param.fov, param.param.aspect, param.near, param.far);
2243
+ try {
2244
+ switch (param.type) {
2245
+ case "Perspective":
2246
+ {
2247
+ let data = param;
2248
+ if (camera instanceof webgpu.PerspectiveCamera) {
2249
+ camera.near = data.near;
2250
+ camera.far = data.far;
2251
+ camera.fov = data.fov;
2252
+ camera.aspect = data.aspect;
2253
+ return camera;
2254
+ }
2255
+ return new webgpu.PerspectiveCamera(data.fov, data.aspect, data.near, data.far);
2256
+ }
2257
+ case "Orthographic":
2258
+ {
2259
+ let data = param;
2260
+ if (camera instanceof webgpu.OrthographicCamera) {
2261
+ camera.near = data.near;
2262
+ camera.far = data.far;
2263
+ camera.left = data.left;
2264
+ camera.right = data.right;
2265
+ camera.top = data.top;
2266
+ camera.bottom = data.bottom;
2267
+ return camera;
2268
+ }
2269
+ return new webgpu.OrthographicCamera(data.left, data.right, data.top, data.bottom, data.near, data.far);
2270
+ }
2271
+ default:
2272
+ {
2273
+ throw new Error("Invalid camera type");
2274
+ }
2222
2275
  }
2223
2276
  }
2224
- if ("left" in param.param && "right" in param.param && "top" in param.param && "bottom" in param.param) {
2225
- if (camera instanceof webgpu.OrthographicCamera) {
2226
- camera.near = param.near;
2227
- camera.far = param.far;
2228
- camera.left = param.param.left;
2229
- camera.right = param.param.right;
2230
- camera.top = param.param.top;
2231
- camera.bottom = param.param.bottom;
2232
- return camera;
2233
- }
2234
- else {
2235
- return new webgpu.OrthographicCamera(param.param.left, param.param.right, param.param.top, param.param.bottom, param.near, param.far);
2236
- }
2277
+ catch (error) {
2278
+ console.warn("[CameraFactory]Error occurred while updating camera: ", error);
2279
+ console.warn("[CameraFactory]Update Failed. Return old camera instead");
2280
+ return camera;
2237
2281
  }
2238
- return camera;
2239
2282
  }
2240
2283
  }
2241
2284
 
2242
- const DefaultCameraParam = {
2285
+ const DefaultPerspectiveCameraParam = {
2243
2286
  near: 0.1,
2244
2287
  far: 1000,
2245
- param: {
2246
- fov: 50,
2247
- aspect: 1,
2248
- }
2288
+ type: "Perspective",
2289
+ fov: 50,
2290
+ aspect: 1,
2291
+ };
2292
+ const DefaultOrthographicCameraParam = {
2293
+ type: "Orthographic",
2294
+ near: 0.1,
2295
+ far: 1000,
2296
+ left: -1,
2297
+ right: 1,
2298
+ top: 1,
2299
+ bottom: -1,
2249
2300
  };
2301
+ const DefaultCameraParam = JSON.parse(JSON.stringify(DefaultPerspectiveCameraParam));
2250
2302
 
2251
2303
  const DefaultViewportParam = {
2252
2304
  elementId: null,
@@ -3352,7 +3404,9 @@ exports.DefaultCameraParam = DefaultCameraParam;
3352
3404
  exports.DefaultDOFParam = DefaultDOFParam;
3353
3405
  exports.DefaultDenoiseParam = DefaultDenoiseParam;
3354
3406
  exports.DefaultGTAOParam = DefaultGTAOParam;
3407
+ exports.DefaultOrthographicCameraParam = DefaultOrthographicCameraParam;
3355
3408
  exports.DefaultOutlineParams = DefaultOutlineParams;
3409
+ exports.DefaultPerspectiveCameraParam = DefaultPerspectiveCameraParam;
3356
3410
  exports.DefaultPostProcessParam = DefaultPostProcessParam;
3357
3411
  exports.DefaultRendererParameters = DefaultRendererParameters;
3358
3412
  exports.DefaultSSRParam = DefaultSSRParam;
@@ -1,4 +1,4 @@
1
- import { MathUtils, Object3D, Vector3, Box3, Quaternion, Euler, Matrix4, Mesh, LoadingManager, BufferGeometry, Texture, FileLoader, Material, NearestFilter, WebGPURenderer, PostProcessing, Color, Vector2, Raycaster, PerspectiveCamera, OrthographicCamera, Clock, DirectionalLight, MeshStandardMaterial, BoxGeometry, MeshBasicMaterial, PlaneGeometry, SphereGeometry } from 'three/webgpu';
1
+ import { MathUtils, Object3D, Vector3, Box3, Quaternion, Euler, Matrix4, Mesh, LoadingManager, BufferGeometry, Texture, FileLoader, Material, NearestFilter, WebGPURenderer, PostProcessing, Color, Vector2, Raycaster, OrthographicCamera, PerspectiveCamera, Clock, DirectionalLight, MeshStandardMaterial, BoxGeometry, MeshBasicMaterial, PlaneGeometry, SphereGeometry } from 'three/webgpu';
2
2
  import { GLTFLoader, DRACOLoader, CSS2DRenderer, OrbitControls } from 'three/examples/jsm/Addons.js';
3
3
  import { pass, mrt, output, uniform, metalness, transformedNormalView, time, oscSine } from 'three/tsl';
4
4
  import { dof } from 'three/addons/tsl/display/DepthOfFieldNode.js';
@@ -1537,12 +1537,34 @@ class Viewport {
1537
1537
  this.outlineObjects = [];
1538
1538
  this.postProcessParam = Object.assign({}, postProcessParam);
1539
1539
  this._app = app;
1540
- let element = null;
1541
1540
  if (viewportParam.elementId) {
1542
- element = document.getElementById(viewportParam.elementId);
1543
- if (!element) {
1544
- throw Error(`Can not find domElement which id is ${viewportParam.elementId}`);
1541
+ this._canvas = document.getElementById(viewportParam.elementId);
1542
+ }
1543
+ this.createRenderer(rendererParam);
1544
+ if (viewportParam.isLabelRendererNeeded) {
1545
+ this.createLabelRenderer();
1546
+ }
1547
+ if (this._canvas) {
1548
+ this.resizeObserver = new ResizeObserver((entries) => {
1549
+ for (let entry of entries) {
1550
+ if (entry.contentBoxSize) {
1551
+ this.onWindowResize();
1552
+ }
1553
+ }
1554
+ });
1555
+ this.resizeObserver.observe(this._canvas);
1556
+ }
1557
+ this.app.onCameraChangedDelegate.add(() => {
1558
+ this.setupPostProcess();
1559
+ });
1560
+ }
1561
+ createRenderer(rendererParam) {
1562
+ const element = this._canvas;
1563
+ if (this._renderer) {
1564
+ if (element) {
1565
+ element.removeChild(this._renderer.domElement);
1545
1566
  }
1567
+ this._renderer.dispose();
1546
1568
  }
1547
1569
  let width = element ? element.clientWidth : 512;
1548
1570
  let height = element ? element.clientHeight : 512;
@@ -1562,34 +1584,29 @@ class Viewport {
1562
1584
  this._renderer.shadowMap.type = rendererParam.shadowMapType;
1563
1585
  this._renderer.toneMapping = rendererParam.toneMapping;
1564
1586
  this._renderer.toneMappingExposure = rendererParam.toneMappingExposure;
1565
- if (viewportParam.isLabelRendererNeeded) {
1566
- this.labelRenderer = new CSS2DRenderer();
1567
- this.labelRenderer.setSize(width, height);
1568
- this.labelRenderer.domElement.style.pointerEvents = 'none';
1569
- this.labelRenderer.domElement.style.position = 'absolute';
1570
- this.labelRenderer.domElement.style.top = '0px';
1571
- this.labelRenderer.domElement.className = 'scene-labelRenderer';
1587
+ if (element) {
1588
+ element.appendChild(this._renderer.domElement);
1589
+ }
1590
+ }
1591
+ createLabelRenderer() {
1592
+ const element = this._canvas;
1593
+ if (this.labelRenderer) {
1572
1594
  if (element) {
1573
- element.appendChild(this.labelRenderer.domElement);
1595
+ element.removeChild(this.labelRenderer.domElement);
1574
1596
  }
1597
+ this.labelRenderer.dispose();
1575
1598
  }
1599
+ let width = element ? element.clientWidth : 512;
1600
+ let height = element ? element.clientHeight : 512;
1601
+ this.labelRenderer = new CSS2DRenderer();
1602
+ this.labelRenderer.setSize(width, height);
1603
+ this.labelRenderer.domElement.style.pointerEvents = 'none';
1604
+ this.labelRenderer.domElement.style.position = 'absolute';
1605
+ this.labelRenderer.domElement.style.top = '0px';
1606
+ this.labelRenderer.domElement.className = 'scene-labelRenderer';
1576
1607
  if (element) {
1577
- element.appendChild(this._renderer.domElement);
1578
- this._canvas = element;
1608
+ element.appendChild(this.labelRenderer.domElement);
1579
1609
  }
1580
- if (this._canvas) {
1581
- this.resizeObserver = new ResizeObserver((entries) => {
1582
- for (let entry of entries) {
1583
- if (entry.contentBoxSize) {
1584
- this.onWindowResize();
1585
- }
1586
- }
1587
- });
1588
- this.resizeObserver.observe(this._canvas);
1589
- }
1590
- this.app.onCameraChangedDelegate.add(() => {
1591
- this.setupPostProcess();
1592
- });
1593
1610
  }
1594
1611
  init() {
1595
1612
  this.setupPostProcess();
@@ -1691,6 +1708,10 @@ class Viewport {
1691
1708
  this.postProcessParam.steps = steps;
1692
1709
  this.setupPostProcess();
1693
1710
  }
1711
+ updateRendererSettings(data) {
1712
+ this.createRenderer(data);
1713
+ this.markRenderStateDirty();
1714
+ }
1694
1715
  // updateBloomPass(params: BloomParam)
1695
1716
  // {
1696
1717
  // this.postProcessParam.bloom = { ...params };
@@ -2192,59 +2213,90 @@ class Controller {
2192
2213
 
2193
2214
  class CameraFactory {
2194
2215
  static createCamera(param) {
2195
- let cam = null;
2196
- if ("fov" in param.param && "aspect" in param.param) {
2197
- cam = new PerspectiveCamera(param.param.fov, param.param.aspect, param.near, param.far);
2198
- }
2199
- if ("left" in param.param && "right" in param.param && "top" in param.param && "bottom" in param.param) {
2200
- cam = new OrthographicCamera(param.param.left, param.param.right, param.param.top, param.param.bottom, param.near, param.far);
2216
+ try {
2217
+ switch (param.type) {
2218
+ case "Perspective":
2219
+ {
2220
+ let data = param;
2221
+ return new PerspectiveCamera(data.fov, data.aspect, data.near, data.far);
2222
+ }
2223
+ case "Orthographic":
2224
+ {
2225
+ let data = param;
2226
+ return new OrthographicCamera(data.left, data.right, data.top, data.bottom, data.near, data.far);
2227
+ }
2228
+ default:
2229
+ {
2230
+ throw new Error("Invalid camera type");
2231
+ }
2232
+ }
2201
2233
  }
2202
- if (!cam) {
2203
- console.error("create camera failed");
2204
- debugger;
2205
- throw Error("create camera failed");
2234
+ catch (error) {
2235
+ console.warn("[CameraFactory]Error occurred while creating camera: ", error);
2236
+ console.warn("[CameraFactory]Create default perspective camera instead");
2237
+ return new PerspectiveCamera(50, 1, 0.1, 1000);
2206
2238
  }
2207
- return cam;
2208
2239
  }
2209
2240
  static updataCamera(param, camera) {
2210
- if ("fov" in param.param && "aspect" in param.param) {
2211
- if (camera instanceof PerspectiveCamera) {
2212
- camera.near = param.near;
2213
- camera.far = param.far;
2214
- camera.fov = param.param.fov;
2215
- camera.aspect = param.param.aspect;
2216
- return camera;
2217
- }
2218
- else {
2219
- return new PerspectiveCamera(param.param.fov, param.param.aspect, param.near, param.far);
2241
+ try {
2242
+ switch (param.type) {
2243
+ case "Perspective":
2244
+ {
2245
+ let data = param;
2246
+ if (camera instanceof PerspectiveCamera) {
2247
+ camera.near = data.near;
2248
+ camera.far = data.far;
2249
+ camera.fov = data.fov;
2250
+ camera.aspect = data.aspect;
2251
+ return camera;
2252
+ }
2253
+ return new PerspectiveCamera(data.fov, data.aspect, data.near, data.far);
2254
+ }
2255
+ case "Orthographic":
2256
+ {
2257
+ let data = param;
2258
+ if (camera instanceof OrthographicCamera) {
2259
+ camera.near = data.near;
2260
+ camera.far = data.far;
2261
+ camera.left = data.left;
2262
+ camera.right = data.right;
2263
+ camera.top = data.top;
2264
+ camera.bottom = data.bottom;
2265
+ return camera;
2266
+ }
2267
+ return new OrthographicCamera(data.left, data.right, data.top, data.bottom, data.near, data.far);
2268
+ }
2269
+ default:
2270
+ {
2271
+ throw new Error("Invalid camera type");
2272
+ }
2220
2273
  }
2221
2274
  }
2222
- if ("left" in param.param && "right" in param.param && "top" in param.param && "bottom" in param.param) {
2223
- if (camera instanceof OrthographicCamera) {
2224
- camera.near = param.near;
2225
- camera.far = param.far;
2226
- camera.left = param.param.left;
2227
- camera.right = param.param.right;
2228
- camera.top = param.param.top;
2229
- camera.bottom = param.param.bottom;
2230
- return camera;
2231
- }
2232
- else {
2233
- return new OrthographicCamera(param.param.left, param.param.right, param.param.top, param.param.bottom, param.near, param.far);
2234
- }
2275
+ catch (error) {
2276
+ console.warn("[CameraFactory]Error occurred while updating camera: ", error);
2277
+ console.warn("[CameraFactory]Update Failed. Return old camera instead");
2278
+ return camera;
2235
2279
  }
2236
- return camera;
2237
2280
  }
2238
2281
  }
2239
2282
 
2240
- const DefaultCameraParam = {
2283
+ const DefaultPerspectiveCameraParam = {
2241
2284
  near: 0.1,
2242
2285
  far: 1000,
2243
- param: {
2244
- fov: 50,
2245
- aspect: 1,
2246
- }
2286
+ type: "Perspective",
2287
+ fov: 50,
2288
+ aspect: 1,
2289
+ };
2290
+ const DefaultOrthographicCameraParam = {
2291
+ type: "Orthographic",
2292
+ near: 0.1,
2293
+ far: 1000,
2294
+ left: -1,
2295
+ right: 1,
2296
+ top: 1,
2297
+ bottom: -1,
2247
2298
  };
2299
+ const DefaultCameraParam = JSON.parse(JSON.stringify(DefaultPerspectiveCameraParam));
2248
2300
 
2249
2301
  const DefaultViewportParam = {
2250
2302
  elementId: null,
@@ -3338,4 +3390,4 @@ class TransformGizmo extends Pawn {
3338
3390
  }
3339
3391
  }
3340
3392
 
3341
- export { Actor, AssetManager, AttachmentRules, BoxActor, BoxComponent, Controller, DefaultAAParams, DefaultAppParam, DefaultBloomParam, DefaultCameraParam, DefaultDOFParam, DefaultDenoiseParam, DefaultGTAOParam, DefaultOutlineParams, DefaultPostProcessParam, DefaultRendererParameters, DefaultSSRParam, DefaultSkyParam, DefaultViewportParam, DefaultWorldParam, Delegate, DirectionalLightActor, DirectionalLightComponent, FirstPerson, GeometryAssetPointer, LabelComponent, LevelActor, LevelComponent, MaterialAssetPointer, MeshComponent, Orbital, PlaneActor, PlaneComponent, PostProcessStepType, SceneComponent, SkyActor, SkyComponent, SphereComponent, TAssetPointer, TSmartPointer, TextureAssetPointer, ThreeJsApp, ThreeObjectLibrary, TransformGizmo, Viewport, WebGPUPostProcessFactory, World };
3393
+ export { Actor, AssetManager, AttachmentRules, BoxActor, BoxComponent, Controller, DefaultAAParams, DefaultAppParam, DefaultBloomParam, DefaultCameraParam, DefaultDOFParam, DefaultDenoiseParam, DefaultGTAOParam, DefaultOrthographicCameraParam, DefaultOutlineParams, DefaultPerspectiveCameraParam, DefaultPostProcessParam, DefaultRendererParameters, DefaultSSRParam, DefaultSkyParam, DefaultViewportParam, DefaultWorldParam, Delegate, DirectionalLightActor, DirectionalLightComponent, FirstPerson, GeometryAssetPointer, LabelComponent, LevelActor, LevelComponent, MaterialAssetPointer, MeshComponent, Orbital, PlaneActor, PlaneComponent, PostProcessStepType, SceneComponent, SkyActor, SkyComponent, SphereComponent, TAssetPointer, TSmartPointer, TextureAssetPointer, ThreeJsApp, ThreeObjectLibrary, TransformGizmo, Viewport, WebGPUPostProcessFactory, World };
package/dist/index.d.ts CHANGED
@@ -10,8 +10,8 @@ export { ThreeJsApp } from "./lythreeframe/ThreeJsApp";
10
10
  export { Controller } from "./lythreeframe/Frame/Controller";
11
11
  export { Viewport } from "./lythreeframe/Frame/Viewport";
12
12
  export { World } from "./lythreeframe/Frame/World";
13
- export type { CameraParam } from './lythreeframe/Frame/Parameters/CameraParameter';
14
- export { DefaultCameraParam } from './lythreeframe/Frame/Parameters/CameraParameter';
13
+ export type { CameraParam, PerspectiveCameraParam, OrthographicCameraParam } from './lythreeframe/Frame/Parameters/CameraParameter';
14
+ export { DefaultCameraParam, DefaultPerspectiveCameraParam, DefaultOrthographicCameraParam } from './lythreeframe/Frame/Parameters/CameraParameter';
15
15
  export type { AppParam, AppClass } from "./lythreeframe/Frame/Parameters/AppParameter";
16
16
  export { DefaultAppParam } from "./lythreeframe/Frame/Parameters/AppParameter";
17
17
  export type { ViewportParam } from './lythreeframe/Frame/Parameters/ViewportParameters';
@@ -1,16 +1,22 @@
1
1
  export interface CameraParam {
2
- near: number;
3
- far: number;
4
- param: PerspectiveCameraParam | OrthographicCameraParam;
2
+ type: "Perspective" | "Orthographic";
5
3
  }
6
- export interface PerspectiveCameraParam {
4
+ export interface PerspectiveCameraParam extends CameraParam {
5
+ type: "Perspective";
7
6
  fov: number;
8
7
  aspect: number;
8
+ near: number;
9
+ far: number;
9
10
  }
10
- export interface OrthographicCameraParam {
11
+ export interface OrthographicCameraParam extends CameraParam {
12
+ type: "Orthographic";
11
13
  left: number;
12
14
  right: number;
13
15
  top: number;
14
16
  bottom: number;
17
+ near: number;
18
+ far: number;
15
19
  }
20
+ export declare const DefaultPerspectiveCameraParam: PerspectiveCameraParam;
21
+ export declare const DefaultOrthographicCameraParam: OrthographicCameraParam;
16
22
  export declare const DefaultCameraParam: CameraParam;
@@ -18,9 +18,12 @@ export declare class Viewport {
18
18
  private postProcessing;
19
19
  private outlineObjects;
20
20
  constructor(app: ThreeJsApp, viewportParam: ViewportParam, rendererParam: RendererParameters, postProcessParam: PostProcessParam);
21
+ protected createRenderer(rendererParam: RendererParameters): void;
22
+ protected createLabelRenderer(): void;
21
23
  init(): void;
22
24
  setupPostProcess(): void;
23
25
  updatePostProcess(steps: PostProcessStepParam[]): void;
26
+ updateRendererSettings(data: RendererParameters): void;
24
27
  addOutlineObject(obj: Object3D): void;
25
28
  setOutlineObjects(objects: Object3D[]): void;
26
29
  removeOutlineObject(obj: Object3D): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lythreeframe",
3
- "version": "1.2.27",
3
+ "version": "1.2.29",
4
4
  "description": "Three.js 封装",
5
5
  "main": "dist/bundle.cjs.js",
6
6
  "module": "dist/bundle.esm.js",