@threekit-tools/treble 0.0.91 → 0.0.92

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.
Files changed (165) hide show
  1. package/dist/Treble/Treble.d.ts +1 -1
  2. package/dist/Treble/snapshot.d.ts +22 -0
  3. package/dist/Treble/snapshot.js +247 -0
  4. package/dist/Treble/snapshots.d.ts +1 -1
  5. package/dist/components/ThreekitProvider/index.js +3 -2
  6. package/dist/connection.d.ts +4 -1
  7. package/dist/connection.js +16 -53
  8. package/dist/hooks/useAttribute/index.js +1 -5
  9. package/dist/hooks/useSnapshot/index.d.ts +1 -1
  10. package/dist/hooks/useSpaces/SpacesLayout.d.ts +11 -0
  11. package/dist/hooks/useSpaces/SpacesLayout.js +74 -0
  12. package/dist/hooks/useSpaces/SpacesState.d.ts +164 -0
  13. package/dist/hooks/useSpaces/SpacesState.js +1751 -0
  14. package/dist/hooks/useSpaces/constants.d.ts +64 -0
  15. package/dist/hooks/useSpaces/constants.js +109 -0
  16. package/dist/hooks/useSpaces/dataHandlers.d.ts +20 -0
  17. package/dist/hooks/useSpaces/dataHandlers.js +254 -0
  18. package/dist/hooks/useSpaces/draw/clearCanvas.d.ts +2 -0
  19. package/dist/hooks/useSpaces/draw/clearCanvas.js +9 -0
  20. package/dist/hooks/useSpaces/draw/drawBackground.d.ts +2 -0
  21. package/dist/hooks/useSpaces/draw/drawBackground.js +12 -0
  22. package/dist/hooks/useSpaces/draw/drawDimensions.d.ts +3 -0
  23. package/dist/hooks/useSpaces/draw/drawDimensions.js +53 -0
  24. package/dist/hooks/useSpaces/draw/drawDoors.d.ts +9 -0
  25. package/dist/hooks/useSpaces/draw/drawDoors.js +99 -0
  26. package/dist/hooks/useSpaces/draw/drawFloor.d.ts +3 -0
  27. package/dist/hooks/useSpaces/draw/drawFloor.js +36 -0
  28. package/dist/hooks/useSpaces/draw/drawGrid.d.ts +3 -0
  29. package/dist/hooks/useSpaces/draw/drawGrid.js +33 -0
  30. package/dist/hooks/useSpaces/draw/drawGuides.d.ts +3 -0
  31. package/dist/hooks/useSpaces/draw/drawGuides.js +23 -0
  32. package/dist/hooks/useSpaces/draw/drawOpenings.d.ts +9 -0
  33. package/dist/hooks/useSpaces/draw/drawOpenings.js +72 -0
  34. package/dist/hooks/useSpaces/draw/drawVertices.d.ts +8 -0
  35. package/dist/hooks/useSpaces/draw/drawVertices.js +61 -0
  36. package/dist/hooks/useSpaces/draw/drawWalls.d.ts +10 -0
  37. package/dist/hooks/useSpaces/draw/drawWalls.js +88 -0
  38. package/dist/hooks/useSpaces/draw/drawWindows.d.ts +9 -0
  39. package/dist/hooks/useSpaces/draw/drawWindows.js +82 -0
  40. package/dist/hooks/useSpaces/draw/index.d.ts +11 -0
  41. package/dist/hooks/useSpaces/draw/index.js +129 -0
  42. package/dist/hooks/useSpaces/geometry/addThicknessToLine.d.ts +3 -0
  43. package/dist/hooks/useSpaces/geometry/addThicknessToLine.js +13 -0
  44. package/dist/hooks/useSpaces/geometry/areLinesEqual.d.ts +3 -0
  45. package/dist/hooks/useSpaces/geometry/areLinesEqual.js +17 -0
  46. package/dist/hooks/useSpaces/geometry/arePointsEqual.d.ts +3 -0
  47. package/dist/hooks/useSpaces/geometry/arePointsEqual.js +8 -0
  48. package/dist/hooks/useSpaces/geometry/arePointsWithinProximity.d.ts +3 -0
  49. package/dist/hooks/useSpaces/geometry/arePointsWithinProximity.js +11 -0
  50. package/dist/hooks/useSpaces/geometry/closestPointOnLine.d.ts +3 -0
  51. package/dist/hooks/useSpaces/geometry/closestPointOnLine.js +13 -0
  52. package/dist/hooks/useSpaces/geometry/doLinesOverlap.d.ts +2 -0
  53. package/dist/hooks/useSpaces/geometry/doLinesOverlap.js +16 -0
  54. package/dist/hooks/useSpaces/geometry/euclideanMod.d.ts +2 -0
  55. package/dist/hooks/useSpaces/geometry/euclideanMod.js +6 -0
  56. package/dist/hooks/useSpaces/geometry/findLoops.d.ts +6 -0
  57. package/dist/hooks/useSpaces/geometry/findLoops.js +117 -0
  58. package/dist/hooks/useSpaces/geometry/getAllLineIntersections.d.ts +6 -0
  59. package/dist/hooks/useSpaces/geometry/getAllLineIntersections.js +23 -0
  60. package/dist/hooks/useSpaces/geometry/getAngleOfLineSegment.d.ts +3 -0
  61. package/dist/hooks/useSpaces/geometry/getAngleOfLineSegment.js +7 -0
  62. package/dist/hooks/useSpaces/geometry/getClosestPointOnLineSegment.d.ts +3 -0
  63. package/dist/hooks/useSpaces/geometry/getClosestPointOnLineSegment.js +17 -0
  64. package/dist/hooks/useSpaces/geometry/getDistanceToLine.d.ts +3 -0
  65. package/dist/hooks/useSpaces/geometry/getDistanceToLine.js +10 -0
  66. package/dist/hooks/useSpaces/geometry/getLengthOfLineSegment.d.ts +3 -0
  67. package/dist/hooks/useSpaces/geometry/getLengthOfLineSegment.js +7 -0
  68. package/dist/hooks/useSpaces/geometry/getLineAtOffsetOnLineSegment.d.ts +3 -0
  69. package/dist/hooks/useSpaces/geometry/getLineAtOffsetOnLineSegment.js +17 -0
  70. package/dist/hooks/useSpaces/geometry/getLineOtherPoint.d.ts +3 -0
  71. package/dist/hooks/useSpaces/geometry/getLineOtherPoint.js +11 -0
  72. package/dist/hooks/useSpaces/geometry/getLineSegmentsIntersection.d.ts +3 -0
  73. package/dist/hooks/useSpaces/geometry/getLineSegmentsIntersection.js +43 -0
  74. package/dist/hooks/useSpaces/geometry/getMidpointOfLineSegment.d.ts +3 -0
  75. package/dist/hooks/useSpaces/geometry/getMidpointOfLineSegment.js +9 -0
  76. package/dist/hooks/useSpaces/geometry/getParallelLineSegmentAtDistance.d.ts +3 -0
  77. package/dist/hooks/useSpaces/geometry/getParallelLineSegmentAtDistance.js +20 -0
  78. package/dist/hooks/useSpaces/geometry/getPointAtOffsetOnLineSegment.d.ts +3 -0
  79. package/dist/hooks/useSpaces/geometry/getPointAtOffsetOnLineSegment.js +11 -0
  80. package/dist/hooks/useSpaces/geometry/getPolygonArea.d.ts +3 -0
  81. package/dist/hooks/useSpaces/geometry/getPolygonArea.js +15 -0
  82. package/dist/hooks/useSpaces/geometry/getQuadrilateralArea.d.ts +3 -0
  83. package/dist/hooks/useSpaces/geometry/getQuadrilateralArea.js +16 -0
  84. package/dist/hooks/useSpaces/geometry/getTangetIntersectionAndOffset.d.ts +6 -0
  85. package/dist/hooks/useSpaces/geometry/getTangetIntersectionAndOffset.js +17 -0
  86. package/dist/hooks/useSpaces/geometry/getTriangleArea.d.ts +3 -0
  87. package/dist/hooks/useSpaces/geometry/getTriangleArea.js +9 -0
  88. package/dist/hooks/useSpaces/geometry/getUnitVectorOfLineSegment.d.ts +3 -0
  89. package/dist/hooks/useSpaces/geometry/getUnitVectorOfLineSegment.js +12 -0
  90. package/dist/hooks/useSpaces/geometry/index.d.ts +30 -0
  91. package/dist/hooks/useSpaces/geometry/index.js +64 -0
  92. package/dist/hooks/useSpaces/geometry/isPointInPolygon.d.ts +3 -0
  93. package/dist/hooks/useSpaces/geometry/isPointInPolygon.js +21 -0
  94. package/dist/hooks/useSpaces/geometry/isPointInQuadrilateral.d.ts +3 -0
  95. package/dist/hooks/useSpaces/geometry/isPointInQuadrilateral.js +25 -0
  96. package/dist/hooks/useSpaces/geometry/orderCoordinatesOnLineSegment.d.ts +3 -0
  97. package/dist/hooks/useSpaces/geometry/orderCoordinatesOnLineSegment.js +11 -0
  98. package/dist/hooks/useSpaces/geometry/splitLineAtOffset.d.ts +3 -0
  99. package/dist/hooks/useSpaces/geometry/splitLineAtOffset.js +12 -0
  100. package/dist/hooks/useSpaces/geometry/splitLineAtPoint.d.ts +3 -0
  101. package/dist/hooks/useSpaces/geometry/splitLineAtPoint.js +9 -0
  102. package/dist/hooks/useSpaces/geometry/splitLineAtPoints.d.ts +3 -0
  103. package/dist/hooks/useSpaces/geometry/splitLineAtPoints.js +28 -0
  104. package/dist/hooks/useSpaces/index.d.ts +82 -0
  105. package/dist/hooks/useSpaces/index.js +482 -0
  106. package/dist/hooks/useSpaces/themes/blueprint.d.ts +3 -0
  107. package/dist/hooks/useSpaces/themes/blueprint.js +96 -0
  108. package/dist/hooks/useSpaces/themes/default.d.ts +3 -0
  109. package/dist/hooks/useSpaces/themes/default.js +96 -0
  110. package/dist/hooks/useSpaces/themes/index.d.ts +11 -0
  111. package/dist/hooks/useSpaces/themes/index.js +21 -0
  112. package/dist/hooks/useSpaces/themes/light.d.ts +3 -0
  113. package/dist/hooks/useSpaces/themes/light.js +96 -0
  114. package/dist/hooks/useSpaces/types.d.ts +339 -0
  115. package/dist/hooks/useSpaces/types.js +54 -0
  116. package/dist/hooks/useSpaces/validators/areWallsDuplicated.d.ts +3 -0
  117. package/dist/hooks/useSpaces/validators/areWallsDuplicated.js +61 -0
  118. package/dist/hooks/useSpaces/validators/areWallsIntersecting.d.ts +3 -0
  119. package/dist/hooks/useSpaces/validators/areWallsIntersecting.js +42 -0
  120. package/dist/hooks/useSpaces/validators/areWallsOrphaningFeatures.d.ts +3 -0
  121. package/dist/hooks/useSpaces/validators/areWallsOrphaningFeatures.js +52 -0
  122. package/dist/hooks/useSpaces/validators/areWallsTooShort.d.ts +3 -0
  123. package/dist/hooks/useSpaces/validators/areWallsTooShort.js +37 -0
  124. package/dist/hooks/useSpaces/validators/index.d.ts +15 -0
  125. package/dist/hooks/useSpaces/validators/index.js +40 -0
  126. package/dist/hooks/useSpaces/validators/isFeatureCollidingWithExistingFeature.d.ts +3 -0
  127. package/dist/hooks/useSpaces/validators/isFeatureCollidingWithExistingFeature.js +31 -0
  128. package/dist/hooks/useSpaces/validators/isFeatureOutsideWallBounds.d.ts +3 -0
  129. package/dist/hooks/useSpaces/validators/isFeatureOutsideWallBounds.js +19 -0
  130. package/dist/hooks/useSpaces/validators/isLineTooShort.d.ts +3 -0
  131. package/dist/hooks/useSpaces/validators/isLineTooShort.js +26 -0
  132. package/dist/hooks/useSpaces/validators/isVertexLandingOnFeature.d.ts +4 -0
  133. package/dist/hooks/useSpaces/validators/isVertexLandingOnFeature.js +19 -0
  134. package/dist/hooks/useSpaces/validators/isWallEndingOnFeature.d.ts +3 -0
  135. package/dist/hooks/useSpaces/validators/isWallEndingOnFeature.js +19 -0
  136. package/dist/hooks/useSpaces/validators/isWallIntersectingFeature.d.ts +3 -0
  137. package/dist/hooks/useSpaces/validators/isWallIntersectingFeature.js +41 -0
  138. package/dist/hooks/useSpaces/validators/isWallOverlappingExisitingWalls.d.ts +3 -0
  139. package/dist/hooks/useSpaces/validators/isWallOverlappingExisitingWalls.js +54 -0
  140. package/dist/hooks/useSpaces/validators/isWallTooShort.d.ts +3 -0
  141. package/dist/hooks/useSpaces/validators/isWallTooShort.js +10 -0
  142. package/dist/hooks/useSpaces/validators/messaging.d.ts +8 -0
  143. package/dist/hooks/useSpaces/validators/messaging.js +18 -0
  144. package/dist/icons/Player3D.d.ts +3 -0
  145. package/dist/icons/Player3D.js +21 -0
  146. package/dist/icons/Ruler copy.d.ts +3 -0
  147. package/dist/icons/Ruler copy.js +22 -0
  148. package/dist/icons/RulerBlank.d.ts +3 -0
  149. package/dist/icons/RulerBlank.js +25 -0
  150. package/dist/icons/RulerDetailed copy.d.ts +3 -0
  151. package/dist/icons/RulerDetailed copy.js +27 -0
  152. package/dist/icons/RulerDetailed.d.ts +3 -0
  153. package/dist/icons/RulerDetailed.js +27 -0
  154. package/dist/icons/types.d.ts +1 -1
  155. package/dist/store/attributes.d.ts +1 -1
  156. package/dist/store/index.d.ts +10 -31
  157. package/dist/store/spaces.d.ts +47 -0
  158. package/dist/store/spaces.js +197 -0
  159. package/dist/store/treble.d.ts +3 -1
  160. package/dist/store/treble.js +45 -30
  161. package/dist/store/wishlist.d.ts +20 -2
  162. package/dist/types.d.ts +12 -3
  163. package/package.json +2 -1
  164. package/dist/hooks/useSpaces/Canvas.d.ts +0 -37
  165. package/dist/hooks/useSpaces/Canvas.js +0 -199
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.findLoops = exports.doLinesOverlap = exports.getAllLineIntersections = exports.getTangetIntersectionAndOffset = exports.orderCoordinatesOnLineSegment = exports.splitLineAtOffset = exports.splitLineAtPoints = exports.splitLineAtPoint = exports.getLineSegmentsIntersection = exports.isPointInPolygon = exports.isPointInQuadrilateral = exports.arePointsWithinProximity = exports.addThicknessToLine = exports.getParallelLineSegmentAtDistance = exports.getPolygonArea = exports.getTriangleArea = exports.getQuadrilateralArea = exports.closestPointOnLine = exports.getDistanceToLine = exports.getLineAtOffsetOnLineSegment = exports.getPointAtOffsetOnLineSegment = exports.getAngleOfLineSegment = exports.getMidpointOfLineSegment = exports.getUnitVectorOfLineSegment = exports.getLengthOfLineSegment = exports.getLineOtherPoint = exports.areLinesEqual = exports.arePointsEqual = exports.euclideanMod = void 0;
7
+ var euclideanMod_1 = __importDefault(require("./euclideanMod"));
8
+ exports.euclideanMod = euclideanMod_1.default;
9
+ var arePointsEqual_1 = __importDefault(require("./arePointsEqual"));
10
+ exports.arePointsEqual = arePointsEqual_1.default;
11
+ var areLinesEqual_1 = __importDefault(require("./areLinesEqual"));
12
+ exports.areLinesEqual = areLinesEqual_1.default;
13
+ var getLineOtherPoint_1 = __importDefault(require("./getLineOtherPoint"));
14
+ exports.getLineOtherPoint = getLineOtherPoint_1.default;
15
+ var getLengthOfLineSegment_1 = __importDefault(require("./getLengthOfLineSegment"));
16
+ exports.getLengthOfLineSegment = getLengthOfLineSegment_1.default;
17
+ var getUnitVectorOfLineSegment_1 = __importDefault(require("./getUnitVectorOfLineSegment"));
18
+ exports.getUnitVectorOfLineSegment = getUnitVectorOfLineSegment_1.default;
19
+ var getMidpointOfLineSegment_1 = __importDefault(require("./getMidpointOfLineSegment"));
20
+ exports.getMidpointOfLineSegment = getMidpointOfLineSegment_1.default;
21
+ var getAngleOfLineSegment_1 = __importDefault(require("./getAngleOfLineSegment"));
22
+ exports.getAngleOfLineSegment = getAngleOfLineSegment_1.default;
23
+ var getPointAtOffsetOnLineSegment_1 = __importDefault(require("./getPointAtOffsetOnLineSegment"));
24
+ exports.getPointAtOffsetOnLineSegment = getPointAtOffsetOnLineSegment_1.default;
25
+ var getLineAtOffsetOnLineSegment_1 = __importDefault(require("./getLineAtOffsetOnLineSegment"));
26
+ exports.getLineAtOffsetOnLineSegment = getLineAtOffsetOnLineSegment_1.default;
27
+ var getDistanceToLine_1 = __importDefault(require("./getDistanceToLine"));
28
+ exports.getDistanceToLine = getDistanceToLine_1.default;
29
+ var closestPointOnLine_1 = __importDefault(require("./closestPointOnLine"));
30
+ exports.closestPointOnLine = closestPointOnLine_1.default;
31
+ var getQuadrilateralArea_1 = __importDefault(require("./getQuadrilateralArea"));
32
+ exports.getQuadrilateralArea = getQuadrilateralArea_1.default;
33
+ var getTriangleArea_1 = __importDefault(require("./getTriangleArea"));
34
+ exports.getTriangleArea = getTriangleArea_1.default;
35
+ var getPolygonArea_1 = __importDefault(require("./getPolygonArea"));
36
+ exports.getPolygonArea = getPolygonArea_1.default;
37
+ var getParallelLineSegmentAtDistance_1 = __importDefault(require("./getParallelLineSegmentAtDistance"));
38
+ exports.getParallelLineSegmentAtDistance = getParallelLineSegmentAtDistance_1.default;
39
+ var addThicknessToLine_1 = __importDefault(require("./addThicknessToLine"));
40
+ exports.addThicknessToLine = addThicknessToLine_1.default;
41
+ var arePointsWithinProximity_1 = __importDefault(require("./arePointsWithinProximity"));
42
+ exports.arePointsWithinProximity = arePointsWithinProximity_1.default;
43
+ var isPointInQuadrilateral_1 = __importDefault(require("./isPointInQuadrilateral"));
44
+ exports.isPointInQuadrilateral = isPointInQuadrilateral_1.default;
45
+ var isPointInPolygon_1 = __importDefault(require("./isPointInPolygon"));
46
+ exports.isPointInPolygon = isPointInPolygon_1.default;
47
+ var getLineSegmentsIntersection_1 = __importDefault(require("./getLineSegmentsIntersection"));
48
+ exports.getLineSegmentsIntersection = getLineSegmentsIntersection_1.default;
49
+ var splitLineAtPoint_1 = __importDefault(require("./splitLineAtPoint"));
50
+ exports.splitLineAtPoint = splitLineAtPoint_1.default;
51
+ var splitLineAtPoints_1 = __importDefault(require("./splitLineAtPoints"));
52
+ exports.splitLineAtPoints = splitLineAtPoints_1.default;
53
+ var splitLineAtOffset_1 = __importDefault(require("./splitLineAtOffset"));
54
+ exports.splitLineAtOffset = splitLineAtOffset_1.default;
55
+ var orderCoordinatesOnLineSegment_1 = __importDefault(require("./orderCoordinatesOnLineSegment"));
56
+ exports.orderCoordinatesOnLineSegment = orderCoordinatesOnLineSegment_1.default;
57
+ var getTangetIntersectionAndOffset_1 = __importDefault(require("./getTangetIntersectionAndOffset"));
58
+ exports.getTangetIntersectionAndOffset = getTangetIntersectionAndOffset_1.default;
59
+ var getAllLineIntersections_1 = __importDefault(require("./getAllLineIntersections"));
60
+ exports.getAllLineIntersections = getAllLineIntersections_1.default;
61
+ var doLinesOverlap_1 = __importDefault(require("./doLinesOverlap"));
62
+ exports.doLinesOverlap = doLinesOverlap_1.default;
63
+ var findLoops_1 = __importDefault(require("./findLoops"));
64
+ exports.findLoops = findLoops_1.default;
@@ -0,0 +1,3 @@
1
+ import { ICoordinate2D } from '../types';
2
+ declare function isPointInPolygon(point: ICoordinate2D, polygon: Array<ICoordinate2D>): boolean;
3
+ export default isPointInPolygon;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var getLineSegmentsIntersection_1 = __importDefault(require("./getLineSegmentsIntersection"));
7
+ function isPointInPolygon(point, polygon) {
8
+ var ray = [
9
+ point,
10
+ [point[0] + Number.MAX_SAFE_INTEGER, point[1]],
11
+ ];
12
+ var intersectCount = 0;
13
+ for (var i = 0; i < polygon.length; i++) {
14
+ var polygonStart = polygon[i];
15
+ var polygonEnd = polygon[(i + 1) % polygon.length];
16
+ if ((0, getLineSegmentsIntersection_1.default)(ray, [polygonStart, polygonEnd]))
17
+ intersectCount++;
18
+ }
19
+ return intersectCount % 2 === 1;
20
+ }
21
+ exports.default = isPointInPolygon;
@@ -0,0 +1,3 @@
1
+ import { ICoordinate2D, ICoordinatesQuadrilateral } from '../types';
2
+ declare function isPointInQuadrilateral(quadrilateral: ICoordinatesQuadrilateral, point: ICoordinate2D): boolean;
3
+ export default isPointInQuadrilateral;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var getQuadrilateralArea_1 = __importDefault(require("./getQuadrilateralArea"));
7
+ var getTriangleArea_1 = __importDefault(require("./getTriangleArea"));
8
+ function isPointInQuadrilateral(quadrilateral, point) {
9
+ var _a = quadrilateral.flat(), x1 = _a[0], y1 = _a[1], x2 = _a[2], y2 = _a[3], x3 = _a[4], y3 = _a[5], x4 = _a[6], y4 = _a[7];
10
+ var pointX = point[0], pointY = point[1];
11
+ if (pointX < Math.min(x1, x2, x3, x4) ||
12
+ pointX > Math.max(x1, x2, x3, x4) ||
13
+ pointY < Math.min(y1, y2, y3, y4) ||
14
+ pointY > Math.max(y1, y2, y3, y4)) {
15
+ return false;
16
+ }
17
+ var area = (0, getQuadrilateralArea_1.default)(quadrilateral);
18
+ var area1 = (0, getTriangleArea_1.default)(point, quadrilateral[0], quadrilateral[1]);
19
+ var area2 = (0, getTriangleArea_1.default)(point, quadrilateral[1], quadrilateral[2]);
20
+ var area3 = (0, getTriangleArea_1.default)(point, quadrilateral[2], quadrilateral[3]);
21
+ var area4 = (0, getTriangleArea_1.default)(point, quadrilateral[3], quadrilateral[0]);
22
+ var compareArea = Math.abs(area1) + Math.abs(area2) + Math.abs(area3) + Math.abs(area4);
23
+ return Math.abs(Math.round(area) - Math.round(compareArea)) < 2;
24
+ }
25
+ exports.default = isPointInQuadrilateral;
@@ -0,0 +1,3 @@
1
+ import { ICoordinate2D } from '../types';
2
+ declare function orderCoordinatesOnLineSegment(points?: Array<ICoordinate2D>): Array<ICoordinate2D>;
3
+ export default orderCoordinatesOnLineSegment;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function orderCoordinatesOnLineSegment(points) {
4
+ if (!points)
5
+ return [];
6
+ if (points[0][0] === points[1][0])
7
+ return points.sort(function (a, b) { return a[1] - b[1]; });
8
+ else
9
+ return points.sort(function (a, b) { return a[0] - b[0]; });
10
+ }
11
+ exports.default = orderCoordinatesOnLineSegment;
@@ -0,0 +1,3 @@
1
+ import { ICoordinatesLine } from '../types';
2
+ declare function splitLineAtOffset(line: ICoordinatesLine, offset: number): [ICoordinatesLine, ICoordinatesLine];
3
+ export default splitLineAtOffset;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var getPointAtOffsetOnLineSegment_1 = __importDefault(require("./getPointAtOffsetOnLineSegment"));
7
+ var splitLineAtPoint_1 = __importDefault(require("./splitLineAtPoint"));
8
+ function splitLineAtOffset(line, offset) {
9
+ var splitPoint = (0, getPointAtOffsetOnLineSegment_1.default)(line, offset);
10
+ return (0, splitLineAtPoint_1.default)(line, splitPoint);
11
+ }
12
+ exports.default = splitLineAtOffset;
@@ -0,0 +1,3 @@
1
+ import { ICoordinate2D, ICoordinatesLine } from '../types';
2
+ declare function splitLineAtPoint(line: ICoordinatesLine, point: ICoordinate2D): [ICoordinatesLine, ICoordinatesLine];
3
+ export default splitLineAtPoint;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function splitLineAtPoint(line, point) {
4
+ return [
5
+ [line[0], point],
6
+ [point, line[1]],
7
+ ];
8
+ }
9
+ exports.default = splitLineAtPoint;
@@ -0,0 +1,3 @@
1
+ import { ICoordinate2D, ICoordinatesLine } from '../types';
2
+ declare function splitLineAtPoints(line: ICoordinatesLine, points: Array<ICoordinate2D>): Array<ICoordinatesLine>;
3
+ export default splitLineAtPoints;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
+ if (ar || !(i in from)) {
5
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
+ ar[i] = from[i];
7
+ }
8
+ }
9
+ return to.concat(ar || Array.prototype.slice.call(from));
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ var orderCoordinatesOnLineSegment_1 = __importDefault(require("./orderCoordinatesOnLineSegment"));
16
+ function splitLineAtPoints(line, points) {
17
+ if (!points.length)
18
+ return [line];
19
+ var orderedPoints = (0, orderCoordinatesOnLineSegment_1.default)(__spreadArray(__spreadArray([], line, true), points, true));
20
+ return (orderedPoints[0][0] === line[0][0] ? orderedPoints : orderedPoints.reverse()).reduce(function (output, point, i) {
21
+ if (!i)
22
+ return output;
23
+ else
24
+ output.push([orderedPoints[i - 1], point]);
25
+ return output;
26
+ }, []);
27
+ }
28
+ exports.default = splitLineAtPoints;
@@ -0,0 +1,82 @@
1
+ import React from 'react';
2
+ import type { IHydratedAttributeArray } from '../../types';
3
+ import { ICoordinate2D, IDimensionOptions, IElementName, IElementPublic, ISpacesHookProps } from './types';
4
+ import { IModes, IUnits, IElements } from './types';
5
+ import { IThemes } from './themes';
6
+ import SpacesLayout from './SpacesLayout';
7
+ interface IUseSpaces {
8
+ draw: () => void;
9
+ canvasRef: React.RefObject<HTMLCanvasElement>;
10
+ [IElements.WALL]?: IHydratedAttributeArray;
11
+ [IElements.WINDOW]?: IHydratedAttributeArray;
12
+ [IElements.DOOR]?: IHydratedAttributeArray;
13
+ [IElements.OPENING]?: IHydratedAttributeArray;
14
+ selectedElement: IElementPublic | null;
15
+ reset: () => void;
16
+ recenter: (zoomToFit?: boolean) => void;
17
+ deleteElement: (type: IElementName, index: number) => void;
18
+ dimensions: {
19
+ value: IDimensionOptions;
20
+ options: Array<{
21
+ label: string;
22
+ value: IDimensionOptions;
23
+ selected: boolean;
24
+ handleSelect: () => void;
25
+ }>;
26
+ handleChange: (opt: IDimensionOptions) => void;
27
+ };
28
+ angleSnapping: {
29
+ enabled: boolean;
30
+ handleToggle: (val?: boolean) => void;
31
+ };
32
+ guideSnapping: {
33
+ enabled: boolean;
34
+ handleToggle: (val?: boolean) => void;
35
+ };
36
+ gridSnapping: {
37
+ enabled: boolean;
38
+ handleToggle: (val?: boolean) => void;
39
+ };
40
+ zoom: {
41
+ min: number;
42
+ max: number;
43
+ value: number;
44
+ handleChange: (value: number) => void;
45
+ };
46
+ unit: {
47
+ value: IUnits;
48
+ options: Array<{
49
+ label: string;
50
+ value: IUnits;
51
+ selected: boolean;
52
+ handleSelect: () => void;
53
+ }>;
54
+ handleChange: (unit: IUnits) => void;
55
+ };
56
+ translate: {
57
+ handleChange: (delta: ICoordinate2D) => void;
58
+ };
59
+ mode: {
60
+ value: IModes;
61
+ options: Array<{
62
+ label: IModes;
63
+ value: IModes;
64
+ selected: boolean;
65
+ handleSelect: () => void;
66
+ }>;
67
+ handleChange: (mode: IModes) => void;
68
+ };
69
+ layouts: Array<{
70
+ label: string;
71
+ loops: Array<ICoordinate2D[]>;
72
+ handleSelect: () => void;
73
+ }>;
74
+ }
75
+ declare const useSpaces: {
76
+ (props: ISpacesHookProps): IUseSpaces;
77
+ themes: typeof IThemes;
78
+ units: typeof IUnits;
79
+ modes: typeof IModes;
80
+ LayoutIcon: typeof SpacesLayout;
81
+ };
82
+ export default useSpaces;