ohzi-core 11.2.0 → 11.2.2

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ohzi-core",
3
3
  "sideEffects": false,
4
- "version": "11.2.0",
4
+ "version": "11.2.2",
5
5
  "description": "OHZI Interactive Core Library",
6
6
  "source": "src/index.js",
7
7
  "module": "build/index.module.js",
@@ -44,7 +44,7 @@
44
44
  "registry": "https://registry.npmjs.org/"
45
45
  },
46
46
  "dependencies": {
47
- "three": "0.157.0"
47
+ "three": "0.161.0"
48
48
  },
49
49
  "standardx": {
50
50
  "ignore": [
package/src/Browser.js CHANGED
@@ -1,22 +1,16 @@
1
1
 
2
2
  class Browser
3
3
  {
4
- init(opr, chrome)
4
+ async init(opr, chrome)
5
5
  {
6
6
  this.browser_name = '';
7
7
  this.agent = navigator.userAgent.toLowerCase();
8
8
 
9
- // vr specific
10
- this.vr_browser_keywords = ['oculusbrowser', 'oculus', 'vive', 'rift', 'windowsmr', 'cardboard', 'daydream', 'wolvic'];
11
- this.vr_browser_name = this.vr_browser_keywords.find(keyword => this.agent.includes(keyword));
12
- // Check for WebXR support (indicating VR capabilities)
13
9
  this.has_web_xr_support = 'xr' in navigator;
10
+ this.is_vr = this.has_web_xr_support && await navigator.xr.isSessionSupported('immersive-vr');
14
11
 
15
12
  switch (true)
16
13
  {
17
- case this.vr_browser_name !== undefined && this.has_web_xr_support:
18
- this.browser_name = this.vr_browser_name;
19
- break;
20
14
  case this.agent.indexOf('edge') > -1:
21
15
  this.browser_name = 'edge_ie';
22
16
  break;
@@ -71,11 +65,6 @@ class Browser
71
65
  return this.browser_name === 'edge_chromium';
72
66
  }
73
67
 
74
- get is_vr()
75
- {
76
- return this.vr_browser_keywords.includes(this.browser_name);
77
- }
78
-
79
68
  get has_webm()
80
69
  {
81
70
  return !!(this.is_chrome || this.is_firefox || this.is_edge_chromium);
package/src/Graphics.js CHANGED
@@ -2,6 +2,7 @@ import { CameraManager } from './CameraManager';
2
2
  import { Capabilities } from './Capabilities';
3
3
  import { OScreen } from './OScreen';
4
4
  import { SceneManager } from './SceneManager';
5
+
5
6
  import { BaseRender } from './render_mode/BaseRender';
6
7
  import { Blitter } from './render_utilities/Blitter';
7
8
  import { DepthAndNormalsRenderer } from './render_utilities/DepthAndNormalsRenderer';
@@ -175,6 +176,30 @@ class Graphics
175
176
  this.__apply_override_material(scene, undefined);
176
177
  }
177
178
 
179
+ compile(scene, camera, RT, override_mat)
180
+ {
181
+ this.__apply_override_material(scene, override_mat);
182
+
183
+ this._renderer.setRenderTarget(RT === undefined ? null : RT);
184
+ this._renderer.compile(scene || SceneManager.current,
185
+ camera || CameraManager.current);
186
+
187
+ this.__apply_override_material(scene, undefined);
188
+ }
189
+
190
+ async compile_async(scene, camera, RT, override_mat, target_scene)
191
+ {
192
+ this.__apply_override_material(scene, override_mat);
193
+
194
+ this._renderer.setRenderTarget(RT === undefined ? null : RT);
195
+ const promise = this._renderer.compileAsync(scene || SceneManager.current,
196
+ camera || CameraManager.current, target_scene);
197
+
198
+ this.__apply_override_material(scene, undefined);
199
+
200
+ return promise;
201
+ }
202
+
178
203
  render_scene(scene)
179
204
  {
180
205
  if (scene.on_pre_render)
@@ -1,20 +1,11 @@
1
- import edge_line_vert from '../shaders/edges/edges.vert';
2
- import edge_line_frag from '../shaders/edges/edges.frag';
3
- import corners_vert from '../shaders/edges/corners.vert';
4
1
  import corners_frag from '../shaders/edges/corners.frag';
2
+ import corners_vert from '../shaders/edges/corners.vert';
3
+ import edge_line_frag from '../shaders/edges/edges.frag';
4
+ import edge_line_vert from '../shaders/edges/edges.vert';
5
5
 
6
6
  import * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils.js';
7
7
 
8
- import { Object3D } from 'three';
9
- import { ShaderMaterial } from 'three';
10
- import { Color } from 'three';
11
- import { Mesh } from 'three';
12
- import { EdgesGeometry } from 'three';
13
- import { LineSegments } from 'three';
14
- import { LineBasicMaterial } from 'three';
15
- import { Vector3 } from 'three';
16
- import { PlaneGeometry } from 'three';
17
- import { BufferAttribute } from 'three';
8
+ import { BufferAttribute, Color, EdgesGeometry, LineBasicMaterial, LineSegments, Mesh, Object3D, PlaneGeometry, ShaderMaterial, Vector3 } from 'three';
18
9
 
19
10
  class EdgeMesh extends Object3D
20
11
  {
@@ -114,7 +105,7 @@ class EdgeMesh extends Object3D
114
105
  buffer_geometries.push(geometry);
115
106
  }
116
107
 
117
- return BufferGeometryUtils.mergeBufferGeometries(buffer_geometries);
108
+ return BufferGeometryUtils.mergeGeometries(buffer_geometries);
118
109
  }
119
110
 
120
111
  __get_corners_geometry(geometry_vertices)
@@ -135,7 +126,7 @@ class EdgeMesh extends Object3D
135
126
  plane_geometry.setAttribute('w_pos', new BufferAttribute(pos_array, 3));
136
127
  circle_buffer_geometries.push(plane_geometry);
137
128
  }
138
- return BufferGeometryUtils.mergeBufferGeometries(circle_buffer_geometries);
129
+ return BufferGeometryUtils.mergeGeometries(circle_buffer_geometries);
139
130
  }
140
131
 
141
132
  set_visible(boolean)
@@ -17,7 +17,7 @@ class Arrow extends Mesh
17
17
  const cone_geometry = new ConeGeometry(0.1, cone_height, 32);
18
18
  cone_geometry.translate(0, cylinder_height + cone_height / 2, 0);
19
19
 
20
- const buffer_geometry = BufferGeometryUtils.mergeBufferGeometries([cylinder_geo, cone_geometry]);
20
+ const buffer_geometry = BufferGeometryUtils.mergeGeometries([cylinder_geo, cone_geometry]);
21
21
  buffer_geometry.rotateX(3.14 / 2);
22
22
 
23
23
  const material = new MeshBasicMaterial({ color: color });
@@ -1,43 +1,49 @@
1
1
  import { AbstractLoader } from './AbstractLoader';
2
2
 
3
3
  import { HDRCubeTextureLoader as THDRCubeTextureLoader } from 'three/examples/jsm/loaders/HDRCubeTextureLoader.js';
4
- import { UnsignedByteType } from 'three';
5
4
 
6
5
  class HDRCubeTextureLoader extends AbstractLoader
7
6
  {
8
- constructor(resource_id, url, size)
7
+ constructor(resource_id, url, extension, size)
9
8
  {
10
9
  super(resource_id, url, size);
11
10
  this.loader = new THDRCubeTextureLoader();
12
- this.url_suffix = ['/px.hdr', '/nx.hdr', '/py.hdr', '/ny.hdr', '/pz.hdr', '/nz.hdr'];
11
+ this.loader.setPath(url + '/');
12
+ // this.loader.setDataType(UnsignedByteType);
13
+ this.urls = [
14
+ `px.${extension}`,
15
+ `nx.${extension}`,
16
+ `py.${extension}`,
17
+ `ny.${extension}`,
18
+ `pz.${extension}`,
19
+ `nz.${extension}`
20
+ ];
13
21
  }
14
22
 
15
23
  on_preloaded_finished(resource_container)
16
24
  {
17
25
  if (resource_container.resources_by_url[this.url] === undefined)
18
26
  {
19
- this.loader.setPath(this.url)
20
- .setDataType(UnsignedByteType)
21
- .load(this.url_suffix, (hdr) =>
22
- {
23
- resource_container.set_resource(this.resource_id, this.url, hdr);
27
+ this.loader.load(this.urls, (hdr) =>
28
+ {
29
+ resource_container.set_resource(this.resource_id, this.url, hdr);
24
30
 
25
- this.__update_downloaded_bytes(1, 1);
26
- this.__loading_ended();
27
- },
28
- (xhr) =>
29
- {
31
+ this.__update_downloaded_bytes(1, 1);
32
+ this.__loading_ended();
33
+ },
34
+ (xhr) =>
35
+ {
30
36
  // if (xhr)
31
37
  // {
32
38
  // let total = xhr.total || this.total_bytes;
33
39
  // this.__update_downloaded_bytes(xhr.loaded, total);
34
40
  // }
35
- },
36
- (msg) =>
37
- {
38
- this.__set_error(msg + '\n\n\t If the error says something about unexpected token < in JSON then the probably the problem is related to the file not being found. Check the name and path of the resource');
39
- this.__loading_ended();
40
- });
41
+ },
42
+ (msg) =>
43
+ {
44
+ this.__set_error(msg + '\n\n\t If the error says something about unexpected token < in JSON then the probably the problem is related to the file not being found. Check the name and path of the resource');
45
+ this.__loading_ended();
46
+ });
41
47
  }
42
48
  else
43
49
  {
@@ -36,7 +36,7 @@ class GeometryBatcher
36
36
  }
37
37
 
38
38
  const buffer_attribute = new BufferAttribute(new Float32Array(attr_accessor_uvs), 2);
39
- const buffer_geometry = BufferGeometryUtils.mergeBufferGeometries(buffer_geometries);
39
+ const buffer_geometry = BufferGeometryUtils.mergeGeometries(buffer_geometries);
40
40
  buffer_geometry.setAttribute('attr_accessor_uv', buffer_attribute);
41
41
 
42
42
  this.batches.push(new GeometryBatch(buffer_geometry, texture_width));
@@ -41,7 +41,7 @@ class MeshBatcher
41
41
  }
42
42
  }
43
43
 
44
- const buffer_geometry = BufferGeometryUtils.mergeBufferGeometries(geometries);
44
+ const buffer_geometry = BufferGeometryUtils.mergeGeometries(geometries);
45
45
 
46
46
  const buffer_attribute = new BufferAttribute(new Float32Array(attr_mesh_id), 1);
47
47
  buffer_geometry.setAttribute('mesh_id', buffer_attribute);