@jscad/modeling 3.0.0-alpha.0 → 3.0.1-alpha.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/CHANGELOG.md +35 -0
- package/LICENSE +1 -1
- package/dist/jscad-modeling.es.js +2 -2
- package/dist/jscad-modeling.min.js +2 -2
- package/package.json +2 -2
- package/rollup.config.js +1 -1
- package/src/colors/colorize.js +1 -5
- package/src/colors/colorize.test.js +8 -8
- package/src/geometries/geom2/transform.js +9 -1
- package/src/geometries/geom2/transform.test.js +57 -0
- package/src/geometries/geom3/fromPointsConvex.d.ts +4 -0
- package/src/geometries/geom3/fromPointsConvex.js +25 -0
- package/src/geometries/geom3/fromPointsConvex.test.js +32 -0
- package/src/geometries/geom3/index.d.ts +1 -0
- package/src/geometries/geom3/index.js +1 -0
- package/src/geometries/index.js +3 -4
- package/src/geometries/poly3/type.d.ts +1 -1
- package/src/geometries/slice/validate.js +1 -2
- package/src/maths/index.js +1 -0
- package/src/maths/mat4/isOnlyTransformScale.js +1 -1
- package/src/measurements/measureAggregateArea.js +0 -1
- package/src/measurements/measureAggregateBoundingBox.js +0 -1
- package/src/measurements/measureAggregateEpsilon.js +0 -1
- package/src/measurements/measureAggregateVolume.js +0 -1
- package/src/measurements/measureArea.js +0 -1
- package/src/measurements/measureBoundingBox.js +0 -1
- package/src/measurements/measureEpsilon.js +0 -1
- package/src/measurements/measureVolume.js +0 -1
- package/src/operations/booleans/index.d.ts +1 -0
- package/src/operations/booleans/intersect.js +5 -5
- package/src/operations/booleans/intersect.test.js +6 -7
- package/src/operations/booleans/intersectGeom2.js +2 -6
- package/src/operations/booleans/intersectGeom2.test.js +25 -1
- package/src/operations/booleans/intersectGeom3.js +2 -6
- package/src/operations/booleans/intersectGeom3.test.js +5 -1
- package/src/operations/booleans/mayOverlap.js +0 -1
- package/src/operations/booleans/scission.d.ts +5 -0
- package/src/operations/booleans/scission.js +3 -5
- package/src/operations/booleans/scission.test.js +6 -0
- package/src/operations/booleans/subtract.js +5 -5
- package/src/operations/booleans/subtract.test.js +6 -7
- package/src/operations/booleans/subtractGeom2.js +2 -6
- package/src/operations/booleans/subtractGeom2.test.js +25 -1
- package/src/operations/booleans/subtractGeom3.js +2 -6
- package/src/operations/booleans/subtractGeom3.test.js +5 -1
- package/src/operations/booleans/trees/splitPolygonByPlane.d.ts +33 -0
- package/src/operations/booleans/union.js +5 -5
- package/src/operations/booleans/union.test.js +6 -7
- package/src/operations/booleans/unionGeom2.js +2 -6
- package/src/operations/booleans/unionGeom2.test.js +25 -1
- package/src/operations/booleans/unionGeom3.js +2 -6
- package/src/operations/booleans/unionGeom3.test.js +6 -1
- package/src/operations/extrusions/extrudeFromSlices.test.js +8 -1
- package/src/operations/extrusions/extrudeHelical.js +2 -8
- package/src/operations/extrusions/extrudeLinear.js +1 -5
- package/src/operations/extrusions/extrudeLinear.test.js +7 -1
- package/src/operations/extrusions/extrudeRotate.js +3 -2
- package/src/operations/extrusions/extrudeRotate.test.js +13 -1
- package/src/operations/extrusions/project.js +1 -5
- package/src/operations/hulls/hull.js +6 -5
- package/src/operations/hulls/hull.test.js +56 -3
- package/src/operations/hulls/hullChain.js +11 -6
- package/src/operations/hulls/hullChain.test.js +12 -2
- package/src/operations/hulls/hullGeom2.js +5 -6
- package/src/operations/hulls/hullGeom3.js +9 -18
- package/src/operations/hulls/hullPath2.js +6 -7
- package/src/operations/hulls/hullPath2.test.js +1 -1
- package/src/operations/hulls/hullPoints2.d.ts +3 -0
- package/src/operations/hulls/hullPoints2.js +4 -2
- package/src/operations/hulls/hullPoints3.d.ts +4 -0
- package/src/operations/hulls/hullPoints3.js +21 -0
- package/src/operations/hulls/index.d.ts +2 -0
- package/src/operations/hulls/index.js +3 -1
- package/src/operations/modifiers/generalize.js +2 -6
- package/src/operations/modifiers/index.js +1 -1
- package/src/operations/modifiers/snap.js +2 -6
- package/src/operations/offsets/offset.js +1 -5
- package/src/operations/offsets/offsetFromPoints.test.js +0 -1
- package/src/operations/offsets/offsetGeom2.test.js +1 -0
- package/src/operations/offsets/offsetGeom3.js +0 -2
- package/src/operations/offsets/offsetGeom3.test.js +9 -1
- package/src/operations/offsets/offsetPath2.js +3 -3
- package/src/operations/transforms/align.js +8 -7
- package/src/operations/transforms/align.test.js +2 -2
- package/src/operations/transforms/center.js +6 -9
- package/src/operations/transforms/center.test.js +19 -1
- package/src/operations/transforms/mirror.js +5 -8
- package/src/operations/transforms/mirror.test.js +7 -7
- package/src/operations/transforms/rotate.js +5 -8
- package/src/operations/transforms/scale.js +5 -8
- package/src/operations/transforms/transform.js +2 -5
- package/src/operations/transforms/translate.js +5 -8
- package/src/primitives/arc.js +2 -0
- package/src/primitives/arc.test.js +11 -11
- package/src/primitives/circle.test.js +18 -8
- package/src/primitives/cube.test.js +10 -0
- package/src/primitives/cuboid.test.js +10 -0
- package/src/primitives/cylinder.test.js +12 -0
- package/src/primitives/cylinderElliptic.test.js +21 -1
- package/src/primitives/ellipse.test.js +18 -8
- package/src/primitives/ellipsoid.test.js +12 -0
- package/src/primitives/geodesicSphere.test.js +8 -0
- package/src/primitives/line.test.js +1 -1
- package/src/primitives/polygon.d.ts +1 -0
- package/src/primitives/polygon.js +13 -4
- package/src/primitives/polygon.test.js +15 -0
- package/src/primitives/polyhedron.js +1 -0
- package/src/primitives/polyhedron.test.js +8 -2
- package/src/primitives/rectangle.test.js +9 -3
- package/src/primitives/roundedCuboid.js +1 -1
- package/src/primitives/roundedCuboid.test.js +20 -4
- package/src/primitives/roundedCylinder.js +1 -1
- package/src/primitives/roundedCylinder.test.js +20 -0
- package/src/primitives/roundedRectangle.js +1 -1
- package/src/primitives/roundedRectangle.test.js +15 -6
- package/src/primitives/sphere.test.js +12 -0
- package/src/primitives/square.test.js +10 -4
- package/src/primitives/star.test.js +14 -6
- package/src/primitives/torus.js +1 -1
- package/src/primitives/torus.test.js +11 -1
- package/src/primitives/triangle.test.js +17 -9
- package/src/utils/coalesce.d.ts +3 -0
- package/src/utils/coalesce.js +20 -0
- package/src/utils/index.js +2 -2
- package/src/maths/mat4/leftMultiplyVec2.d.ts +0 -4
- package/src/maths/mat4/leftMultiplyVec2.js +0 -26
- package/src/maths/mat4/leftMultiplyVec3.d.ts +0 -4
- package/src/maths/mat4/leftMultiplyVec3.js +0 -27
- package/src/maths/mat4/mirror.d.ts +0 -4
- package/src/maths/mat4/mirror.js +0 -32
- package/src/maths/mat4/rightMultiplyVec2.d.ts +0 -4
- package/src/maths/mat4/rightMultiplyVec2.js +0 -27
- package/src/maths/mat4/rightMultiplyVec3.d.ts +0 -4
- package/src/maths/mat4/rightMultiplyVec3.js +0 -28
package/src/maths/mat4/mirror.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* m the mat4 by the dimensions in the given vec3
|
|
3
|
-
* create an affine matrix for mirroring into an arbitrary plane:
|
|
4
|
-
*
|
|
5
|
-
* @param {Mat4} out - the receiving matrix
|
|
6
|
-
* @param {Vec3} vector - the vec3 to mirror the matrix by
|
|
7
|
-
* @param {Mat4} matrix - the matrix to mirror
|
|
8
|
-
* @returns {Mat4} out
|
|
9
|
-
*/
|
|
10
|
-
export const mirror = (out, vector, matrix) => {
|
|
11
|
-
const x = vector[0]
|
|
12
|
-
const y = vector[1]
|
|
13
|
-
const z = vector[2]
|
|
14
|
-
|
|
15
|
-
out[0] = matrix[0] * x
|
|
16
|
-
out[1] = matrix[1] * x
|
|
17
|
-
out[2] = matrix[2] * x
|
|
18
|
-
out[3] = matrix[3] * x
|
|
19
|
-
out[4] = matrix[4] * y
|
|
20
|
-
out[5] = matrix[5] * y
|
|
21
|
-
out[6] = matrix[6] * y
|
|
22
|
-
out[7] = matrix[7] * y
|
|
23
|
-
out[8] = matrix[8] * z
|
|
24
|
-
out[9] = matrix[9] * z
|
|
25
|
-
out[10] = matrix[10] * z
|
|
26
|
-
out[11] = matrix[11] * z
|
|
27
|
-
out[12] = matrix[12]
|
|
28
|
-
out[13] = matrix[13]
|
|
29
|
-
out[14] = matrix[14]
|
|
30
|
-
out[15] = matrix[15]
|
|
31
|
-
return out
|
|
32
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { fromValues } from '../vec2/index.js'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Multiply a 2D vector by a matrix (interpreted as 2 row, 1 column).
|
|
5
|
-
*
|
|
6
|
-
* Calculation: result = v*M, where the fourth element is set to 1.
|
|
7
|
-
* @param {Vec2} vector - input vector
|
|
8
|
-
* @param {Mat4} matrix - input matrix
|
|
9
|
-
* @returns {Vec2} a new vector
|
|
10
|
-
* @alias module:modeling/maths/mat4.rightMultiplyVec2
|
|
11
|
-
*/
|
|
12
|
-
export const rightMultiplyVec2 = (vector, matrix) => {
|
|
13
|
-
const [v0, v1] = vector
|
|
14
|
-
const v2 = 0
|
|
15
|
-
const v3 = 1
|
|
16
|
-
let x = v0 * matrix[0] + v1 * matrix[1] + v2 * matrix[2] + v3 * matrix[3]
|
|
17
|
-
let y = v0 * matrix[4] + v1 * matrix[5] + v2 * matrix[6] + v3 * matrix[7]
|
|
18
|
-
const w = v0 * matrix[12] + v1 * matrix[13] + v2 * matrix[14] + v3 * matrix[15]
|
|
19
|
-
|
|
20
|
-
// scale such that fourth element becomes 1:
|
|
21
|
-
if (w !== 1) {
|
|
22
|
-
const invw = 1.0 / w
|
|
23
|
-
x *= invw
|
|
24
|
-
y *= invw
|
|
25
|
-
}
|
|
26
|
-
return fromValues(x, y)
|
|
27
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { fromValues } from '../vec3/index.js'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Multiply a 3D vector by a matrix (interpreted as 3 row, 1 column)
|
|
5
|
-
*
|
|
6
|
-
* Calculation: result = v*M, where the fourth element is set to 1.
|
|
7
|
-
* @param {Vec3} vector - input vector
|
|
8
|
-
* @param {Mat4} matrix - input matrix
|
|
9
|
-
* @returns {Vec3} a new vector
|
|
10
|
-
* @alias module:modeling/maths/mat4.rightMultiplyVec3
|
|
11
|
-
*/
|
|
12
|
-
export const rightMultiplyVec3 = (vector, matrix) => {
|
|
13
|
-
const [v0, v1, v2] = vector
|
|
14
|
-
const v3 = 1
|
|
15
|
-
let x = v0 * matrix[0] + v1 * matrix[1] + v2 * matrix[2] + v3 * matrix[3]
|
|
16
|
-
let y = v0 * matrix[4] + v1 * matrix[5] + v2 * matrix[6] + v3 * matrix[7]
|
|
17
|
-
let z = v0 * matrix[8] + v1 * matrix[9] + v2 * matrix[10] + v3 * matrix[11]
|
|
18
|
-
const w = v0 * matrix[12] + v1 * matrix[13] + v2 * matrix[14] + v3 * matrix[15]
|
|
19
|
-
|
|
20
|
-
// scale such that fourth element becomes 1:
|
|
21
|
-
if (w !== 1) {
|
|
22
|
-
const invw = 1.0 / w
|
|
23
|
-
x *= invw
|
|
24
|
-
y *= invw
|
|
25
|
-
z *= invw
|
|
26
|
-
}
|
|
27
|
-
return fromValues(x, y, z)
|
|
28
|
-
}
|