@threekit-tools/treble 0.0.92-next-01 → 0.0.93
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/Treble/Treble.d.ts +2 -2
- package/dist/Treble/Treble.js +6 -5
- package/dist/Treble/index.d.ts +1 -1
- package/dist/Treble/index.js +1 -1
- package/dist/Treble/{snapshot.d.ts → snapshots.d.ts} +1 -1
- package/dist/Treble/{snapshot.js → snapshots.js} +1 -1
- package/dist/Treble/wishlist.d.ts +1 -1
- package/dist/Treble/wishlist.js +1 -1
- package/dist/api/assets.d.ts +1 -0
- package/dist/api/{products.js → assets.js} +12 -33
- package/dist/api/catalog.js +1 -1
- package/dist/api/configurations.d.ts +1 -0
- package/dist/api/configurations.js +10 -3
- package/dist/api/datatables.js +1 -1
- package/dist/api/index.d.ts +2 -2
- package/dist/api/index.js +2 -2
- package/dist/api/orders.js +1 -1
- package/dist/api/price.js +1 -1
- package/dist/components/AttributeTitle/index.d.ts +2 -2
- package/dist/components/AttributeValue/index.d.ts +2 -2
- package/dist/components/BreatheAnimation/index.js +1 -1
- package/dist/components/Button/index.d.ts +3 -3
- package/dist/components/Cards/index.d.ts +3 -3
- package/dist/components/DevTools/index.d.ts +2 -2
- package/dist/components/DraggableHint/draggableIndicator.styles.d.ts +1 -1
- package/dist/components/DraggableHint/index.d.ts +2 -2
- package/dist/components/Dropdown/index.d.ts +3 -3
- package/dist/components/FlatForm/index.d.ts +2 -2
- package/dist/components/FormComponentDescription/index.d.ts +1 -1
- package/dist/components/FormComponentTitle/index.d.ts +1 -1
- package/dist/components/Player/index.d.ts +9 -9
- package/dist/components/PlayerLoadingCircular/index.d.ts +2 -2
- package/dist/components/PlayerLoadingSpinner/index.d.ts +2 -2
- package/dist/components/PlayerLoadingSpinner/playerLoadingSpinner.styles.d.ts +1 -1
- package/dist/components/ProductDescription/index.d.ts +3 -3
- package/dist/components/ProductName/index.d.ts +3 -3
- package/dist/components/Share/index.d.ts +2 -2
- package/dist/components/Share/index.js +1 -1
- package/dist/components/Share/share.styles.d.ts +1 -1
- package/dist/components/Snapshots/index.d.ts +2 -2
- package/dist/components/Strips/index.d.ts +3 -3
- package/dist/components/Swatch/index.d.ts +3 -3
- package/dist/components/Switch/index.d.ts +3 -3
- package/dist/components/TextInput/index.d.ts +3 -3
- package/dist/components/ThreekitProvider/index.d.ts +6 -3
- package/dist/components/ThreekitProvider/index.js +27 -2
- package/dist/components/Tiles/index.d.ts +3 -3
- package/dist/components/TilesGroup/index.d.ts +3 -3
- package/dist/components/TotalPrice/index.d.ts +3 -3
- package/dist/components/TrebleApp/index.d.ts +3 -3
- package/dist/components/TurntableAnimation/index.js +1 -1
- package/dist/components/Upload/index.d.ts +3 -3
- package/dist/components/Upload/index.js +1 -1
- package/dist/components/UploadArea/index.d.ts +3 -3
- package/dist/components/UploadArea/index.js +1 -1
- package/dist/components/Wishlist/WishlistItem.d.ts +2 -2
- package/dist/components/Wishlist/index.d.ts +4 -4
- package/dist/components/Wishlist/index.js +1 -1
- package/dist/components/Zoom/index.d.ts +6 -6
- package/dist/components/containers/formInputContainer.d.ts +2 -2
- package/dist/components/formComponents.d.ts +6 -6
- package/dist/components/message/index.d.ts +1 -1
- package/dist/constants.d.ts +6 -6
- package/dist/hooks/useAttribute/index.d.ts +4 -4
- package/dist/hooks/useAttribute/index.js +3 -3
- package/dist/hooks/useConfigurationLoader/index.js +1 -1
- package/dist/hooks/useConfigurator/index.d.ts +3 -3
- package/dist/hooks/useConfigurator/index.js +3 -5
- package/dist/hooks/useDevTools/index.d.ts +1 -1
- package/dist/hooks/useNestedConfigurator/index.d.ts +2 -2
- package/dist/hooks/useNestedConfigurator/index.js +5 -4
- package/dist/hooks/usePlayer/index.d.ts +1 -1
- package/dist/hooks/usePlayerPortal/index.d.ts +1 -1
- package/dist/hooks/useProductCache/index.js +1 -1
- package/dist/hooks/useResetProduct/index.d.ts +1 -1
- package/dist/hooks/useResetProduct/index.js +1 -1
- package/dist/hooks/useRoomBuilder/RoomBuilderState.d.ts +95 -0
- package/dist/hooks/useRoomBuilder/RoomBuilderState.js +1237 -0
- package/dist/hooks/useRoomBuilder/constants.d.ts +41 -0
- package/dist/hooks/useRoomBuilder/constants.js +48 -0
- package/dist/hooks/useRoomBuilder/dataHandlers.d.ts +18 -0
- package/dist/hooks/useRoomBuilder/dataHandlers.js +187 -0
- package/dist/hooks/useRoomBuilder/draw.d.ts +55 -0
- package/dist/hooks/useRoomBuilder/draw.js +573 -0
- package/dist/hooks/useRoomBuilder/findLoops.d.ts +5 -0
- package/dist/hooks/{useSpaces/geometry → useRoomBuilder}/findLoops.js +13 -31
- package/dist/hooks/useRoomBuilder/geometry.d.ts +33 -0
- package/dist/hooks/useRoomBuilder/geometry.js +325 -0
- package/dist/hooks/useRoomBuilder/index.d.ts +40 -0
- package/dist/hooks/useRoomBuilder/index.js +303 -0
- package/dist/hooks/{useSpaces/validators → useRoomBuilder}/messaging.js +1 -1
- package/dist/hooks/{useSpaces/themes/index.d.ts → useRoomBuilder/themes.d.ts} +4 -3
- package/dist/hooks/useRoomBuilder/themes.js +273 -0
- package/dist/hooks/useRoomBuilder/types.d.ts +238 -0
- package/dist/hooks/useRoomBuilder/types.js +36 -0
- package/dist/hooks/useRoomBuilder/validators.d.ts +36 -0
- package/dist/hooks/useRoomBuilder/validators.js +362 -0
- package/dist/hooks/useShare/index.d.ts +1 -1
- package/dist/hooks/useShare/index.js +4 -2
- package/dist/hooks/useSingleAnimation/index.js +1 -1
- package/dist/hooks/useWishlist/index.d.ts +1 -1
- package/dist/hooks/useZoom/index.d.ts +1 -1
- package/dist/http/assets.d.ts +2 -0
- package/dist/http/assets.js +16 -0
- package/dist/http/index.d.ts +2 -2
- package/dist/http/index.js +2 -2
- package/dist/http/orders.d.ts +1 -1
- package/dist/icons/Draw.js +3 -3
- package/dist/icons/Spinner.d.ts +2 -2
- package/dist/icons/Window.js +4 -4
- package/dist/icons/index.js +0 -28
- package/dist/icons/types.d.ts +1 -1
- package/dist/index.d.ts +2 -17
- package/dist/index.js +5 -35
- package/dist/store/attributes.d.ts +4 -5
- package/dist/store/attributes.js +2 -4
- package/dist/store/index.d.ts +6 -13
- package/dist/store/index.js +1 -3
- package/dist/store/price.d.ts +1 -1
- package/dist/store/price.js +1 -1
- package/dist/store/product.d.ts +2 -2
- package/dist/store/product.js +8 -5
- package/dist/store/translations.d.ts +10 -8
- package/dist/store/translations.js +39 -19
- package/dist/store/treble.d.ts +2 -2
- package/dist/store/treble.js +22 -15
- package/dist/store/wishlist.d.ts +2 -2
- package/dist/store/wishlist.js +1 -1
- package/dist/types.d.ts +19 -20
- package/dist/types.js +9 -9
- package/dist/utils.d.ts +2 -6
- package/dist/utils.js +5 -12
- package/package.json +1 -2
- package/dist/api/products.d.ts +0 -4
- package/dist/hooks/useSpaces/SpacesLayout.d.ts +0 -11
- package/dist/hooks/useSpaces/SpacesLayout.js +0 -74
- package/dist/hooks/useSpaces/SpacesState.d.ts +0 -177
- package/dist/hooks/useSpaces/SpacesState.js +0 -1814
- package/dist/hooks/useSpaces/constants.d.ts +0 -79
- package/dist/hooks/useSpaces/constants.js +0 -130
- package/dist/hooks/useSpaces/dataHandlers.d.ts +0 -38
- package/dist/hooks/useSpaces/dataHandlers.js +0 -407
- package/dist/hooks/useSpaces/draw/clearCanvas.d.ts +0 -2
- package/dist/hooks/useSpaces/draw/clearCanvas.js +0 -9
- package/dist/hooks/useSpaces/draw/drawBackground.d.ts +0 -2
- package/dist/hooks/useSpaces/draw/drawBackground.js +0 -12
- package/dist/hooks/useSpaces/draw/drawDimensions.d.ts +0 -3
- package/dist/hooks/useSpaces/draw/drawDimensions.js +0 -53
- package/dist/hooks/useSpaces/draw/drawDoors.d.ts +0 -9
- package/dist/hooks/useSpaces/draw/drawDoors.js +0 -99
- package/dist/hooks/useSpaces/draw/drawFloor.d.ts +0 -3
- package/dist/hooks/useSpaces/draw/drawFloor.js +0 -36
- package/dist/hooks/useSpaces/draw/drawGrid.d.ts +0 -3
- package/dist/hooks/useSpaces/draw/drawGrid.js +0 -36
- package/dist/hooks/useSpaces/draw/drawGuides.d.ts +0 -3
- package/dist/hooks/useSpaces/draw/drawGuides.js +0 -23
- package/dist/hooks/useSpaces/draw/drawOpenings.d.ts +0 -9
- package/dist/hooks/useSpaces/draw/drawOpenings.js +0 -72
- package/dist/hooks/useSpaces/draw/drawVertices.d.ts +0 -8
- package/dist/hooks/useSpaces/draw/drawVertices.js +0 -61
- package/dist/hooks/useSpaces/draw/drawWalls.d.ts +0 -11
- package/dist/hooks/useSpaces/draw/drawWalls.js +0 -90
- package/dist/hooks/useSpaces/draw/drawWindows.d.ts +0 -9
- package/dist/hooks/useSpaces/draw/drawWindows.js +0 -82
- package/dist/hooks/useSpaces/draw/index.d.ts +0 -11
- package/dist/hooks/useSpaces/draw/index.js +0 -129
- package/dist/hooks/useSpaces/geometry/addThicknessToLine.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/addThicknessToLine.js +0 -13
- package/dist/hooks/useSpaces/geometry/areLinesEqual.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/areLinesEqual.js +0 -17
- package/dist/hooks/useSpaces/geometry/arePointsEqual.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/arePointsEqual.js +0 -8
- package/dist/hooks/useSpaces/geometry/arePointsWithinProximity.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/arePointsWithinProximity.js +0 -11
- package/dist/hooks/useSpaces/geometry/closestPointOnLine.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/closestPointOnLine.js +0 -13
- package/dist/hooks/useSpaces/geometry/doLinesOverlap.d.ts +0 -2
- package/dist/hooks/useSpaces/geometry/doLinesOverlap.js +0 -16
- package/dist/hooks/useSpaces/geometry/euclideanMod.d.ts +0 -2
- package/dist/hooks/useSpaces/geometry/euclideanMod.js +0 -6
- package/dist/hooks/useSpaces/geometry/findLoops.d.ts +0 -6
- package/dist/hooks/useSpaces/geometry/getAllLineIntersections.d.ts +0 -6
- package/dist/hooks/useSpaces/geometry/getAllLineIntersections.js +0 -23
- package/dist/hooks/useSpaces/geometry/getAngleOfLineSegment.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/getAngleOfLineSegment.js +0 -7
- package/dist/hooks/useSpaces/geometry/getClosestPointOnLineSegment.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/getClosestPointOnLineSegment.js +0 -17
- package/dist/hooks/useSpaces/geometry/getDistanceToLine.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/getDistanceToLine.js +0 -10
- package/dist/hooks/useSpaces/geometry/getLengthOfLineSegment.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/getLengthOfLineSegment.js +0 -7
- package/dist/hooks/useSpaces/geometry/getLineAtOffsetOnLineSegment.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/getLineAtOffsetOnLineSegment.js +0 -17
- package/dist/hooks/useSpaces/geometry/getLineOtherPoint.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/getLineOtherPoint.js +0 -11
- package/dist/hooks/useSpaces/geometry/getLineSegmentsIntersection.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/getLineSegmentsIntersection.js +0 -43
- package/dist/hooks/useSpaces/geometry/getMidpointOfLineSegment.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/getMidpointOfLineSegment.js +0 -9
- package/dist/hooks/useSpaces/geometry/getParallelLineSegmentAtDistance.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/getParallelLineSegmentAtDistance.js +0 -20
- package/dist/hooks/useSpaces/geometry/getPointAtOffsetOnLineSegment.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/getPointAtOffsetOnLineSegment.js +0 -11
- package/dist/hooks/useSpaces/geometry/getPolygonArea.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/getPolygonArea.js +0 -15
- package/dist/hooks/useSpaces/geometry/getQuadrilateralArea.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/getQuadrilateralArea.js +0 -16
- package/dist/hooks/useSpaces/geometry/getTangetIntersectionAndOffset.d.ts +0 -6
- package/dist/hooks/useSpaces/geometry/getTangetIntersectionAndOffset.js +0 -17
- package/dist/hooks/useSpaces/geometry/getTriangleArea.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/getTriangleArea.js +0 -9
- package/dist/hooks/useSpaces/geometry/getUnitVectorOfLineSegment.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/getUnitVectorOfLineSegment.js +0 -12
- package/dist/hooks/useSpaces/geometry/index.d.ts +0 -30
- package/dist/hooks/useSpaces/geometry/index.js +0 -64
- package/dist/hooks/useSpaces/geometry/isPointInPolygon.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/isPointInPolygon.js +0 -21
- package/dist/hooks/useSpaces/geometry/isPointInQuadrilateral.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/isPointInQuadrilateral.js +0 -25
- package/dist/hooks/useSpaces/geometry/orderCoordinatesOnLineSegment.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/orderCoordinatesOnLineSegment.js +0 -11
- package/dist/hooks/useSpaces/geometry/splitLineAtOffset.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/splitLineAtOffset.js +0 -12
- package/dist/hooks/useSpaces/geometry/splitLineAtPoint.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/splitLineAtPoint.js +0 -9
- package/dist/hooks/useSpaces/geometry/splitLineAtPoints.d.ts +0 -3
- package/dist/hooks/useSpaces/geometry/splitLineAtPoints.js +0 -28
- package/dist/hooks/useSpaces/index.d.ts +0 -95
- package/dist/hooks/useSpaces/index.js +0 -557
- package/dist/hooks/useSpaces/themes/blueprint.d.ts +0 -3
- package/dist/hooks/useSpaces/themes/blueprint.js +0 -96
- package/dist/hooks/useSpaces/themes/default.d.ts +0 -3
- package/dist/hooks/useSpaces/themes/default.js +0 -96
- package/dist/hooks/useSpaces/themes/index.js +0 -21
- package/dist/hooks/useSpaces/themes/light.d.ts +0 -3
- package/dist/hooks/useSpaces/themes/light.js +0 -96
- package/dist/hooks/useSpaces/types.d.ts +0 -378
- package/dist/hooks/useSpaces/types.js +0 -54
- package/dist/hooks/useSpaces/validators/areWallsDuplicated.d.ts +0 -3
- package/dist/hooks/useSpaces/validators/areWallsDuplicated.js +0 -61
- package/dist/hooks/useSpaces/validators/areWallsIntersecting.d.ts +0 -3
- package/dist/hooks/useSpaces/validators/areWallsIntersecting.js +0 -42
- package/dist/hooks/useSpaces/validators/areWallsOrphaningFeatures.d.ts +0 -3
- package/dist/hooks/useSpaces/validators/areWallsOrphaningFeatures.js +0 -52
- package/dist/hooks/useSpaces/validators/areWallsTooShort.d.ts +0 -3
- package/dist/hooks/useSpaces/validators/areWallsTooShort.js +0 -37
- package/dist/hooks/useSpaces/validators/index.d.ts +0 -15
- package/dist/hooks/useSpaces/validators/index.js +0 -40
- package/dist/hooks/useSpaces/validators/isFeatureCollidingWithExistingFeature.d.ts +0 -3
- package/dist/hooks/useSpaces/validators/isFeatureCollidingWithExistingFeature.js +0 -31
- package/dist/hooks/useSpaces/validators/isFeatureOutsideWallBounds.d.ts +0 -3
- package/dist/hooks/useSpaces/validators/isFeatureOutsideWallBounds.js +0 -19
- package/dist/hooks/useSpaces/validators/isLineTooShort.d.ts +0 -3
- package/dist/hooks/useSpaces/validators/isLineTooShort.js +0 -26
- package/dist/hooks/useSpaces/validators/isVertexLandingOnFeature.d.ts +0 -4
- package/dist/hooks/useSpaces/validators/isVertexLandingOnFeature.js +0 -19
- package/dist/hooks/useSpaces/validators/isWallEndingOnFeature.d.ts +0 -3
- package/dist/hooks/useSpaces/validators/isWallEndingOnFeature.js +0 -19
- package/dist/hooks/useSpaces/validators/isWallIntersectingFeature.d.ts +0 -3
- package/dist/hooks/useSpaces/validators/isWallIntersectingFeature.js +0 -41
- package/dist/hooks/useSpaces/validators/isWallOverlappingExisitingWalls.d.ts +0 -3
- package/dist/hooks/useSpaces/validators/isWallOverlappingExisitingWalls.js +0 -54
- package/dist/hooks/useSpaces/validators/isWallTooShort.d.ts +0 -3
- package/dist/hooks/useSpaces/validators/isWallTooShort.js +0 -10
- package/dist/http/products.d.ts +0 -1
- package/dist/http/products.js +0 -12
- package/dist/icons/AngleSnapping.d.ts +0 -3
- package/dist/icons/AngleSnapping.js +0 -28
- package/dist/icons/Boundary.d.ts +0 -3
- package/dist/icons/Boundary.js +0 -21
- package/dist/icons/Center.d.ts +0 -3
- package/dist/icons/Center.js +0 -24
- package/dist/icons/GridSnapping.d.ts +0 -3
- package/dist/icons/GridSnapping.js +0 -28
- package/dist/icons/LayoutAlt.d.ts +0 -3
- package/dist/icons/LayoutAlt.js +0 -21
- package/dist/icons/Magnet.d.ts +0 -3
- package/dist/icons/Magnet.js +0 -27
- package/dist/icons/Player3D.d.ts +0 -3
- package/dist/icons/Player3D.js +0 -21
- package/dist/icons/RulerBlank.d.ts +0 -3
- package/dist/icons/RulerBlank.js +0 -25
- package/dist/icons/RulerDetailed.d.ts +0 -3
- package/dist/icons/RulerDetailed.js +0 -27
- package/dist/icons/Save.d.ts +0 -3
- package/dist/icons/Save.js +0 -21
- package/dist/icons/UnitCm.d.ts +0 -3
- package/dist/icons/UnitCm.js +0 -22
- package/dist/icons/UnitFeet.d.ts +0 -3
- package/dist/icons/UnitFeet.js +0 -22
- package/dist/icons/UnitInch.d.ts +0 -3
- package/dist/icons/UnitInch.js +0 -22
- package/dist/icons/UnitMeter.d.ts +0 -3
- package/dist/icons/UnitMeter.js +0 -21
- package/dist/store/spaces.d.ts +0 -74
- package/dist/store/spaces.js +0 -354
- /package/dist/hooks/{useSpaces/validators → useRoomBuilder}/messaging.d.ts +0 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ICoordinate2D, ICoordinatesLine, ICoordinatesQuadrilateral } from './types';
|
|
2
|
+
export declare function euclideanMod(n: number, m: number): number;
|
|
3
|
+
export declare function arePointsEqual(point1: ICoordinate2D, point2: ICoordinate2D): boolean;
|
|
4
|
+
export declare function areLinesEqual(line1: ICoordinatesLine, line2: ICoordinatesLine): boolean;
|
|
5
|
+
export declare function getLineOtherPoint(line: ICoordinatesLine, point: ICoordinate2D): ICoordinate2D;
|
|
6
|
+
export declare function getLengthOfLineSegment(line: ICoordinatesLine): number;
|
|
7
|
+
export declare function getMidpointOfLineSegment(line: ICoordinatesLine): ICoordinate2D;
|
|
8
|
+
export declare function getAngleOfLineSegment(line: ICoordinatesLine): number;
|
|
9
|
+
export declare function getPointAtOffsetOnLineSegment(line: ICoordinatesLine, offset: number): ICoordinate2D;
|
|
10
|
+
export declare function getLineAtOffsetOnLineSegment(line: ICoordinatesLine, offset: number, length: number): ICoordinatesLine;
|
|
11
|
+
export declare function getLineMidpoint(line: ICoordinatesLine): ICoordinate2D;
|
|
12
|
+
export declare function getDistanceToLine(pointOnLine: ICoordinate2D, angle: number, point: ICoordinate2D): number;
|
|
13
|
+
export declare function closestPointOnLine(pointOnLine: ICoordinate2D, angle: number, point: ICoordinate2D): ICoordinate2D;
|
|
14
|
+
export declare function getPolygonArea(polygon: Array<ICoordinate2D>): number;
|
|
15
|
+
export declare function getParallelLineSegmentAtDistance(line: ICoordinatesLine, distance: number): ICoordinatesLine;
|
|
16
|
+
export declare function addThicknessToLine(line: ICoordinatesLine, thickness: number): ICoordinatesQuadrilateral;
|
|
17
|
+
export declare function arePointsWithinProximity(point1: ICoordinate2D, point2: ICoordinate2D, proximity: number): boolean;
|
|
18
|
+
export declare function isPointInQuadrilateral(quadrilateral: ICoordinatesQuadrilateral, point: ICoordinate2D): boolean;
|
|
19
|
+
export declare function isPointInPolygon(point: ICoordinate2D, polygon: Array<ICoordinate2D>): boolean;
|
|
20
|
+
export declare function getLineSegmentsIntersection(line1: ICoordinatesLine, line2: ICoordinatesLine): null | ICoordinate2D;
|
|
21
|
+
export declare function splitLineAtPoint(line: ICoordinatesLine, point: ICoordinate2D): [ICoordinatesLine, ICoordinatesLine];
|
|
22
|
+
export declare function splitLineAtPoints(line: ICoordinatesLine, points: Array<ICoordinate2D>): Array<ICoordinatesLine>;
|
|
23
|
+
export declare function splitLineAtOffset(line: ICoordinatesLine, offset: number): [ICoordinatesLine, ICoordinatesLine];
|
|
24
|
+
export declare function orderCoordinatesOnLineSegment(points?: Array<ICoordinate2D>): Array<ICoordinate2D>;
|
|
25
|
+
export declare function getTangetIntersectionAndOffset(line: ICoordinatesLine, point: ICoordinate2D): undefined | {
|
|
26
|
+
point: ICoordinate2D;
|
|
27
|
+
offset: number;
|
|
28
|
+
};
|
|
29
|
+
export declare function getAllLineIntersections(line: ICoordinatesLine, lines: Array<ICoordinatesLine | null>): {
|
|
30
|
+
index: number;
|
|
31
|
+
point: ICoordinate2D;
|
|
32
|
+
}[];
|
|
33
|
+
export declare function doLinesOverlap(line1: [offset: number, length: number], line2: [offset: number, length: number]): boolean;
|
|
@@ -0,0 +1,325 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
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.closestPointOnLine = exports.getDistanceToLine = exports.getLineMidpoint = exports.getLineAtOffsetOnLineSegment = exports.getPointAtOffsetOnLineSegment = exports.getAngleOfLineSegment = exports.getMidpointOfLineSegment = exports.getLengthOfLineSegment = exports.getLineOtherPoint = exports.areLinesEqual = exports.arePointsEqual = exports.euclideanMod = void 0;
|
|
13
|
+
function euclideanMod(n, m) {
|
|
14
|
+
return ((n % m) + m) % m;
|
|
15
|
+
}
|
|
16
|
+
exports.euclideanMod = euclideanMod;
|
|
17
|
+
function arePointsEqual(point1, point2) {
|
|
18
|
+
if (!point1 || !point2)
|
|
19
|
+
return false;
|
|
20
|
+
return point1[0] === point2[0] && point1[1] === point2[1];
|
|
21
|
+
}
|
|
22
|
+
exports.arePointsEqual = arePointsEqual;
|
|
23
|
+
function areLinesEqual(line1, line2) {
|
|
24
|
+
if (!line1 || !line2)
|
|
25
|
+
return false;
|
|
26
|
+
if ((arePointsEqual(line1[0], line2[0]) &&
|
|
27
|
+
arePointsEqual(line1[1], line2[1])) ||
|
|
28
|
+
(arePointsEqual(line1[0], line2[1]) && arePointsEqual(line1[1], line2[0]))) {
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
exports.areLinesEqual = areLinesEqual;
|
|
34
|
+
function getLineOtherPoint(line, point) {
|
|
35
|
+
var eq0 = arePointsEqual(line[0], point);
|
|
36
|
+
var eq1 = arePointsEqual(line[1], point);
|
|
37
|
+
if (eq0 === eq1)
|
|
38
|
+
console.warn('Unexpected. Is your wall of 0 length?', JSON.parse(JSON.stringify({ line: line, point: point })));
|
|
39
|
+
return eq0 ? line[1] : line[0];
|
|
40
|
+
}
|
|
41
|
+
exports.getLineOtherPoint = getLineOtherPoint;
|
|
42
|
+
function getLengthOfLineSegment(line) {
|
|
43
|
+
var _a = line.flat(), x1 = _a[0], y1 = _a[1], x2 = _a[2], y2 = _a[3];
|
|
44
|
+
return Math.sqrt(Math.pow((x2 - x1), 2) + Math.pow((y2 - y1), 2));
|
|
45
|
+
}
|
|
46
|
+
exports.getLengthOfLineSegment = getLengthOfLineSegment;
|
|
47
|
+
function getUnitVectorOfLineSegment(line) {
|
|
48
|
+
var _a = line.flat(), x1 = _a[0], y1 = _a[1], x2 = _a[2], y2 = _a[3];
|
|
49
|
+
var magnitude = getLengthOfLineSegment(line);
|
|
50
|
+
return [(x2 - x1) / magnitude, (y2 - y1) / magnitude];
|
|
51
|
+
}
|
|
52
|
+
function getMidpointOfLineSegment(line) {
|
|
53
|
+
var _a = line.flat(), x1 = _a[0], y1 = _a[1], x2 = _a[2], y2 = _a[3];
|
|
54
|
+
var xMidpoint = (x1 + x2) / 2;
|
|
55
|
+
var yMidpoint = (y1 + y2) / 2;
|
|
56
|
+
return [xMidpoint, yMidpoint];
|
|
57
|
+
}
|
|
58
|
+
exports.getMidpointOfLineSegment = getMidpointOfLineSegment;
|
|
59
|
+
function getAngleOfLineSegment(line) {
|
|
60
|
+
var _a = line.flat(), x1 = _a[0], y1 = _a[1], x2 = _a[2], y2 = _a[3];
|
|
61
|
+
return Math.atan2(y2 - y1, x2 - x1);
|
|
62
|
+
}
|
|
63
|
+
exports.getAngleOfLineSegment = getAngleOfLineSegment;
|
|
64
|
+
function getPointAtOffsetOnLineSegment(line, offset) {
|
|
65
|
+
var _a = line.flat(), x1 = _a[0], y1 = _a[1], x2 = _a[2], y2 = _a[3];
|
|
66
|
+
var d = Math.sqrt(Math.pow((x2 - x1), 2) + Math.pow((y2 - y1), 2));
|
|
67
|
+
var r = offset / d;
|
|
68
|
+
var x = x1 + r * (x2 - x1);
|
|
69
|
+
var y = y1 + r * (y2 - y1);
|
|
70
|
+
return [x, y];
|
|
71
|
+
}
|
|
72
|
+
exports.getPointAtOffsetOnLineSegment = getPointAtOffsetOnLineSegment;
|
|
73
|
+
function getLineAtOffsetOnLineSegment(line, offset, length) {
|
|
74
|
+
var _a = line.flat(), x1 = _a[0], y1 = _a[1], x2 = _a[2], y2 = _a[3];
|
|
75
|
+
var d = Math.sqrt(Math.pow((x2 - x1), 2) + Math.pow((y2 - y1), 2));
|
|
76
|
+
var startRatio = offset / d;
|
|
77
|
+
var endRatio = (offset + length) / d;
|
|
78
|
+
var startX = x1 + startRatio * (x2 - x1);
|
|
79
|
+
var startY = y1 + startRatio * (y2 - y1);
|
|
80
|
+
var endX = x1 + endRatio * (x2 - x1);
|
|
81
|
+
var endY = y1 + endRatio * (y2 - y1);
|
|
82
|
+
return [
|
|
83
|
+
[startX, startY],
|
|
84
|
+
[endX, endY],
|
|
85
|
+
];
|
|
86
|
+
}
|
|
87
|
+
exports.getLineAtOffsetOnLineSegment = getLineAtOffsetOnLineSegment;
|
|
88
|
+
function getLineMidpoint(line) {
|
|
89
|
+
var x = (line[0][0] + line[1][0]) / 2;
|
|
90
|
+
var y = (line[0][1] + line[1][1]) / 2;
|
|
91
|
+
return [x, y];
|
|
92
|
+
}
|
|
93
|
+
exports.getLineMidpoint = getLineMidpoint;
|
|
94
|
+
function getDistanceToLine(pointOnLine, angle, point) {
|
|
95
|
+
var x1 = point[0], y1 = point[1];
|
|
96
|
+
var x2 = pointOnLine[0], y2 = pointOnLine[1];
|
|
97
|
+
var dx = Math.cos(angle);
|
|
98
|
+
var dy = Math.sin(angle);
|
|
99
|
+
return (Math.abs((y1 - y2) * dx - (x1 - x2) * dy) / Math.sqrt(Math.pow(dx, 2) + Math.pow(dy, 2)));
|
|
100
|
+
}
|
|
101
|
+
exports.getDistanceToLine = getDistanceToLine;
|
|
102
|
+
function closestPointOnLine(pointOnLine, angle, point) {
|
|
103
|
+
var x1 = point[0], y1 = point[1];
|
|
104
|
+
var x2 = pointOnLine[0], y2 = pointOnLine[1];
|
|
105
|
+
var dx = Math.cos(angle);
|
|
106
|
+
var dy = Math.sin(angle);
|
|
107
|
+
var t = ((x1 - x2) * dx + (y1 - y2) * dy) / (dx * dx + dy * dy);
|
|
108
|
+
var x = x2 + t * dx;
|
|
109
|
+
var y = y2 + t * dy;
|
|
110
|
+
return [x, y];
|
|
111
|
+
}
|
|
112
|
+
exports.closestPointOnLine = closestPointOnLine;
|
|
113
|
+
function getQuadrilateralArea(quadrilateral) {
|
|
114
|
+
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];
|
|
115
|
+
var area = Math.abs((x1 * y2 +
|
|
116
|
+
x2 * y3 +
|
|
117
|
+
x3 * y4 +
|
|
118
|
+
x4 * y1 -
|
|
119
|
+
x2 * y1 -
|
|
120
|
+
x3 * y2 -
|
|
121
|
+
x4 * y3 -
|
|
122
|
+
x1 * y4) /
|
|
123
|
+
2);
|
|
124
|
+
return area;
|
|
125
|
+
}
|
|
126
|
+
function getTriangleArea(point1, point2, point3) {
|
|
127
|
+
return ((point1[0] * (point2[1] - point3[1]) +
|
|
128
|
+
point2[0] * (point3[1] - point1[1]) +
|
|
129
|
+
point3[0] * (point1[1] - point2[1])) /
|
|
130
|
+
2);
|
|
131
|
+
}
|
|
132
|
+
function getPolygonArea(polygon) {
|
|
133
|
+
var origin = [0, 0];
|
|
134
|
+
return polygon.reduce(function (sum, point1, i) {
|
|
135
|
+
var point2 = polygon[(i + 1) % polygon.length];
|
|
136
|
+
sum += getTriangleArea(origin, point1, point2);
|
|
137
|
+
return sum;
|
|
138
|
+
}, 0);
|
|
139
|
+
}
|
|
140
|
+
exports.getPolygonArea = getPolygonArea;
|
|
141
|
+
function getParallelLineSegmentAtDistance(line, distance) {
|
|
142
|
+
if (!distance)
|
|
143
|
+
return line;
|
|
144
|
+
var _a = line.flat(), x1 = _a[0], y1 = _a[1], x2 = _a[2], y2 = _a[3];
|
|
145
|
+
var unitVector = getUnitVectorOfLineSegment(line);
|
|
146
|
+
var _b = distance > 0
|
|
147
|
+
? [unitVector[1], -unitVector[0]]
|
|
148
|
+
: [-unitVector[1], unitVector[0]], xNormal = _b[0], yNormal = _b[1];
|
|
149
|
+
var length = Math.abs(distance);
|
|
150
|
+
var point1 = [x1 + xNormal * length, y1 + yNormal * length];
|
|
151
|
+
var point2 = [x2 + xNormal * length, y2 + yNormal * length];
|
|
152
|
+
return [point1, point2];
|
|
153
|
+
}
|
|
154
|
+
exports.getParallelLineSegmentAtDistance = getParallelLineSegmentAtDistance;
|
|
155
|
+
function addThicknessToLine(line, thickness) {
|
|
156
|
+
var offset = thickness / 2;
|
|
157
|
+
var _a = getParallelLineSegmentAtDistance(line, offset), point1 = _a[0], point2 = _a[1];
|
|
158
|
+
var _b = getParallelLineSegmentAtDistance(line, -offset), point4 = _b[0], point3 = _b[1];
|
|
159
|
+
return [point1, point2, point3, point4];
|
|
160
|
+
}
|
|
161
|
+
exports.addThicknessToLine = addThicknessToLine;
|
|
162
|
+
function arePointsWithinProximity(point1, point2, proximity) {
|
|
163
|
+
var length = getLengthOfLineSegment([point1, point2]);
|
|
164
|
+
return length <= proximity;
|
|
165
|
+
}
|
|
166
|
+
exports.arePointsWithinProximity = arePointsWithinProximity;
|
|
167
|
+
function isPointInQuadrilateral(quadrilateral, point) {
|
|
168
|
+
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];
|
|
169
|
+
var pointX = point[0], pointY = point[1];
|
|
170
|
+
if (pointX < Math.min(x1, x2, x3, x4) ||
|
|
171
|
+
pointX > Math.max(x1, x2, x3, x4) ||
|
|
172
|
+
pointY < Math.min(y1, y2, y3, y4) ||
|
|
173
|
+
pointY > Math.max(y1, y2, y3, y4)) {
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
var area = getQuadrilateralArea(quadrilateral);
|
|
177
|
+
var area1 = getTriangleArea(point, quadrilateral[0], quadrilateral[1]);
|
|
178
|
+
var area2 = getTriangleArea(point, quadrilateral[1], quadrilateral[2]);
|
|
179
|
+
var area3 = getTriangleArea(point, quadrilateral[2], quadrilateral[3]);
|
|
180
|
+
var area4 = getTriangleArea(point, quadrilateral[3], quadrilateral[0]);
|
|
181
|
+
var compareArea = Math.abs(area1) + Math.abs(area2) + Math.abs(area3) + Math.abs(area4);
|
|
182
|
+
return Math.abs(Math.round(area) - Math.round(compareArea)) < 2;
|
|
183
|
+
}
|
|
184
|
+
exports.isPointInQuadrilateral = isPointInQuadrilateral;
|
|
185
|
+
function isPointInPolygon(point, polygon) {
|
|
186
|
+
var ray = [
|
|
187
|
+
point,
|
|
188
|
+
[point[0] + Number.MAX_SAFE_INTEGER, point[1]],
|
|
189
|
+
];
|
|
190
|
+
var intersectCount = 0;
|
|
191
|
+
for (var i = 0; i < polygon.length; i++) {
|
|
192
|
+
var polygonStart = polygon[i];
|
|
193
|
+
var polygonEnd = polygon[(i + 1) % polygon.length];
|
|
194
|
+
if (getLineSegmentsIntersection(ray, [polygonStart, polygonEnd]))
|
|
195
|
+
intersectCount++;
|
|
196
|
+
}
|
|
197
|
+
return intersectCount % 2 === 1;
|
|
198
|
+
}
|
|
199
|
+
exports.isPointInPolygon = isPointInPolygon;
|
|
200
|
+
function getLineSegmentsIntersection(line1, line2) {
|
|
201
|
+
if (arePointsEqual.apply(void 0, line1) || arePointsEqual.apply(void 0, line2))
|
|
202
|
+
return null;
|
|
203
|
+
if (arePointsEqual(line1[0], line2[0]))
|
|
204
|
+
return null;
|
|
205
|
+
if (arePointsEqual(line1[0], line2[1]))
|
|
206
|
+
return null;
|
|
207
|
+
if (arePointsEqual(line1[1], line2[0]))
|
|
208
|
+
return null;
|
|
209
|
+
if (arePointsEqual(line1[1], line2[1]))
|
|
210
|
+
return null;
|
|
211
|
+
var _a = line1.flat(), x1 = _a[0], y1 = _a[1], x2 = _a[2], y2 = _a[3];
|
|
212
|
+
var _b = line2.flat(), x3 = _b[0], y3 = _b[1], x4 = _b[2], y4 = _b[3];
|
|
213
|
+
var a1 = y2 - y1;
|
|
214
|
+
var b1 = x1 - x2;
|
|
215
|
+
var c1 = a1 * x1 + b1 * y1;
|
|
216
|
+
var a2 = y4 - y3;
|
|
217
|
+
var b2 = x3 - x4;
|
|
218
|
+
var c2 = a2 * x3 + b2 * y3;
|
|
219
|
+
var determinant = a1 * b2 - a2 * b1;
|
|
220
|
+
if (determinant === 0)
|
|
221
|
+
return null;
|
|
222
|
+
var x = (b2 * c1 - b1 * c2) / determinant;
|
|
223
|
+
var y = (a1 * c2 - a2 * c1) / determinant;
|
|
224
|
+
if (x < Math.min(x1, x2) ||
|
|
225
|
+
x > Math.max(x1, x2) ||
|
|
226
|
+
x < Math.min(x3, x4) ||
|
|
227
|
+
x > Math.max(x3, x4))
|
|
228
|
+
return null;
|
|
229
|
+
if (y < Math.min(y1, y2) ||
|
|
230
|
+
y > Math.max(y1, y2) ||
|
|
231
|
+
y < Math.min(y3, y4) ||
|
|
232
|
+
y > Math.max(y3, y4))
|
|
233
|
+
return null;
|
|
234
|
+
return [x, y];
|
|
235
|
+
}
|
|
236
|
+
exports.getLineSegmentsIntersection = getLineSegmentsIntersection;
|
|
237
|
+
function splitLineAtPoint(line, point) {
|
|
238
|
+
return [
|
|
239
|
+
[line[0], point],
|
|
240
|
+
[point, line[1]],
|
|
241
|
+
];
|
|
242
|
+
}
|
|
243
|
+
exports.splitLineAtPoint = splitLineAtPoint;
|
|
244
|
+
function splitLineAtPoints(line, points) {
|
|
245
|
+
if (!points.length)
|
|
246
|
+
return [line];
|
|
247
|
+
var orderedPoints = orderCoordinatesOnLineSegment(__spreadArray(__spreadArray([], line, true), points, true));
|
|
248
|
+
return (orderedPoints[0][0] === line[0][0] ? orderedPoints : orderedPoints.reverse()).reduce(function (output, point, i) {
|
|
249
|
+
if (!i)
|
|
250
|
+
return output;
|
|
251
|
+
else
|
|
252
|
+
output.push([orderedPoints[i - 1], point]);
|
|
253
|
+
return output;
|
|
254
|
+
}, []);
|
|
255
|
+
}
|
|
256
|
+
exports.splitLineAtPoints = splitLineAtPoints;
|
|
257
|
+
function splitLineAtOffset(line, offset) {
|
|
258
|
+
var splitPoint = getPointAtOffsetOnLineSegment(line, offset);
|
|
259
|
+
return splitLineAtPoint(line, splitPoint);
|
|
260
|
+
}
|
|
261
|
+
exports.splitLineAtOffset = splitLineAtOffset;
|
|
262
|
+
function orderCoordinatesOnLineSegment(points) {
|
|
263
|
+
if (!points)
|
|
264
|
+
return [];
|
|
265
|
+
if (points[0][0] === points[1][0])
|
|
266
|
+
return points.sort(function (a, b) { return a[1] - b[1]; });
|
|
267
|
+
else
|
|
268
|
+
return points.sort(function (a, b) { return a[0] - b[0]; });
|
|
269
|
+
}
|
|
270
|
+
exports.orderCoordinatesOnLineSegment = orderCoordinatesOnLineSegment;
|
|
271
|
+
function getClosestPointOnLineSegment(line, point) {
|
|
272
|
+
var _a = line.flat(), x1 = _a[0], y1 = _a[1], x2 = _a[2], y2 = _a[3];
|
|
273
|
+
var lineVector = [x2 - x1, y2 - y1];
|
|
274
|
+
var pointVector = [point[0] - x1, point[1] - y1];
|
|
275
|
+
var lineLength = Math.pow(lineVector[0], 2) + Math.pow(lineVector[1], 2);
|
|
276
|
+
var dotProduct = (pointVector[0] * lineVector[0] + pointVector[1] * lineVector[1]) /
|
|
277
|
+
lineLength;
|
|
278
|
+
if (dotProduct < 0)
|
|
279
|
+
return [x1, y1];
|
|
280
|
+
if (dotProduct > 1)
|
|
281
|
+
return [x2, y2];
|
|
282
|
+
else
|
|
283
|
+
return [x1 + dotProduct * lineVector[0], y1 + dotProduct * lineVector[1]];
|
|
284
|
+
}
|
|
285
|
+
function getTangetIntersectionAndOffset(line, point) {
|
|
286
|
+
var interceptPoint = getClosestPointOnLineSegment(line, point);
|
|
287
|
+
if (!interceptPoint)
|
|
288
|
+
return undefined;
|
|
289
|
+
return {
|
|
290
|
+
point: interceptPoint,
|
|
291
|
+
offset: getLengthOfLineSegment([line[0], interceptPoint]),
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
exports.getTangetIntersectionAndOffset = getTangetIntersectionAndOffset;
|
|
295
|
+
function getAllLineIntersections(line, lines) {
|
|
296
|
+
var lineStr = [JSON.stringify(line[0]), JSON.stringify(line[1])];
|
|
297
|
+
return lines.reduce(function (output, existingLine, i) {
|
|
298
|
+
if (existingLine === null)
|
|
299
|
+
return output;
|
|
300
|
+
var startStr = JSON.stringify(existingLine[0]);
|
|
301
|
+
var endStr = JSON.stringify(existingLine[1]);
|
|
302
|
+
if (lineStr.includes(startStr) || lineStr.includes(endStr))
|
|
303
|
+
return output;
|
|
304
|
+
var intersectionPoint = getLineSegmentsIntersection(line, existingLine);
|
|
305
|
+
if (!intersectionPoint)
|
|
306
|
+
return output;
|
|
307
|
+
output.push({ index: i, point: intersectionPoint });
|
|
308
|
+
return output;
|
|
309
|
+
}, []);
|
|
310
|
+
}
|
|
311
|
+
exports.getAllLineIntersections = getAllLineIntersections;
|
|
312
|
+
function doLinesOverlap(line1, line2) {
|
|
313
|
+
var start1 = line1[0];
|
|
314
|
+
var end1 = line1[0] + line1[1];
|
|
315
|
+
var start2 = line2[0];
|
|
316
|
+
var end2 = line2[0] + line2[1];
|
|
317
|
+
if (start2 < start1 && start1 < end2)
|
|
318
|
+
return true;
|
|
319
|
+
if (start2 < end1 && end1 < end2)
|
|
320
|
+
return true;
|
|
321
|
+
if (start1 < start2 && start2 < end1 && start1 < end2 && end2 < end1)
|
|
322
|
+
return true;
|
|
323
|
+
return false;
|
|
324
|
+
}
|
|
325
|
+
exports.doLinesOverlap = doLinesOverlap;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { IHydratedAttributeArray } from '../../types';
|
|
3
|
+
import type { IElementName, IElementPublic, IRoomBuilderHookProps } from './types';
|
|
4
|
+
import { IModes, IUnits, IElements } from './types';
|
|
5
|
+
import { IThemes } from './themes';
|
|
6
|
+
interface IUseRoomBuilder {
|
|
7
|
+
canvasRef: React.RefObject<HTMLCanvasElement>;
|
|
8
|
+
[IElements.WALL]?: IHydratedAttributeArray;
|
|
9
|
+
[IElements.WINDOW]?: IHydratedAttributeArray;
|
|
10
|
+
[IElements.DOOR]?: IHydratedAttributeArray;
|
|
11
|
+
[IElements.OPENING]?: IHydratedAttributeArray;
|
|
12
|
+
selectedElement: IElementPublic | null;
|
|
13
|
+
reset: () => void;
|
|
14
|
+
deleteElement: (type: IElementName, index: number) => void;
|
|
15
|
+
dimensions: {
|
|
16
|
+
enabled: boolean;
|
|
17
|
+
handleToggle: (val?: boolean) => void;
|
|
18
|
+
};
|
|
19
|
+
angleSnapping: {
|
|
20
|
+
enabled: boolean;
|
|
21
|
+
handleToggle: (val?: boolean) => void;
|
|
22
|
+
};
|
|
23
|
+
mode: {
|
|
24
|
+
value: IModes;
|
|
25
|
+
options: Array<{
|
|
26
|
+
label: IModes;
|
|
27
|
+
value: IModes;
|
|
28
|
+
selected: boolean;
|
|
29
|
+
handleSelect: () => void;
|
|
30
|
+
}>;
|
|
31
|
+
handleChange: (mode: IModes) => void;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
declare const useRoomBuilder: {
|
|
35
|
+
(props: IRoomBuilderHookProps): IUseRoomBuilder;
|
|
36
|
+
themes: typeof IThemes;
|
|
37
|
+
units: typeof IUnits;
|
|
38
|
+
modes: typeof IModes;
|
|
39
|
+
};
|
|
40
|
+
export default useRoomBuilder;
|