three-base 1.0.87 → 1.0.88
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/lib/ThreeBase.d.ts +2 -0
- package/lib/ThreeBase.js +12 -8
- package/lib/ThreeBase.ts +14 -9
- package/lib/stroke_pass/stroke_pass.js +2 -10
- package/lib/stroke_pass/stroke_pass.ts +1 -10
- package/lib/threeUtils.d.ts +1 -1
- package/lib/threeUtils.js +3 -3
- package/lib/threeUtils.ts +4 -3
- package/package.json +1 -1
package/lib/ThreeBase.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ export default class ThreeBase extends EventDispatcher {
|
|
|
19
19
|
setsize(width: number, height: number): void;
|
|
20
20
|
controlsPosition: Transition;
|
|
21
21
|
controlsCenter: Transition;
|
|
22
|
+
gridHelper: void;
|
|
23
|
+
axesHelper: void;
|
|
22
24
|
init(): void;
|
|
23
25
|
resetLookAt({ position, center, }: {
|
|
24
26
|
position?: Vector3;
|
package/lib/ThreeBase.js
CHANGED
|
@@ -122,15 +122,19 @@ export default class ThreeBase extends EventDispatcher {
|
|
|
122
122
|
});
|
|
123
123
|
return controlsCenter;
|
|
124
124
|
})();
|
|
125
|
+
// 网格辅助线
|
|
126
|
+
gridHelper = (() => {
|
|
127
|
+
const gridHelper = new GridHelper(1000, 100, 0x303030, 0x303030);
|
|
128
|
+
gridHelper.visible = threeUtils.isDev;
|
|
129
|
+
this.scene.add(gridHelper);
|
|
130
|
+
})();
|
|
131
|
+
//坐标轴线
|
|
132
|
+
axesHelper = (() => {
|
|
133
|
+
const axesHelper = new AxesHelper(10000);
|
|
134
|
+
axesHelper.visible = threeUtils.isDev;
|
|
135
|
+
this.scene.add(axesHelper);
|
|
136
|
+
})();
|
|
125
137
|
init() {
|
|
126
|
-
// 非开发模式添加网格辅助线
|
|
127
|
-
if (threeUtils.isDev) {
|
|
128
|
-
const gridHelper = new GridHelper(1000, 100, 0x303030, 0x303030);
|
|
129
|
-
gridHelper.position.set(0, -0.001, 0);
|
|
130
|
-
this.scene.add(gridHelper);
|
|
131
|
-
const axesHelper = new AxesHelper(10000);
|
|
132
|
-
this.scene.add(axesHelper);
|
|
133
|
-
}
|
|
134
138
|
// 资源加载进度有更新时, 需要渲染
|
|
135
139
|
threeLoader.addEventListener("progress", () => {
|
|
136
140
|
this.needRender = true;
|
package/lib/ThreeBase.ts
CHANGED
|
@@ -146,16 +146,21 @@ export default class ThreeBase extends EventDispatcher {
|
|
|
146
146
|
return controlsCenter;
|
|
147
147
|
})();
|
|
148
148
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
149
|
+
// 网格辅助线
|
|
150
|
+
gridHelper = (() => {
|
|
151
|
+
const gridHelper = new GridHelper(1000, 100, 0x303030, 0x303030);
|
|
152
|
+
gridHelper.visible = threeUtils.isDev;
|
|
153
|
+
this.scene.add(gridHelper);
|
|
154
|
+
})();
|
|
155
|
+
|
|
156
|
+
//坐标轴线
|
|
157
|
+
axesHelper=(()=>{
|
|
158
|
+
const axesHelper = new AxesHelper(10000);
|
|
159
|
+
axesHelper.visible = threeUtils.isDev;
|
|
160
|
+
this.scene.add(axesHelper);
|
|
161
|
+
})();
|
|
158
162
|
|
|
163
|
+
init() {
|
|
159
164
|
// 资源加载进度有更新时, 需要渲染
|
|
160
165
|
threeLoader.addEventListener("progress", () => {
|
|
161
166
|
this.needRender = true;
|
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
* @Author: xiaosihan
|
|
3
3
|
* @Date: 2023-05-09 00:35:17
|
|
4
4
|
* @Last Modified by: xiaosihan
|
|
5
|
-
* @Last Modified time: 2023-05-09 02:
|
|
5
|
+
* @Last Modified time: 2023-05-09 02:33:28
|
|
6
6
|
*/
|
|
7
|
-
import { LinearFilter, RGBAFormat, Vector2, WebGLRenderTarget,
|
|
8
|
-
import { CopyShader } from "three/examples/jsm/shaders/CopyShader.js";
|
|
7
|
+
import { LinearFilter, RGBAFormat, Vector2, WebGLRenderTarget, NoBlending, Scene, RawShaderMaterial, Color, NormalBlending } from "three";
|
|
9
8
|
import FullScreenQuad from "./FullScreenQuad";
|
|
10
9
|
// 选中对象的纹理
|
|
11
10
|
const selectTextureTarget = new WebGLRenderTarget(512, 512, { minFilter: LinearFilter, magFilter: LinearFilter, format: RGBAFormat });
|
|
@@ -16,13 +15,6 @@ const blur2TextureTarget = new WebGLRenderTarget(512, 512, { minFilter: LinearFi
|
|
|
16
15
|
const size = new Vector2();
|
|
17
16
|
// 创建一个渲染工具 用于处理纹理
|
|
18
17
|
const fsQuad = new FullScreenQuad(); // 渲染辅助器
|
|
19
|
-
//拷贝纹理着色器
|
|
20
|
-
const copyShader = new ShaderMaterial({
|
|
21
|
-
...CopyShader,
|
|
22
|
-
depthTest: false,
|
|
23
|
-
depthWrite: false,
|
|
24
|
-
transparent: true
|
|
25
|
-
});
|
|
26
18
|
// 描边着色器
|
|
27
19
|
const blurShader = new RawShaderMaterial({
|
|
28
20
|
uniforms: {
|
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
* @Author: xiaosihan
|
|
3
3
|
* @Date: 2023-05-09 00:35:17
|
|
4
4
|
* @Last Modified by: xiaosihan
|
|
5
|
-
* @Last Modified time: 2023-05-09 02:
|
|
5
|
+
* @Last Modified time: 2023-05-09 02:33:28
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import { Camera, LinearFilter, Object3D, RGBAFormat, Vector2, WebGLRenderTarget, WebGLRenderer, ShaderMaterial, NoBlending, Scene, RawShaderMaterial, Color, NormalBlending } from "three";
|
|
9
|
-
import { CopyShader } from "three/examples/jsm/shaders/CopyShader.js";
|
|
10
9
|
import FullScreenQuad from "./FullScreenQuad";
|
|
11
10
|
|
|
12
11
|
// 选中对象的纹理
|
|
@@ -23,14 +22,6 @@ const size = new Vector2();
|
|
|
23
22
|
// 创建一个渲染工具 用于处理纹理
|
|
24
23
|
const fsQuad = new FullScreenQuad(); // 渲染辅助器
|
|
25
24
|
|
|
26
|
-
//拷贝纹理着色器
|
|
27
|
-
const copyShader = new ShaderMaterial({
|
|
28
|
-
...CopyShader,
|
|
29
|
-
depthTest: false,
|
|
30
|
-
depthWrite: false,
|
|
31
|
-
transparent: true
|
|
32
|
-
});
|
|
33
|
-
|
|
34
25
|
// 描边着色器
|
|
35
26
|
const blurShader = new RawShaderMaterial({
|
|
36
27
|
uniforms: {
|
package/lib/threeUtils.d.ts
CHANGED
|
@@ -35,7 +35,7 @@ declare class ThreeUtils extends EventDispatcher {
|
|
|
35
35
|
alignBottom(object3d: Object3D | BufferGeometry, y?: number): void;
|
|
36
36
|
centerObject3D(object3d: Object3D | BufferGeometry): void;
|
|
37
37
|
center(object3d: Object3D | BufferGeometry): void;
|
|
38
|
-
scaleTo(object3d: Object3D | BufferGeometry, size?: number): void;
|
|
38
|
+
scaleTo(object3d: Object3D | BufferGeometry, size?: number, key?: Partial<["x", "y", "z"]>): void;
|
|
39
39
|
}
|
|
40
40
|
declare const threeUtils: ThreeUtils;
|
|
41
41
|
export default threeUtils;
|
package/lib/threeUtils.js
CHANGED
|
@@ -162,10 +162,10 @@ class ThreeUtils extends EventDispatcher {
|
|
|
162
162
|
center(object3d) {
|
|
163
163
|
this.centerObject3D(object3d);
|
|
164
164
|
}
|
|
165
|
-
|
|
166
|
-
scaleTo(object3d, size = 1) {
|
|
165
|
+
// 使用指定的纬度计算, 缩放至指定大小
|
|
166
|
+
scaleTo(object3d, size = 1, key = ["x", "y", "z"]) {
|
|
167
167
|
const originSize = this.getSize(object3d);
|
|
168
|
-
const scale = size / Math.max(
|
|
168
|
+
const scale = size / Math.max(...key.map(k => originSize[k]));
|
|
169
169
|
if (object3d instanceof Object3D) {
|
|
170
170
|
object3d.scale.multiplyScalar(scale);
|
|
171
171
|
object3d.updateMatrixWorld(true);
|
package/lib/threeUtils.ts
CHANGED
|
@@ -188,10 +188,11 @@ class ThreeUtils extends EventDispatcher {
|
|
|
188
188
|
this.centerObject3D(object3d);
|
|
189
189
|
}
|
|
190
190
|
|
|
191
|
-
|
|
192
|
-
scaleTo(object3d: Object3D | BufferGeometry, size: number = 1) {
|
|
191
|
+
// 使用指定的纬度计算, 缩放至指定大小
|
|
192
|
+
scaleTo(object3d: Object3D | BufferGeometry, size: number = 1, key: Partial<["x", "y", "z"]> = ["x", "y", "z"]) {
|
|
193
193
|
const originSize = this.getSize(object3d);
|
|
194
|
-
const scale = size / Math.max(
|
|
194
|
+
const scale = size / Math.max(...key.map(k => originSize[k]));
|
|
195
|
+
|
|
195
196
|
if (object3d instanceof Object3D) {
|
|
196
197
|
object3d.scale.multiplyScalar(scale);
|
|
197
198
|
object3d.updateMatrixWorld(true);
|