abstract-3d 4.1.5 → 4.1.6

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 (49) hide show
  1. package/lib/renderers/dxf/color.d.ts +7 -0
  2. package/lib/renderers/dxf/color.d.ts.map +1 -0
  3. package/lib/renderers/dxf/color.js +311 -0
  4. package/lib/renderers/dxf/color.js.map +1 -0
  5. package/lib/renderers/dxf/dxf-encoding.d.ts +17 -0
  6. package/lib/renderers/dxf/dxf-encoding.d.ts.map +1 -0
  7. package/lib/renderers/dxf/dxf-encoding.js +18467 -0
  8. package/lib/renderers/dxf/dxf-encoding.js.map +1 -0
  9. package/lib/renderers/react/react-camera.d.ts +71 -0
  10. package/lib/renderers/react/react-camera.d.ts.map +1 -0
  11. package/lib/renderers/react/react-camera.js +179 -0
  12. package/lib/renderers/react/react-camera.js.map +1 -0
  13. package/lib/renderers/react/react-dimension.d.ts +16 -0
  14. package/lib/renderers/react/react-dimension.d.ts.map +1 -0
  15. package/lib/renderers/react/react-dimension.js +29 -0
  16. package/lib/renderers/react/react-dimension.js.map +1 -0
  17. package/lib/renderers/react/react-group.d.ts +23 -0
  18. package/lib/renderers/react/react-group.d.ts.map +1 -0
  19. package/lib/renderers/react/react-group.js +68 -0
  20. package/lib/renderers/react/react-group.js.map +1 -0
  21. package/lib/renderers/react/react-hotspot.d.ts +27 -0
  22. package/lib/renderers/react/react-hotspot.d.ts.map +1 -0
  23. package/lib/renderers/react/react-hotspot.js +37 -0
  24. package/lib/renderers/react/react-hotspot.js.map +1 -0
  25. package/lib/renderers/react/react-image-material.d.ts +28 -0
  26. package/lib/renderers/react/react-image-material.d.ts.map +1 -0
  27. package/lib/renderers/react/react-image-material.js +81 -0
  28. package/lib/renderers/react/react-image-material.js.map +1 -0
  29. package/lib/renderers/react/react-material.d.ts +19 -0
  30. package/lib/renderers/react/react-material.d.ts.map +1 -0
  31. package/lib/renderers/react/react-material.js +50 -0
  32. package/lib/renderers/react/react-material.js.map +1 -0
  33. package/lib/renderers/react/react-mesh.d.ts +11 -0
  34. package/lib/renderers/react/react-mesh.d.ts.map +1 -0
  35. package/lib/renderers/react/react-mesh.js +229 -0
  36. package/lib/renderers/react/react-mesh.js.map +1 -0
  37. package/lib/renderers/react/react-scene.d.ts +28 -0
  38. package/lib/renderers/react/react-scene.d.ts.map +1 -0
  39. package/lib/renderers/react/react-scene.js +20 -0
  40. package/lib/renderers/react/react-scene.js.map +1 -0
  41. package/lib/renderers/react/react-types.d.ts +7 -0
  42. package/lib/renderers/react/react-types.d.ts.map +1 -0
  43. package/lib/renderers/react/react-types.js +3 -0
  44. package/lib/renderers/react/react-types.js.map +1 -0
  45. package/lib/renderers/shared.d.ts +30 -0
  46. package/lib/renderers/shared.d.ts.map +1 -0
  47. package/lib/renderers/shared.js +164 -0
  48. package/lib/renderers/shared.js.map +1 -0
  49. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dxf-encoding.js","sourceRoot":"","sources":["../../../src/renderers/dxf/dxf-encoding.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAg1BP,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAs5epB,CAAC"}
@@ -0,0 +1,71 @@
1
+ import React from "react";
2
+ import { type GizmoHelperProps, type OrbitControlsProps } from "@react-three/drei";
3
+ import { type ThreeEvent } from "@react-three/fiber";
4
+ import { View, Scene, Vec3 } from "../../abstract-3d.js";
5
+ export type Camera = A3dPerspectiveCamera | A3dOrthographicCamera;
6
+ export type CameraType = Camera["type"];
7
+ export type A3dPerspectiveCamera = {
8
+ readonly type: "Perspective";
9
+ readonly near?: number;
10
+ readonly far?: number;
11
+ readonly fov?: number;
12
+ };
13
+ export type A3dOrthographicCamera = {
14
+ readonly type: "Orthographic";
15
+ readonly near?: number;
16
+ readonly far?: number;
17
+ };
18
+ export type BufferZones = {
19
+ readonly left?: number;
20
+ readonly right?: number;
21
+ readonly top?: number;
22
+ readonly bottom?: number;
23
+ };
24
+ export type ControlsHelper = (Viewcube | Viewport) & {
25
+ readonly props: Pick<GizmoHelperProps, "alignment" | "margin">;
26
+ };
27
+ type Viewcube = {
28
+ readonly type: "Viewcube";
29
+ readonly viewcubeProps: GenericProps;
30
+ };
31
+ type Viewport = {
32
+ readonly type: "Viewport";
33
+ readonly viewportProps: GizmoViewportProps;
34
+ };
35
+ export declare function ReactCamera({ useAnimations, camera, view, scene, controlsHelper, orbitContolsProps, bufferZones, fitPadding, }: {
36
+ readonly useAnimations: boolean;
37
+ readonly camera: Camera;
38
+ readonly view: View;
39
+ readonly scene: Scene;
40
+ readonly controlsHelper?: ControlsHelper;
41
+ readonly orbitContolsProps?: OrbitControlsProps;
42
+ readonly bufferZones?: BufferZones;
43
+ readonly fitPadding?: number;
44
+ }): React.JSX.Element;
45
+ type GizmoViewportProps = React.JSX.IntrinsicElements["group"] & {
46
+ readonly axisColors?: [string, string, string];
47
+ readonly axisScale?: [number, number, number];
48
+ readonly labels?: [string, string, string];
49
+ readonly axisHeadScale?: number;
50
+ readonly labelColor?: string;
51
+ readonly hideNegativeAxes?: boolean;
52
+ readonly hideAxisHeads?: boolean;
53
+ readonly disabled?: boolean;
54
+ readonly font?: string;
55
+ readonly onClick?: (e: ThreeEvent<MouseEvent>) => null;
56
+ readonly resetZoomAndPanOnClick?: boolean;
57
+ };
58
+ type GenericProps = {
59
+ readonly font?: string;
60
+ readonly opacity?: number;
61
+ readonly color?: string;
62
+ readonly hoverColor?: string;
63
+ readonly textColor?: string;
64
+ readonly strokeColor?: string;
65
+ readonly onClick?: (e: ThreeEvent<MouseEvent>) => null;
66
+ readonly faces?: Array<string>;
67
+ readonly resetZoomAndPanOnClick?: boolean;
68
+ };
69
+ export declare const cameraDist: (size: Vec3, fov: number) => number;
70
+ export {};
71
+ //# sourceMappingURL=react-camera.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-camera.d.ts","sourceRoot":"","sources":["../../../src/renderers/react/react-camera.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,179 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ /* eslint-disable @typescript-eslint/no-unused-vars */
4
+ import { useLayoutEffect, useRef, useState } from "react";
5
+ import { PerspectiveCamera, OrthographicCamera, OrbitControls, GizmoHelper, GizmoViewcube, GizmoViewport, } from "@react-three/drei";
6
+ import { useThree } from "@react-three/fiber";
7
+ import { exhaustiveCheck } from "ts-exhaustive-check";
8
+ import { Vector3 } from "three";
9
+ import { vec3 } from "../../abstract-3d.js";
10
+ export function ReactCamera({ useAnimations, camera, view, scene, controlsHelper, orbitContolsProps, bufferZones = {}, fitPadding = 0, }) {
11
+ const [controls, setControls] = useState(null);
12
+ const perspectiveRef = useRef(undefined);
13
+ const orthographicRef = useRef(undefined);
14
+ const initialDistRef = useRef(null);
15
+ const initialTargetRef = useRef(new Vector3());
16
+ const initialFovRef = useRef(null);
17
+ const viewPortAspect = useThree(({ viewport: { aspect } }) => aspect);
18
+ const canvasSize = useThree(({ size }) => size);
19
+ const invalidate = useThree(({ invalidate }) => invalidate);
20
+ const resetZoomOnGizmoClick = () => {
21
+ if (!controls || initialDistRef.current == null || (!perspectiveRef.current && !orthographicRef.current)) {
22
+ return;
23
+ }
24
+ const newCamera = camera.type === "Perspective" ? perspectiveRef.current : orthographicRef.current;
25
+ const target = initialTargetRef.current.clone();
26
+ controls.target.copy(target);
27
+ const dist = initialDistRef.current;
28
+ const dir = newCamera.position.clone().sub(target).normalize();
29
+ newCamera.fov = initialFovRef.current;
30
+ newCamera.zoom = 1;
31
+ newCamera.position.copy(target.clone().add(dir.multiplyScalar(dist)));
32
+ if (camera.type === "Perspective") {
33
+ const bufLeft = bufferZones.left ?? 0;
34
+ const bufRight = bufferZones.right ?? 0;
35
+ const bufTop = bufferZones.top ?? 0;
36
+ const bufBottom = bufferZones.bottom ?? 0;
37
+ const canvasW = canvasSize.width;
38
+ const canvasH = canvasSize.height;
39
+ const usableW = Math.max(1, canvasW - bufLeft - bufRight);
40
+ const usableH = Math.max(1, canvasH - bufTop - bufBottom);
41
+ newCamera.setViewOffset(usableW, usableH, -bufLeft, -bufTop, canvasW, canvasH);
42
+ }
43
+ newCamera.updateProjectionMatrix();
44
+ controls.update();
45
+ invalidate();
46
+ };
47
+ useLayoutEffect(() => {
48
+ const [posX, posY, posZ, size, sceneAspect] = getViewTransform(view, scene);
49
+ // size.x/y are scene width/height in screen space (remapped per view direction)
50
+ const screenW = size.x;
51
+ const screenH = size.y;
52
+ const fov = camera.type === "Perspective" ? camera.fov ?? 45 : 45;
53
+ // Buffer zones in CSS pixels
54
+ const bufLeft = bufferZones.left ?? 0;
55
+ const bufRight = bufferZones.right ?? 0;
56
+ const bufTop = bufferZones.top ?? 0;
57
+ const bufBottom = bufferZones.bottom ?? 0;
58
+ // Canvas size in CSS pixels — use R3F's reactive size so the effect
59
+ // re-runs on resize and is correct on first mount.
60
+ const canvasW = canvasSize.width;
61
+ const canvasH = canvasSize.height;
62
+ if (canvasW === 0 || canvasH === 0)
63
+ return;
64
+ // Usable area in CSS pixels
65
+ const usableW = Math.max(1, canvasW - bufLeft - bufRight);
66
+ const usableH = Math.max(1, canvasH - bufTop - bufBottom);
67
+ const usableAspect = usableW / usableH;
68
+ initialFovRef.current = camera.type === "Perspective" ? fov : null;
69
+ // ------------------------------------------------------------------
70
+ // ORTHOGRAPHIC
71
+ // ------------------------------------------------------------------
72
+ if (camera.type === "Orthographic" && orthographicRef.current) {
73
+ const dist = cameraDist(size, fov);
74
+ initialDistRef.current = dist;
75
+ // Fit scene into the usable area
76
+ let sceneHalfW;
77
+ let sceneHalfH;
78
+ const padFactor = 1 + fitPadding;
79
+ if (sceneAspect > usableAspect) {
80
+ // Scene wider than usable area — constrain by width
81
+ sceneHalfW = (screenW / 2) * padFactor;
82
+ sceneHalfH = (screenW / 2 / usableAspect) * padFactor;
83
+ }
84
+ else {
85
+ // Scene taller — constrain by height
86
+ sceneHalfH = (screenH / 2) * padFactor;
87
+ sceneHalfW = ((usableAspect * screenH) / 2) * padFactor;
88
+ }
89
+ // World units per CSS pixel in the usable area
90
+ const wpp = (sceneHalfW * 2) / usableW;
91
+ const hpp = (sceneHalfH * 2) / usableH;
92
+ // Extend frustum outward by buffer pixel amounts
93
+ orthographicRef.current.left = -sceneHalfW - bufLeft * wpp;
94
+ orthographicRef.current.right = sceneHalfW + bufRight * wpp;
95
+ orthographicRef.current.top = sceneHalfH + bufTop * hpp;
96
+ orthographicRef.current.bottom = -sceneHalfH - bufBottom * hpp;
97
+ orthographicRef.current.position.set(posX * dist, posY * dist, posZ * dist);
98
+ orthographicRef.current.zoom = 1;
99
+ orthographicRef.current.updateProjectionMatrix();
100
+ // ------------------------------------------------------------------
101
+ // PERSPECTIVE
102
+ // ------------------------------------------------------------------
103
+ }
104
+ else if (camera.type === "Perspective" && perspectiveRef.current) {
105
+ const fovRad = (fov * Math.PI) / 180;
106
+ // Horizontal FOV across just the *usable* area (not the full canvas) —
107
+ // this is what the camera's fov/aspect should describe.
108
+ const fovHRad = 2 * Math.atan(Math.tan(fovRad / 2) * usableAspect);
109
+ // Fit the scene into the usable area only. No fraction math needed —
110
+ // fov/aspect now directly describe the usable area's frustum.
111
+ const distForH = screenH / 2 / Math.tan(fovRad / 2) + size.z * 0.5;
112
+ const distForW = screenW / 2 / Math.tan(fovHRad / 2) + size.z * 0.5;
113
+ const dist = Math.max(distForH, distForW) * (1 + fitPadding);
114
+ initialDistRef.current = dist;
115
+ perspectiveRef.current.fov = fov;
116
+ perspectiveRef.current.aspect = usableAspect;
117
+ perspectiveRef.current.position.set(posX * dist, posY * dist, posZ * dist);
118
+ // Slice/extend the rendered frustum from the usable-area-sized window
119
+ // out to the full canvas, asymmetrically per buffer side.
120
+ perspectiveRef.current.setViewOffset(usableW, usableH, -bufLeft, -bufTop, canvasW, canvasH);
121
+ perspectiveRef.current.updateProjectionMatrix();
122
+ }
123
+ //}, [camera, viewPortAspect, canvasSize, bufferZones, view, scene, fitPadding]);
124
+ }, [camera, viewPortAspect]);
125
+ return (_jsxs(_Fragment, { children: [_jsx(PerspectiveCamera, { ref: perspectiveRef, near: camera.near, far: camera.far, fov: camera.type === "Perspective" ? camera.fov : 75, aspect: viewPortAspect, manual: true, makeDefault: camera.type === "Perspective" }), _jsx(OrthographicCamera, { ref: orthographicRef, up: [0, 1, 0], near: camera.near, far: camera.far, manual: true, makeDefault: camera.type === "Orthographic" }), _jsx(ControlsWrapper, { ...orbitContolsProps, setControls: (c) => {
126
+ setControls(c);
127
+ } }), (() => {
128
+ switch (controlsHelper?.type) {
129
+ case "Viewcube":
130
+ return (_jsx(GizmoHelper, { ...controlsHelper.props, onTarget: () => {
131
+ if (controlsHelper.viewcubeProps.resetZoomAndPanOnClick) {
132
+ resetZoomOnGizmoClick();
133
+ }
134
+ return controls?.target;
135
+ }, onUpdate: () => controls?.update?.(), children: _jsx(GizmoViewcube, { ...controlsHelper.viewcubeProps }) }));
136
+ case "Viewport":
137
+ return (_jsx(GizmoHelper, { ...controlsHelper.props, onTarget: () => {
138
+ if (controlsHelper.viewportProps.resetZoomAndPanOnClick) {
139
+ resetZoomOnGizmoClick();
140
+ }
141
+ return controls?.target;
142
+ }, onUpdate: () => controls?.update?.(), children: _jsx(GizmoViewport, { ...controlsHelper.viewportProps }) }));
143
+ case undefined:
144
+ default:
145
+ return null;
146
+ }
147
+ })()] }));
148
+ }
149
+ const ControlsWrapper = (props) => {
150
+ const ref = useRef(null);
151
+ useLayoutEffect(() => {
152
+ if (!ref.current) {
153
+ return;
154
+ }
155
+ props.setControls(ref.current);
156
+ });
157
+ return _jsx(OrbitControls, { ...props, makeDefault: true, ref: ref });
158
+ };
159
+ export const cameraDist = (size, fov) => size.z * 0.5 + (size.x > size.y ? size.x : size.y) / (1 / 2 / Math.tan((Math.PI * fov) / 180 / 2));
160
+ function getViewTransform(view, scene) {
161
+ const size = scene.size_deprecated;
162
+ switch (view) {
163
+ case "front":
164
+ return [0, 0, 1, size, size.x / size.y];
165
+ case "back":
166
+ return [0, 0, -1, size, size.x / size.y];
167
+ case "top":
168
+ return [0, 1, 0, vec3(size.x, size.z, size.y), size.x / size.z];
169
+ case "bottom":
170
+ return [0, -1, 0, vec3(size.x, size.z, size.y), size.x / size.z];
171
+ case "right":
172
+ return [1, 0, 0, vec3(size.z, size.y, size.x), size.z / size.y];
173
+ case "left":
174
+ return [-1, 0, 0, vec3(size.z, size.y, size.x), size.z / size.y];
175
+ default:
176
+ return exhaustiveCheck(view);
177
+ }
178
+ }
179
+ //# sourceMappingURL=react-camera.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-camera.js","sourceRoot":"","sources":["../../../src/renderers/react/react-camera.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import React from "react";
2
+ import { Dimensions, Vec3, Dimension } from "../../abstract-3d.js";
3
+ export declare const ReactDimensions: React.MemoExoticComponent<({ dimensions, showDimensions, sceneRotation, sceneCenter, }: {
4
+ readonly dimensions: Dimensions | undefined;
5
+ readonly showDimensions: boolean;
6
+ readonly sceneRotation: Vec3 | undefined;
7
+ readonly sceneCenter: Vec3 | undefined;
8
+ }) => React.JSX.Element>;
9
+ export declare function ReactDimension({ d, visible, children, sceneRotation, sceneCenter, }: {
10
+ readonly d: Dimension;
11
+ readonly visible: boolean;
12
+ readonly children: React.JSX.Element;
13
+ readonly sceneRotation: Vec3 | undefined;
14
+ readonly sceneCenter: Vec3 | undefined;
15
+ }): React.JSX.Element;
16
+ //# sourceMappingURL=react-dimension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-dimension.d.ts","sourceRoot":"","sources":["../../../src/renderers/react/react-dimension.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAgC,MAAM,sBAAsB,CAAC;AAIjG,eAAO,MAAM,eAAe,0FAMvB;IACD,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,SAAS,CAAC;CACxC,KAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAqBtB,CAAC;AAEF,wBAAgB,cAAc,CAAC,EAC7B,CAAC,EACD,OAAO,EACP,QAAQ,EACR,aAAa,EACb,WAAW,GACZ,EAAE;IACD,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,SAAS,CAAC;CACxC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAoBpB"}
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useFrame } from "@react-three/fiber";
3
+ import React from "react";
4
+ import { vec3TransRot, vec3Flip } from "../../abstract-3d.js";
5
+ import { ReactMaterial } from "./react-material.js";
6
+ import { ReactMesh } from "./react-mesh.js";
7
+ export const ReactDimensions = React.memo(({ dimensions, showDimensions, sceneRotation, sceneCenter, }) => {
8
+ const dimensionMaterial = React.useMemo(() => (dimensions?.material ? _jsx(ReactMaterial, { isText: true, material: dimensions?.material }) : _jsx(_Fragment, {})), []);
9
+ return (_jsx(_Fragment, { children: dimensions?.dimensions.map((dimension, i) => (_jsx(ReactDimension, { d: dimension, visible: showDimensions, sceneRotation: sceneRotation, sceneCenter: sceneCenter, children: dimensionMaterial }, i))) }));
10
+ });
11
+ export function ReactDimension({ d, visible, children, sceneRotation, sceneCenter, }) {
12
+ const ref = React.useRef(undefined);
13
+ useFrame(({ camera }) => {
14
+ ref.current.visible =
15
+ visible &&
16
+ (() => {
17
+ const cam = vec3TransRot(camera.position, vec3Flip(sceneCenter), sceneRotation);
18
+ const cameraPositions = {
19
+ [cam.x >= 0 ? "right" : "left"]: true,
20
+ [cam.y >= 0 ? "top" : "bottom"]: true,
21
+ [cam.z >= 0 ? "front" : "back"]: true,
22
+ };
23
+ return d.views.every((cp) => cameraPositions[cp]);
24
+ })();
25
+ });
26
+ return (_jsx("group", { ref: ref, position: [d.pos.x, d.pos.y, d.pos.z], rotation: [d.rot.x, d.rot.y, d.rot.z], children: _jsx(DimensionMeshes, { meshes: d.meshes, children: children }) }));
27
+ }
28
+ const DimensionMeshes = React.memo(({ meshes, children, }) => (_jsx(_Fragment, { children: meshes.map((m, i) => (_jsx(ReactMesh, { mesh: m, children: children }, i))) })));
29
+ //# sourceMappingURL=react-dimension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-dimension.js","sourceRoot":"","sources":["../../../src/renderers/react/react-dimension.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import React from "react";
2
+ import { ThreeEvent } from "@react-three/fiber";
3
+ import { Group as Group_1 } from "../../abstract-3d.js";
4
+ import { MaterialState } from "./react-material.js";
5
+ import { ReactPopover } from "./react-types.js";
6
+ export declare function ReactGroup({ g, materialStateImages, hoveredIdsExternal, selectedIds, hotSpotsActive, activeComponents, useAlphaTest, id, rootData, hoveredParent, onClickGroup, onHoverGroup, onContextMenuGroup, createGroupKey, getTooltips, }: {
7
+ readonly g: Group_1;
8
+ readonly materialStateImages?: Record<string, string>;
9
+ readonly hoveredIdsExternal: ReadonlyArray<string> | undefined;
10
+ readonly hoveredParent?: boolean;
11
+ readonly selectedIds: Record<string, boolean> | undefined;
12
+ readonly hotSpotsActive: boolean;
13
+ readonly useAlphaTest?: boolean;
14
+ readonly activeComponents: Record<string, MaterialState> | undefined;
15
+ readonly id: string | undefined;
16
+ readonly rootData: Record<string, string> | undefined;
17
+ readonly onClickGroup?: (id: string | undefined, rootData: Record<string, string> | undefined, data: Record<string, string> | undefined, e: ThreeEvent<MouseEvent>) => void;
18
+ readonly onHoverGroup?: (id: string | undefined, rootData: Record<string, string> | undefined, data: Record<string, string> | undefined, e: ThreeEvent<MouseEvent>) => void;
19
+ readonly onContextMenuGroup?: (id: string, rootData: Record<string, string> | undefined, data: Record<string, string> | undefined, left: number, top: number, e: ThreeEvent<MouseEvent>) => void;
20
+ readonly getTooltips?: (id: string) => ReadonlyArray<ReactPopover>;
21
+ readonly createGroupKey?: (g: Group_1, idx: number, rootData: Record<string, string> | undefined, id: string) => string;
22
+ }): React.JSX.Element;
23
+ //# sourceMappingURL=react-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-group.d.ts","sourceRoot":"","sources":["../../../src/renderers/react/react-group.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAY,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAiB,MAAM,qBAAqB,CAAC;AAInE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,wBAAgB,UAAU,CAAC,EACzB,CAAC,EACD,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,EAAE,EACF,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,WAAW,GACZ,EAAE;IACD,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,kBAAkB,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,SAAS,CAAC;IACrE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,YAAY,CAAC,EAAE,CACtB,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC5C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACxC,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,KACtB,IAAI,CAAC;IACV,QAAQ,CAAC,YAAY,CAAC,EAAE,CACtB,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC5C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACxC,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,KACtB,IAAI,CAAC;IACV,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAC5B,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC5C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACxC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,KACtB,IAAI,CAAC;IACV,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,aAAa,CAAC,YAAY,CAAC,CAAC;IACnE,QAAQ,CAAC,cAAc,CAAC,EAAE,CACxB,CAAC,EAAE,OAAO,EACV,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC5C,EAAE,EAAE,MAAM,KACP,MAAM,CAAC;CACb,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA0HpB"}
@@ -0,0 +1,68 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { useFrame } from "@react-three/fiber";
4
+ import { ReactMaterial } from "./react-material.js";
5
+ import { ReactMesh } from "./react-mesh.js";
6
+ import { ImageMaterial } from "./react-image-material.js";
7
+ import { Html } from "@react-three/drei";
8
+ export function ReactGroup({ g, materialStateImages, hoveredIdsExternal, selectedIds, hotSpotsActive, activeComponents, useAlphaTest, id, rootData, hoveredParent, onClickGroup, onHoverGroup, onContextMenuGroup, createGroupKey, getTooltips, }) {
9
+ const ref = React.useRef(undefined);
10
+ useFrame(({ invalidate }, delta) => {
11
+ if (g.animation) {
12
+ invalidate();
13
+ ref.current.rotation.x += (g.animation.transform.rot.x / g.animation.duration) * 1000 * delta;
14
+ ref.current.rotation.y += (g.animation.transform.rot.y / g.animation.duration) * 1000 * delta;
15
+ ref.current.rotation.z += (g.animation.transform.rot.z / g.animation.duration) * 1000 * delta;
16
+ }
17
+ else {
18
+ ref.current.rotation.x = g.rot?.x ?? 0;
19
+ ref.current.rotation.y = g.rot?.y ?? 0;
20
+ ref.current.rotation.z = g.rot?.z ?? 0;
21
+ ref.current.position.x = g.pos.x;
22
+ ref.current.position.y = g.pos.y;
23
+ ref.current.position.z = g.pos.z;
24
+ }
25
+ });
26
+ const [hovered, setHovered] = React.useState(false);
27
+ const hoveredFinal = hovered || (id && hoveredIdsExternal?.includes(id)) || !!hoveredParent;
28
+ const selected = selectedIds?.[id ?? ""];
29
+ const materialState = activeComponents?.[id ?? ""];
30
+ const disabled = hotSpotsActive && materialState !== "Accept";
31
+ return (_jsxs("group", { rotation: [g.rot?.x ?? 0, g.rot?.y ?? 0, g.rot?.z ?? 0], position: [g.pos.x, g.pos.y, g.pos.z], ref: ref, ...(id &&
32
+ !disabled && {
33
+ onClick: (e) => {
34
+ if (onClickGroup) {
35
+ e.stopPropagation();
36
+ onClickGroup(id, rootData, g.data, e);
37
+ }
38
+ },
39
+ onPointerOver: (e) => {
40
+ e.stopPropagation();
41
+ document.body.style.cursor = "pointer";
42
+ if (onHoverGroup) {
43
+ onHoverGroup(id, rootData, g.data, e);
44
+ }
45
+ setHovered(true);
46
+ },
47
+ onPointerOut: (e) => {
48
+ document.body.style.cursor = "auto";
49
+ setHovered(false);
50
+ if (onHoverGroup) {
51
+ onHoverGroup(undefined, undefined, undefined, e);
52
+ }
53
+ },
54
+ onContextMenu: (e) => {
55
+ if (onContextMenuGroup) {
56
+ e.stopPropagation();
57
+ onContextMenuGroup(id, rootData, g.data, e.nativeEvent.x, e.nativeEvent.y, e);
58
+ }
59
+ },
60
+ }), children: [g.groups?.map((g, i) => (_jsx(ReactGroup, { g: g, selectedIds: selectedIds, hotSpotsActive: hotSpotsActive, activeComponents: activeComponents, materialStateImages: materialStateImages, hoveredIdsExternal: hoveredIdsExternal, hoveredParent: hoveredFinal, onClickGroup: onClickGroup, onHoverGroup: (hId, rData, data, e) => {
61
+ setHovered(hId !== undefined);
62
+ onHoverGroup?.(hId, rData, data, e);
63
+ }, onContextMenuGroup: onContextMenuGroup, getTooltips: getTooltips, id: id, rootData: rootData, createGroupKey: createGroupKey, useAlphaTest: useAlphaTest }, createGroupKey ? createGroupKey(g, i, rootData, id ?? "") : i))), g.meshes?.map((m, i) => (_jsx(ReactMesh, { mesh: m, children: m.geometry.type === "Image" ? (_jsx(ImageMaterial, { image: m.geometry.image, materialStateImages: materialStateImages, material: m.material, useAlphaTest: useAlphaTest, hovered: hoveredFinal, materialState: materialState, selected: selected })) : (_jsx(ReactMaterial, { material: m.material, selected: selected, isText: m.geometry.type === "Text", hovered: hoveredFinal, disabled: disabled, materialState: materialState })) }, `mesh_${i}`))), hovered &&
64
+ id &&
65
+ getTooltips &&
66
+ getTooltips(id).map((p) => (_jsx(Html, { position: [p.pos.x, p.pos.y, p.pos.z], center: true, pointerEvents: "none", style: { pointerEvents: "none" }, children: p.content }, p.id)))] }));
67
+ }
68
+ //# sourceMappingURL=react-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-group.js","sourceRoot":"","sources":["../../../src/renderers/react/react-group.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAc,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAiB,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGzC,MAAM,UAAU,UAAU,CAAC,EACzB,CAAC,EACD,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,EAAE,EACF,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,WAAW,GAuCZ;IACC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAQ,SAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE;QACjC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YAChB,UAAU,EAAE,CAAC;YACb,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;YAC9F,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;YAC9F,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;QAChG,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACvC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACvC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACvC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACjC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACjC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAU,KAAK,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,OAAO,IAAI,CAAC,EAAE,IAAI,kBAAkB,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;IAC5F,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,cAAc,IAAI,aAAa,KAAK,QAAQ,CAAC;IAC9D,OAAO,CACL,iBACE,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,EACvD,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EACrC,GAAG,EAAE,GAAG,KACJ,CAAC,EAAE;YACL,CAAC,QAAQ,IAAI;YACX,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACb,IAAI,YAAY,EAAE,CAAC;oBACjB,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YACD,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE;gBACnB,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;gBACvC,IAAI,YAAY,EAAE,CAAC;oBACjB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACxC,CAAC;gBACD,UAAU,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;YACD,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;gBAClB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;gBACpC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAClB,IAAI,YAAY,EAAE,CAAC;oBACjB,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;YACD,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE;gBACnB,IAAI,kBAAkB,EAAE,CAAC;oBACvB,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;SACF,CAAC,aAEH,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACvB,KAAC,UAAU,IAET,CAAC,EAAE,CAAC,EACJ,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,EAAE,YAAY,EAC3B,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;oBACpC,UAAU,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;oBAC9B,YAAY,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACtC,CAAC,EACD,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,WAAW,EACxB,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY,IAlBrB,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAmBlE,CACH,CAAC,EACD,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACvB,KAAC,SAAS,IAAmB,IAAI,EAAE,CAAC,YACjC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAC7B,KAAC,aAAa,IACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EACvB,mBAAmB,EAAE,mBAAmB,EACxC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EACpB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,YAAY,EACrB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC,CAAC,CAAC,CACF,KAAC,aAAa,IACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ,EACpB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,EAClC,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,aAAa,GAC5B,CACH,IApBa,QAAQ,CAAC,EAAE,CAqBf,CACb,CAAC,EACD,OAAO;gBACN,EAAE;gBACF,WAAW;gBACX,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACzB,KAAC,IAAI,IAEH,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EACrC,MAAM,QACN,aAAa,EAAC,MAAM,EACpB,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,YAE/B,CAAC,CAAC,OAAO,IANL,CAAC,CAAC,EAAE,CAOJ,CACR,CAAC,IACE,CACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,27 @@
1
+ import React from "react";
2
+ import { HotSpot } from "../../abstract-3d.js";
3
+ import { ThreeEvent } from "@react-three/fiber";
4
+ export interface HotSpotInfo {
5
+ readonly replaceId: string;
6
+ readonly replaceFromId: string;
7
+ readonly replaceOutlet: string;
8
+ readonly replaceToId: string;
9
+ readonly replaceInlet: string;
10
+ }
11
+ export declare const ReactHotSpots: React.MemoExoticComponent<({ hotSpots, showHotSpotTexts, hotSpotTexts, hotSpotZAdjPos, activeHotSpots, onClickHotSpot, }: {
12
+ readonly hotSpots?: ReadonlyArray<HotSpot>;
13
+ readonly showHotSpotTexts: boolean;
14
+ readonly hotSpotZAdjPos: number;
15
+ readonly hotSpotTexts?: Record<string, string>;
16
+ readonly activeHotSpots: Record<string, HotSpotInfo> | undefined;
17
+ readonly onClickHotSpot?: (hotSpot: HotSpotInfo, e: ThreeEvent<MouseEvent>) => void;
18
+ }) => React.JSX.Element>;
19
+ export declare function ReactHotSpot({ h, hotSpotZAdjPos, showHotSpotTexts, hotSpotTexts, activeHotSpots, onClickHotSpot, }: {
20
+ readonly h: HotSpot;
21
+ readonly hotSpotZAdjPos: number;
22
+ readonly showHotSpotTexts: boolean;
23
+ readonly hotSpotTexts?: Record<string, string>;
24
+ readonly activeHotSpots: Record<string, HotSpotInfo> | undefined;
25
+ readonly onClickHotSpot?: (hotSpot: HotSpotInfo, e: ThreeEvent<MouseEvent>) => void;
26
+ }): React.JSX.Element;
27
+ //# sourceMappingURL=react-hotspot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-hotspot.d.ts","sourceRoot":"","sources":["../../../src/renderers/react/react-hotspot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAO,OAAO,EAAuB,MAAM,sBAAsB,CAAC;AAGzE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,aAAa,4HAQrB;IACD,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;CACrF,KAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAiBtB,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAC3B,CAAC,EACD,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,cAAc,GACf,EAAE;IACD,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;CACrF,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAqDpB"}
@@ -0,0 +1,37 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { Html } from "@react-three/drei";
4
+ import { vec3Scale, vec3Zero } from "../../abstract-3d.js";
5
+ import { ReactMesh } from "./react-mesh.js";
6
+ import { ReactMaterial } from "./react-material.js";
7
+ export const ReactHotSpots = React.memo(({ hotSpots, showHotSpotTexts, hotSpotTexts, hotSpotZAdjPos, activeHotSpots, onClickHotSpot, }) => {
8
+ return (_jsx(_Fragment, { children: hotSpots?.map((h) => (_jsx(ReactHotSpot, { h: h, hotSpotZAdjPos: hotSpotZAdjPos, activeHotSpots: activeHotSpots, hotSpotTexts: hotSpotTexts, onClickHotSpot: onClickHotSpot, showHotSpotTexts: showHotSpotTexts }, h.id))) }));
9
+ });
10
+ export function ReactHotSpot({ h, hotSpotZAdjPos, showHotSpotTexts, hotSpotTexts, activeHotSpots, onClickHotSpot, }) {
11
+ const [hovered, setHovered] = React.useState(false);
12
+ const hotSpot = activeHotSpots ? activeHotSpots[h.id] : undefined;
13
+ const hsPos = h.mesh.geometry.type === "Box" ? h.mesh.geometry.pos : vec3Zero;
14
+ const text = hotSpotTexts?.[h.id];
15
+ const geo = h.mesh.geometry;
16
+ return (_jsxs(_Fragment, { children: [_jsxs("group", { visible: hotSpot !== undefined, ...(hotSpot && {
17
+ onClick: (e) => {
18
+ if (onClickHotSpot) {
19
+ e.stopPropagation();
20
+ onClickHotSpot(hotSpot, e);
21
+ }
22
+ },
23
+ onPointerOver: (e) => {
24
+ e.stopPropagation();
25
+ document.body.style.cursor = "pointer";
26
+ setHovered(true);
27
+ },
28
+ onPointerOut: (_e) => {
29
+ document.body.style.cursor = "auto";
30
+ setHovered(false);
31
+ },
32
+ onContextMenu: (e) => {
33
+ e.stopPropagation();
34
+ },
35
+ }), children: [_jsx(ReactMesh, { mesh: h.mesh, children: _jsx(ReactMaterial, { isText: false, isHotSpot: true, material: h.mesh.material, hovered: hovered }) }), _jsx(ReactMesh, { mesh: { ...h.mesh, geometry: { ...geo, size: vec3Scale(geo.size, 1.0125) } }, children: _jsx(ReactMaterial, { isText: false, isHotSpot: true, drawBackOnly: true, material: { normal: "rgb(0, 0, 0)", opacity: 1.0 }, hovered: hovered }) })] }), hotSpotTexts && text && (_jsx(Html, { position: [hsPos.x, hsPos.y, hotSpotZAdjPos], center: true, children: _jsx("div", { className: `air-states-container ${showHotSpotTexts ? "" : "air-states-container-hidden"}`, children: _jsx("span", { className: "air-states-text", children: text }) }) }))] }));
36
+ }
37
+ //# sourceMappingURL=react-hotspot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-hotspot.js","sourceRoot":"","sources":["../../../src/renderers/react/react-hotspot.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import React from "react";
2
+ import { PlaneGeometry } from "three";
3
+ import { Material, Image as A3dImage } from "../../abstract-3d.js";
4
+ import { MaterialState } from "./react-material.js";
5
+ export declare const planeGeometry: PlaneGeometry;
6
+ export declare enum MinificationFilter {
7
+ Nearest = 1003,
8
+ Linear = 1006,
9
+ LinearMipmap = 1008
10
+ }
11
+ export declare enum MagnificationFilter {
12
+ Nearest = 1003,
13
+ Linear = 1006
14
+ }
15
+ export type TextureFilter = {
16
+ readonly min: MinificationFilter;
17
+ readonly mag: MagnificationFilter;
18
+ };
19
+ export declare function ImageMaterial({ image, materialStateImages, material, useAlphaTest, hovered, selected, materialState, }: {
20
+ readonly image: A3dImage;
21
+ readonly material: Material;
22
+ readonly materialStateImages: Record<string, string> | undefined;
23
+ readonly hovered: boolean;
24
+ readonly selected: boolean | undefined;
25
+ readonly useAlphaTest: boolean | undefined;
26
+ readonly materialState: MaterialState | undefined;
27
+ }): React.JSX.Element;
28
+ //# sourceMappingURL=react-image-material.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-image-material.d.ts","sourceRoot":"","sources":["../../../src/renderers/react/react-image-material.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAA6B,aAAa,EAA+C,MAAM,OAAO,CAAC;AAC9G,OAAO,EAAE,QAAQ,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAA6C,aAAa,EAAa,MAAM,qBAAqB,CAAC;AAE1G,eAAO,MAAM,aAAa,eAAsB,CAAC;AAEjD,oBAAY,kBAAkB;IAC5B,OAAO,OAAO;IACd,MAAM,OAAO;IACb,YAAY,OAAO;CACpB;AAED,oBAAY,mBAAmB;IAC7B,OAAO,OAAO;IACd,MAAM,OAAO;CACd;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,mBAAmB,CAAC;CACnC,CAAC;AAKF,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,mBAAmB,EACnB,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,aAAa,GACd,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;CACnD,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAmBpB"}