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.
- package/README-ja.md +2 -4
- package/README-kr.md +2 -4
- package/README-zh.md +2 -4
- package/README.md +2 -4
- package/build/playcanvas-extras.js +29 -11
- package/build/playcanvas-extras.mjs/exporters/core-exporter.js +1 -1
- package/build/playcanvas-extras.mjs/exporters/gltf-exporter.js +1 -1
- package/build/playcanvas-extras.mjs/exporters/usdz-exporter.js +1 -1
- package/build/playcanvas-extras.mjs/gizmo/axis-shapes.js +1 -1
- package/build/playcanvas-extras.mjs/gizmo/gizmo.js +7 -2
- package/build/playcanvas-extras.mjs/gizmo/mesh-tri-data.js +1 -1
- package/build/playcanvas-extras.mjs/gizmo/rotate-gizmo.d.ts +2 -2
- package/build/playcanvas-extras.mjs/gizmo/rotate-gizmo.js +21 -11
- package/build/playcanvas-extras.mjs/gizmo/scale-gizmo.js +1 -1
- package/build/playcanvas-extras.mjs/gizmo/transform-gizmo.js +5 -2
- package/build/playcanvas-extras.mjs/gizmo/translate-gizmo.js +1 -1
- package/build/playcanvas-extras.mjs/gizmo/tri.js +1 -1
- package/build/playcanvas-extras.mjs/index.js +1 -1
- package/build/playcanvas-extras.mjs/mini-stats/cpu-timer.js +1 -1
- package/build/playcanvas-extras.mjs/mini-stats/gpu-timer.js +1 -1
- package/build/playcanvas-extras.mjs/mini-stats/graph.js +1 -1
- package/build/playcanvas-extras.mjs/mini-stats/mini-stats.js +1 -1
- package/build/playcanvas-extras.mjs/mini-stats/render2d.js +1 -1
- package/build/playcanvas-extras.mjs/mini-stats/stats-timer.js +1 -1
- package/build/playcanvas-extras.mjs/mini-stats/word-atlas.js +1 -1
- package/build/playcanvas-extras.mjs/render-passes/render-pass-bloom.js +1 -1
- package/build/playcanvas-extras.mjs/render-passes/render-pass-camera-frame.js +1 -1
- package/build/playcanvas-extras.mjs/render-passes/render-pass-compose.js +1 -1
- package/build/playcanvas-extras.mjs/render-passes/render-pass-downsample.js +1 -1
- package/build/playcanvas-extras.mjs/render-passes/render-pass-taa.js +1 -1
- package/build/playcanvas-extras.mjs/render-passes/render-pass-upsample.js +1 -1
- package/build/playcanvas.d.ts +40 -33
- package/build/playcanvas.dbg.js +20 -7
- package/build/playcanvas.dbg.mjs/core/core.js +2 -2
- package/build/playcanvas.dbg.mjs/framework/parsers/gsplat-resource.js +8 -1
- package/build/playcanvas.dbg.mjs/framework/parsers/ply.js +4 -2
- package/build/playcanvas.dbg.mjs/index.js +3 -1
- package/build/playcanvas.dbg.mjs/scene/gsplat/shader-generator-gsplat.js +14 -2
- package/build/playcanvas.js +10 -6
- package/build/playcanvas.min.js +2 -2
- package/build/playcanvas.min.mjs/core/core.js +1 -1
- package/build/playcanvas.min.mjs/framework/parsers/ply.js +1 -1
- package/build/playcanvas.min.mjs/index.js +1 -1
- package/build/playcanvas.min.mjs/scene/gsplat/shader-generator-gsplat.js +1 -1
- package/build/playcanvas.mjs/core/core.js +2 -2
- package/build/playcanvas.mjs/framework/parsers/ply.js +1 -1
- package/build/playcanvas.mjs/index.js +2 -0
- package/build/playcanvas.mjs/scene/gsplat/shader-generator-gsplat.js +13 -1
- package/build/playcanvas.prf.js +10 -6
- package/build/playcanvas.prf.mjs/core/core.js +2 -2
- package/build/playcanvas.prf.mjs/framework/parsers/ply.js +1 -1
- package/build/playcanvas.prf.mjs/index.js +2 -0
- package/build/playcanvas.prf.mjs/scene/gsplat/shader-generator-gsplat.js +13 -1
- package/package.json +3 -3
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
4772
|
-
_this.
|
|
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.
|
|
4805
|
-
this.
|
|
4806
|
-
|
|
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.
|
|
4809
|
-
|
|
4810
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
}
|
|
@@ -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
|
-
|
|
95
|
-
|
|
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.
|
|
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
|
-
|
|
106
|
-
this.
|
|
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
|
-
|
|
165
|
-
this.
|
|
166
|
-
|
|
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
|
-
|
|
169
|
-
|
|
170
|
-
|
|
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,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* PlayCanvas Engine v1.68.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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';
|