@math.gl/culling 4.2.0-alpha.5 → 4.2.0-alpha.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.
- package/dist/constants.d.ts +10 -5
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +9 -5
- package/dist/constants.js.map +1 -1
- package/dist/index.cjs +29 -31
- package/dist/index.cjs.map +2 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/bounding-volumes/axis-aligned-bounding-box.d.ts +2 -1
- package/dist/lib/bounding-volumes/axis-aligned-bounding-box.d.ts.map +1 -1
- package/dist/lib/bounding-volumes/axis-aligned-bounding-box.js +3 -4
- package/dist/lib/bounding-volumes/axis-aligned-bounding-box.js.map +1 -1
- package/dist/lib/bounding-volumes/bounding-sphere.d.ts +2 -1
- package/dist/lib/bounding-volumes/bounding-sphere.d.ts.map +1 -1
- package/dist/lib/bounding-volumes/bounding-sphere.js +3 -4
- package/dist/lib/bounding-volumes/bounding-sphere.js.map +1 -1
- package/dist/lib/bounding-volumes/bounding-volume.d.ts +5 -4
- package/dist/lib/bounding-volumes/bounding-volume.d.ts.map +1 -1
- package/dist/lib/bounding-volumes/oriented-bounding-box.d.ts +2 -1
- package/dist/lib/bounding-volumes/oriented-bounding-box.d.ts.map +1 -1
- package/dist/lib/bounding-volumes/oriented-bounding-box.js +3 -4
- package/dist/lib/bounding-volumes/oriented-bounding-box.js.map +1 -1
- package/dist/lib/culling-volume.d.ts +2 -1
- package/dist/lib/culling-volume.d.ts.map +1 -1
- package/dist/lib/culling-volume.js +7 -8
- package/dist/lib/culling-volume.js.map +1 -1
- package/dist/lib/shapes/implicit-shape.d.ts +2 -1
- package/dist/lib/shapes/implicit-shape.d.ts.map +1 -1
- package/dist/lib/shapes/implicit-shape.js +3 -4
- package/dist/lib/shapes/implicit-shape.js.map +1 -1
- package/dist/lib/shapes/plane-shape.d.ts +2 -1
- package/dist/lib/shapes/plane-shape.d.ts.map +1 -1
- package/dist/lib/shapes/plane-shape.js +4 -5
- package/dist/lib/shapes/plane-shape.js.map +1 -1
- package/package.json +4 -4
- package/src/constants.ts +11 -5
- package/src/index.ts +1 -0
- package/src/lib/bounding-volumes/axis-aligned-bounding-box.ts +5 -5
- package/src/lib/bounding-volumes/bounding-sphere.ts +5 -5
- package/src/lib/bounding-volumes/bounding-volume.ts +5 -4
- package/src/lib/bounding-volumes/oriented-bounding-box.ts +5 -5
- package/src/lib/culling-volume.ts +9 -9
- package/src/lib/shapes/implicit-shape.ts +5 -5
- package/src/lib/shapes/plane-shape.ts +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oriented-bounding-box.d.ts","sourceRoot":"","sources":["../../../src/lib/bounding-volumes/oriented-bounding-box.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAC,MAAM,eAAe,CAAC;AAEpE,OAAO,KAAK,EAAC,cAAc,EAAC,6BAA0B;AACtD,OAAO,EAAC,cAAc,EAAC,6BAA0B;AACjD,OAAO,EAAC,KAAK,EAAC,oBAAiB;
|
|
1
|
+
{"version":3,"file":"oriented-bounding-box.d.ts","sourceRoot":"","sources":["../../../src/lib/bounding-volumes/oriented-bounding-box.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAC,MAAM,eAAe,CAAC;AAEpE,OAAO,KAAK,EAAC,cAAc,EAAC,6BAA0B;AACtD,OAAO,EAAC,cAAc,EAAC,6BAA0B;AACjD,OAAO,EAAC,KAAK,EAAC,oBAAiB;AAC/B,OAAO,KAAK,EAAC,aAAa,EAAC,2BAAwB;AAsBnD;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,cAAc;IACxD,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAElB;;;;OAIG;gBACS,MAAM,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC;IAS9E,iEAAiE;IACjE,IAAI,QAAQ,IAAI,MAAM,EAAE,CAKvB;IAED,0EAA0E;IAC1E,IAAI,UAAU,IAAI,UAAU,CAQ3B;IAED;;OAEG;IACH,4BAA4B,CAC1B,MAAM,EAAE,MAAM,EAAE,EAChB,QAAQ,EAAE,MAAM,EAAE,EAClB,UAAU,EAAE,MAAM,EAAE,GACnB,mBAAmB;IAiBtB,iDAAiD;IACjD,KAAK,IAAI,mBAAmB;IAI5B,2EAA2E;IAC3E,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO;IAO3C,6FAA6F;IAC7F,iBAAiB,CAAC,MAAM,iBAAuB,GAAG,cAAc;IAehE,6EAA6E;IAC7E,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa;IAsC3C,2FAA2F;IAC3F,UAAU,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM;IAI5C;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM;IAwCnD;;;;;;;;;;;;;OAaG;IAEH,qBAAqB,CACnB,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,SAAS,EAAE,OAAO,EAClB,MAAM,GAAE,MAAM,EAAa,GAC1B,MAAM,EAAE;IAwFX;;;;OAIG;IACH,SAAS,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAgBlD,YAAY,IAAI,OAAO;CAKxB"}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
import { Vector3, Matrix3, Quaternion } from '@math.gl/core';
|
|
5
5
|
import { BoundingSphere } from "./bounding-sphere.js";
|
|
6
|
-
import { INTERSECTION } from "../../constants.js";
|
|
7
6
|
const scratchVector3 = new Vector3();
|
|
8
7
|
const scratchOffset = new Vector3();
|
|
9
8
|
const scratchVectorU = new Vector3();
|
|
@@ -110,13 +109,13 @@ export class OrientedBoundingBox {
|
|
|
110
109
|
const distanceToPlane = normal.dot(center) + plane.distance;
|
|
111
110
|
if (distanceToPlane <= -radEffective) {
|
|
112
111
|
// The entire box is on the negative side of the plane normal
|
|
113
|
-
return
|
|
112
|
+
return 'outside';
|
|
114
113
|
}
|
|
115
114
|
else if (distanceToPlane >= radEffective) {
|
|
116
115
|
// The entire box is on the positive side of the plane normal
|
|
117
|
-
return
|
|
116
|
+
return 'inside';
|
|
118
117
|
}
|
|
119
|
-
return
|
|
118
|
+
return 'intersecting';
|
|
120
119
|
}
|
|
121
120
|
/** Computes the estimated distance from the closest point on a bounding box to a point. */
|
|
122
121
|
distanceTo(point) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oriented-bounding-box.js","sourceRoot":"","sources":["../../../src/lib/bounding-volumes/oriented-bounding-box.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oriented-bounding-box.js","sourceRoot":"","sources":["../../../src/lib/bounding-volumes/oriented-bounding-box.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { CullingResult } from "../constants.js";
|
|
1
2
|
import { Plane } from "./plane.js";
|
|
2
3
|
import type { BoundingVolume } from "./bounding-volumes/bounding-volume.js";
|
|
3
4
|
import type { BoundingSphere } from "./bounding-volumes/bounding-sphere.js";
|
|
@@ -31,7 +32,7 @@ export declare class CullingVolume {
|
|
|
31
32
|
*/
|
|
32
33
|
fromBoundingSphere(boundingSphere: BoundingSphere): CullingVolume;
|
|
33
34
|
/** Determines whether a bounding volume intersects the culling volume. */
|
|
34
|
-
computeVisibility(boundingVolume: BoundingVolume):
|
|
35
|
+
computeVisibility(boundingVolume: BoundingVolume): CullingResult;
|
|
35
36
|
/**
|
|
36
37
|
* Determines whether a bounding volume intersects the culling volume.
|
|
37
38
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"culling-volume.d.ts","sourceRoot":"","sources":["../../src/lib/culling-volume.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"culling-volume.d.ts","sourceRoot":"","sources":["../../src/lib/culling-volume.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAC,aAAa,EAAC,wBAAqB;AAChD,OAAO,EAAC,KAAK,EAAC,mBAAgB;AAC9B,OAAO,KAAK,EAAC,cAAc,EAAC,8CAA2C;AACvE,OAAO,KAAK,EAAC,cAAc,EAAC,8CAA2C;AASvE,0CAA0C;AAC1C,qBAAa,aAAa;IACxB;;;OAGG;IACH,MAAM,CAAC,YAAY,SAAc;IAEjC;;;OAGG;IACH,MAAM,CAAC,WAAW,SAAc;IAEhC;;;OAGG;IACH,MAAM,CAAC,kBAAkB,SAAc;IAEvC,gCAAgC;IAChC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;IAEzB;;;SAGK;gBACO,MAAM,GAAE,KAAK,EAAO;IAIhC;;;OAGG;IACH,kBAAkB,CAAC,cAAc,EAAE,cAAc,GAAG,aAAa;IAsCjE,0EAA0E;IAC1E,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,aAAa;IAsBhE;;;;;;;OAOG;IACH,8BAA8B,CAAC,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM;CAmChG"}
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md
|
|
6
6
|
/* eslint-disable */
|
|
7
7
|
import { Vector3, assert } from '@math.gl/core';
|
|
8
|
-
import { INTERSECTION } from "../constants.js";
|
|
9
8
|
import { Plane } from "./plane.js";
|
|
10
9
|
// X, Y, Z Unit vectors
|
|
11
10
|
const faces = [new Vector3([1, 0, 0]), new Vector3([0, 1, 0]), new Vector3([0, 0, 1])];
|
|
@@ -53,16 +52,16 @@ export class CullingVolume {
|
|
|
53
52
|
/** Determines whether a bounding volume intersects the culling volume. */
|
|
54
53
|
computeVisibility(boundingVolume) {
|
|
55
54
|
// const planes = this.planes;
|
|
56
|
-
let intersect =
|
|
55
|
+
let intersect = 'inside';
|
|
57
56
|
for (const plane of this.planes) {
|
|
58
57
|
const result = boundingVolume.intersectPlane(plane);
|
|
59
58
|
switch (result) {
|
|
60
|
-
case
|
|
59
|
+
case 'outside':
|
|
61
60
|
// We are done
|
|
62
|
-
return
|
|
63
|
-
case
|
|
61
|
+
return 'outside';
|
|
62
|
+
case 'intersecting':
|
|
64
63
|
// If no other intersection is outside, return INTERSECTING
|
|
65
|
-
intersect =
|
|
64
|
+
intersect = 'intersecting';
|
|
66
65
|
break;
|
|
67
66
|
default:
|
|
68
67
|
}
|
|
@@ -97,10 +96,10 @@ export class CullingVolume {
|
|
|
97
96
|
}
|
|
98
97
|
const plane = planes[k];
|
|
99
98
|
const result = boundingVolume.intersectPlane(plane);
|
|
100
|
-
if (result ===
|
|
99
|
+
if (result === 'outside') {
|
|
101
100
|
return CullingVolume.MASK_OUTSIDE;
|
|
102
101
|
}
|
|
103
|
-
else if (result ===
|
|
102
|
+
else if (result === 'intersecting') {
|
|
104
103
|
mask |= flag;
|
|
105
104
|
}
|
|
106
105
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"culling-volume.js","sourceRoot":"","sources":["../../src/lib/culling-volume.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,8CAA8C;AAC9C,oCAAoC;AAEpC,2EAA2E;AAC3E,4FAA4F;AAE5F,oBAAoB;AACpB,OAAO,EAAC,OAAO,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"culling-volume.js","sourceRoot":"","sources":["../../src/lib/culling-volume.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Matrix4, Vector3 } from '@math.gl/core';
|
|
2
|
+
import type { CullingResult } from "../../constants.js";
|
|
2
3
|
import { AxisAlignedBoundingBox } from "../bounding-volumes/axis-aligned-bounding-box.js";
|
|
3
4
|
import { BoundingSphere } from "../bounding-volumes/bounding-sphere.js";
|
|
4
5
|
import type { BoundingVolume } from "../bounding-volumes/bounding-volume.js";
|
|
@@ -41,7 +42,7 @@ export declare abstract class ImplicitShapeBase implements ImplicitShape {
|
|
|
41
42
|
distanceSquaredTo(point: readonly number[]): number;
|
|
42
43
|
/** Exact for rigid/uniform transforms; conservative estimate for non-uniform scale or shear. */
|
|
43
44
|
distanceTo(point: readonly number[]): number;
|
|
44
|
-
intersectPlane(plane: Plane):
|
|
45
|
+
intersectPlane(plane: Plane): CullingResult;
|
|
45
46
|
intersectRay(ray: Ray): RayIntersection | undefined;
|
|
46
47
|
getAxisAlignedBoundingBox(): AxisAlignedBoundingBox | undefined;
|
|
47
48
|
getBoundingSphere(): BoundingSphere | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implicit-shape.d.ts","sourceRoot":"","sources":["../../../src/lib/shapes/implicit-shape.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"implicit-shape.d.ts","sourceRoot":"","sources":["../../../src/lib/shapes/implicit-shape.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
import { Matrix4, Vector3 } from '@math.gl/core';
|
|
5
|
-
import { INTERSECTION } from "../../constants.js";
|
|
6
5
|
import { AxisAlignedBoundingBox } from "../bounding-volumes/axis-aligned-bounding-box.js";
|
|
7
6
|
import { BoundingSphere } from "../bounding-volumes/bounding-sphere.js";
|
|
8
7
|
/** Shared affine transform, support mapping and query implementation for finite convex shapes. */
|
|
@@ -50,10 +49,10 @@ export class ImplicitShapeBase {
|
|
|
50
49
|
const maxDistance = plane.getPointDistance(maximum);
|
|
51
50
|
const minDistance = plane.getPointDistance(minimum);
|
|
52
51
|
if (minDistance > 0)
|
|
53
|
-
return
|
|
52
|
+
return 'inside';
|
|
54
53
|
if (maxDistance < 0)
|
|
55
|
-
return
|
|
56
|
-
return
|
|
54
|
+
return 'outside';
|
|
55
|
+
return 'intersecting';
|
|
57
56
|
}
|
|
58
57
|
intersectRay(ray) {
|
|
59
58
|
const localOrigin = this.inverseMatrix.transformAsPoint(ray.origin);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implicit-shape.js","sourceRoot":"","sources":["../../../src/lib/shapes/implicit-shape.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"implicit-shape.js","sourceRoot":"","sources":["../../../src/lib/shapes/implicit-shape.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { CullingResult } from "../../constants.js";
|
|
1
2
|
import { ImplicitShapeBase, type ImplicitShape, type LocalRayIntersection } from "./implicit-shape.js";
|
|
2
3
|
import type { AxisAlignedBoundingBox } from "../bounding-volumes/axis-aligned-bounding-box.js";
|
|
3
4
|
import type { BoundingSphere } from "../bounding-volumes/bounding-sphere.js";
|
|
@@ -19,7 +20,7 @@ export declare class PlaneShape extends ImplicitShapeBase {
|
|
|
19
20
|
distanceToLocalPoint(point: readonly number[]): number;
|
|
20
21
|
supportLocal(): readonly number[];
|
|
21
22
|
intersectLocalRay(origin: readonly number[], direction: readonly number[]): LocalRayIntersection | undefined;
|
|
22
|
-
intersectPlane(plane: Plane):
|
|
23
|
+
intersectPlane(plane: Plane): CullingResult;
|
|
23
24
|
getAxisAlignedBoundingBox(): AxisAlignedBoundingBox | undefined;
|
|
24
25
|
getBoundingSphere(): BoundingSphere | undefined;
|
|
25
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plane-shape.d.ts","sourceRoot":"","sources":["../../../src/lib/shapes/plane-shape.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plane-shape.d.ts","sourceRoot":"","sources":["../../../src/lib/shapes/plane-shape.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,aAAa,EAAC,2BAAwB;AACnD,OAAO,EAAC,iBAAiB,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAC,4BAAyB;AAClG,OAAO,KAAK,EAAC,sBAAsB,EAAC,yDAAsD;AAC1F,OAAO,KAAK,EAAC,cAAc,EAAC,+CAA4C;AACxE,OAAO,KAAK,EAAC,KAAK,EAAC,oBAAiB;AAEpC,MAAM,MAAM,eAAe,GAAG;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAC,CAAC;AAE3F,yFAAyF;AACzF,qBAAa,UAAW,SAAQ,iBAAiB;IAC/C,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;gBACZ,KAAK,GAAE,eAAoB;IASvC,KAAK,IAAI,UAAU;IAGV,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAQ9C,kBAAkB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO;IAGrD,oBAAoB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM;IAGtD,YAAY,IAAI,SAAS,MAAM,EAAE;IAGjC,iBAAiB,CACf,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,oBAAoB,GAAG,SAAS;IAU1B,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa;IAW3C,yBAAyB,IAAI,sBAAsB,GAAG,SAAS;IAG/D,iBAAiB,IAAI,cAAc,GAAG,SAAS;CAGzD"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
import { Vector3 } from '@math.gl/core';
|
|
5
|
-
import { INTERSECTION } from "../../constants.js";
|
|
6
5
|
import { ImplicitShapeBase } from "./implicit-shape.js";
|
|
7
6
|
/** Analytic glTF plane. The surface faces +Y and the negative-Y half-space is inside. */
|
|
8
7
|
export class PlaneShape extends ImplicitShapeBase {
|
|
@@ -54,13 +53,13 @@ export class PlaneShape extends ImplicitShapeBase {
|
|
|
54
53
|
const boundaryNormal = new Vector3(inverse[1], inverse[5], inverse[9]).normalize();
|
|
55
54
|
const alignment = boundaryNormal.dot(plane.normal);
|
|
56
55
|
if (Math.abs(Math.abs(alignment) - 1) > 1e-10)
|
|
57
|
-
return
|
|
56
|
+
return 'intersecting';
|
|
58
57
|
const boundaryDistance = plane.getPointDistance(boundaryPoint);
|
|
59
58
|
if (alignment < 0 && boundaryDistance > 0)
|
|
60
|
-
return
|
|
59
|
+
return 'inside';
|
|
61
60
|
if (alignment > 0 && boundaryDistance < 0)
|
|
62
|
-
return
|
|
63
|
-
return
|
|
61
|
+
return 'outside';
|
|
62
|
+
return 'intersecting';
|
|
64
63
|
}
|
|
65
64
|
getAxisAlignedBoundingBox() {
|
|
66
65
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plane-shape.js","sourceRoot":"","sources":["../../../src/lib/shapes/plane-shape.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"plane-shape.js","sourceRoot":"","sources":["../../../src/lib/shapes/plane-shape.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
8
8
|
},
|
|
9
|
-
"version": "4.2.0-alpha.
|
|
9
|
+
"version": "4.2.0-alpha.6",
|
|
10
10
|
"keywords": [
|
|
11
11
|
"webgl",
|
|
12
12
|
"javascript",
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"src"
|
|
43
43
|
],
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@math.gl/core": "4.2.0-alpha.
|
|
46
|
-
"@math.gl/types": "4.2.0-alpha.
|
|
45
|
+
"@math.gl/core": "4.2.0-alpha.6",
|
|
46
|
+
"@math.gl/types": "4.2.0-alpha.6"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "b1d477a0afa7033ce6ac837bb4c811b425e99566"
|
|
49
49
|
}
|
package/src/constants.ts
CHANGED
|
@@ -2,8 +2,14 @@
|
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
5
|
+
/** Classification returned by culling intersection tests. */
|
|
6
|
+
export type CullingResult = 'outside' | 'intersecting' | 'inside';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated Use the string values of {@link CullingResult} directly.
|
|
10
|
+
*/
|
|
11
|
+
export enum INTERSECTION {
|
|
12
|
+
OUTSIDE = 'outside', // The object is not contained within the frustum.
|
|
13
|
+
INTERSECTING = 'intersecting', // The object intersects one or more frustum planes.
|
|
14
|
+
INSIDE = 'inside' // The object is fully within the frustum.
|
|
15
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
5
|
export {INTERSECTION} from './constants';
|
|
6
|
+
export type {CullingResult} from './constants';
|
|
6
7
|
|
|
7
8
|
export {AxisAlignedBoundingBox} from './lib/bounding-volumes/axis-aligned-bounding-box';
|
|
8
9
|
export {BoundingSphere} from './lib/bounding-volumes/bounding-sphere';
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import {BoundingVolume} from './bounding-volume';
|
|
6
6
|
import {Vector3} from '@math.gl/core';
|
|
7
7
|
import {Plane} from '../plane';
|
|
8
|
-
import {
|
|
8
|
+
import type {CullingResult} from '../../constants';
|
|
9
9
|
|
|
10
10
|
const scratchVector = new Vector3();
|
|
11
11
|
const scratchNormal = new Vector3();
|
|
@@ -97,7 +97,7 @@ export class AxisAlignedBoundingBox implements BoundingVolume {
|
|
|
97
97
|
/**
|
|
98
98
|
* Determines which side of a plane a box is located.
|
|
99
99
|
*/
|
|
100
|
-
intersectPlane(plane: Plane):
|
|
100
|
+
intersectPlane(plane: Plane): CullingResult {
|
|
101
101
|
const {halfDiagonal} = this;
|
|
102
102
|
const normal = scratchNormal.from(plane.normal);
|
|
103
103
|
const e =
|
|
@@ -107,15 +107,15 @@ export class AxisAlignedBoundingBox implements BoundingVolume {
|
|
|
107
107
|
const s = this.center.dot(normal) + plane.distance; // signed distance from center
|
|
108
108
|
|
|
109
109
|
if (s - e > 0) {
|
|
110
|
-
return
|
|
110
|
+
return 'inside';
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
if (s + e < 0) {
|
|
114
114
|
// Not in front because normals point inward
|
|
115
|
-
return
|
|
115
|
+
return 'outside';
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
-
return
|
|
118
|
+
return 'intersecting';
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
/** Computes the estimated distance from the closest point on a bounding box to a point. */
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import {NumericArray, Vector3, mat4} from '@math.gl/core';
|
|
9
9
|
|
|
10
|
-
import {
|
|
10
|
+
import type {CullingResult} from '../../constants';
|
|
11
11
|
import {BoundingVolume} from './bounding-volume';
|
|
12
12
|
import {Plane} from '../plane';
|
|
13
13
|
|
|
@@ -131,7 +131,7 @@ export class BoundingSphere implements BoundingVolume {
|
|
|
131
131
|
}
|
|
132
132
|
|
|
133
133
|
/** Determines which side of a plane a sphere is located. */
|
|
134
|
-
intersectPlane(plane: Plane):
|
|
134
|
+
intersectPlane(plane: Plane): CullingResult {
|
|
135
135
|
const center = this.center;
|
|
136
136
|
const radius = this.radius;
|
|
137
137
|
const normal = plane.normal;
|
|
@@ -139,13 +139,13 @@ export class BoundingSphere implements BoundingVolume {
|
|
|
139
139
|
|
|
140
140
|
// The center point is negative side of the plane normal
|
|
141
141
|
if (distanceToPlane < -radius) {
|
|
142
|
-
return
|
|
142
|
+
return 'outside';
|
|
143
143
|
}
|
|
144
144
|
// The center point is positive side of the plane, but radius extends beyond it; partial overlap
|
|
145
145
|
if (distanceToPlane < radius) {
|
|
146
|
-
return
|
|
146
|
+
return 'intersecting';
|
|
147
147
|
}
|
|
148
148
|
// The center point and radius is positive side of the plane
|
|
149
|
-
return
|
|
149
|
+
return 'inside';
|
|
150
150
|
}
|
|
151
151
|
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
// import {INTERSECTION} from '../../constants';
|
|
6
6
|
import {Plane} from '../plane';
|
|
7
|
+
import type {CullingResult} from '../../constants';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Common interface for BoundingVolumes
|
|
@@ -28,9 +29,9 @@ export interface BoundingVolume {
|
|
|
28
29
|
*
|
|
29
30
|
* @param plane The plane to test against.
|
|
30
31
|
* @returns
|
|
31
|
-
* - `
|
|
32
|
-
* - `
|
|
33
|
-
* - `
|
|
32
|
+
* - `'inside'` if the entire box is on the side of the plane the normal is pointing.
|
|
33
|
+
* - `'outside'` if the entire box is on the opposite side.
|
|
34
|
+
* - `'intersecting'` if the box intersects the plane.
|
|
34
35
|
*/
|
|
35
|
-
intersectPlane(plane: Plane):
|
|
36
|
+
intersectPlane(plane: Plane): CullingResult;
|
|
36
37
|
}
|
|
@@ -11,7 +11,7 @@ import {Vector3, Matrix3, Matrix4, Quaternion} from '@math.gl/core';
|
|
|
11
11
|
import type {BoundingVolume} from './bounding-volume';
|
|
12
12
|
import {BoundingSphere} from './bounding-sphere';
|
|
13
13
|
import {Plane} from '../plane';
|
|
14
|
-
import {
|
|
14
|
+
import type {CullingResult} from '../../constants';
|
|
15
15
|
|
|
16
16
|
const scratchVector3 = new Vector3();
|
|
17
17
|
const scratchOffset = new Vector3();
|
|
@@ -129,7 +129,7 @@ export class OrientedBoundingBox implements BoundingVolume {
|
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
/** Determines which side of a plane the oriented bounding box is located. */
|
|
132
|
-
intersectPlane(plane: Plane):
|
|
132
|
+
intersectPlane(plane: Plane): CullingResult {
|
|
133
133
|
const center = this.center;
|
|
134
134
|
const normal = plane.normal;
|
|
135
135
|
const halfAxes = this.halfAxes;
|
|
@@ -159,12 +159,12 @@ export class OrientedBoundingBox implements BoundingVolume {
|
|
|
159
159
|
|
|
160
160
|
if (distanceToPlane <= -radEffective) {
|
|
161
161
|
// The entire box is on the negative side of the plane normal
|
|
162
|
-
return
|
|
162
|
+
return 'outside';
|
|
163
163
|
} else if (distanceToPlane >= radEffective) {
|
|
164
164
|
// The entire box is on the positive side of the plane normal
|
|
165
|
-
return
|
|
165
|
+
return 'inside';
|
|
166
166
|
}
|
|
167
|
-
return
|
|
167
|
+
return 'intersecting';
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
/** Computes the estimated distance from the closest point on a bounding box to a point. */
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
/* eslint-disable */
|
|
9
9
|
import {Vector3, assert} from '@math.gl/core';
|
|
10
|
-
import {
|
|
10
|
+
import type {CullingResult} from '../constants';
|
|
11
11
|
import {Plane} from './plane';
|
|
12
12
|
import type {BoundingVolume} from './bounding-volumes/bounding-volume';
|
|
13
13
|
import type {BoundingSphere} from './bounding-volumes/bounding-sphere';
|
|
@@ -93,19 +93,19 @@ export class CullingVolume {
|
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
/** Determines whether a bounding volume intersects the culling volume. */
|
|
96
|
-
computeVisibility(boundingVolume: BoundingVolume):
|
|
96
|
+
computeVisibility(boundingVolume: BoundingVolume): CullingResult {
|
|
97
97
|
// const planes = this.planes;
|
|
98
|
-
let intersect:
|
|
98
|
+
let intersect: CullingResult = 'inside';
|
|
99
99
|
for (const plane of this.planes) {
|
|
100
100
|
const result = boundingVolume.intersectPlane(plane);
|
|
101
101
|
switch (result) {
|
|
102
|
-
case
|
|
102
|
+
case 'outside':
|
|
103
103
|
// We are done
|
|
104
|
-
return
|
|
104
|
+
return 'outside';
|
|
105
105
|
|
|
106
|
-
case
|
|
106
|
+
case 'intersecting':
|
|
107
107
|
// If no other intersection is outside, return INTERSECTING
|
|
108
|
-
intersect =
|
|
108
|
+
intersect = 'intersecting';
|
|
109
109
|
break;
|
|
110
110
|
|
|
111
111
|
default:
|
|
@@ -149,9 +149,9 @@ export class CullingVolume {
|
|
|
149
149
|
|
|
150
150
|
const plane = planes[k];
|
|
151
151
|
const result = boundingVolume.intersectPlane(plane);
|
|
152
|
-
if (result ===
|
|
152
|
+
if (result === 'outside') {
|
|
153
153
|
return CullingVolume.MASK_OUTSIDE;
|
|
154
|
-
} else if (result ===
|
|
154
|
+
} else if (result === 'intersecting') {
|
|
155
155
|
mask |= flag;
|
|
156
156
|
}
|
|
157
157
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
5
|
import {Matrix4, Vector3} from '@math.gl/core';
|
|
6
|
-
import {
|
|
6
|
+
import type {CullingResult} from '../../constants';
|
|
7
7
|
import {AxisAlignedBoundingBox} from '../bounding-volumes/axis-aligned-bounding-box';
|
|
8
8
|
import {BoundingSphere} from '../bounding-volumes/bounding-sphere';
|
|
9
9
|
import type {BoundingVolume} from '../bounding-volumes/bounding-volume';
|
|
@@ -84,14 +84,14 @@ export abstract class ImplicitShapeBase implements ImplicitShape {
|
|
|
84
84
|
return localDistance * Math.min(scales[0], scales[1], scales[2]);
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
intersectPlane(plane: Plane):
|
|
87
|
+
intersectPlane(plane: Plane): CullingResult {
|
|
88
88
|
const maximum = this.getSupportPoint(plane.normal);
|
|
89
89
|
const minimum = this.getSupportPoint([-plane.normal[0], -plane.normal[1], -plane.normal[2]]);
|
|
90
90
|
const maxDistance = plane.getPointDistance(maximum);
|
|
91
91
|
const minDistance = plane.getPointDistance(minimum);
|
|
92
|
-
if (minDistance > 0) return
|
|
93
|
-
if (maxDistance < 0) return
|
|
94
|
-
return
|
|
92
|
+
if (minDistance > 0) return 'inside';
|
|
93
|
+
if (maxDistance < 0) return 'outside';
|
|
94
|
+
return 'intersecting';
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
intersectRay(ray: Ray): RayIntersection | undefined {
|