@onerjs/core 8.26.9 → 8.27.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 (47) hide show
  1. package/Buffers/buffer.d.ts +4 -3
  2. package/Buffers/buffer.js +4 -3
  3. package/Buffers/buffer.js.map +1 -1
  4. package/Cameras/Inputs/BaseCameraPointersInput.js +2 -0
  5. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  6. package/Cameras/Inputs/geospatialCameraMouseWheelInput.d.ts +18 -0
  7. package/Cameras/Inputs/geospatialCameraMouseWheelInput.js +21 -0
  8. package/Cameras/Inputs/geospatialCameraMouseWheelInput.js.map +1 -0
  9. package/Cameras/Inputs/geospatialCameraPointersInput.d.ts +45 -0
  10. package/Cameras/Inputs/geospatialCameraPointersInput.js +119 -0
  11. package/Cameras/Inputs/geospatialCameraPointersInput.js.map +1 -0
  12. package/Cameras/Inputs/index.d.ts +2 -0
  13. package/Cameras/Inputs/index.js +2 -0
  14. package/Cameras/Inputs/index.js.map +1 -1
  15. package/Cameras/geospatialCamera.d.ts +89 -0
  16. package/Cameras/geospatialCamera.js +268 -0
  17. package/Cameras/geospatialCamera.js.map +1 -0
  18. package/Cameras/geospatialCameraInputsManager.d.ts +23 -0
  19. package/Cameras/geospatialCameraInputsManager.js +33 -0
  20. package/Cameras/geospatialCameraInputsManager.js.map +1 -0
  21. package/Cameras/index.d.ts +1 -0
  22. package/Cameras/index.js +1 -0
  23. package/Cameras/index.js.map +1 -1
  24. package/Engines/constants.d.ts +2 -0
  25. package/Engines/constants.js +2 -0
  26. package/Engines/constants.js.map +1 -1
  27. package/Events/pointerEvents.d.ts +4 -0
  28. package/Events/pointerEvents.js.map +1 -1
  29. package/Materials/PBR/openPbrMaterial.d.ts +3 -0
  30. package/Materials/PBR/openPbrMaterial.js +18 -8
  31. package/Materials/PBR/openPbrMaterial.js.map +1 -1
  32. package/Materials/PBR/pbrBaseMaterial.d.ts +3 -0
  33. package/Materials/PBR/pbrBaseMaterial.js +11 -2
  34. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  35. package/Meshes/geometry.js +26 -25
  36. package/Meshes/geometry.js.map +1 -1
  37. package/Rendering/geometryBufferRenderer.js +58 -0
  38. package/Rendering/geometryBufferRenderer.js.map +1 -1
  39. package/Shaders/geometry.fragment.js +14 -0
  40. package/Shaders/geometry.fragment.js.map +1 -1
  41. package/Shaders/geometry.vertex.js +20 -0
  42. package/Shaders/geometry.vertex.js.map +1 -1
  43. package/ShadersWGSL/geometry.fragment.js +14 -0
  44. package/ShadersWGSL/geometry.fragment.js.map +1 -1
  45. package/ShadersWGSL/geometry.vertex.js +20 -0
  46. package/ShadersWGSL/geometry.vertex.js.map +1 -1
  47. package/package.json +1 -1
@@ -11,7 +11,7 @@ import { Tags } from "../Misc/tags.js";
11
11
  import { extractMinAndMax } from "../Maths/math.functions.js";
12
12
  import { EngineStore } from "../Engines/engineStore.js";
13
13
  import { useOpenGLOrientationForUV } from "../Compat/compatibilityOptions.js";
14
- import { CopyFloatData } from "../Buffers/bufferUtils.js";
14
+ import { CopyFloatData, GetTypedArrayData } from "../Buffers/bufferUtils.js";
15
15
  /**
16
16
  * Class used to store geometry data (vertex buffers + index buffer)
17
17
  */
@@ -815,36 +815,37 @@ export class Geometry {
815
815
  * @returns a new geometry object
816
816
  */
817
817
  copy(id) {
818
- const vertexData = new VertexData();
819
- vertexData.indices = [];
820
- const indices = this.getIndices();
818
+ const geometry = new Geometry(id, this._scene);
819
+ const indices = this.getIndices(undefined, true);
821
820
  if (indices) {
822
- for (let index = 0; index < indices.length; index++) {
823
- vertexData.indices.push(indices[index]);
824
- }
821
+ geometry.setIndices(indices);
825
822
  }
826
823
  let updatable = false;
827
- let stopChecking = false;
828
824
  let kind;
829
825
  for (kind in this._vertexBuffers) {
830
- const data = this.getVerticesData(kind);
831
- if (data) {
832
- if (data instanceof Float32Array) {
833
- vertexData.set(new Float32Array(data), kind);
834
- }
835
- else {
836
- vertexData.set(data.slice(0), kind);
837
- }
838
- if (!stopChecking) {
839
- const vb = this.getVertexBuffer(kind);
840
- if (vb) {
841
- updatable = vb.isUpdatable();
842
- stopChecking = !updatable;
843
- }
844
- }
826
+ const vb = this.getVertexBuffer(kind);
827
+ const bufferData = vb.getData();
828
+ if (!bufferData) {
829
+ continue;
845
830
  }
846
- }
847
- const geometry = new Geometry(id, this._scene, vertexData, updatable);
831
+ const isUpdatable = vb.isUpdatable();
832
+ const size = vb.getSize();
833
+ const { type, byteOffset, byteStride, normalized } = vb;
834
+ updatable = updatable || isUpdatable;
835
+ const data = GetTypedArrayData(bufferData, size, type, byteOffset, byteStride, normalized, this._totalVertices, true);
836
+ const newVb = new VertexBuffer(this._engine, data, kind, {
837
+ updatable: isUpdatable,
838
+ useBytes: true,
839
+ stride: byteStride,
840
+ size: size,
841
+ offset: byteOffset,
842
+ type: type,
843
+ normalized: normalized,
844
+ takeBufferOwnership: true,
845
+ });
846
+ geometry.setVerticesBuffer(newVb, this._totalVertices);
847
+ }
848
+ geometry._updatable = updatable;
848
849
  geometry.delayLoadState = this.delayLoadState;
849
850
  geometry.delayLoadingFile = this.delayLoadingFile;
850
851
  geometry._delayLoadingFunction = this._delayLoadingFunction;