@ifc-lite/renderer 1.6.1 → 1.7.0
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/README.md +40 -0
- package/dist/camera-animation.d.ts +108 -0
- package/dist/camera-animation.d.ts.map +1 -0
- package/dist/camera-animation.js +606 -0
- package/dist/camera-animation.js.map +1 -0
- package/dist/camera-controls.d.ts +75 -0
- package/dist/camera-controls.d.ts.map +1 -0
- package/dist/camera-controls.js +239 -0
- package/dist/camera-controls.js.map +1 -0
- package/dist/camera-projection.d.ts +51 -0
- package/dist/camera-projection.d.ts.map +1 -0
- package/dist/camera-projection.js +147 -0
- package/dist/camera-projection.js.map +1 -0
- package/dist/camera.d.ts +33 -45
- package/dist/camera.d.ts.map +1 -1
- package/dist/camera.js +128 -815
- package/dist/camera.js.map +1 -1
- package/dist/geometry-manager.d.ts +99 -0
- package/dist/geometry-manager.d.ts.map +1 -0
- package/dist/geometry-manager.js +387 -0
- package/dist/geometry-manager.js.map +1 -0
- package/dist/index.d.ts +7 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +50 -658
- package/dist/index.js.map +1 -1
- package/dist/math.d.ts +6 -0
- package/dist/math.d.ts.map +1 -1
- package/dist/math.js +20 -0
- package/dist/math.js.map +1 -1
- package/dist/picking-manager.d.ts +31 -0
- package/dist/picking-manager.d.ts.map +1 -0
- package/dist/picking-manager.js +140 -0
- package/dist/picking-manager.js.map +1 -0
- package/dist/raycast-engine.d.ts +76 -0
- package/dist/raycast-engine.d.ts.map +1 -0
- package/dist/raycast-engine.js +255 -0
- package/dist/raycast-engine.js.map +1 -0
- package/dist/scene.d.ts +8 -1
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +59 -25
- package/dist/scene.js.map +1 -1
- package/package.json +4 -4
package/dist/camera.d.ts
CHANGED
|
@@ -1,29 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Camera and orbit controls
|
|
3
|
+
*
|
|
4
|
+
* Uses composition pattern: delegates to CameraControls (orbit/pan/zoom),
|
|
5
|
+
* CameraAnimator (transitions/inertia/presets), and CameraProjection
|
|
6
|
+
* (screen-world conversion/bounds fitting).
|
|
3
7
|
*/
|
|
4
8
|
import type { Vec3, Mat4 } from './types.js';
|
|
9
|
+
import { type ProjectionMode } from './camera-controls.js';
|
|
5
10
|
export declare class Camera {
|
|
6
|
-
private
|
|
7
|
-
private
|
|
8
|
-
private
|
|
9
|
-
private
|
|
10
|
-
private velocity;
|
|
11
|
-
private damping;
|
|
12
|
-
private minVelocity;
|
|
13
|
-
private animationStartTime;
|
|
14
|
-
private animationDuration;
|
|
15
|
-
private animationStartPos;
|
|
16
|
-
private animationStartTarget;
|
|
17
|
-
private animationEndPos;
|
|
18
|
-
private animationEndTarget;
|
|
19
|
-
private animationStartUp;
|
|
20
|
-
private animationEndUp;
|
|
21
|
-
private animationEasing;
|
|
22
|
-
private isFirstPersonMode;
|
|
23
|
-
private firstPersonSpeed;
|
|
24
|
-
private orbitPivot;
|
|
25
|
-
private lastPresetView;
|
|
26
|
-
private presetViewRotation;
|
|
11
|
+
private state;
|
|
12
|
+
private controls;
|
|
13
|
+
private animator;
|
|
14
|
+
private projection;
|
|
27
15
|
constructor();
|
|
28
16
|
/**
|
|
29
17
|
* Set camera aspect ratio
|
|
@@ -79,16 +67,12 @@ export declare class Camera {
|
|
|
79
67
|
* Update camera animation and inertia
|
|
80
68
|
* Returns true if camera is still animating
|
|
81
69
|
*/
|
|
82
|
-
update(
|
|
70
|
+
update(deltaTime: number): boolean;
|
|
83
71
|
/**
|
|
84
72
|
* Animate camera to fit bounds (southeast isometric view)
|
|
85
73
|
* Y-up coordinate system
|
|
86
74
|
*/
|
|
87
75
|
zoomToFit(min: Vec3, max: Vec3, duration?: number): Promise<void>;
|
|
88
|
-
/**
|
|
89
|
-
* Zoom to fit bounds WITHOUT changing view direction
|
|
90
|
-
* Just centers on bounds and adjusts distance to fit
|
|
91
|
-
*/
|
|
92
76
|
/**
|
|
93
77
|
* Frame/center view on a point (keeps current distance and direction)
|
|
94
78
|
* Standard CAD "Frame Selection" behavior
|
|
@@ -108,10 +92,6 @@ export declare class Camera {
|
|
|
108
92
|
* Animate camera to position, target, and up vector (for orthogonal preset views)
|
|
109
93
|
*/
|
|
110
94
|
animateToWithUp(endPos: Vec3, endTarget: Vec3, endUp: Vec3, duration?: number): Promise<void>;
|
|
111
|
-
/**
|
|
112
|
-
* Easing function: easeOutCubic
|
|
113
|
-
*/
|
|
114
|
-
private easeOutCubic;
|
|
115
95
|
/**
|
|
116
96
|
* Set first-person mode
|
|
117
97
|
*/
|
|
@@ -122,17 +102,13 @@ export declare class Camera {
|
|
|
122
102
|
moveFirstPerson(forward: number, right: number, up: number): void;
|
|
123
103
|
/**
|
|
124
104
|
* Set preset view with explicit bounds (Y-up coordinate system)
|
|
125
|
-
* Clicking the same view again rotates 90
|
|
105
|
+
* Clicking the same view again rotates 90 degrees around the view axis
|
|
126
106
|
* @param buildingRotation Optional building rotation in radians (from IfcSite placement)
|
|
127
107
|
*/
|
|
128
108
|
setPresetView(view: 'top' | 'bottom' | 'front' | 'back' | 'left' | 'right', bounds?: {
|
|
129
109
|
min: Vec3;
|
|
130
110
|
max: Vec3;
|
|
131
111
|
}, buildingRotation?: number): void;
|
|
132
|
-
/**
|
|
133
|
-
* Get current bounds estimate (simplified - in production would use scene bounds)
|
|
134
|
-
*/
|
|
135
|
-
private getCurrentBounds;
|
|
136
112
|
/**
|
|
137
113
|
* Reset velocity (stop inertia)
|
|
138
114
|
*/
|
|
@@ -167,13 +143,6 @@ export declare class Camera {
|
|
|
167
143
|
azimuth: number;
|
|
168
144
|
elevation: number;
|
|
169
145
|
};
|
|
170
|
-
/**
|
|
171
|
-
* Project a world position to screen coordinates
|
|
172
|
-
* @param worldPos - Position in world space
|
|
173
|
-
* @param canvasWidth - Canvas width in pixels
|
|
174
|
-
* @param canvasHeight - Canvas height in pixels
|
|
175
|
-
* @returns Screen coordinates { x, y } or null if behind camera
|
|
176
|
-
*/
|
|
177
146
|
/**
|
|
178
147
|
* Unproject screen coordinates to a ray in world space
|
|
179
148
|
* @param screenX - X position in screen coordinates
|
|
@@ -186,15 +155,34 @@ export declare class Camera {
|
|
|
186
155
|
origin: Vec3;
|
|
187
156
|
direction: Vec3;
|
|
188
157
|
};
|
|
158
|
+
/**
|
|
159
|
+
* Project a world position to screen coordinates
|
|
160
|
+
* @param worldPos - Position in world space
|
|
161
|
+
* @param canvasWidth - Canvas width in pixels
|
|
162
|
+
* @param canvasHeight - Canvas height in pixels
|
|
163
|
+
* @returns Screen coordinates { x, y } or null if behind camera
|
|
164
|
+
*/
|
|
189
165
|
projectToScreen(worldPos: Vec3, canvasWidth: number, canvasHeight: number): {
|
|
190
166
|
x: number;
|
|
191
167
|
y: number;
|
|
192
168
|
} | null;
|
|
193
169
|
/**
|
|
194
|
-
*
|
|
195
|
-
*
|
|
170
|
+
* Set projection mode (perspective or orthographic)
|
|
171
|
+
* When switching to orthographic, calculates initial orthoSize from current view.
|
|
172
|
+
*/
|
|
173
|
+
setProjectionMode(mode: ProjectionMode): void;
|
|
174
|
+
/**
|
|
175
|
+
* Toggle between perspective and orthographic projection
|
|
176
|
+
*/
|
|
177
|
+
toggleProjectionMode(): void;
|
|
178
|
+
/**
|
|
179
|
+
* Get current projection mode
|
|
180
|
+
*/
|
|
181
|
+
getProjectionMode(): ProjectionMode;
|
|
182
|
+
/**
|
|
183
|
+
* Get orthographic view half-height
|
|
196
184
|
*/
|
|
197
|
-
|
|
185
|
+
getOrthoSize(): number;
|
|
198
186
|
private updateMatrices;
|
|
199
187
|
}
|
|
200
188
|
//# sourceMappingURL=camera.d.ts.map
|
package/dist/camera.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../src/camera.ts"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../src/camera.ts"],"names":[],"mappings":"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"}
|