playcanvas 1.68.0 → 1.68.1

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.
Files changed (55) hide show
  1. package/README-ja.md +2 -4
  2. package/README-kr.md +2 -4
  3. package/README-zh.md +2 -4
  4. package/README.md +2 -4
  5. package/build/playcanvas-extras.js +29 -11
  6. package/build/playcanvas-extras.mjs/exporters/core-exporter.js +1 -1
  7. package/build/playcanvas-extras.mjs/exporters/gltf-exporter.js +1 -1
  8. package/build/playcanvas-extras.mjs/exporters/usdz-exporter.js +1 -1
  9. package/build/playcanvas-extras.mjs/gizmo/axis-shapes.js +1 -1
  10. package/build/playcanvas-extras.mjs/gizmo/gizmo.js +7 -2
  11. package/build/playcanvas-extras.mjs/gizmo/mesh-tri-data.js +1 -1
  12. package/build/playcanvas-extras.mjs/gizmo/rotate-gizmo.d.ts +2 -2
  13. package/build/playcanvas-extras.mjs/gizmo/rotate-gizmo.js +21 -11
  14. package/build/playcanvas-extras.mjs/gizmo/scale-gizmo.js +1 -1
  15. package/build/playcanvas-extras.mjs/gizmo/transform-gizmo.js +5 -2
  16. package/build/playcanvas-extras.mjs/gizmo/translate-gizmo.js +1 -1
  17. package/build/playcanvas-extras.mjs/gizmo/tri.js +1 -1
  18. package/build/playcanvas-extras.mjs/index.js +1 -1
  19. package/build/playcanvas-extras.mjs/mini-stats/cpu-timer.js +1 -1
  20. package/build/playcanvas-extras.mjs/mini-stats/gpu-timer.js +1 -1
  21. package/build/playcanvas-extras.mjs/mini-stats/graph.js +1 -1
  22. package/build/playcanvas-extras.mjs/mini-stats/mini-stats.js +1 -1
  23. package/build/playcanvas-extras.mjs/mini-stats/render2d.js +1 -1
  24. package/build/playcanvas-extras.mjs/mini-stats/stats-timer.js +1 -1
  25. package/build/playcanvas-extras.mjs/mini-stats/word-atlas.js +1 -1
  26. package/build/playcanvas-extras.mjs/render-passes/render-pass-bloom.js +1 -1
  27. package/build/playcanvas-extras.mjs/render-passes/render-pass-camera-frame.js +1 -1
  28. package/build/playcanvas-extras.mjs/render-passes/render-pass-compose.js +1 -1
  29. package/build/playcanvas-extras.mjs/render-passes/render-pass-downsample.js +1 -1
  30. package/build/playcanvas-extras.mjs/render-passes/render-pass-taa.js +1 -1
  31. package/build/playcanvas-extras.mjs/render-passes/render-pass-upsample.js +1 -1
  32. package/build/playcanvas.d.ts +40 -33
  33. package/build/playcanvas.dbg.js +20 -7
  34. package/build/playcanvas.dbg.mjs/core/core.js +2 -2
  35. package/build/playcanvas.dbg.mjs/framework/parsers/gsplat-resource.js +8 -1
  36. package/build/playcanvas.dbg.mjs/framework/parsers/ply.js +4 -2
  37. package/build/playcanvas.dbg.mjs/index.js +3 -1
  38. package/build/playcanvas.dbg.mjs/scene/gsplat/shader-generator-gsplat.js +14 -2
  39. package/build/playcanvas.js +10 -6
  40. package/build/playcanvas.min.js +2 -2
  41. package/build/playcanvas.min.mjs/core/core.js +1 -1
  42. package/build/playcanvas.min.mjs/framework/parsers/ply.js +1 -1
  43. package/build/playcanvas.min.mjs/index.js +1 -1
  44. package/build/playcanvas.min.mjs/scene/gsplat/shader-generator-gsplat.js +1 -1
  45. package/build/playcanvas.mjs/core/core.js +2 -2
  46. package/build/playcanvas.mjs/framework/parsers/ply.js +1 -1
  47. package/build/playcanvas.mjs/index.js +2 -0
  48. package/build/playcanvas.mjs/scene/gsplat/shader-generator-gsplat.js +13 -1
  49. package/build/playcanvas.prf.js +10 -6
  50. package/build/playcanvas.prf.mjs/core/core.js +2 -2
  51. package/build/playcanvas.prf.mjs/framework/parsers/ply.js +1 -1
  52. package/build/playcanvas.prf.mjs/index.js +2 -0
  53. package/build/playcanvas.prf.mjs/scene/gsplat/shader-generator-gsplat.js +13 -1
  54. package/package.json +3 -3
  55. package/scripts/parsers/vox-parser.js +1 -1
package/README-ja.md CHANGED
@@ -3,7 +3,8 @@
3
3
  <img width="200" src="https://s3-eu-west-1.amazonaws.com/static.playcanvas.com/platform/images/logo/playcanvas-logo-medium.png"/>
4
4
 
5
5
  # PlayCanvas WebGL Game Engine
6
- [Docs](https://developer.playcanvas.com) | [Examples](https://playcanvas.github.io) | [Forum](https://forum.playcanvas.com) | [Blog](https://blog.playcanvas.com)
6
+
7
+ [API Reference](https://api.playcanvas.com/modules/Engine.html) | [User Manual](https://developer.playcanvas.com) | [Examples](https://playcanvas.github.io) | [Forum](https://forum.playcanvas.com) | [Blog](https://blog.playcanvas.com)
7
8
 
8
9
  PlayCanvasは、オープンソースのゲームエンジンです。
9
10
 
@@ -11,7 +12,6 @@ HTML5とWebGLを使用してゲームやインタラクティブな3Dコンテ
11
12
 
12
13
  [![NPM version][npm-badge]][npm-url]
13
14
  [![Minzipped size][minzip-badge]][minzip-url]
14
- [![Language grade: JavaScript][code-quality-badge]][code-quality-url]
15
15
  [![Average time to resolve an issue][resolution-badge]][isitmaintained-url]
16
16
  [![Percentage of issues still open][open-issues-badge]][isitmaintained-url]
17
17
  [![Twitter][twitter-badge]][twitter-url]
@@ -162,8 +162,6 @@ PlayCanvas エンジンは、HTML5 アプリやゲームを作成するための
162
162
  [npm-url]: https://www.npmjs.com/package/playcanvas
163
163
  [minzip-badge]: https://img.shields.io/bundlephobia/minzip/playcanvas
164
164
  [minzip-url]: https://bundlephobia.com/result?p=playcanvas
165
- [code-quality-badge]: https://img.shields.io/lgtm/grade/javascript/g/playcanvas/engine.svg?logo=lgtm&logoWidth=18
166
- [code-quality-url]: https://lgtm.com/projects/g/playcanvas/engine/context:javascript
167
165
  [resolution-badge]: https://isitmaintained.com/badge/resolution/playcanvas/engine.svg
168
166
  [open-issues-badge]: https://isitmaintained.com/badge/open/playcanvas/engine.svg
169
167
  [isitmaintained-url]: https://isitmaintained.com/project/playcanvas/engine
package/README-kr.md CHANGED
@@ -3,7 +3,8 @@
3
3
  <img width="200" src="https://s3-eu-west-1.amazonaws.com/static.playcanvas.com/platform/images/logo/playcanvas-logo-medium.png"/>
4
4
 
5
5
  # PlayCanvas WebGL Game Engine
6
- [Docs](https://developer.playcanvas.com) | [Examples](https://playcanvas.github.io) | [Forum](https://forum.playcanvas.com) | [Blog](https://blog.playcanvas.com)
6
+
7
+ [API Reference](https://api.playcanvas.com/modules/Engine.html) | [User Manual](https://developer.playcanvas.com) | [Examples](https://playcanvas.github.io) | [Forum](https://forum.playcanvas.com) | [Blog](https://blog.playcanvas.com)
7
8
 
8
9
  PlayCanvas는 오픈소스 게임 엔진입니다.
9
10
 
@@ -11,7 +12,6 @@ HTML5와 WebGL을 사용하여 게임과 인터랙티브한 3D 콘텐츠를 모
11
12
 
12
13
  [![NPM version][npm-badge]][npm-url]
13
14
  [![Minzipped size][minzip-badge]][minzip-url]
14
- [![Language grade: JavaScript][code-quality-badge]][code-quality-url]
15
15
  [![Average time to resolve an issue][resolution-badge]][isitmaintained-url]
16
16
  [![Percentage of issues still open][open-issues-badge]][isitmaintained-url]
17
17
  [![Twitter][twitter-badge]][twitter-url]
@@ -170,8 +170,6 @@ PlayCanvas 엔진은 HTML5 앱 및 게임을 만들기 위한 오픈 소스 엔
170
170
  [npm-url]: https://www.npmjs.com/package/playcanvas
171
171
  [minzip-badge]: https://img.shields.io/bundlephobia/minzip/playcanvas
172
172
  [minzip-url]: https://bundlephobia.com/result?p=playcanvas
173
- [code-quality-badge]: https://img.shields.io/lgtm/grade/javascript/g/playcanvas/engine.svg?logo=lgtm&logoWidth=18
174
- [code-quality-url]: https://lgtm.com/projects/g/playcanvas/engine/context:javascript
175
173
  [resolution-badge]: https://isitmaintained.com/badge/resolution/playcanvas/engine.svg
176
174
  [open-issues-badge]: https://isitmaintained.com/badge/open/playcanvas/engine.svg
177
175
  [isitmaintained-url]: https://isitmaintained.com/project/playcanvas/engine
package/README-zh.md CHANGED
@@ -3,13 +3,13 @@
3
3
  <img width="200" src="https://s3-eu-west-1.amazonaws.com/static.playcanvas.com/platform/images/logo/playcanvas-logo-medium.png"/>
4
4
 
5
5
  # PlayCanvas WebGL 游戏引擎
6
- [开发者站点](https://developer.playcanvas.com) | [例子](https://playcanvas.github.io) | [论坛](https://forum.playcanvas.com) | [博客](https://blog.playcanvas.com)
6
+
7
+ [API 参考](https://api.playcanvas.com/modules/Engine.html) | [用户手册](https://developer.playcanvas.com) | [例子](https://playcanvas.github.io) | [论坛](https://forum.playcanvas.com) | [博客](https://blog.playcanvas.com)
7
8
 
8
9
  PlayCanvas 是一款使用 HTML5 和 WebGL 技术运行游戏以及其他 3D 内容的开源游戏引擎,PlayCanvas 以其独特的性能实现了在任何手机移动端和桌面浏览器端均可以流畅运行。
9
10
 
10
11
  [![NPM version][npm-badge]][npm-url]
11
12
  [![Minzipped size][minzip-badge]][minzip-url]
12
- [![Language grade: JavaScript][code-quality-badge]][code-quality-url]
13
13
  [![Average time to resolve an issue][resolution-badge]][isitmaintained-url]
14
14
  [![Percentage of issues still open][open-issues-badge]][isitmaintained-url]
15
15
  [![Twitter][twitter-badge]][twitter-url]
@@ -170,8 +170,6 @@ The PlayCanvas Engine is released under the [MIT](https://opensource.org/license
170
170
  [npm-url]: https://www.npmjs.com/package/playcanvas
171
171
  [minzip-badge]: https://img.shields.io/bundlephobia/minzip/playcanvas
172
172
  [minzip-url]: https://bundlephobia.com/result?p=playcanvas
173
- [code-quality-badge]: https://img.shields.io/lgtm/grade/javascript/g/playcanvas/engine.svg?logo=lgtm&logoWidth=18
174
- [code-quality-url]: https://lgtm.com/projects/g/playcanvas/engine/context:javascript
175
173
  [resolution-badge]: https://isitmaintained.com/badge/resolution/playcanvas/engine.svg
176
174
  [open-issues-badge]: https://isitmaintained.com/badge/open/playcanvas/engine.svg
177
175
  [isitmaintained-url]: https://isitmaintained.com/project/playcanvas/engine
package/README.md CHANGED
@@ -3,13 +3,13 @@
3
3
  <img width="200" src="https://s3-eu-west-1.amazonaws.com/static.playcanvas.com/platform/images/logo/playcanvas-logo-medium.png"/>
4
4
 
5
5
  # PlayCanvas WebGL Game Engine
6
- [Docs](https://developer.playcanvas.com) | [Examples](https://playcanvas.github.io) | [Forum](https://forum.playcanvas.com) | [Blog](https://blog.playcanvas.com)
6
+
7
+ [API Reference](https://api.playcanvas.com/modules/Engine.html) | [User Manual](https://developer.playcanvas.com) | [Examples](https://playcanvas.github.io) | [Forum](https://forum.playcanvas.com) | [Blog](https://blog.playcanvas.com)
7
8
 
8
9
  PlayCanvas is an open-source game engine. It uses HTML5 and WebGL to run games and other interactive 3D content in any mobile or desktop browser.
9
10
 
10
11
  [![NPM version][npm-badge]][npm-url]
11
12
  [![Minzipped size][minzip-badge]][minzip-url]
12
- [![Language grade: JavaScript][code-quality-badge]][code-quality-url]
13
13
  [![Average time to resolve an issue][resolution-badge]][isitmaintained-url]
14
14
  [![Percentage of issues still open][open-issues-badge]][isitmaintained-url]
15
15
  [![Twitter][twitter-badge]][twitter-url]
@@ -167,8 +167,6 @@ For Editor related bugs and issues, please refer to the [Editor's repo](https://
167
167
  [npm-url]: https://www.npmjs.com/package/playcanvas
168
168
  [minzip-badge]: https://img.shields.io/bundlephobia/minzip/playcanvas
169
169
  [minzip-url]: https://bundlephobia.com/result?p=playcanvas
170
- [code-quality-badge]: https://img.shields.io/lgtm/grade/javascript/g/playcanvas/engine.svg?logo=lgtm&logoWidth=18
171
- [code-quality-url]: https://lgtm.com/projects/g/playcanvas/engine/context:javascript
172
170
  [resolution-badge]: https://isitmaintained.com/badge/resolution/playcanvas/engine.svg
173
171
  [open-issues-badge]: https://isitmaintained.com/badge/open/playcanvas/engine.svg
174
172
  [isitmaintained-url]: https://isitmaintained.com/project/playcanvas/engine
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  (function (global, factory) {
@@ -3212,6 +3212,7 @@
3212
3212
  var xdir = new playcanvas.Vec3();
3213
3213
  var MIN_GIZMO_SCALE = 1e-4;
3214
3214
  var PERS_SCALE_RATIO = 0.3;
3215
+ var PERS_CANVAS_RATIO = 1300;
3215
3216
  var ORTHO_SCALE_RATIO = 0.32;
3216
3217
  var GIZMO_LOCAL = 'local';
3217
3218
  var GIZMO_WORLD = 'world';
@@ -3305,7 +3306,11 @@
3305
3306
  };
3306
3307
  _proto._updateScale = function _updateScale() {
3307
3308
  if (this._camera.projection === playcanvas.PROJECTION_PERSPECTIVE) {
3308
- this._scale = this._getProjFrustumWidth() * PERS_SCALE_RATIO;
3309
+ var canvasMult = 1;
3310
+ if (this._device.width > 0 && this._device.height > 0) {
3311
+ canvasMult = PERS_CANVAS_RATIO / Math.min(this._device.width, this._device.height);
3312
+ }
3313
+ this._scale = this._getProjFrustumWidth() * canvasMult * PERS_SCALE_RATIO;
3309
3314
  } else {
3310
3315
  this._scale = this._camera.orthoHeight * ORTHO_SCALE_RATIO;
3311
3316
  }
@@ -3704,6 +3709,9 @@
3704
3709
  }
3705
3710
  } else {
3706
3711
  angle = mouseWPos.dot(tmpV2$4.normalize()) * ROTATE_SCALE;
3712
+ if (this._camera.projection === playcanvas.PROJECTION_ORTHOGRAPHIC) {
3713
+ angle /= this._camera.orthoHeight || 1;
3714
+ }
3707
3715
  }
3708
3716
  }
3709
3717
  return {
@@ -4768,9 +4776,8 @@
4768
4776
  _this._nodeOffsets.clear();
4769
4777
  });
4770
4778
  app.on('update', function () {
4771
- var cameraPos = _this._camera.entity.getPosition();
4772
- _this._faceAxisLookAt(cameraPos);
4773
- _this._xyzAxisLookAt(cameraPos);
4779
+ _this._faceAxisLookAtCamera();
4780
+ _this._xyzAxisLookAtCamera();
4774
4781
  if (_this._dragging) {
4775
4782
  var gizmoPos = _this.root.getPosition();
4776
4783
  _this._drawGuideAngleLine(gizmoPos, _this._selectedAxis, _this._guideAngleStart, _this._guideAngleStartColor);
@@ -4801,13 +4808,24 @@
4801
4808
  tmpV1.x += 90;
4802
4809
  return tmpV1;
4803
4810
  };
4804
- _proto._faceAxisLookAt = function _faceAxisLookAt(position) {
4805
- this._shapes.face.entity.lookAt(position);
4806
- this._shapes.face.entity.rotateLocal(90, 0, 0);
4811
+ _proto._faceAxisLookAtCamera = function _faceAxisLookAtCamera() {
4812
+ if (this._camera.projection === playcanvas.PROJECTION_PERSPECTIVE) {
4813
+ this._shapes.face.entity.lookAt(this._camera.entity.getPosition());
4814
+ this._shapes.face.entity.rotateLocal(90, 0, 0);
4815
+ } else {
4816
+ tmpQ1.copy(this._camera.entity.getRotation());
4817
+ tmpQ1.getEulerAngles(tmpV1);
4818
+ this._shapes.face.entity.setEulerAngles(tmpV1);
4819
+ this._shapes.face.entity.rotateLocal(-90, 0, 0);
4820
+ }
4807
4821
  };
4808
- _proto._xyzAxisLookAt = function _xyzAxisLookAt(position) {
4809
- tmpV1.copy(position).sub(this.root.getPosition());
4810
- tmpQ1.copy(this.root.getRotation()).invert().transformVector(tmpV1, tmpV1);
4822
+ _proto._xyzAxisLookAtCamera = function _xyzAxisLookAtCamera() {
4823
+ if (this._camera.projecion === playcanvas.PROJECTION_PERSPECTIVE) {
4824
+ tmpV1.copy(this._camera.entity.getPosition()).sub(this.root.getPosition());
4825
+ tmpQ1.copy(this.root.getRotation()).invert().transformVector(tmpV1, tmpV1);
4826
+ } else {
4827
+ tmpV1.copy(this._camera.entity.forward).mulScalar(-1);
4828
+ }
4811
4829
  var angle = Math.atan2(tmpV1.z, tmpV1.y) * playcanvas.math.RAD_TO_DEG;
4812
4830
  this._shapes.x.entity.setLocalEulerAngles(0, angle - 90, -90);
4813
4831
  angle = Math.atan2(tmpV1.x, tmpV1.z) * playcanvas.math.RAD_TO_DEG;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  import { Texture, FILTER_LINEAR, ADDRESS_CLAMP_TO_EDGE, RenderTarget, createShaderFromCode, BlendState, drawQuadWithShader } from 'playcanvas';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  import { CoreExporter } from './core-exporter.js';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  import { CoreExporter } from './core-exporter.js';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  import { Vec3, Quat, createCone, createCylinder, Entity, createBox, createTorus, createPlane, createMesh, Material, MeshInstance } from 'playcanvas';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  import { Vec3, Mat4, EventHandler, math, Entity, PROJECTION_PERSPECTIVE } from 'playcanvas';
@@ -12,6 +12,7 @@ const xstart = new Vec3();
12
12
  const xdir = new Vec3();
13
13
  const MIN_GIZMO_SCALE = 1e-4;
14
14
  const PERS_SCALE_RATIO = 0.3;
15
+ const PERS_CANVAS_RATIO = 1300;
15
16
  const ORTHO_SCALE_RATIO = 0.32;
16
17
  const GIZMO_LOCAL = 'local';
17
18
  const GIZMO_WORLD = 'world';
@@ -111,7 +112,11 @@ class Gizmo extends EventHandler {
111
112
  }
112
113
  _updateScale() {
113
114
  if (this._camera.projection === PROJECTION_PERSPECTIVE) {
114
- this._scale = this._getProjFrustumWidth() * PERS_SCALE_RATIO;
115
+ let canvasMult = 1;
116
+ if (this._device.width > 0 && this._device.height > 0) {
117
+ canvasMult = PERS_CANVAS_RATIO / Math.min(this._device.width, this._device.height);
118
+ }
119
+ this._scale = this._getProjFrustumWidth() * canvasMult * PERS_SCALE_RATIO;
115
120
  } else {
116
121
  this._scale = this._camera.orthoHeight * ORTHO_SCALE_RATIO;
117
122
  }
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  import { Vec3, Mat4, Quat, Mesh } from 'playcanvas';
@@ -91,8 +91,8 @@ export class RotateGizmo extends TransformGizmo {
91
91
  _setDiskProp(prop: any, value: any): void;
92
92
  _drawGuideAngleLine(pos: any, axis: any, point: any, color?: Color): void;
93
93
  _getLookAtEulerAngles(position: any): any;
94
- _faceAxisLookAt(position: any): void;
95
- _xyzAxisLookAt(position: any): void;
94
+ _faceAxisLookAtCamera(): void;
95
+ _xyzAxisLookAtCamera(): void;
96
96
  _drag(state: any): void;
97
97
  _storeNodeRotations(): void;
98
98
  _setNodeRotations(axis: any, angleDelta: any): void;
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
- import { Vec3, Mat4, Quat, Color, math } from 'playcanvas';
6
+ import { Vec3, Mat4, Quat, Color, PROJECTION_PERSPECTIVE, math } from 'playcanvas';
7
7
  import { AxisDisk } from './axis-shapes.js';
8
8
  import { GIZMO_LOCAL } from './gizmo.js';
9
9
  import { TransformGizmo } from './transform-gizmo.js';
@@ -102,9 +102,8 @@ class RotateGizmo extends TransformGizmo {
102
102
  this._nodeOffsets.clear();
103
103
  });
104
104
  app.on('update', () => {
105
- const cameraPos = this._camera.entity.getPosition();
106
- this._faceAxisLookAt(cameraPos);
107
- this._xyzAxisLookAt(cameraPos);
105
+ this._faceAxisLookAtCamera();
106
+ this._xyzAxisLookAtCamera();
108
107
  if (this._dragging) {
109
108
  const gizmoPos = this.root.getPosition();
110
109
  this._drawGuideAngleLine(gizmoPos, this._selectedAxis, this._guideAngleStart, this._guideAngleStartColor);
@@ -161,13 +160,24 @@ class RotateGizmo extends TransformGizmo {
161
160
  tmpV1.x += 90;
162
161
  return tmpV1;
163
162
  }
164
- _faceAxisLookAt(position) {
165
- this._shapes.face.entity.lookAt(position);
166
- this._shapes.face.entity.rotateLocal(90, 0, 0);
163
+ _faceAxisLookAtCamera() {
164
+ if (this._camera.projection === PROJECTION_PERSPECTIVE) {
165
+ this._shapes.face.entity.lookAt(this._camera.entity.getPosition());
166
+ this._shapes.face.entity.rotateLocal(90, 0, 0);
167
+ } else {
168
+ tmpQ1.copy(this._camera.entity.getRotation());
169
+ tmpQ1.getEulerAngles(tmpV1);
170
+ this._shapes.face.entity.setEulerAngles(tmpV1);
171
+ this._shapes.face.entity.rotateLocal(-90, 0, 0);
172
+ }
167
173
  }
168
- _xyzAxisLookAt(position) {
169
- tmpV1.copy(position).sub(this.root.getPosition());
170
- tmpQ1.copy(this.root.getRotation()).invert().transformVector(tmpV1, tmpV1);
174
+ _xyzAxisLookAtCamera() {
175
+ if (this._camera.projecion === PROJECTION_PERSPECTIVE) {
176
+ tmpV1.copy(this._camera.entity.getPosition()).sub(this.root.getPosition());
177
+ tmpQ1.copy(this.root.getRotation()).invert().transformVector(tmpV1, tmpV1);
178
+ } else {
179
+ tmpV1.copy(this._camera.entity.forward).mulScalar(-1);
180
+ }
171
181
  let angle = Math.atan2(tmpV1.z, tmpV1.y) * math.RAD_TO_DEG;
172
182
  this._shapes.x.entity.setLocalEulerAngles(0, angle - 90, -90);
173
183
  angle = Math.atan2(tmpV1.x, tmpV1.z) * math.RAD_TO_DEG;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  import { Vec3 } from 'playcanvas';
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
- import { Vec3, Quat, Color, CULLFACE_NONE, PROJECTION_PERSPECTIVE, math, StandardMaterial, BLEND_NORMAL, CULLFACE_BACK } from 'playcanvas';
6
+ import { Vec3, Quat, Color, CULLFACE_NONE, PROJECTION_PERSPECTIVE, math, PROJECTION_ORTHOGRAPHIC, StandardMaterial, BLEND_NORMAL, CULLFACE_BACK } from 'playcanvas';
7
7
  import { Gizmo } from './gizmo.js';
8
8
 
9
9
  const tmpV1 = new Vec3();
@@ -316,6 +316,9 @@ class TransformGizmo extends Gizmo {
316
316
  }
317
317
  } else {
318
318
  angle = mouseWPos.dot(tmpV2.normalize()) * ROTATE_SCALE;
319
+ if (this._camera.projection === PROJECTION_ORTHOGRAPHIC) {
320
+ angle /= this._camera.orthoHeight || 1;
321
+ }
319
322
  }
320
323
  }
321
324
  return {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  import { Vec3, Quat } from 'playcanvas';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  import { Vec3 } from 'playcanvas';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  export { MiniStats } from './mini-stats/mini-stats.js';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  import { now } from 'playcanvas';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  class GpuTimer {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  class Graph {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  import { LAYERID_UI, Texture, math, FILTER_NEAREST, ADDRESS_REPEAT } from 'playcanvas';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  import { VertexFormat, SEMANTIC_POSITION, TYPE_FLOAT32, SEMANTIC_TEXCOORD0, shaderChunks, VertexBuffer, BUFFER_STREAM, IndexBuffer, INDEXFORMAT_UINT16, BUFFER_STATIC, PRIMITIVE_TRIANGLES, Mesh, Material, CULLFACE_NONE, DepthState, BlendState, BLENDEQUATION_ADD, BLENDMODE_SRC_ALPHA, BLENDMODE_ONE_MINUS_SRC_ALPHA, BLENDMODE_ONE, MeshInstance, GraphNode } from 'playcanvas';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  class StatsTimer {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  import { math, Texture, FILTER_NEAREST } from 'playcanvas';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  import { RenderPass, RenderTarget, Texture, FILTER_LINEAR, ADDRESS_CLAMP_TO_EDGE, Color, BlendState } from 'playcanvas';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  import { RenderPass, PIXELFORMAT_RGBA8, Texture, FILTER_LINEAR, ADDRESS_CLAMP_TO_EDGE, RenderTarget, RenderPassForward, RenderPassColorGrab, LAYERID_SKYBOX, LAYERID_IMMEDIATE } from 'playcanvas';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  import { RenderPassShaderQuad, TONEMAP_ACES2, shaderChunks, TONEMAP_ACES, TONEMAP_HEJL, TONEMAP_FILMIC, TONEMAP_LINEAR, Color } from 'playcanvas';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  import { RenderPassShaderQuad } from 'playcanvas';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  import { RenderPassShaderQuad, BlendState, BLENDEQUATION_ADD, BLENDMODE_CONSTANT, BLENDMODE_ONE_MINUS_CONSTANT, Texture, FILTER_LINEAR, ADDRESS_CLAMP_TO_EDGE, RenderTarget, Color } from 'playcanvas';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * PlayCanvas Engine v1.68.0 revision c318cb382
3
+ * PlayCanvas Engine v1.68.1 revision b74c2ff99
4
4
  * Copyright 2011-2024 PlayCanvas Ltd. All rights reserved.
5
5
  */
6
6
  import { RenderPassShaderQuad } from 'playcanvas';