rm-build-dxf 0.1.186

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 (195) hide show
  1. package/README.md +6 -0
  2. package/package.json +50 -0
  3. package/src/App.vue.d.ts +2 -0
  4. package/src/DomEventRegister.js +1 -0
  5. package/src/api/getSocket.d.ts +1 -0
  6. package/src/api/index.d.ts +27 -0
  7. package/src/api/type.d.ts +46 -0
  8. package/src/build.js +1 -0
  9. package/src/components/DragContainer.vue.d.ts +48 -0
  10. package/src/components/NumberEditor.vue.d.ts +33 -0
  11. package/src/constants.d.ts +11 -0
  12. package/src/demo.d.ts +1 -0
  13. package/src/dxf-system/DxfSystem.d.ts +26 -0
  14. package/src/dxf-system/build.d.ts +94 -0
  15. package/src/dxf-system/components/CorrectionDxf.d.ts +44 -0
  16. package/src/dxf-system/components/Dxf.d.ts +96 -0
  17. package/src/dxf-system/components/ThreeVJia.d.ts +33 -0
  18. package/src/dxf-system/components/Variable.d.ts +41 -0
  19. package/src/dxf-system/index.d.ts +2 -0
  20. package/src/dxf-system/plugins/editor/Command/ClippingLine.d.ts +30 -0
  21. package/src/dxf-system/plugins/editor/Command/Command.d.ts +346 -0
  22. package/src/dxf-system/plugins/editor/Command/DefaultCommand.d.ts +56 -0
  23. package/src/dxf-system/plugins/editor/Command/DeleteSelectLine.d.ts +25 -0
  24. package/src/dxf-system/plugins/editor/Command/DrawBalconyRailing.d.ts +12 -0
  25. package/src/dxf-system/plugins/editor/Command/DrawBeam.d.ts +12 -0
  26. package/src/dxf-system/plugins/editor/Command/DrawDoorLine.d.ts +9 -0
  27. package/src/dxf-system/plugins/editor/Command/DrawHole.d.ts +67 -0
  28. package/src/dxf-system/plugins/editor/Command/DrawLine.d.ts +41 -0
  29. package/src/dxf-system/plugins/editor/Command/DrawPillar.d.ts +12 -0
  30. package/src/dxf-system/plugins/editor/Command/DrawWindow.d.ts +12 -0
  31. package/src/dxf-system/plugins/editor/Command/ManualDistance.d.ts +23 -0
  32. package/src/dxf-system/plugins/editor/Command/MergeLine.d.ts +33 -0
  33. package/src/dxf-system/plugins/editor/Command/PointDrag/index.d.ts +38 -0
  34. package/src/dxf-system/plugins/editor/Command/PointDrag/modifyDoor.d.ts +40 -0
  35. package/src/dxf-system/plugins/editor/Command/PointDrag/modifyLine.d.ts +34 -0
  36. package/src/dxf-system/plugins/editor/Command/PointDrag/modifyWindow.d.ts +25 -0
  37. package/src/dxf-system/plugins/editor/Command/PropertiesPanel.d.ts +33 -0
  38. package/src/dxf-system/plugins/editor/Command/RayDistance.d.ts +23 -0
  39. package/src/dxf-system/plugins/editor/Command/SelectAll.d.ts +30 -0
  40. package/src/dxf-system/plugins/editor/Command/TwoLineConnectionLine.d.ts +33 -0
  41. package/src/dxf-system/plugins/editor/Command/TwoPointConnection.d.ts +33 -0
  42. package/src/dxf-system/plugins/editor/Command/VerticalCorr.d.ts +66 -0
  43. package/src/dxf-system/plugins/editor/Command/VerticalCorrContinue.d.ts +35 -0
  44. package/src/dxf-system/plugins/editor/Command/ViewAngle.d.ts +21 -0
  45. package/src/dxf-system/plugins/editor/Editor.d.ts +56 -0
  46. package/src/dxf-system/plugins/editor/RenderManager.d.ts +101 -0
  47. package/src/dxf-system/plugins/editor/index.d.ts +9 -0
  48. package/src/dxf-system/plugins/editor/pages/EditorTool/EditorTool.vue.d.ts +7 -0
  49. package/src/dxf-system/plugins/editor/pages/EditorTool/EditorToolContent.vue.d.ts +7 -0
  50. package/src/dxf-system/plugins/editor/pages/PropertiesPanel.vue.d.ts +18 -0
  51. package/src/dxf-system/plugins/editor/pages/components/Button.vue.d.ts +17 -0
  52. package/src/dxf-system/plugins/editor/pages/components/Input.vue.d.ts +13 -0
  53. package/src/dxf-system/plugins/editor/pages/components/ToolToggle.vue.d.ts +20 -0
  54. package/src/dxf-system/plugins/editor/type.d.ts +11 -0
  55. package/src/dxf-system/plugins/editor/us-service/DragControlPoint.d.ts +48 -0
  56. package/src/dxf-system/plugins/editor/us-service/LineSelector.d.ts +44 -0
  57. package/src/dxf-system/plugins/editor/us-service/PointerFollowMove.d.ts +86 -0
  58. package/src/dxf-system/plugins/editor/us-service/SnapController.d.ts +32 -0
  59. package/src/dxf-system/plugins/editor/utils/Wall2D.d.ts +10 -0
  60. package/src/dxf-system/plugins/model3d/components/DxfLineModel.d.ts +14 -0
  61. package/src/dxf-system/plugins/model3d/components/WhiteModel.d.ts +61 -0
  62. package/src/dxf-system/plugins/model3d/components/index.d.ts +2 -0
  63. package/src/dxf-system/plugins/model3d/index.d.ts +11 -0
  64. package/src/dxf-system/plugins/renderer/components/DomContainer.d.ts +13 -0
  65. package/src/dxf-system/plugins/renderer/components/DomEventRegister.d.ts +116 -0
  66. package/src/dxf-system/plugins/renderer/components/EventInput.d.ts +74 -0
  67. package/src/dxf-system/plugins/renderer/components/ModelDataRender.d.ts +13 -0
  68. package/src/dxf-system/plugins/renderer/components/Renderer.d.ts +100 -0
  69. package/src/dxf-system/plugins/renderer/components/index.d.ts +5 -0
  70. package/src/dxf-system/plugins/renderer/index.d.ts +13 -0
  71. package/src/dxf-system/type.d.ts +218 -0
  72. package/src/dxf-system/utils/BayWindowHelper.d.ts +58 -0
  73. package/src/dxf-system/utils/BoundExt.d.ts +51 -0
  74. package/src/dxf-system/utils/DoorFind.d.ts +44 -0
  75. package/src/dxf-system/utils/DoubleWallFinder.d.ts +24 -0
  76. package/src/dxf-system/utils/HeightQuery.d.ts +12 -0
  77. package/src/dxf-system/utils/LineGroupType.d.ts +125 -0
  78. package/src/dxf-system/utils/LoadModel.d.ts +7 -0
  79. package/src/dxf-system/utils/RunJianPipeline.d.ts +92 -0
  80. package/src/dxf-system/utils/SceneAutoGenerat.d.ts +42 -0
  81. package/src/dxf-system/utils/ThreeVJiaPipeline.d.ts +154 -0
  82. package/src/dxf-system/utils/WallGroupManager.d.ts +27 -0
  83. package/src/dxf-system/utils/WallHole.d.ts +134 -0
  84. package/src/dxf-system/utils/WallHoleDrawData.d.ts +31 -0
  85. package/src/dxf-system/utils/ZHouseMockData.d.ts +127 -0
  86. package/src/dxf-system/utils/cad/DxfDataPlugin.d.ts +20 -0
  87. package/src/dxf-system/utils/cad/DxfDrawPlugin.d.ts +13 -0
  88. package/src/dxf-system/utils/cad/draw-data.d.ts +43 -0
  89. package/src/dxf-system/utils/cad/draw-dxf-image.d.ts +2 -0
  90. package/src/dxf-system/utils/cad/draw-dxf-string.d.ts +3 -0
  91. package/src/dxf-system/utils/cad/index.d.ts +143 -0
  92. package/src/dxf-system/utils/clipping-double-wall.d.ts +7 -0
  93. package/src/dxf-system/utils/draw-helper.d.ts +6 -0
  94. package/src/dxf-system/utils/find-discrete.d.ts +26 -0
  95. package/src/dxf-system/utils/find-rooms.d.ts +16 -0
  96. package/src/dxf-system/utils/get-win-draw-data.d.ts +18 -0
  97. package/src/dxf-system/utils/index.d.ts +8 -0
  98. package/src/dxf-system/utils/line-pipeline/builtin/axis-align-corr.d.ts +16 -0
  99. package/src/dxf-system/utils/line-pipeline/builtin/beam-support-line.d.ts +3 -0
  100. package/src/dxf-system/utils/line-pipeline/builtin/bound-ext.d.ts +8 -0
  101. package/src/dxf-system/utils/line-pipeline/builtin/build-group/bay-window.d.ts +7 -0
  102. package/src/dxf-system/utils/line-pipeline/builtin/build-group/double-wall.d.ts +6 -0
  103. package/src/dxf-system/utils/line-pipeline/builtin/build-group/index.d.ts +7 -0
  104. package/src/dxf-system/utils/line-pipeline/builtin/door-space-handle.d.ts +5 -0
  105. package/src/dxf-system/utils/line-pipeline/builtin/door-to-hole.d.ts +9 -0
  106. package/src/dxf-system/utils/line-pipeline/builtin/double-wall-alignment.d.ts +7 -0
  107. package/src/dxf-system/utils/line-pipeline/builtin/index.d.ts +39 -0
  108. package/src/dxf-system/utils/line-pipeline/builtin/init.d.ts +8 -0
  109. package/src/dxf-system/utils/line-pipeline/builtin/remove-room-sundries.d.ts +3 -0
  110. package/src/dxf-system/utils/line-pipeline/builtin/remove-short-double-wall.d.ts +6 -0
  111. package/src/dxf-system/utils/line-pipeline/builtin/wall-height-handle.d.ts +8 -0
  112. package/src/dxf-system/utils/line-pipeline/index.d.ts +22 -0
  113. package/src/dxf-system/utils/remove-dangline.d.ts +7 -0
  114. package/src/dxf-system/utils/tools.d.ts +91 -0
  115. package/src/index.css +1 -0
  116. package/src/index.js +1 -0
  117. package/src/index2.js +1 -0
  118. package/src/index3.js +1 -0
  119. package/src/main.d.ts +0 -0
  120. package/src/pages/CubeView.vue.d.ts +4 -0
  121. package/src/pages/DxfPreview.vue.d.ts +9 -0
  122. package/src/pages/Editor.vue.d.ts +8 -0
  123. package/src/pages/ExportGLB.vue.d.ts +2 -0
  124. package/src/pages/ImagePreview.vue.d.ts +9 -0
  125. package/src/pages/ModelView.vue.d.ts +11 -0
  126. package/src/pages/Setting.vue.d.ts +6 -0
  127. package/src/pages/Todo.vue.d.ts +2 -0
  128. package/src/pages/WallView.vue.d.ts +9 -0
  129. package/src/pages/WindowManager.vue.d.ts +2 -0
  130. package/src/pages/buildJson.vue.d.ts +4 -0
  131. package/src/pages/modelCarrier/index.vue.d.ts +4 -0
  132. package/src/router/index.d.ts +2 -0
  133. package/src/utils/EventDispatcher.d.ts +18 -0
  134. package/src/utils/algorithms/AlignToParallelSegments.d.ts +25 -0
  135. package/src/utils/algorithms/AxisAlignCorr.d.ts +38 -0
  136. package/src/utils/algorithms/Box2.d.ts +96 -0
  137. package/src/utils/algorithms/CheckPointCloudContinuity.d.ts +63 -0
  138. package/src/utils/algorithms/ConstraintSystem.d.ts +17 -0
  139. package/src/utils/algorithms/ConvexHullGraham.d.ts +16 -0
  140. package/src/utils/algorithms/Debouncing.d.ts +10 -0
  141. package/src/utils/algorithms/LineIndexGenerator.d.ts +12 -0
  142. package/src/utils/algorithms/LineQueryer.d.ts +42 -0
  143. package/src/utils/algorithms/LineSegment.d.ts +258 -0
  144. package/src/utils/algorithms/LineSegmentSpatialHash.d.ts +86 -0
  145. package/src/utils/algorithms/LineSegmentUtils.d.ts +185 -0
  146. package/src/utils/algorithms/Map.d.ts +38 -0
  147. package/src/utils/algorithms/MaxiCircles.d.ts +15 -0
  148. package/src/utils/algorithms/MiniCircles.d.ts +57 -0
  149. package/src/utils/algorithms/OBB.d.ts +30 -0
  150. package/src/utils/algorithms/PCSparseOctree.d.ts +56 -0
  151. package/src/utils/algorithms/Pipeline.d.ts +20 -0
  152. package/src/utils/algorithms/Point.d.ts +271 -0
  153. package/src/utils/algorithms/PointSpatialHash.d.ts +149 -0
  154. package/src/utils/algorithms/PointUtils.d.ts +47 -0
  155. package/src/utils/algorithms/Polygon.d.ts +164 -0
  156. package/src/utils/algorithms/PolygonUtils.d.ts +9 -0
  157. package/src/utils/algorithms/Quadtree.d.ts +89 -0
  158. package/src/utils/algorithms/Rectangle.d.ts +62 -0
  159. package/src/utils/algorithms/UndirectedGraph.d.ts +124 -0
  160. package/src/utils/algorithms/UnionFindSet.d.ts +12 -0
  161. package/src/utils/algorithms/ccw.d.ts +2 -0
  162. package/src/utils/algorithms/lazy.d.ts +14 -0
  163. package/src/utils/algorithms/precision.d.ts +3 -0
  164. package/src/utils/algorithms/stepElimination.d.ts +6 -0
  165. package/src/utils/algorithms/uuid.d.ts +1 -0
  166. package/src/utils/command/CommandFlow.d.ts +45 -0
  167. package/src/utils/command/CommandSystem.d.ts +96 -0
  168. package/src/utils/command/index.d.ts +2 -0
  169. package/src/utils/decorators/measure-time.d.ts +5 -0
  170. package/src/utils/ecs/Component.d.ts +18 -0
  171. package/src/utils/ecs/Container.d.ts +47 -0
  172. package/src/utils/ecs/index.d.ts +4 -0
  173. package/src/utils/geometry-manager/GeometryManager.d.ts +2 -0
  174. package/src/utils/index.d.ts +25 -0
  175. package/src/utils/modelScenario/bayWindow.d.ts +35 -0
  176. package/src/utils/modelScenario/scenario.d.ts +92 -0
  177. package/src/utils/three-object-3d/ExtrudeMesh.d.ts +11 -0
  178. package/src/utils/three-object-3d/LineAlignmentGuide.d.ts +20 -0
  179. package/src/utils/three-object-3d/Lines.d.ts +25 -0
  180. package/src/utils/three-object-3d/Lines2.d.ts +22 -0
  181. package/src/utils/three-object-3d/Shape2D.d.ts +61 -0
  182. package/src/utils/tools/GCHandle.d.ts +12 -0
  183. package/src/utils/tools/Gltf.d.ts +7 -0
  184. package/src/utils/tools/SnapLine.d.ts +19 -0
  185. package/src/utils/tools/StorageHelper.d.ts +8 -0
  186. package/src/utils/tools/clone-user-data.d.ts +7 -0
  187. package/src/utils/tools/create-html.d.ts +9 -0
  188. package/src/utils/tools/create-promise.d.ts +5 -0
  189. package/src/utils/tools/createVueApp.d.ts +1 -0
  190. package/src/utils/tools/download.d.ts +1 -0
  191. package/src/utils/tools/get-json.d.ts +5 -0
  192. package/src/utils/tools/include.d.ts +1 -0
  193. package/src/utils/tools/is-mobile.d.ts +2 -0
  194. package/src/utils/tools/repetitive-task.d.ts +1 -0
  195. package/src/utils/tools/selectLocal-file.d.ts +7 -0
@@ -0,0 +1,13 @@
1
+ import { DxfSystem } from '../../DxfSystem';
2
+ import * as components from "./components";
3
+ import * as THREE from "three";
4
+ type Option = {
5
+ modelData?: boolean;
6
+ orbitControls?: boolean;
7
+ camera?: THREE.Camera;
8
+ };
9
+ declare function RendererPlugin_(dxfSystem: DxfSystem, option?: Option): void;
10
+ declare const RenderPlugin: typeof RendererPlugin_ & {
11
+ create(option?: Option): (dxfSystem: DxfSystem) => void;
12
+ };
13
+ export { components, RenderPlugin };
@@ -0,0 +1,218 @@
1
+ import { Quadtree, QuadtreeNode } from '../utils/algorithms/Quadtree';
2
+ import { Point } from '../utils/algorithms/Point';
3
+ import { LineSegment } from '../utils/algorithms/LineSegment';
4
+ import { Polygon } from '../utils/algorithms/Polygon';
5
+ export type Unit = "Unitless" | "Inches" | "Feet" | "Miles" | "Millimeters" | "Centimeters" | "Meters" | "Kilometers" | "Microinches" | "Mils" | "Yards" | "Angstroms" | "Nanometers" | "Microns" | "Decimeters" | "Decameters" | "Hectometers" | "Gigameters" | "Astronomical units" | "Light years" | "Parsecs";
6
+ export interface GroupItem {
7
+ id: string;
8
+ type?: string;
9
+ }
10
+ export type HoleStorageType = 'drawWindow' | 'passageEntrance';
11
+ export type HoleType = "door" | "window" | "beam" | "passageEntrance";
12
+ export interface HoleData {
13
+ p: {
14
+ x: number;
15
+ y: number;
16
+ z: number;
17
+ };
18
+ width: number;
19
+ full: boolean;
20
+ rooftopPz?: number;
21
+ uuid?: string;
22
+ height?: number;
23
+ groundClearance?: number;
24
+ type?: HoleType;
25
+ id?: number;
26
+ nearId?: number;
27
+ doorId?: number;
28
+ nearDoorId?: number;
29
+ pair?: string | number;
30
+ }
31
+ export type EntityType = "beams" | "door" | "pillar";
32
+ export type Shape = "line" | "arc" | "polygon";
33
+ export type WallLineGlobalOption = {
34
+ uuid?: string;
35
+ groupId?: string;
36
+ groupType?: string;
37
+ groups?: GroupItem[];
38
+ rooftopPz?: number;
39
+ height?: number;
40
+ wallWidth?: number;
41
+ sillHeight?: number;
42
+ length?: number;
43
+ type?: EntityType;
44
+ shape?: Shape;
45
+ /** 是不是窗户线 */
46
+ isWindow?: boolean;
47
+ /** 是不是飘窗虚线 */
48
+ isBayWindow?: boolean;
49
+ /** 是不是飘窗墙壁 */
50
+ isWindowWall?: boolean;
51
+ isBayWindowWin?: boolean;
52
+ /** 是不是阳台护栏 */
53
+ isBalconyRailing?: boolean;
54
+ /** 是不是门线 */
55
+ isDoor?: boolean;
56
+ doorAutomaticFind?: boolean;
57
+ doorDirectConnection?: boolean;
58
+ expansionWidth?: number;
59
+ expansionDirction?: {
60
+ x: number;
61
+ y: number;
62
+ };
63
+ isPassageEntrance?: boolean;
64
+ topClearance?: number;
65
+ isVerticalReferenceLine?: boolean;
66
+ insetionArr?: {
67
+ index: number;
68
+ p: {
69
+ x: number;
70
+ y: number;
71
+ z?: number;
72
+ };
73
+ }[];
74
+ outSize?: {
75
+ direction: {
76
+ x: number;
77
+ y: number;
78
+ z: number;
79
+ };
80
+ };
81
+ drawWindow?: HoleData[];
82
+ drawDoorData?: {
83
+ start: {
84
+ x: number;
85
+ y: number;
86
+ z?: number;
87
+ };
88
+ n: {
89
+ x: number;
90
+ y: number;
91
+ z?: number;
92
+ };
93
+ height: number;
94
+ groundClearance: number;
95
+ sillHeight?: number;
96
+ };
97
+ passageEntrance?: HoleData[];
98
+ pair?: string | number;
99
+ };
100
+ export type LineUserData = {
101
+ quadtreeNode?: QuadtreeNode;
102
+ } & WallLineGlobalOption;
103
+ export type OriginalDataItem = {
104
+ start: {
105
+ x: number;
106
+ y: number;
107
+ z?: number;
108
+ };
109
+ end: {
110
+ x: number;
111
+ y: number;
112
+ z?: number;
113
+ };
114
+ } & WallLineGlobalOption;
115
+ /**
116
+ * [开始点, 结束点, 相交点, 是否是门, 索引]
117
+ */
118
+ export type DataItem = [Point, Point, number[], boolean, number];
119
+ export type FittingMethodType = "average" | "max";
120
+ export type SetDataOption = {
121
+ /**
122
+ * 主轴阈值,默认 0.3 groupMethod是precision时生效
123
+ */
124
+ principalAxisThreshold?: number;
125
+ /**
126
+ * 交叉轴阈值,默认 0.06
127
+ */
128
+ crossAxistThreshold?: number;
129
+ /**
130
+ * 吸附阈值,默认 0.2
131
+ */
132
+ snapThreshold?: number;
133
+ /**
134
+ * 拟合方式, 默认 max
135
+ * @description average 以分组线段平均数作为拟合位置
136
+ * @description max 以分组线段中最长线段作为拟合位置
137
+ */
138
+ fittingMethod?: FittingMethodType;
139
+ /**
140
+ * 分组方式, 默认 default
141
+ * @description cross 以交叉轴辅助分组
142
+ * @description principalAndCross 以主轴和交叉轴辅助分组
143
+ * @description originalInterPoint 通过原始交点计算分组,把原来平行的放到分组里
144
+ */
145
+ groupMethod?: "cross" | "principalAndCross" | "originalInterPoint";
146
+ /**
147
+ * 吸附方式, 默认 adsorption
148
+ */
149
+ adsorptionMethod?: "originalInterPoint" | "adsorption";
150
+ wallGroup?: boolean;
151
+ trajectory?: Record<string, any>;
152
+ onBoundExt?: (lines: LineSegment[], trajectory: any) => void;
153
+ publicInfo?: IPublicInfoFile;
154
+ originalZ?: number;
155
+ minWidth?: number;
156
+ };
157
+ /**
158
+ *
159
+ */
160
+ export interface PointGroup {
161
+ points: Point[];
162
+ indices: number[];
163
+ }
164
+ export type Contour = {
165
+ contour: [number, number][];
166
+ polygon?: Polygon;
167
+ averagePz: number;
168
+ };
169
+ export type CootTopContourInfo = {
170
+ contours: Contour[];
171
+ maxContourIndex: number;
172
+ quadtree?: Quadtree;
173
+ };
174
+ export type ItemInfo = {
175
+ category: string;
176
+ box: {
177
+ min: {
178
+ x: number;
179
+ y: number;
180
+ z: number;
181
+ };
182
+ max: {
183
+ x: number;
184
+ y: number;
185
+ z: number;
186
+ };
187
+ };
188
+ contour: {
189
+ x: number;
190
+ y: number;
191
+ z: number;
192
+ }[];
193
+ quadContour?: {
194
+ x: number;
195
+ y: number;
196
+ z: number;
197
+ }[];
198
+ direction: {
199
+ x: number;
200
+ y: number;
201
+ z: number;
202
+ };
203
+ obj_id: string;
204
+ position: {
205
+ x: number;
206
+ y: number;
207
+ z: number;
208
+ };
209
+ size: {
210
+ x: number;
211
+ y: number;
212
+ z: number;
213
+ };
214
+ };
215
+ export interface IPublicInfoFile {
216
+ itemInfo: ItemInfo[];
217
+ rootTopContourInfo?: CootTopContourInfo;
218
+ }
@@ -0,0 +1,58 @@
1
+ import { LineSegment } from '../../utils/algorithms/LineSegment';
2
+ import { LineUserData } from '../type';
3
+ import { Point } from '../../utils/algorithms/Point';
4
+ import * as THREE from "three";
5
+ export interface IDrawBayWindowData {
6
+ height1: number;
7
+ height2: number;
8
+ height3: number;
9
+ depth: number;
10
+ windowWidth: number;
11
+ windowHeight: number;
12
+ bayWindowLine: LineSegment;
13
+ windowLine: LineSegment;
14
+ deptLine: LineSegment;
15
+ direction: Point;
16
+ }
17
+ export interface IDrawBayWindowData2 {
18
+ height1: number;
19
+ height2: number;
20
+ height3: number;
21
+ windowWidth: number;
22
+ windowHeight: number;
23
+ direction: Point;
24
+ }
25
+ export declare class BayWindowHelper {
26
+ /** 计算飘窗信息
27
+ * @param lines
28
+ */
29
+ static computedInfo(lines: LineSegment<LineUserData>[]): {
30
+ side: "LEFT" | "RIGHT";
31
+ depth: number;
32
+ dottedLine: LineSegment<LineUserData>;
33
+ windowLine: LineSegment<LineUserData> | undefined;
34
+ } | undefined;
35
+ /** 获取绘制数据
36
+ * @param lines
37
+ * @returns
38
+ */
39
+ static getDrawData(lines: LineSegment<LineUserData>[]): IDrawBayWindowData | null;
40
+ /** 获取绘制数据
41
+ * @param lines
42
+ * @returns
43
+ */
44
+ static getDrawData2(lines: LineSegment<LineUserData>[]): IDrawBayWindowData2 | null;
45
+ /** 获取所有绘制数据
46
+ * @param lineSegments
47
+ * @returns
48
+ */
49
+ static getDrawDataAll(lineSegments: LineSegment[]): {
50
+ group: LineSegment<Record<string, any>>[];
51
+ drawData: IDrawBayWindowData;
52
+ }[];
53
+ /** 绘制数据转模型
54
+ * @param drawData
55
+ * @returns
56
+ */
57
+ static drawDataToModel(drawData: IDrawBayWindowData): THREE.Group<THREE.Object3DEventMap>;
58
+ }
@@ -0,0 +1,51 @@
1
+ import { LineSegment } from '../../utils/algorithms/LineSegment';
2
+ import { Point } from '../../utils/algorithms/Point';
3
+ import { LineUserData, OriginalDataItem } from '../type';
4
+ interface IByTraj {
5
+ lines: LineSegment[];
6
+ trajectory: any;
7
+ wallWidth: number;
8
+ updateDoubleWallGroup?: boolean;
9
+ findCallBack?: (lines: LineSegment[], trajectory: Point[]) => void;
10
+ }
11
+ interface IByTrajAnOriginData {
12
+ data: OriginalDataItem[];
13
+ trajectory: any;
14
+ wallWidth: number;
15
+ updateDoubleWallGroup?: boolean;
16
+ findCallBack?: (lines: LineSegment[], trajectory: Point[]) => void;
17
+ }
18
+ /**
19
+ * 外墙外扩
20
+ */
21
+ export declare class BoundExt {
22
+ /** 通过轨迹点查找外墙
23
+ * @param lines
24
+ * @param trajectoryPoints
25
+ * @returns
26
+ */
27
+ static findExtWallByTraj(lines: LineSegment<LineUserData & {
28
+ expandDirect?: 'left' | 'right' | 'on';
29
+ }>[], trajectoryPoints: Point[], minWidth?: number): LineSegment<{
30
+ quadtreeNode?: import('../../utils').QuadtreeNode;
31
+ } & import('../type').WallLineGlobalOption & {
32
+ expandDirect?: "left" | "right" | "on";
33
+ }>[];
34
+ /** 通过轨迹点外扩边线
35
+ * @param lines
36
+ * @param trajectoryPoints
37
+ */
38
+ static boundExtbyTrajAndOriginalData(opt: IByTrajAnOriginData): OriginalDataItem[];
39
+ /** 通过轨迹点外扩边线
40
+ * @param lines
41
+ * @param trajectory
42
+ * @param wallWidth
43
+ * @param findCallBack
44
+ * @returns
45
+ */
46
+ static boundExtbyTraj(opt: IByTraj): {
47
+ lines: LineSegment<Record<string, any>>[];
48
+ toOriginalData(originalZAverage: number): OriginalDataItem[];
49
+ };
50
+ }
51
+ export {};
@@ -0,0 +1,44 @@
1
+ import { LineSegment } from '../../utils/algorithms/LineSegment';
2
+ import { LineUserData } from '../type';
3
+ import { PointSpatialHash } from '../../utils/algorithms/PointSpatialHash';
4
+ import { Quadtree } from '../../utils/algorithms/Quadtree';
5
+ import { Point } from '../../utils/algorithms/Point';
6
+ interface IDockInfo {
7
+ dockLine: LineSegment<LineUserData>;
8
+ dockPoint: Point<Record<string, any>>;
9
+ point: Point<Record<string, any>>;
10
+ pointType: string;
11
+ }
12
+ export declare class DoorFind {
13
+ lines: LineSegment[];
14
+ grid: PointSpatialHash<LineSegment<LineUserData>>;
15
+ quadtree: Quadtree<{
16
+ index: number;
17
+ }>;
18
+ constructor(lines: LineSegment<LineUserData>[]);
19
+ /**
20
+ * 查找兄弟门(双开门)
21
+ */
22
+ findBrotherDoor(lines: LineSegment<LineUserData>[]): LineSegment<LineUserData>[];
23
+ /** 处理封闭门
24
+ * @param line
25
+ * @returns
26
+ */
27
+ private findCloseDoors;
28
+ /** 处理开门
29
+ * @param line
30
+ * @returns
31
+ */
32
+ findOpenDoors(line: LineSegment<LineUserData>): void;
33
+ /**
34
+ * 对门的两侧进行吸附
35
+ * @param dock
36
+ * @param line
37
+ * @param maxAngle 找到的门线与原来的之间最大夹角
38
+ * @returns
39
+ */
40
+ adsorpt(dock: IDockInfo, line: LineSegment, maxAngle?: number): Point<Record<string, any>> | null;
41
+ extendLink(dock: IDockInfo, line: LineSegment): Point<Record<string, any>> | null;
42
+ getLines(): LineSegment<Record<string, any>>[];
43
+ }
44
+ export {};
@@ -0,0 +1,24 @@
1
+ import { LineSegment } from '../../utils/algorithms/LineSegment';
2
+ import { LineUserData } from '../type';
3
+ export declare class DoubleWallFinder {
4
+ /**
5
+ * @param lines
6
+ * @param parallelAxis
7
+ * @param verticalAxis
8
+ * @param esp
9
+ * @param gap
10
+ * @returns
11
+ */
12
+ private static group;
13
+ /** 查找
14
+ * @param lines
15
+ * @param obstacle
16
+ * @param esp
17
+ * @returns
18
+ */
19
+ static find(lines: LineSegment<LineUserData>[], obstacle?: LineSegment[], esp?: number): LineSegment<LineUserData>[];
20
+ /**
21
+ * 创建分组
22
+ */
23
+ static buildGroup(lineSegments: LineSegment<LineUserData>[]): (LineSegment<Record<string, any>> | LineSegment<LineUserData>)[];
24
+ }
@@ -0,0 +1,12 @@
1
+ import { LineSegment } from '../../utils/algorithms/LineSegment';
2
+ import { CootTopContourInfo } from '../type';
3
+ /**
4
+ * 墙高查询
5
+ */
6
+ export declare class HeightQuery {
7
+ static query(line: LineSegment, rootTopContourInfo: CootTopContourInfo): number;
8
+ static whichContourContainsPoint(points: [number, number][], rootTopContourInfo: CootTopContourInfo): {
9
+ i: number;
10
+ averagePz: number;
11
+ }[];
12
+ }
@@ -0,0 +1,125 @@
1
+ import { LineSegment } from '../../utils/algorithms/LineSegment';
2
+ import { LineUserData } from '../type';
3
+ /**
4
+ * 线段分组管理
5
+ */
6
+ export declare class LineGroupType {
7
+ /**
8
+ * 获取线段的所有分组信息
9
+ * @param line
10
+ * @returns
11
+ */
12
+ static get(line: LineSegment<LineUserData>): {
13
+ id: string;
14
+ type?: string;
15
+ }[];
16
+ /**
17
+ * 为线段添加新的分组
18
+ * @param line
19
+ * @param id
20
+ * @param type
21
+ * @returns
22
+ */
23
+ static set(line: LineSegment<LineUserData>, id: string, type: string, repeat?: boolean): void;
24
+ /** 通过类型获取id
25
+ * @param line
26
+ * @param type
27
+ * @returns
28
+ */
29
+ static getIdByType(line: LineSegment<LineUserData>, type: string): string | undefined;
30
+ /** 通过类型获取所有id
31
+ * @param line
32
+ * @param type
33
+ * @returns
34
+ */
35
+ static getIdsByType(line: LineSegment<LineUserData>, type: string): string[];
36
+ /** 通过类型获取所有组
37
+ * @param lines
38
+ * @param type
39
+ */
40
+ static getGroupsByType(lines: LineSegment[], type: string, remainingLines?: LineSegment[]): LineSegment<Record<string, any>>[][] & {
41
+ remainingLines: LineSegment<Record<string, any>>[];
42
+ };
43
+ /**
44
+ * 替换线段中的分组信息
45
+ * @param line
46
+ * @param id
47
+ * @param type
48
+ * @returns
49
+ */
50
+ static replace(line: LineSegment<LineUserData>, id: string, type: string): boolean;
51
+ /** 有组
52
+ * @param line
53
+ */
54
+ static hasGroup(line: LineSegment<LineUserData>): boolean;
55
+ /**
56
+ * 检查线段是否包含指定的分组ID
57
+ * @param line
58
+ * @param id
59
+ * @returns
60
+ */
61
+ static hasId(line: LineSegment<LineUserData>, id: string): boolean | undefined;
62
+ /**
63
+ * 检查线段是否包含指定的分组类型
64
+ * @param line
65
+ * @param type
66
+ * @returns
67
+ */
68
+ static hasType(line: LineSegment<LineUserData>, type: string): boolean;
69
+ /**
70
+ * 检查线段是否包含所有指定的分组类型
71
+ * @param line
72
+ * @param types
73
+ * @returns
74
+ */
75
+ static hasTypes(line: LineSegment<LineUserData>, types: string[]): boolean;
76
+ /**
77
+ * 检查线段是否包含所有指定的分组类型
78
+ * @param lines
79
+ * @param type
80
+ * @returns
81
+ */
82
+ static everyType(lines: LineSegment<LineUserData>[], type: string): boolean;
83
+ /**
84
+ * 获取所有线段的交集类型(所有线段都包含的类型)
85
+ * @param lines
86
+ * @returns
87
+ */
88
+ static getIntersectionTypes(lines: LineSegment<LineUserData>[]): string[];
89
+ /**
90
+ * 获取所有线段的并集类型
91
+ * @param lines
92
+ * @returns
93
+ */
94
+ static getUnionTypes(lines: LineSegment<LineUserData>[]): string[];
95
+ /** 是否为一组
96
+ * @param lines
97
+ */
98
+ static isGroup(lines: LineSegment<LineUserData>[]): boolean;
99
+ /**
100
+ *
101
+ * @param line
102
+ * @param id
103
+ * @returns
104
+ */
105
+ static remove(line: LineSegment<LineUserData>, id: string): boolean;
106
+ /**
107
+ * 通过类型移除
108
+ * @param line
109
+ * @param id
110
+ * @returns
111
+ */
112
+ static removeByType(line: LineSegment<LineUserData>, type: string): boolean;
113
+ /**
114
+ * 通过类型移除
115
+ * @param line
116
+ * @param id
117
+ * @returns
118
+ */
119
+ static removeByTypes(line: LineSegment<LineUserData>, types: string[]): void;
120
+ /**
121
+ * 清空线段的所有分组信息
122
+ * @param line
123
+ */
124
+ static clear(line: LineSegment<LineUserData>): void;
125
+ }
@@ -0,0 +1,7 @@
1
+ import { Group } from 'three';
2
+ export declare class LoadModel {
3
+ private static _cache;
4
+ private static _nameMap;
5
+ static addNameMap(mapName: string, name: string): void;
6
+ static loadGlb(name: string): Promise<Group<import('three').Object3DEventMap> | null> | undefined;
7
+ }
@@ -0,0 +1,92 @@
1
+ import { LineSegment } from '../../utils/algorithms/LineSegment';
2
+ import { LineUserData } from '../type';
3
+ import { WallGroupManager } from './WallGroupManager';
4
+ import { Pipeline, HandlerContext } from '../../utils/algorithms/Pipeline';
5
+ type Component = {
6
+ index: number;
7
+ id: number;
8
+ name: "梁" | "柱" | "板" | "墙";
9
+ floor: number;
10
+ length: number;
11
+ width: number;
12
+ height: number;
13
+ x: number;
14
+ y: number;
15
+ z: number;
16
+ };
17
+ export type RunJianObject = {
18
+ version: string;
19
+ title: string;
20
+ floor: number;
21
+ components: Component[];
22
+ };
23
+ type DataOption = {
24
+ lines: LineSegment[];
25
+ json: RunJianObject;
26
+ };
27
+ interface ICache {
28
+ wallLines: LineSegment[];
29
+ }
30
+ export declare class RunJianPipeline extends Pipeline<DataOption, ICache> {
31
+ manager: WallGroupManager;
32
+ index: number;
33
+ z: number;
34
+ floor: number;
35
+ lines: LineSegment[];
36
+ constructor(lines: LineSegment[], z: number, floor: number);
37
+ /** 双线墙处理
38
+ * 孔洞提取
39
+ * 会拆分成有宽度的单线墙壁
40
+ * @param param0
41
+ * @returns
42
+ */
43
+ doubleWallHandle({ data: { lines }, cache }: HandlerContext<DataOption, ICache>): void;
44
+ /** 柱子处理
45
+ * @param param0
46
+ * @returns
47
+ */
48
+ pillarHandle({ data: { lines, json } }: HandlerContext<DataOption>): void;
49
+ /**
50
+ * 单线墙处理 - 孔洞提取
51
+ * @param param0
52
+ */
53
+ wallHandle({ data: { lines }, cache }: HandlerContext<DataOption, ICache>): void;
54
+ /**
55
+ * 门线处理
56
+ * @param param0
57
+ */
58
+ doorHandle({ data: { lines }, cache }: HandlerContext<DataOption, ICache>): void;
59
+ /** 飘窗处理
60
+ * @param data
61
+ * @returns
62
+ */
63
+ bayWindowHandle({ data: { lines }, cache }: HandlerContext<DataOption, ICache>): void;
64
+ /** 阳台护栏
65
+ * @param param0
66
+ * @returns
67
+ */
68
+ balconyRailing({ data: { lines }, cache }: HandlerContext<DataOption, ICache>): void;
69
+ /** 墙壁孔洞处理
70
+ * @param param0
71
+ * @returns
72
+ */
73
+ wallHoleHandle({ data: { lines, json } }: HandlerContext<DataOption, ICache>): void;
74
+ /** 转换
75
+ * @returns
76
+ */
77
+ transform(): RunJianObject;
78
+ /**
79
+ * 转为 润建 结构
80
+ * @param lineSegments
81
+ * @param angle 弧度
82
+ * @param updateGroup
83
+ * @returns
84
+ */
85
+ static toJson(lineSegments: LineSegment<LineUserData>[], opt?: {
86
+ z?: number;
87
+ angle?: number;
88
+ floor: number;
89
+ updateGroup?: boolean;
90
+ }): RunJianObject;
91
+ }
92
+ export {};
@@ -0,0 +1,42 @@
1
+ import { Group } from 'three';
2
+ import { LineSegment } from '../../utils/algorithms/LineSegment';
3
+ import { LineUserData } from '../type';
4
+ import * as THREE from "three";
5
+ export declare class SceneAutoGenerat {
6
+ lines: LineSegment[];
7
+ itemList: any[];
8
+ z: number;
9
+ scene: Group<THREE.Object3DEventMap>;
10
+ trajectory?: any;
11
+ angle: number;
12
+ constructor(lines: LineSegment[], itemList: any[], z: number, trajectory?: any);
13
+ init(): Promise<void>;
14
+ private createGeometryByLines;
15
+ getDoorAll(lines: LineSegment<LineUserData>[]): LineSegment<LineUserData>[];
16
+ buildPlane(lines: LineSegment<LineUserData>[]): void;
17
+ wallGroup: Group | null;
18
+ /** 构建墙壁
19
+ */
20
+ buildWall(): Promise<void>;
21
+ /** 获取模型
22
+ * @param item
23
+ * @param walls
24
+ */
25
+ getModel(item: any): Promise<void>;
26
+ /** 构建物品模型
27
+ */
28
+ buildItem(): Promise<void>;
29
+ static itemParse(item: any): {
30
+ geometry: THREE.ExtrudeGeometry;
31
+ box: THREE.LineSegments<THREE.EdgesGeometry<THREE.ExtrudeGeometry>, THREE.LineBasicMaterial, THREE.Object3DEventMap>;
32
+ center: THREE.Vector3;
33
+ category: any;
34
+ angle: number;
35
+ info: {
36
+ center: THREE.Vector3;
37
+ start: THREE.Vector3;
38
+ end: THREE.Vector3;
39
+ length: number;
40
+ }[];
41
+ } | null;
42
+ }