three-base 1.0.22 → 1.0.24

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.
@@ -2,7 +2,7 @@
2
2
  * @Author: xiaosihan
3
3
  * @Date: 2023-02-21 09:55:52
4
4
  * @Last Modified by: xiaosihan
5
- * @Last Modified time: 2023-02-21 10:12:33
5
+ * @Last Modified time: 2023-02-26 14:42:21
6
6
  */
7
7
 
8
8
  import * as THREE from 'three'
@@ -26,22 +26,31 @@ export default class InstancedGroupMesh extends THREE.Mesh {
26
26
 
27
27
  const { meshCollect, instanceCollect } = this
28
28
 
29
+ group.updateMatrixWorld(true);
30
+
29
31
  // collect all mesh counts, in case there are more than one copy of the same mesh in this group
30
32
  group.traverse((obj) => {
31
- if (obj.type !== 'Mesh') return
32
33
  const mesh = obj as THREE.Mesh
34
+ if (mesh.isMesh) {
33
35
 
34
- // this is important
35
- mesh.updateMatrix()
36
+ mesh.matrixWorld.decompose(mesh.position, mesh.quaternion, mesh.scale);
37
+ mesh.rotation.setFromQuaternion(mesh.quaternion);
38
+ mesh.updateMatrix();
36
39
 
37
- // same geometry and same material consider as the same mesh
38
- const uuid = mesh.geometry.uuid + '/' + (mesh.material as THREE.Material).uuid
40
+ // same geometry and same material consider as the same mesh
41
+ const uuid = mesh.geometry.uuid + '/' + (mesh.material as THREE.Material).uuid
39
42
 
40
- if (meshCollect[uuid]) {
41
- meshCollect[uuid].push(mesh)
43
+ if (meshCollect[uuid]) {
44
+ meshCollect[uuid].push(mesh)
45
+ } else {
46
+ meshCollect[uuid] = [mesh]
47
+ }
42
48
  } else {
43
- meshCollect[uuid] = [mesh]
49
+ obj.position.set(0, 0, 0);
50
+ obj.scale.set(1, 1, 1);
51
+ obj.rotation.set(0, 0, 0);
44
52
  }
53
+
45
54
  })
46
55
 
47
56
  // create all instances
package/lib/ThreeBase.ts CHANGED
@@ -224,15 +224,10 @@ export default class ThreeBase extends EventDispatcher {
224
224
  getLookAt() {
225
225
  const position = this.camera.position.toArray().map(v => round(v, 3));
226
226
  const center = this.controls.target.toArray().map(v => round(v, 3));
227
- if (threeUtils.isDev) {
228
- console.log(`
229
- center: new Vector3(${center.join(",")}),
230
- position: new Vector3(${position.join(",")})
231
- `);
232
- }
233
227
  return {
228
+ center: new Vector3(...center),
234
229
  position: new Vector3(...position),
235
- center: new Vector3(...center)
230
+ centerPosition: `center: new Vector3(${center.join(",")}),position: new Vector3(${position.join(",")})`
236
231
  }
237
232
  }
238
233
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "three-base",
3
- "version": "1.0.22",
3
+ "version": "1.0.24",
4
4
  "description": "three 3d three-base",
5
5
  "keywords": [
6
6
  "three",
@@ -1,32 +0,0 @@
1
- # Draco 3D Data Compression
2
-
3
- Draco is an open-source library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics.
4
-
5
- [Website](https://google.github.io/draco/) | [GitHub](https://github.com/google/draco)
6
-
7
- ## Contents
8
-
9
- This folder contains three utilities:
10
-
11
- * `draco_decoder.js` — Emscripten-compiled decoder, compatible with any modern browser.
12
- * `draco_decoder.wasm` — WebAssembly decoder, compatible with newer browsers and devices.
13
- * `draco_wasm_wrapper.js` — JavaScript wrapper for the WASM decoder.
14
-
15
- Each file is provided in two variations:
16
-
17
- * **Default:** Latest stable builds, tracking the project's [master branch](https://github.com/google/draco).
18
- * **glTF:** Builds targeted by the [glTF mesh compression extension](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_draco_mesh_compression), tracking the [corresponding Draco branch](https://github.com/google/draco/tree/gltf_2.0_draco_extension).
19
-
20
- Either variation may be used with `THREE.DRACOLoader`:
21
-
22
- ```js
23
- var dracoLoader = new THREE.DRACOLoader();
24
- dracoLoader.setDecoderPath('path/to/decoders/');
25
- dracoLoader.setDecoderConfig({type: 'js'}); // (Optional) Override detection of WASM support.
26
- ```
27
-
28
- Further [documentation on GitHub](https://github.com/google/draco/tree/master/javascript/example#static-loading-javascript-decoder).
29
-
30
- ## License
31
-
32
- [Apache License 2.0](https://github.com/google/draco/blob/master/LICENSE)