@design-core/core 0.0.6 → 50.1.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/.eslintrc.json +4 -0
- package/.github/workflows/DesignCoreQA.yml +3 -0
- package/TODO.md +49 -6
- package/core/core/core.js +0 -3
- package/core/designCore.js +1 -1
- package/core/dimensions/alignedDimension.js +12 -11
- package/core/dimensions/angularDimension.js +38 -37
- package/core/dimensions/{baseCircularDimension.js → circularDimensionBase.js} +22 -21
- package/core/dimensions/diametricDimension.js +14 -13
- package/core/dimensions/dimension.js +62 -55
- package/core/dimensions/{baseDimension.js → dimensionBase.js} +73 -107
- package/core/dimensions/{baseLinearDimension.js → linearDimensionBase.js} +15 -14
- package/core/dimensions/radialDimension.js +12 -11
- package/core/dimensions/rotatedDimension.js +20 -19
- package/core/entities/arc.js +123 -156
- package/core/entities/arctext.js +222 -184
- package/core/entities/circle.js +77 -99
- package/core/entities/entity.js +114 -93
- package/core/entities/hatch.js +346 -273
- package/core/entities/insert.js +68 -83
- package/core/entities/line.js +21 -142
- package/core/entities/lwpolyline.js +16 -11
- package/core/entities/point.js +19 -19
- package/core/entities/polyline.js +7 -7
- package/core/entities/{basePolyline.js → polylineBase.js} +47 -299
- package/core/entities/rectangle.js +3 -1
- package/core/entities/solid.js +6 -15
- package/core/entities/text.js +190 -201
- package/core/lib/auxiliary/rubberBand.js +32 -0
- package/core/lib/auxiliary/selectionWindow.js +63 -0
- package/core/lib/auxiliary/snapPoint.js +113 -0
- package/core/lib/auxiliary/trackingLine.js +76 -0
- package/core/lib/boundingBox.js +11 -11
- package/core/lib/canvas.js +232 -168
- package/core/lib/clipboard.js +9 -3
- package/core/lib/colour.js +16 -0
- package/core/lib/commandLine.js +1 -6
- package/core/lib/commandManager.js +18 -8
- package/core/lib/constants.js +28 -0
- package/core/lib/dxf/dxf.js +15 -14
- package/core/lib/dxf/dxfIterator.js +2 -2
- package/core/lib/entityManager.js +33 -26
- package/core/lib/inputManager.js +36 -12
- package/core/lib/intersect.js +25 -0
- package/core/lib/matrix.js +1 -1
- package/core/lib/patterns.js +9 -2
- package/core/lib/plotOptions.js +67 -0
- package/core/lib/polylineUtils.js +75 -0
- package/core/lib/renderers/cairoRenderer.js +371 -0
- package/core/lib/renderers/canvasRenderer.js +315 -0
- package/core/lib/renderers/pdfRenderer.js +366 -0
- package/core/lib/renderers/rendererBase.js +284 -0
- package/core/lib/renderers/svgRenderer.js +343 -0
- package/core/lib/scene.js +28 -6
- package/core/lib/selectionManager.js +20 -20
- package/core/lib/settings.js +4 -2
- package/core/lib/snapping.js +4 -191
- package/core/lib/stateManager.js +30 -1
- package/core/lib/utils.js +26 -7
- package/core/properties/entityProperties.js +104 -0
- package/core/properties/property.js +106 -2
- package/core/properties/propertyManager.js +60 -44
- package/core/tables/block.js +50 -81
- package/core/tables/dimStyle.js +5 -5
- package/core/tables/endblk.js +1 -1
- package/core/tables/layer.js +8 -0
- package/core/tables/ltypeManager.js +1 -1
- package/core/tables/styleManagerBase.js +3 -2
- package/core/tables/tableManagerBase.js +8 -3
- package/core/tables/vport.js +2 -2
- package/core/tools/chamfer.js +117 -143
- package/core/tools/chamferFilletBase.js +138 -37
- package/core/tools/copy.js +11 -11
- package/core/tools/copybase.js +3 -3
- package/core/tools/copyclip.js +3 -3
- package/core/tools/cornerEntity.js +2 -2
- package/core/tools/cutclip.js +3 -3
- package/core/tools/explode.js +7 -7
- package/core/tools/extend.js +138 -25
- package/core/tools/fillet.js +92 -189
- package/core/tools/matchProp.js +3 -12
- package/core/tools/mirror.js +15 -14
- package/core/tools/move.js +8 -8
- package/core/tools/offset.js +31 -33
- package/core/tools/pasteclip.js +1 -1
- package/core/tools/purge.js +10 -10
- package/core/tools/rotate.js +19 -16
- package/core/tools/scale.js +7 -7
- package/core/tools/trim.js +271 -29
- package/core/tools/zoom.js +1 -1
- package/cspell.json +321 -0
- package/jest.config.js +6 -0
- package/package.json +5 -3
- package/test/dimensions/alignedDimension.test.js +17 -10
- package/test/dimensions/angularDimension.test.js +13 -13
- package/test/dimensions/diametricDimension.test.js +15 -15
- package/test/dimensions/dimension.test.js +12 -12
- package/test/dimensions/{baseDimension.test.js → dimensionBase.test.js} +73 -12
- package/test/dimensions/linearDimensionBase.test.js +62 -0
- package/test/dimensions/radialDimension.test.js +15 -15
- package/test/dimensions/rotatedDimension.test.js +18 -11
- package/test/entities/arc.test.js +83 -86
- package/test/entities/arctext.test.js +184 -57
- package/test/entities/circle.test.js +68 -96
- package/test/entities/entity.test.js +42 -8
- package/test/entities/hatch.test.js +569 -96
- package/test/entities/insert.test.js +99 -4
- package/test/entities/line.test.js +15 -41
- package/test/entities/lwpolyline.test.js +104 -0
- package/test/entities/point.test.js +3 -3
- package/test/entities/polyline.test.js +11 -0
- package/test/entities/{basePolyline.test.js → polylineBase.test.js} +192 -57
- package/test/entities/rectangle.test.js +11 -0
- package/test/entities/solid.test.js +1 -1
- package/test/entities/text.test.js +302 -77
- package/test/integration/exportIntegration.reference.dxf +9 -9
- package/test/integration/exportIntegration.test.js +5 -5
- package/test/integration/intersectionIntegration.test.js +4 -5
- package/test/integration/pdfRendererIntegration.reference.pdf +17709 -0
- package/test/integration/pdfRendererIntegration.test.js +61 -0
- package/test/integration/svgRendererIntegration.reference.svg +3343 -0
- package/test/integration/svgRendererIntegration.test.js +61 -0
- package/test/integration/userInputIntegration.reference.dxf +1165 -105
- package/test/integration/userInputIntegration.test.js +239 -132
- package/test/lib/boundingBox.test.js +3 -3
- package/test/lib/canvas.test.js +744 -125
- package/test/lib/constants.test.js +27 -0
- package/test/lib/entityManager.test.js +4 -4
- package/test/lib/inputManager.test.js +81 -20
- package/test/lib/intersect.test.js +83 -0
- package/test/lib/plotOptions.test.js +179 -0
- package/test/lib/rubberBand.test.js +84 -0
- package/test/lib/scene.test.js +9 -9
- package/test/lib/selectionManager.test.js +3 -3
- package/test/lib/settings.test.js +5 -6
- package/test/lib/snapping.test.js +72 -130
- package/test/lib/stateManager.test.js +7 -7
- package/test/lib/utils.test.js +36 -2
- package/test/properties/entityProperties.test.js +132 -0
- package/test/properties/property.test.js +53 -0
- package/test/properties/propertyManager.test.js +25 -25
- package/test/renderers/canvasRenderer.test.js +317 -0
- package/test/renderers/pdfRenderer.test.js +271 -0
- package/test/renderers/rendererBase.test.js +213 -0
- package/test/renderers/svgRenderer.test.js +326 -0
- package/test/tables/block.test.js +92 -13
- package/test/tables/endblk.test.js +2 -2
- package/test/tables/layer.test.js +30 -0
- package/test/tables/layerManager.test.js +2 -2
- package/test/test-helpers/hatchGridRenderer.js +180 -0
- package/test/test-helpers/test-helpers.js +158 -6
- package/test/tools/chamfer.test.js +273 -51
- package/test/tools/chamferFilletBase.test.js +125 -36
- package/test/tools/copy.test.js +8 -8
- package/test/tools/copybase.test.js +2 -2
- package/test/tools/copyclip.test.js +2 -2
- package/test/tools/cornerEntity.test.js +8 -8
- package/test/tools/cutclip.test.js +2 -2
- package/test/tools/erase.test.js +6 -6
- package/test/tools/explode.test.js +5 -5
- package/test/tools/extend.test.js +373 -42
- package/test/tools/fillet.test.js +230 -49
- package/test/tools/matchProp.test.js +11 -11
- package/test/tools/mirror.test.js +39 -39
- package/test/tools/move.test.js +7 -7
- package/test/tools/offset.test.js +222 -55
- package/test/tools/pasteclip.test.js +5 -5
- package/test/tools/purge.test.js +4 -4
- package/test/tools/rotate.test.js +39 -9
- package/test/tools/scale.test.js +33 -33
- package/test/tools/trim.test.js +579 -53
- package/test/tools/zoom.test.js +12 -12
- package/core/lib/selectionWindow.js +0 -83
|
@@ -11,7 +11,7 @@ import { Lwpolyline } from '../../core/entities/lwpolyline.js';
|
|
|
11
11
|
import { Hatch } from '../../core/entities/hatch.js';
|
|
12
12
|
import { Insert } from '../../core/entities/insert.js';
|
|
13
13
|
// import { ArcAlignedText } from '../../core/entities/arctext.js';
|
|
14
|
-
import {
|
|
14
|
+
import { PolylineBase } from '../../core/entities/polylineBase.js';
|
|
15
15
|
|
|
16
16
|
import { readFileSync } from 'fs';
|
|
17
17
|
import { fileURLToPath } from 'url';
|
|
@@ -106,23 +106,23 @@ beforeAll(() => {
|
|
|
106
106
|
// core.scene.entities.add(new Text({ points: [new Point(15, 205)], string: 'Solid', height: 4 }));
|
|
107
107
|
|
|
108
108
|
// Row 2, Col 0: Hatch
|
|
109
|
-
const boundary = new
|
|
109
|
+
const boundary = new PolylineBase({
|
|
110
110
|
points: [new Point(25, 230), new Point(75, 230), new Point(75, 280), new Point(25, 280)],
|
|
111
111
|
});
|
|
112
112
|
const hatch = new Hatch({
|
|
113
113
|
patternName: 'ANSI31',
|
|
114
114
|
layer: 'HATCH_LAYER',
|
|
115
115
|
});
|
|
116
|
-
hatch.childEntities
|
|
116
|
+
hatch.setProperty('childEntities', [boundary]);
|
|
117
117
|
core.scene.entities.add(hatch);
|
|
118
118
|
core.scene.entities.add(new Text({ points: [new Point(15, 205)], string: 'Hatch', height: 4 }));
|
|
119
119
|
|
|
120
120
|
// Row 2, Col 1: Insert
|
|
121
121
|
const blockLine = new Line({ points: [new Point(0, 0), new Point(40, 40)] });
|
|
122
|
-
blockLine.handle
|
|
122
|
+
blockLine.setProperty('handle', DesignCore.HandleManager.next());
|
|
123
123
|
const block = DesignCore.Scene.blockManager.addItem({
|
|
124
124
|
name: 'TEST_BLOCK',
|
|
125
|
-
|
|
125
|
+
entities: [blockLine],
|
|
126
126
|
});
|
|
127
127
|
const insert = new Insert({
|
|
128
128
|
points: [new Point(130, 235)],
|
|
@@ -285,7 +285,7 @@ describe('Entity.touched - selection rectangle intersection', () => {
|
|
|
285
285
|
const charPos = pts[0];
|
|
286
286
|
const sE = selectionExtremes(
|
|
287
287
|
new Point(charPos.x - 5, charPos.y - 5),
|
|
288
|
-
new Point(charPos.x +
|
|
288
|
+
new Point(charPos.x + 1, charPos.y + 5),
|
|
289
289
|
);
|
|
290
290
|
expect(arcText.touched(sE)).toBe(true);
|
|
291
291
|
}
|
|
@@ -705,7 +705,7 @@ describe('Hatch touched tests', () => {
|
|
|
705
705
|
const boundary = new Polyline({
|
|
706
706
|
points: [new Point(0, 0), new Point(100, 0), new Point(100, 100), new Point(0, 100), new Point(0, 0)],
|
|
707
707
|
});
|
|
708
|
-
hatch.childEntities
|
|
708
|
+
hatch.setProperty('childEntities', [boundary]);
|
|
709
709
|
|
|
710
710
|
// Selection rectangle crossing the boundary
|
|
711
711
|
const sE = selectionExtremes(new Point(-5, 50), new Point(5, 60));
|
|
@@ -717,7 +717,7 @@ describe('Hatch touched tests', () => {
|
|
|
717
717
|
const boundary = new Polyline({
|
|
718
718
|
points: [new Point(0, 0), new Point(10, 0), new Point(10, 10), new Point(0, 10), new Point(0, 0)],
|
|
719
719
|
});
|
|
720
|
-
hatch.childEntities
|
|
720
|
+
hatch.setProperty('childEntities', [boundary]);
|
|
721
721
|
|
|
722
722
|
// Selection rectangle far from hatch
|
|
723
723
|
const sE = selectionExtremes(new Point(500, 500), new Point(600, 600));
|
|
@@ -732,8 +732,7 @@ describe('Hatch touched tests', () => {
|
|
|
732
732
|
const boundary2 = new Polyline({
|
|
733
733
|
points: [new Point(50, 50), new Point(60, 50), new Point(60, 60), new Point(50, 60), new Point(50, 50)],
|
|
734
734
|
});
|
|
735
|
-
hatch.childEntities
|
|
736
|
-
hatch.childEntities.push(boundary2);
|
|
735
|
+
hatch.setProperty('childEntities', [boundary1, boundary2]);
|
|
737
736
|
|
|
738
737
|
// Touch only the second boundary
|
|
739
738
|
const sE = selectionExtremes(new Point(48, 55), new Point(52, 58));
|