UNPKG

@shopware-ag/dive

Version:

Shopware Spatial Framework

68 lines (67 loc) 3.06 kB
var p = Object.defineProperty; var _ = (t, r, e) => r in t ? p(t, r, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[r] = e; var i = (t, r, e) => _(t, typeof r != "symbol" ? r + "" : r, e); import { Object3D as l, AxesHelper as d, Color as n, Matrix4 as c, OrthographicCamera as m, MathUtils as x, Vector4 as w } from "three/webgpu"; import "../../chunks/FileTypes-Ck6z0LqE.mjs"; import { C as o } from "../../chunks/PerspectiveCamera-35cBnxwG.mjs"; import "three/examples/jsm/loaders/HDRLoader.js"; import "three/tsl"; import { A as u, a as g, b as C, c as b, d as A, e as H } from "../../chunks/AxisHelperColors-JLBHYQDi.mjs"; import h from "three-spritetext"; class k extends l { constructor() { super(); i(this, "_axesHelper"); this._axesHelper = new d(0.5), this._axesHelper.layers.mask = o, this._axesHelper.material.depthTest = !1, this._axesHelper.position.set(0, 0, -1), this._axesHelper.setColors( new n(u), new n(g), new n(C) ); const e = new h("X", 0.2, b), s = new h("Y", 0.2, A), a = new h("Z", 0.2, H); e.layers.mask = o, s.layers.mask = o, a.layers.mask = o, e.position.set(0.7, 0, 0), s.position.set(0, 0.7, 0), a.position.set(0, 0, 0.7), this._axesHelper.add(e), this._axesHelper.add(s), this._axesHelper.add(a), this.add(this._axesHelper); } setFromCameraMatrix(e) { this._axesHelper.rotation.setFromRotationMatrix( new c().extractRotation(e).invert() ); } } class L { constructor(r, e, s) { i(this, "uuid", x.generateUUID()); i(this, "_axes"); i(this, "_orthographicCamera"); i(this, "_restoreViewport", new w()); this._renderer = r, this._scene = e, this._camera = s, this._orthographicCamera = new m( -1, 1, 1, -1, 0.1, 100 ), this._orthographicCamera.name = "OrientationDisplayCamera", this._orthographicCamera.layers.mask = o, this._scene.add(this._orthographicCamera), this._axes = new k(), this._axes.name = "OrientationDisplayAxes", this._scene.add(this._axes); } tick() { var a; if (!this._renderer.webgpurenderer.initialized) return; const r = this._scene.background ?? null, e = this._renderer.webgpurenderer.autoClear; this._scene.background = null, this._renderer.webgpurenderer.getViewport(this._restoreViewport); const s = ((a = this._renderer.webgpurenderer.domElement) == null ? void 0 : a.clientHeight) ?? this._restoreViewport.w; this._renderer.webgpurenderer.setViewport( 0, Math.max(0, s - 150), 150, 150 ), this._renderer.webgpurenderer.autoClear = !1, this._axes.setFromCameraMatrix(this._camera.matrix), this._renderer.webgpurenderer.render( this._scene, this._orthographicCamera ), this._renderer.webgpurenderer.setViewport(this._restoreViewport), this._renderer.webgpurenderer.autoClear = e, this._scene.background = r; } dispose() { this._scene.remove(this._axes), this._scene.remove(this._orthographicCamera); } } export { L as OrientationDisplay, k as OrientationDisplayAxes };