@flighthq/camera 0.5.1-next.820.97b3830 → 0.5.1-next.903.f434bc2
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 +2 -2
- package/dist/camera.d.ts +2 -1
- package/dist/camera.d.ts.map +1 -1
- package/dist/camera.js +18 -15
- package/dist/camera.js.map +1 -1
- package/dist/camera2d.d.ts +2 -1
- package/dist/camera2d.d.ts.map +1 -1
- package/dist/camera2d.js +12 -9
- package/dist/camera2d.js.map +1 -1
- package/dist/contract.d.ts +2 -0
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +2 -0
- package/dist/contract.js.map +1 -1
- package/dist/projection.d.ts +3 -1
- package/dist/projection.d.ts.map +1 -1
- package/dist/projection.js +22 -16
- package/dist/projection.js.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/camera`. The `@fligh
|
|
|
13
13
|
This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
|
|
14
14
|
|
|
15
15
|
- [Flight project](https://github.com/flighthq/flight)
|
|
16
|
-
- [Source for @flighthq/camera@0.5.1-next.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/camera@0.5.1-next.903.f434bc2](https://github.com/flighthq/flight/tree/f434bc233778d75aeea61995df3a8cfaec459a85/packages/camera)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/f434bc233778d75aeea61995df3a8cfaec459a85/LICENSE.md)
|
package/dist/camera.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { Camera3D, Camera3DOptions, Matrix4Like, Vector3Like } from '@flighthq/types/contract';
|
|
1
|
+
import type { Camera3D, Camera3DOptions, EntityConstruction, Matrix4Like, Vector3Like } from '@flighthq/types/contract';
|
|
2
2
|
export declare function createCamera3D(opts: Readonly<Camera3DOptions>): Camera3D;
|
|
3
3
|
export declare function getCamera3DInverseViewProjectionMatrix4(out: Matrix4Like, camera: Readonly<Camera3D>, aspect: number): boolean;
|
|
4
4
|
export declare function getCamera3DViewProjectionMatrix4(out: Matrix4Like, camera: Readonly<Camera3D>, aspect: number): void;
|
|
5
|
+
export declare function initializeCamera3D(out: EntityConstruction<Camera3D>, opts: Readonly<Camera3DOptions>): void;
|
|
5
6
|
export declare function setCamera3DAspect(camera: Camera3D, aspect: number): void;
|
|
6
7
|
export declare function setCamera3DJitter(camera: Camera3D, x: number, y: number): void;
|
|
7
8
|
export declare function setCamera3DViewGuard(guard: ((camera: Readonly<Camera3D>) => void) | null): void;
|
package/dist/camera.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../src/camera.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../src/camera.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,kBAAkB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAIxH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ,CAIxE;AASD,wBAAgB,uCAAuC,CACrD,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAGT;AAQD,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAInH;AAQD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,IAAI,CAO3G;AAQD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAOxE;AAID,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAG9E;AAMD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAE/F;AAOD,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,QAAQ,EAChB,GAAG,EAAE,QAAQ,CAAC,WAAW,CAAC,EAC1B,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,EAC7B,EAAE,EAAE,QAAQ,CAAC,WAAW,CAAC,GACxB,IAAI,CAEN;AAeD,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAGrG;AAMD,wBAAgB,mCAAmC,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAIvG"}
|
package/dist/camera.js
CHANGED
|
@@ -1,21 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
2
2
|
import { createMatrix4, createVector2, inverseMatrix4, multiplyMatrix4, setMatrix4LookAt, } from '@flighthq/geometry/contract';
|
|
3
3
|
import { setProjectionMatrix4 } from './projection';
|
|
4
|
-
// Allocates a 3D camera. The camera stores its projection descriptor, a world->view Matrix4
|
|
5
|
-
// (`view`, initialized to identity), the clip-plane distances `near`/`far`, the per-frame
|
|
6
|
-
// sub-pixel NDC `jitter` (applied to every projection, initialized to zero), and the last
|
|
7
|
-
// `inverseViewProjection` computed for a reconstruction pass (initialized to identity). The view
|
|
8
|
-
// matrix is canonical: the camera has no separate Transform3D — a Matrix4 is the only world->view
|
|
9
|
-
// representation.
|
|
10
4
|
export function createCamera3D(opts) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
jitter: createVector2(0, 0),
|
|
15
|
-
near: opts.near,
|
|
16
|
-
projection: opts.projection,
|
|
17
|
-
view: createMatrix4(),
|
|
18
|
-
});
|
|
5
|
+
const out = allocateEntity();
|
|
6
|
+
initializeCamera3D(out, opts);
|
|
7
|
+
return finishEntity(out);
|
|
19
8
|
}
|
|
20
9
|
// Writes the inverse of the camera's view-projection matrix into `out` and returns true, or
|
|
21
10
|
// returns false (writing NaN into `out`) when the view-projection is non-invertible. `aspect`
|
|
@@ -39,6 +28,20 @@ export function getCamera3DViewProjectionMatrix4(out, camera, aspect) {
|
|
|
39
28
|
applyCamera3DProjectionJitter(__scratchProjection, camera.jitter.x, camera.jitter.y);
|
|
40
29
|
multiplyMatrix4(out, __scratchProjection, camera.view);
|
|
41
30
|
}
|
|
31
|
+
// Allocates a 3D camera. The camera stores its projection descriptor, a world->view Matrix4
|
|
32
|
+
// (`view`, initialized to identity), the clip-plane distances `near`/`far`, the per-frame
|
|
33
|
+
// sub-pixel NDC `jitter` (applied to every projection, initialized to zero), and the last
|
|
34
|
+
// `inverseViewProjection` computed for a reconstruction pass (initialized to identity). The view
|
|
35
|
+
// matrix is canonical: the camera has no separate Transform3D — a Matrix4 is the only world->view
|
|
36
|
+
// representation.
|
|
37
|
+
export function initializeCamera3D(out, opts) {
|
|
38
|
+
out.far = opts.far;
|
|
39
|
+
out.inverseViewProjection = createMatrix4();
|
|
40
|
+
out.jitter = createVector2(0, 0);
|
|
41
|
+
out.near = opts.near;
|
|
42
|
+
out.projection = opts.projection;
|
|
43
|
+
out.view = createMatrix4();
|
|
44
|
+
}
|
|
42
45
|
// Sets the viewport aspect ratio (width / height) on the camera's projection, in place. For a
|
|
43
46
|
// perspective projection this writes `aspect` directly; for an orthographic projection it widens
|
|
44
47
|
// the view volume to match — keeping `halfHeight` and setting `halfWidth = halfHeight * aspect`,
|
package/dist/camera.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camera.js","sourceRoot":"","sources":["../src/camera.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"camera.js","sourceRoot":"","sources":["../src/camera.ts"],"names":[],"mappings":"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"}
|
package/dist/camera2d.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import type { Camera2D, Camera2DOptions } from '@flighthq/types/contract';
|
|
1
|
+
import type { Camera2D, Camera2DOptions, EntityConstruction } from '@flighthq/types/contract';
|
|
2
2
|
export declare function createCamera2D(viewportWidth: number, viewportHeight: number, options?: Readonly<Camera2DOptions>): Camera2D;
|
|
3
|
+
export declare function initializeCamera2D(out: EntityConstruction<Camera2D>, viewportWidth: number, viewportHeight: number, options?: Readonly<Camera2DOptions>): void;
|
|
3
4
|
//# sourceMappingURL=camera2d.d.ts.map
|
package/dist/camera2d.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camera2d.d.ts","sourceRoot":"","sources":["../src/camera2d.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"camera2d.d.ts","sourceRoot":"","sources":["../src/camera2d.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAM9F,wBAAgB,cAAc,CAC5B,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAClC,QAAQ,CAIV;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACjC,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAClC,IAAI,CAON"}
|
package/dist/camera2d.js
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
2
2
|
// Allocates a plain-data 2D camera over a `viewportWidth` x `viewportHeight` surface. The camera
|
|
3
3
|
// starts centered on world origin at zoom 1 with no rotation; `options` overrides any of `x`, `y`,
|
|
4
4
|
// `zoom`, `rotation`. This is the only allocating function in the package — every other operation
|
|
5
5
|
// writes into an `out` parameter.
|
|
6
6
|
export function createCamera2D(viewportWidth, viewportHeight, options) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
7
|
+
const out = allocateEntity();
|
|
8
|
+
initializeCamera2D(out, viewportWidth, viewportHeight, options);
|
|
9
|
+
return finishEntity(out);
|
|
10
|
+
}
|
|
11
|
+
export function initializeCamera2D(out, viewportWidth, viewportHeight, options) {
|
|
12
|
+
out.rotation = options?.rotation ?? 0;
|
|
13
|
+
out.viewportHeight = viewportHeight;
|
|
14
|
+
out.viewportWidth = viewportWidth;
|
|
15
|
+
out.x = options?.x ?? 0;
|
|
16
|
+
out.y = options?.y ?? 0;
|
|
17
|
+
out.zoom = options?.zoom ?? 1;
|
|
15
18
|
}
|
|
16
19
|
//# sourceMappingURL=camera2d.js.map
|
package/dist/camera2d.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camera2d.js","sourceRoot":"","sources":["../src/camera2d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"camera2d.js","sourceRoot":"","sources":["../src/camera2d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzE,iGAAiG;AACjG,mGAAmG;AACnG,kGAAkG;AAClG,kCAAkC;AAClC,MAAM,UAAU,cAAc,CAC5B,aAAqB,EACrB,cAAsB,EACtB,OAAmC;IAEnC,MAAM,GAAG,GAAG,cAAc,EAAY,CAAC;IACvC,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IAChE,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,GAAiC,EACjC,aAAqB,EACrB,cAAsB,EACtB,OAAmC;IAEnC,GAAG,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC;IACtC,GAAG,CAAC,cAAc,GAAG,cAAc,CAAC;IACpC,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;IAClC,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IACxB,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IACxB,GAAG,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC;AAChC,CAAC"}
|
package/dist/contract.d.ts
CHANGED
|
@@ -15,4 +15,6 @@ export * from './shadowCamera';
|
|
|
15
15
|
export * from './viewMatrix';
|
|
16
16
|
export * from './visibleBounds';
|
|
17
17
|
export * from './zoom';
|
|
18
|
+
export { initializeCamera3D } from './camera';
|
|
19
|
+
export { initializeOrthographicProjection, initializePerspectiveProjection } from './projection';
|
|
18
20
|
//# sourceMappingURL=contract.d.ts.map
|
package/dist/contract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,gCAAgC,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/contract.js
CHANGED
|
@@ -15,4 +15,6 @@ export * from './shadowCamera';
|
|
|
15
15
|
export * from './viewMatrix';
|
|
16
16
|
export * from './visibleBounds';
|
|
17
17
|
export * from './zoom';
|
|
18
|
+
export { initializeCamera3D } from './camera';
|
|
19
|
+
export { initializeOrthographicProjection, initializePerspectiveProjection } from './projection';
|
|
18
20
|
//# sourceMappingURL=contract.js.map
|
package/dist/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,gCAAgC,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/projection.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import type { Entity, Matrix4Like } from '@flighthq/types/contract';
|
|
1
|
+
import type { Entity, Matrix4Like, EntityConstruction } from '@flighthq/types/contract';
|
|
2
2
|
import type { OrthographicProjection, OrthographicProjectionOptions, PerspectiveProjection, PerspectiveProjectionOptions, Projection } from '@flighthq/types/contract';
|
|
3
3
|
export declare function createOrthographicProjection(opts: Readonly<OrthographicProjectionOptions>): OrthographicProjection & Entity;
|
|
4
4
|
export declare function createPerspectiveProjection(opts: Readonly<PerspectiveProjectionOptions>): PerspectiveProjection & Entity;
|
|
5
5
|
export declare function getOrthographicProjectionTexelSize(projection: Readonly<OrthographicProjection>, pixelWidth: number, pixelHeight: number): number;
|
|
6
|
+
export declare function initializeOrthographicProjection(out: EntityConstruction<OrthographicProjection & Entity>, opts: Readonly<OrthographicProjectionOptions>): void;
|
|
7
|
+
export declare function initializePerspectiveProjection(out: EntityConstruction<PerspectiveProjection & Entity>, opts: Readonly<PerspectiveProjectionOptions>): void;
|
|
6
8
|
export declare function isOrthographicProjection(projection: Readonly<Projection>): projection is OrthographicProjection;
|
|
7
9
|
export declare function isPerspectiveProjection(projection: Readonly<Projection>): projection is PerspectiveProjection;
|
|
8
10
|
export declare function setProjectionMatrix4(out: Matrix4Like, projection: Readonly<Projection>, aspect: number, near: number, far: number): void;
|
package/dist/projection.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,KAAK,EACV,sBAAsB,EACtB,6BAA6B,EAC7B,qBAAqB,EACrB,4BAA4B,EAC5B,UAAU,EACX,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,QAAQ,CAAC,6BAA6B,CAAC,GAC5C,sBAAsB,GAAG,MAAM,CAIjC;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,QAAQ,CAAC,4BAA4B,CAAC,GAC3C,qBAAqB,GAAG,MAAM,CAIhC;AAKD,wBAAgB,kCAAkC,CAChD,UAAU,EAAE,QAAQ,CAAC,sBAAsB,CAAC,EAC5C,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,MAAM,CAER;AAKD,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,kBAAkB,CAAC,sBAAsB,GAAG,MAAM,CAAC,EACxD,IAAI,EAAE,QAAQ,CAAC,6BAA6B,CAAC,GAC5C,IAAI,CAIN;AAID,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,kBAAkB,CAAC,qBAAqB,GAAG,MAAM,CAAC,EACvD,IAAI,EAAE,QAAQ,CAAC,4BAA4B,CAAC,GAC3C,IAAI,CAIN;AAGD,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,UAAU,IAAI,sBAAsB,CAE/G;AAGD,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,UAAU,IAAI,qBAAqB,CAE7G;AAUD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,EAChC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACV,IAAI,CASN"}
|
package/dist/projection.js
CHANGED
|
@@ -1,23 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
2
2
|
import { setOrthographicMatrix4, setPerspectiveMatrix4 } from '@flighthq/geometry/contract';
|
|
3
|
-
// Builds an orthographic projection descriptor from explicit view-volume half-extents (in
|
|
4
|
-
// view-space units). The full visible width is 2*halfWidth and height 2*halfHeight; the
|
|
5
|
-
// clip-plane distances live on the owning Camera3D, not the projection.
|
|
6
3
|
export function createOrthographicProjection(opts) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
kind: 'orthographic',
|
|
11
|
-
});
|
|
4
|
+
const out = allocateEntity();
|
|
5
|
+
initializeOrthographicProjection(out, opts);
|
|
6
|
+
return finishEntity(out);
|
|
12
7
|
}
|
|
13
|
-
// Builds a perspective projection descriptor from a vertical field of view (radians) and a
|
|
14
|
-
// viewport aspect ratio (width / height). The clip-plane distances live on the owning Camera3D.
|
|
15
8
|
export function createPerspectiveProjection(opts) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
kind: 'perspective',
|
|
20
|
-
});
|
|
9
|
+
const out = allocateEntity();
|
|
10
|
+
initializePerspectiveProjection(out, opts);
|
|
11
|
+
return finishEntity(out);
|
|
21
12
|
}
|
|
22
13
|
// Returns the larger world-space footprint of one texel across an orthographic projection. Using the
|
|
23
14
|
// larger axis gives receiver offsets one conservative, aspect-independent unit even when the shadow
|
|
@@ -25,6 +16,21 @@ export function createPerspectiveProjection(opts) {
|
|
|
25
16
|
export function getOrthographicProjectionTexelSize(projection, pixelWidth, pixelHeight) {
|
|
26
17
|
return Math.max((projection.halfWidth * 2) / pixelWidth, (projection.halfHeight * 2) / pixelHeight);
|
|
27
18
|
}
|
|
19
|
+
// Builds an orthographic projection descriptor from explicit view-volume half-extents (in
|
|
20
|
+
// view-space units). The full visible width is 2*halfWidth and height 2*halfHeight; the
|
|
21
|
+
// clip-plane distances live on the owning Camera3D, not the projection.
|
|
22
|
+
export function initializeOrthographicProjection(out, opts) {
|
|
23
|
+
out.halfHeight = opts.halfHeight;
|
|
24
|
+
out.halfWidth = opts.halfWidth;
|
|
25
|
+
out.kind = 'orthographic';
|
|
26
|
+
}
|
|
27
|
+
// Builds a perspective projection descriptor from a vertical field of view (radians) and a
|
|
28
|
+
// viewport aspect ratio (width / height). The clip-plane distances live on the owning Camera3D.
|
|
29
|
+
export function initializePerspectiveProjection(out, opts) {
|
|
30
|
+
out.aspect = opts.aspect ?? 1;
|
|
31
|
+
out.fovY = opts.fovY;
|
|
32
|
+
out.kind = 'perspective';
|
|
33
|
+
}
|
|
28
34
|
// True when the projection is an orthographic descriptor. Narrows the discriminated union.
|
|
29
35
|
export function isOrthographicProjection(projection) {
|
|
30
36
|
return projection.kind === 'orthographic';
|
package/dist/projection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAU5F,MAAM,UAAU,4BAA4B,CAC1C,IAA6C;IAE7C,MAAM,GAAG,GAAG,cAAc,EAAmC,CAAC;IAC9D,gCAAgC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC5C,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,IAA4C;IAE5C,MAAM,GAAG,GAAG,cAAc,EAAkC,CAAC;IAC7D,+BAA+B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3C,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,qGAAqG;AACrG,oGAAoG;AACpG,sFAAsF;AACtF,MAAM,UAAU,kCAAkC,CAChD,UAA4C,EAC5C,UAAkB,EAClB,WAAmB;IAEnB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;AACtG,CAAC;AAED,0FAA0F;AAC1F,wFAAwF;AACxF,wEAAwE;AACxE,MAAM,UAAU,gCAAgC,CAC9C,GAAwD,EACxD,IAA6C;IAE7C,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACjC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAC/B,GAAG,CAAC,IAAI,GAAG,cAAc,CAAC;AAC5B,CAAC;AAED,2FAA2F;AAC3F,gGAAgG;AAChG,MAAM,UAAU,+BAA+B,CAC7C,GAAuD,EACvD,IAA4C;IAE5C,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9B,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACrB,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC;AAC3B,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,wBAAwB,CAAC,UAAgC;IACvE,OAAO,UAAU,CAAC,IAAI,KAAK,cAAc,CAAC;AAC5C,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,uBAAuB,CAAC,UAAgC;IACtE,OAAO,UAAU,CAAC,IAAI,KAAK,aAAa,CAAC;AAC3C,CAAC;AAED,iGAAiG;AACjG,uFAAuF;AACvF,iGAAiG;AACjG,iGAAiG;AACjG,6CAA6C;AAC7C,EAAE;AACF,4FAA4F;AAC5F,yCAAyC;AACzC,MAAM,UAAU,oBAAoB,CAClC,GAAgB,EAChB,UAAgC,EAChC,MAAc,EACd,IAAY,EACZ,GAAW;IAEX,IAAI,UAAU,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACtC,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/E,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACvC,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IACzC,sBAAsB,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACzF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/camera",
|
|
3
|
-
"version": "0.5.1-next.
|
|
3
|
+
"version": "0.5.1-next.903.f434bc2",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,10 +38,10 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/entity": "0.5.1-next.
|
|
42
|
-
"@flighthq/geometry": "0.5.1-next.
|
|
43
|
-
"@flighthq/log": "0.5.1-next.
|
|
44
|
-
"@flighthq/types": "0.5.1-next.
|
|
41
|
+
"@flighthq/entity": "0.5.1-next.903.f434bc2",
|
|
42
|
+
"@flighthq/geometry": "0.5.1-next.903.f434bc2",
|
|
43
|
+
"@flighthq/log": "0.5.1-next.903.f434bc2",
|
|
44
|
+
"@flighthq/types": "0.5.1-next.903.f434bc2"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"typescript": "^5.3.0"
|