@jscad/modeling 2.5.2 → 2.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/CHANGELOG.md +57 -0
- package/dist/jscad-modeling.min.js +217 -202
- package/package.json +2 -2
- package/src/colors/colorize.js +4 -5
- package/src/colors/colorize.test.js +19 -12
- package/src/geometries/geom2/applyTransforms.js +1 -1
- package/src/geometries/geom2/clone.js +2 -12
- package/src/geometries/geom2/transform.js +2 -6
- package/src/geometries/geom3/applyTransforms.js +1 -1
- package/src/geometries/geom3/clone.js +2 -14
- package/src/geometries/geom3/clone.test.js +0 -2
- package/src/geometries/geom3/create.js +0 -2
- package/src/geometries/geom3/create.test.js +0 -2
- package/src/geometries/geom3/fromCompactBinary.js +4 -6
- package/src/geometries/geom3/fromToCompactBinary.test.js +0 -6
- package/src/geometries/geom3/invert.test.js +0 -2
- package/src/geometries/geom3/toCompactBinary.js +8 -10
- package/src/geometries/geom3/transform.js +2 -7
- package/src/geometries/geom3/transform.test.js +0 -1
- package/src/geometries/geom3/type.d.ts +0 -1
- package/src/geometries/path2/applyTransforms.js +1 -1
- package/src/geometries/path2/clone.js +2 -13
- package/src/geometries/path2/transform.js +2 -7
- package/src/geometries/poly3/isConvex.js +1 -1
- package/src/geometries/poly3/measureArea.js +12 -13
- package/src/geometries/poly3/measureArea.test.js +15 -0
- package/src/geometries/poly3/plane.js +1 -2
- package/src/maths/mat4/index.js +1 -0
- package/src/maths/mat4/isOnlyTransformScale.js +21 -0
- package/src/maths/mat4/isOnlyTransformScale.test.js +27 -0
- package/src/maths/plane/fromPoints.js +32 -10
- package/src/maths/plane/fromPoints.test.js +4 -0
- package/src/maths/utils/index.d.ts +0 -1
- package/src/maths/utils/index.js +0 -1
- package/src/maths/vec2/rotate.js +1 -1
- package/src/maths/vec2/rotate.test.js +3 -3
- package/src/measurements/index.js +4 -1
- package/src/measurements/measureBoundingBox.js +128 -38
- package/src/measurements/measureBoundingBox.test.js +8 -0
- package/src/measurements/measureBoundingSphere.js +146 -0
- package/src/measurements/measureBoundingSphere.test.js +59 -0
- package/src/measurements/measureCenter.js +28 -0
- package/src/measurements/measureCenter.test.js +58 -0
- package/src/measurements/measureCenterOfMass.js +106 -0
- package/src/measurements/measureCenterOfMass.test.js +58 -0
- package/src/measurements/measureDimensions.js +28 -0
- package/src/measurements/measureDimensions.test.js +58 -0
- package/src/measurements/measureEpsilon.js +3 -9
- package/src/operations/booleans/reTesselateCoplanarPolygons.js +1 -1
- package/src/operations/booleans/trees/PolygonTreeNode.js +0 -1
- package/src/operations/expansions/expand.test.js +1 -1
- package/src/operations/extrusions/extrudeRotate.test.js +18 -10
- package/src/operations/modifiers/generalize.js +0 -1
- package/src/operations/modifiers/snapPolygons.js +2 -2
- package/src/operations/modifiers/snapPolygons.test.js +13 -5
- package/src/primitives/index.d.ts +1 -0
- package/src/primitives/index.js +2 -1
- package/src/primitives/triangle.d.ts +10 -0
- package/src/primitives/triangle.js +164 -0
- package/src/primitives/triangle.test.js +95 -0
- package/src/maths/utils/clamp.d.ts +0 -3
- package/src/maths/utils/clamp.js +0 -4
- package/src/maths/utils/quantizeForSpace.d.ts +0 -3
- package/src/maths/utils/quantizeForSpace.js +0 -6
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
const test = require('ava')
|
|
2
|
+
|
|
3
|
+
const { triangle } = require('./index')
|
|
4
|
+
|
|
5
|
+
const degToRad = require('../utils/degToRad')
|
|
6
|
+
const geom2 = require('../geometries/geom2')
|
|
7
|
+
|
|
8
|
+
const comparePoints = require('../../test/helpers/comparePoints')
|
|
9
|
+
|
|
10
|
+
test('triangle (defaults)', (t) => {
|
|
11
|
+
const geometry = triangle()
|
|
12
|
+
const obs = geom2.toPoints(geometry)
|
|
13
|
+
const exp = [
|
|
14
|
+
[0, 0],
|
|
15
|
+
[1, 0],
|
|
16
|
+
[0.5000000000000002, 0.8660254037844387]
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
t.deepEqual(obs.length, 3)
|
|
20
|
+
t.true(comparePoints(obs, exp))
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
test('triangle (options)', (t) => {
|
|
24
|
+
// test SSS
|
|
25
|
+
let geometry = triangle({ type: 'SSS', values: [7, 8, 6] })
|
|
26
|
+
let obs = geom2.toPoints(geometry)
|
|
27
|
+
let exp = [
|
|
28
|
+
[0, 0],
|
|
29
|
+
[7, 0],
|
|
30
|
+
[1.5, 5.809475019311125]
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
t.deepEqual(obs.length, 3)
|
|
34
|
+
t.true(comparePoints(obs, exp))
|
|
35
|
+
|
|
36
|
+
// test AAA
|
|
37
|
+
geometry = triangle({ type: 'AAA', values: [Math.PI / 2, Math.PI / 4, Math.PI / 4] })
|
|
38
|
+
obs = geom2.toPoints(geometry)
|
|
39
|
+
exp = [
|
|
40
|
+
[0, 0],
|
|
41
|
+
[1, 0],
|
|
42
|
+
[0, 1.0000000000000002]
|
|
43
|
+
]
|
|
44
|
+
|
|
45
|
+
t.deepEqual(obs.length, 3)
|
|
46
|
+
t.true(comparePoints(obs, exp))
|
|
47
|
+
|
|
48
|
+
// test AAS
|
|
49
|
+
geometry = triangle({ type: 'AAS', values: [degToRad(62), degToRad(35), 7] })
|
|
50
|
+
obs = geom2.toPoints(geometry)
|
|
51
|
+
exp = [
|
|
52
|
+
[0, 0],
|
|
53
|
+
[7.86889631692936, 0],
|
|
54
|
+
[2.1348320069064197, 4.015035054457325]
|
|
55
|
+
]
|
|
56
|
+
|
|
57
|
+
t.deepEqual(obs.length, 3)
|
|
58
|
+
t.true(comparePoints(obs, exp))
|
|
59
|
+
|
|
60
|
+
// test ASA
|
|
61
|
+
geometry = triangle({ type: 'ASA', values: [degToRad(76), 9, degToRad(34)] })
|
|
62
|
+
obs = geom2.toPoints(geometry)
|
|
63
|
+
exp = [
|
|
64
|
+
[0, 0],
|
|
65
|
+
[9, 0],
|
|
66
|
+
[1.295667368233083, 5.196637976713814]
|
|
67
|
+
]
|
|
68
|
+
|
|
69
|
+
t.deepEqual(obs.length, 3)
|
|
70
|
+
t.true(comparePoints(obs, exp))
|
|
71
|
+
|
|
72
|
+
// test SAS
|
|
73
|
+
geometry = triangle({ type: 'SAS', values: [5, degToRad(49), 7] })
|
|
74
|
+
obs = geom2.toPoints(geometry)
|
|
75
|
+
exp = [
|
|
76
|
+
[0, 0],
|
|
77
|
+
[5, 0],
|
|
78
|
+
[0.4075867970664495, 5.282967061559405]
|
|
79
|
+
]
|
|
80
|
+
|
|
81
|
+
t.deepEqual(obs.length, 3)
|
|
82
|
+
t.true(comparePoints(obs, exp))
|
|
83
|
+
|
|
84
|
+
// test SSA
|
|
85
|
+
geometry = triangle({ type: 'SSA', values: [8, 13, degToRad(31)] })
|
|
86
|
+
obs = geom2.toPoints(geometry)
|
|
87
|
+
exp = [
|
|
88
|
+
[0, 0],
|
|
89
|
+
[8, 0],
|
|
90
|
+
[8.494946725906148, 12.990574573070846]
|
|
91
|
+
]
|
|
92
|
+
|
|
93
|
+
t.deepEqual(obs.length, 3)
|
|
94
|
+
t.true(comparePoints(obs, exp))
|
|
95
|
+
})
|
package/src/maths/utils/clamp.js
DELETED