deeptwins-engine-3d 0.1.64 → 0.1.65

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 (169) hide show
  1. package/dist/esm/{plot/utils/Algorithm.js → drawer/algorithm.js} +1 -3
  2. package/dist/esm/drawer/common.d.ts +61 -0
  3. package/dist/esm/{plot/utils/PlotCommon.js → drawer/common.js} +104 -551
  4. package/dist/esm/drawer/index.d.ts +11 -18
  5. package/dist/esm/drawer/index.js +329 -80
  6. package/dist/esm/{plot/utils → drawer}/plotUtil.js +1 -3
  7. package/dist/esm/drawer/shape/Assemble.d.ts +34 -0
  8. package/dist/esm/drawer/shape/Assemble.js +415 -0
  9. package/dist/esm/drawer/shape/AttackArrow.d.ts +32 -0
  10. package/dist/esm/drawer/shape/AttackArrow.js +442 -0
  11. package/dist/esm/drawer/shape/BaseShape.d.ts +14 -4
  12. package/dist/esm/drawer/shape/BaseShape.js +175 -20
  13. package/dist/esm/drawer/shape/Bow.d.ts +31 -0
  14. package/dist/esm/drawer/shape/Bow.js +375 -0
  15. package/dist/esm/drawer/shape/Circle.d.ts +37 -0
  16. package/dist/esm/drawer/shape/Circle.js +461 -0
  17. package/dist/esm/drawer/shape/Curve.d.ts +29 -0
  18. package/dist/esm/drawer/shape/Curve.js +386 -0
  19. package/dist/esm/drawer/shape/DragPoint.d.ts +32 -0
  20. package/dist/esm/drawer/shape/DragPoint.js +211 -0
  21. package/dist/esm/drawer/shape/Elliptic.d.ts +38 -0
  22. package/dist/esm/drawer/shape/Elliptic.js +491 -0
  23. package/dist/esm/drawer/shape/Formation.d.ts +33 -0
  24. package/dist/esm/drawer/shape/Formation.js +395 -0
  25. package/dist/esm/drawer/shape/PincerArrow.d.ts +32 -0
  26. package/dist/esm/drawer/shape/PincerArrow.js +445 -0
  27. package/dist/esm/drawer/shape/Point.d.ts +2 -31
  28. package/dist/esm/drawer/shape/Point.js +7 -201
  29. package/dist/esm/drawer/shape/Polygon.d.ts +1 -1
  30. package/dist/esm/drawer/shape/Polygon.js +10 -81
  31. package/dist/esm/drawer/shape/Polyline.d.ts +1 -1
  32. package/dist/esm/drawer/shape/Polyline.js +10 -81
  33. package/dist/esm/drawer/shape/RegularPolygon.d.ts +37 -0
  34. package/dist/esm/drawer/shape/RegularPolygon.js +468 -0
  35. package/dist/esm/drawer/shape/RightAngleArrow.d.ts +34 -0
  36. package/dist/esm/drawer/shape/RightAngleArrow.js +423 -0
  37. package/dist/esm/drawer/shape/Sector.d.ts +37 -0
  38. package/dist/esm/drawer/shape/Sector.js +568 -0
  39. package/dist/esm/drawer/shape/StraightArrow.d.ts +34 -0
  40. package/dist/esm/drawer/shape/StraightArrow.js +422 -0
  41. package/dist/esm/drawer/shape/SwallowtailArrow.d.ts +36 -0
  42. package/dist/esm/drawer/shape/SwallowtailArrow.js +438 -0
  43. package/dist/esm/drawer/types.d.ts +23 -0
  44. package/dist/esm/drawer/types.js +11 -0
  45. package/dist/esm/drawer/utils.d.ts +14 -0
  46. package/dist/esm/drawer/utils.js +320 -2
  47. package/dist/esm/index.js +2 -2
  48. package/dist/esm/measure/Area.d.ts +17 -17
  49. package/dist/esm/measure/Area.js +95 -63
  50. package/dist/esm/measure/BaseDraw.d.ts +9 -4
  51. package/dist/esm/measure/BaseDraw.js +37 -2
  52. package/dist/esm/measure/Distance.d.ts +9 -9
  53. package/dist/esm/measure/Distance.js +52 -68
  54. package/dist/esm/measure/index.d.ts +16 -26
  55. package/dist/esm/measure/index.js +72 -84
  56. package/dist/esm/measure/types.d.ts +94 -0
  57. package/dist/esm/measure/types.js +17 -0
  58. package/dist/esm/measure/utils.d.ts +7 -7
  59. package/dist/esm/measure/utils.js +43 -24
  60. package/dist/esm/tool/utils.js +1 -1
  61. package/dist/umd/deeptwins-engine-3d.min.js +1 -1
  62. package/package.json +1 -1
  63. package/dist/esm/plot/create/CreateAssemble.d.ts +0 -2
  64. package/dist/esm/plot/create/CreateAssemble.js +0 -63
  65. package/dist/esm/plot/create/CreateAttackArrow.d.ts +0 -5
  66. package/dist/esm/plot/create/CreateAttackArrow.js +0 -75
  67. package/dist/esm/plot/create/CreateBillboard.d.ts +0 -2
  68. package/dist/esm/plot/create/CreateBillboard.js +0 -47
  69. package/dist/esm/plot/create/CreateBow.d.ts +0 -2
  70. package/dist/esm/plot/create/CreateBow.js +0 -63
  71. package/dist/esm/plot/create/CreateCircle.d.ts +0 -2
  72. package/dist/esm/plot/create/CreateCircle.js +0 -68
  73. package/dist/esm/plot/create/CreateCurve.d.ts +0 -2
  74. package/dist/esm/plot/create/CreateCurve.js +0 -76
  75. package/dist/esm/plot/create/CreateElliptic.d.ts +0 -2
  76. package/dist/esm/plot/create/CreateElliptic.js +0 -69
  77. package/dist/esm/plot/create/CreateFlag.d.ts +0 -2
  78. package/dist/esm/plot/create/CreateFlag.js +0 -80
  79. package/dist/esm/plot/create/CreateFormation.d.ts +0 -2
  80. package/dist/esm/plot/create/CreateFormation.js +0 -65
  81. package/dist/esm/plot/create/CreateFreeLine.d.ts +0 -2
  82. package/dist/esm/plot/create/CreateFreeLine.js +0 -69
  83. package/dist/esm/plot/create/CreateFreePolygon.d.ts +0 -2
  84. package/dist/esm/plot/create/CreateFreePolygon.js +0 -65
  85. package/dist/esm/plot/create/CreateLabel.d.ts +0 -2
  86. package/dist/esm/plot/create/CreateLabel.js +0 -55
  87. package/dist/esm/plot/create/CreateLineArrow.d.ts +0 -2
  88. package/dist/esm/plot/create/CreateLineArrow.js +0 -79
  89. package/dist/esm/plot/create/CreatePincerArrow.d.ts +0 -5
  90. package/dist/esm/plot/create/CreatePincerArrow.js +0 -73
  91. package/dist/esm/plot/create/CreatePoint.d.ts +0 -2
  92. package/dist/esm/plot/create/CreatePoint.js +0 -47
  93. package/dist/esm/plot/create/CreatePolygon.d.ts +0 -2
  94. package/dist/esm/plot/create/CreatePolygon.js +0 -80
  95. package/dist/esm/plot/create/CreatePolyline.d.ts +0 -2
  96. package/dist/esm/plot/create/CreatePolyline.js +0 -70
  97. package/dist/esm/plot/create/CreateRectangle.d.ts +0 -2
  98. package/dist/esm/plot/create/CreateRectangle.js +0 -60
  99. package/dist/esm/plot/create/CreateRegularPolygon.d.ts +0 -2
  100. package/dist/esm/plot/create/CreateRegularPolygon.js +0 -75
  101. package/dist/esm/plot/create/CreateRightAngleArrow.d.ts +0 -5
  102. package/dist/esm/plot/create/CreateRightAngleArrow.js +0 -73
  103. package/dist/esm/plot/create/CreateRoundRectangle.d.ts +0 -2
  104. package/dist/esm/plot/create/CreateRoundRectangle.js +0 -63
  105. package/dist/esm/plot/create/CreateSector.d.ts +0 -2
  106. package/dist/esm/plot/create/CreateSector.js +0 -65
  107. package/dist/esm/plot/create/CreateStraightArrow.d.ts +0 -5
  108. package/dist/esm/plot/create/CreateStraightArrow.js +0 -65
  109. package/dist/esm/plot/create/CreateSwallowtailArrow.d.ts +0 -5
  110. package/dist/esm/plot/create/CreateSwallowtailArrow.js +0 -67
  111. package/dist/esm/plot/create/index.d.ts +0 -25
  112. package/dist/esm/plot/create/index.js +0 -25
  113. package/dist/esm/plot/edit/EditAssemble.d.ts +0 -8
  114. package/dist/esm/plot/edit/EditAssemble.js +0 -120
  115. package/dist/esm/plot/edit/EditAttackArrow.d.ts +0 -8
  116. package/dist/esm/plot/edit/EditAttackArrow.js +0 -182
  117. package/dist/esm/plot/edit/EditBillboard.d.ts +0 -7
  118. package/dist/esm/plot/edit/EditBillboard.js +0 -70
  119. package/dist/esm/plot/edit/EditBow.d.ts +0 -8
  120. package/dist/esm/plot/edit/EditBow.js +0 -119
  121. package/dist/esm/plot/edit/EditCircle.d.ts +0 -8
  122. package/dist/esm/plot/edit/EditCircle.js +0 -133
  123. package/dist/esm/plot/edit/EditCurve.d.ts +0 -8
  124. package/dist/esm/plot/edit/EditCurve.js +0 -180
  125. package/dist/esm/plot/edit/EditElliptic.d.ts +0 -8
  126. package/dist/esm/plot/edit/EditElliptic.js +0 -144
  127. package/dist/esm/plot/edit/EditFlag.d.ts +0 -8
  128. package/dist/esm/plot/edit/EditFlag.js +0 -121
  129. package/dist/esm/plot/edit/EditFormation.d.ts +0 -8
  130. package/dist/esm/plot/edit/EditFormation.js +0 -120
  131. package/dist/esm/plot/edit/EditLabel.d.ts +0 -7
  132. package/dist/esm/plot/edit/EditLabel.js +0 -100
  133. package/dist/esm/plot/edit/EditLineArrow.d.ts +0 -8
  134. package/dist/esm/plot/edit/EditLineArrow.js +0 -180
  135. package/dist/esm/plot/edit/EditPincerArrow.d.ts +0 -8
  136. package/dist/esm/plot/edit/EditPincerArrow.js +0 -121
  137. package/dist/esm/plot/edit/EditPoint.d.ts +0 -7
  138. package/dist/esm/plot/edit/EditPoint.js +0 -70
  139. package/dist/esm/plot/edit/EditPolygon.d.ts +0 -8
  140. package/dist/esm/plot/edit/EditPolygon.js +0 -181
  141. package/dist/esm/plot/edit/EditPolyline.d.ts +0 -8
  142. package/dist/esm/plot/edit/EditPolyline.js +0 -179
  143. package/dist/esm/plot/edit/EditRectangle.d.ts +0 -8
  144. package/dist/esm/plot/edit/EditRectangle.js +0 -119
  145. package/dist/esm/plot/edit/EditRegularPolygon.d.ts +0 -8
  146. package/dist/esm/plot/edit/EditRegularPolygon.js +0 -170
  147. package/dist/esm/plot/edit/EditRightAngleArrow.d.ts +0 -8
  148. package/dist/esm/plot/edit/EditRightAngleArrow.js +0 -143
  149. package/dist/esm/plot/edit/EditRoundRectangle.d.ts +0 -8
  150. package/dist/esm/plot/edit/EditRoundRectangle.js +0 -119
  151. package/dist/esm/plot/edit/EditSector.d.ts +0 -8
  152. package/dist/esm/plot/edit/EditSector.js +0 -120
  153. package/dist/esm/plot/edit/EditStraightArrow.d.ts +0 -8
  154. package/dist/esm/plot/edit/EditStraightArrow.js +0 -120
  155. package/dist/esm/plot/edit/EditSwallowtailArrow.d.ts +0 -8
  156. package/dist/esm/plot/edit/EditSwallowtailArrow.js +0 -121
  157. package/dist/esm/plot/edit/index.d.ts +0 -23
  158. package/dist/esm/plot/edit/index.js +0 -23
  159. package/dist/esm/plot/utils/DomUtil.d.ts +0 -34
  160. package/dist/esm/plot/utils/DomUtil.js +0 -100
  161. package/dist/esm/plot/utils/PlotCommon.d.ts +0 -101
  162. package/dist/esm/plot/utils/ReminderTip.d.ts +0 -10
  163. package/dist/esm/plot/utils/ReminderTip.js +0 -67
  164. package/dist/esm/plot/utils/Tooltip.d.ts +0 -3
  165. package/dist/esm/plot/utils/Tooltip.js +0 -97
  166. /package/dist/esm/{plot/utils/Algorithm.d.ts → drawer/algorithm.d.ts} +0 -0
  167. /package/dist/esm/{plot/utils/Coordinate.d.ts → drawer/coordinate.d.ts} +0 -0
  168. /package/dist/esm/{plot/utils/Coordinate.js → drawer/coordinate.js} +0 -0
  169. /package/dist/esm/{plot/utils → drawer}/plotUtil.d.ts +0 -0
@@ -1,8 +0,0 @@
1
- declare const EditPolyline: (viewer: any, entity: any, handler: any, collection: {
2
- id: string;
3
- source: any;
4
- target: any;
5
- geoType: string;
6
- processEntities?: any[];
7
- }[]) => void;
8
- export default EditPolyline;
@@ -1,179 +0,0 @@
1
- /**
2
- * 编辑线方法
3
- */
4
- import * as Cesium from 'deeptwins-cesium';
5
- import { lockingMap, newSessionid } from "../utils/PlotCommon";
6
- var EditPolyline = function EditPolyline(viewer, entity, handler, collection) {
7
- var editItem = collection.find(function (ele) {
8
- return ele.id === entity.id;
9
- });
10
- var editEntity;
11
- var sourcePos = entity.polyline.positions.getValue();
12
- var updatePos = Cesium.clone(sourcePos);
13
- entity.polyline.positions = updatePos;
14
- entity.show = false;
15
- var dynamicPos = new Cesium.CallbackProperty(function () {
16
- return updatePos;
17
- }, false);
18
- if (editItem) {
19
- editEntity = editItem.target;
20
- editEntity.show = true;
21
- editEntity.polyline.position = dynamicPos;
22
- editItem.processEntities = initVertexEntities();
23
- } else {
24
- var newPolyline = Cesium.clone(entity.polyline);
25
- newPolyline.material = Cesium.Color.RED.withAlpha(0.4);
26
- newPolyline.width = 10;
27
- newPolyline.positions = dynamicPos;
28
- editEntity = viewer.entities.add({
29
- GeoType: 'EditPolyline',
30
- Editable: true,
31
- id: 'edit_' + entity.id,
32
- polyline: newPolyline
33
- });
34
- var vertexs = initVertexEntities();
35
- collection.push({
36
- id: entity.id,
37
- source: entity,
38
- target: editEntity,
39
- geoType: 'polyline',
40
- processEntities: vertexs
41
- });
42
- }
43
- var boolDown = false; //鼠标左键是否处于摁下状态
44
- var currentPickVertex = undefined; //当前选择的要编辑的节点
45
- var currentPickPolyline = undefined; //当前选择的要移动的折线
46
- handler.setInputAction(function (event) {
47
- boolDown = true;
48
- var pick = viewer.scene.pick(event.position);
49
- if (Cesium.defined(pick) && pick.id) {
50
- var pickEntity = pick.id;
51
- if (!pickEntity.GeoType || !pickEntity.Editable) {
52
- return;
53
- }
54
- if (pickEntity.GeoType === 'PolylineEditPoints') {
55
- lockingMap(viewer, false);
56
- currentPickVertex = pickEntity;
57
- } else if (pickEntity.GeoType === 'EditPolyline') {
58
- lockingMap(viewer, false);
59
- currentPickPolyline = pickEntity;
60
- }
61
- }
62
- }, Cesium.ScreenSpaceEventType.LEFT_DOWN);
63
- // 鼠标移动事件
64
- handler.setInputAction(function (event) {
65
- //console.log("鼠标移动事件监测:------折线编辑中------");
66
- if (boolDown && currentPickVertex) {
67
- var pos = viewer.scene.pickPosition(event.endPosition);
68
- updatePos[currentPickVertex.description.getValue()] = pos;
69
- }
70
- if (boolDown && currentPickPolyline) {
71
- var startPosition = viewer.scene.pickPosition(event.startPosition);
72
- var endPosition = viewer.scene.pickPosition(event.endPosition);
73
- var changed_x = endPosition.x - startPosition.x;
74
- var changed_y = endPosition.y - startPosition.y;
75
- var changed_z = endPosition.z - startPosition.z;
76
- updatePos.forEach(function (element) {
77
- element.x = element.x + changed_x;
78
- element.y = element.y + changed_y;
79
- element.z = element.z + changed_z;
80
- });
81
- }
82
- }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
83
- // 左键抬起事件
84
- handler.setInputAction(function () {
85
- entity.polyline.positions = editEntity.polyline.positions.getValue();
86
- boolDown = false;
87
- currentPickVertex = undefined;
88
- currentPickPolyline = undefined;
89
- lockingMap(viewer, true);
90
- }, Cesium.ScreenSpaceEventType.LEFT_UP);
91
- // 左键点击事件
92
- handler.setInputAction(function (event) {
93
- var pick = viewer.scene.pick(event.position);
94
- if (Cesium.defined(pick) && pick.id) {
95
- if (pick.id.GeoType === 'PolylineEditCenterPoints') {
96
- var index = pick.id.description.getValue() + 1;
97
- var pos = pick.id.position.getValue();
98
- updateProcessObj(true, index, pos);
99
- }
100
- }
101
- }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
102
- //右键点击事件
103
- handler.setInputAction(function (event) {
104
- var pick = viewer.scene.pick(event.position);
105
- if (Cesium.defined(pick) && pick.id) {
106
- if (pick.id.GeoType === 'PolylineEditPoints') {
107
- if (updatePos.length < 3) {
108
- alert('折线节点数不能少于2个');
109
- return;
110
- }
111
- var index = pick.id.description.getValue();
112
- updateProcessObj(false, index);
113
- }
114
- }
115
- }, Cesium.ScreenSpaceEventType.RIGHT_CLICK);
116
- function updateProcessObj(add, index, pos) {
117
- var item = collection.find(function (ele) {
118
- return ele.id === entity.id;
119
- });
120
- if (item && item.processEntities) {
121
- item.processEntities.forEach(function (entity) {
122
- viewer.entities.remove(entity);
123
- });
124
- add ? updatePos.splice(index, 0, pos) : updatePos.splice(index, 1);
125
- item.processEntities = initVertexEntities();
126
- }
127
- }
128
- function initVertexEntities() {
129
- var vertexPointsEntity = []; //中途创建的Point对象
130
- var centerPointsEntity = []; //中途创建的虚拟Point对象
131
- var _loop = function _loop(index) {
132
- var point = viewer.entities.add({
133
- id: 'edit_' + newSessionid(),
134
- position: new Cesium.CallbackProperty(function () {
135
- return updatePos[index];
136
- }, false),
137
- point: {
138
- pixelSize: 20,
139
- color: Cesium.Color.YELLOW.withAlpha(0.6),
140
- outlineWidth: 2,
141
- heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
142
- outlineColor: Cesium.Color.DARKRED.withAlpha(1)
143
- },
144
- show: true,
145
- description: index //记录节点索引
146
- });
147
- point.GeoType = 'PolylineEditPoints';
148
- point.Editable = true;
149
- vertexPointsEntity.push(point);
150
- if (updatePos[index + 1]) {
151
- var centerPoint = viewer.entities.add({
152
- id: 'edit_' + newSessionid(),
153
- position: new Cesium.CallbackProperty(function () {
154
- var endPos = updatePos[index + 1];
155
- return Cesium.Cartesian3.midpoint(updatePos[index], endPos, new Cesium.Cartesian3());
156
- }, false),
157
- point: {
158
- pixelSize: 15,
159
- color: Cesium.Color.GREEN.withAlpha(1),
160
- outlineWidth: 2,
161
- heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
162
- outlineColor: Cesium.Color.YELLOW.withAlpha(0.6)
163
- },
164
- show: true,
165
- description: index //记录节点索引
166
- });
167
- centerPoint.GeoType = 'PolylineEditCenterPoints';
168
- centerPoint.Editable = true;
169
- centerPointsEntity.push(centerPoint);
170
- }
171
- };
172
- for (var index = 0; index < updatePos.length; index++) {
173
- _loop(index);
174
- }
175
- var processEntities = vertexPointsEntity.concat(centerPointsEntity);
176
- return processEntities;
177
- }
178
- };
179
- export default EditPolyline;
@@ -1,8 +0,0 @@
1
- declare const EditRectangle: (viewer: any, entity: any, handler: any, collection: {
2
- id: string;
3
- source: any;
4
- target: any;
5
- geoType: string;
6
- processEntities?: any[];
7
- }[]) => void;
8
- export default EditRectangle;
@@ -1,119 +0,0 @@
1
- /**
2
- * 编辑矩形方法
3
- */
4
- import * as Cesium from 'deeptwins-cesium';
5
- import { getCatesian3FromPX } from "../utils/Coordinate";
6
- import { calculateRectanglePoints, lockingMap, newSessionid } from "../utils/PlotCommon";
7
- var EditRectangle = function EditRectangle(viewer, entity, handler, collection) {
8
- var editItem = collection.find(function (ele) {
9
- return ele.id === entity.id;
10
- });
11
- var editEntity;
12
- var sourcePos = entity.EditingPoint;
13
- var updatePos = Cesium.clone(sourcePos, true);
14
- entity.show = false;
15
- var dynamicRectangle = new Cesium.CallbackProperty(function () {
16
- return Cesium.Rectangle.fromCartesianArray(calculateRectanglePoints(updatePos));
17
- }, false);
18
- if (editItem) {
19
- editEntity = editItem.target;
20
- editEntity.show = true;
21
- editEntity.rectangle.coordinates = dynamicRectangle;
22
- editItem.processEntities = initVertexEntities();
23
- } else {
24
- var newRectangle = Cesium.clone(entity.rectangle);
25
- newRectangle.material = Cesium.Color.RED.withAlpha(0.4);
26
- newRectangle.coordinates = dynamicRectangle;
27
- editEntity = viewer.entities.add({
28
- GeoType: 'EditRectangle',
29
- Editable: true,
30
- id: 'edit_' + entity.id,
31
- rectangle: newRectangle
32
- });
33
- var vertexs = initVertexEntities();
34
- collection.push({
35
- id: entity.id,
36
- source: entity,
37
- target: editEntity,
38
- geoType: 'remix_rectangle',
39
- processEntities: vertexs
40
- });
41
- }
42
- var boolDown = false; //鼠标左键是否处于摁下状态
43
- var currentPickVertex = undefined; //当前选择的要编辑的节点
44
- var currentPickPolygon = undefined; //当前选择的要移动的矩形
45
- // 左键摁下事件
46
- handler.setInputAction(function (event) {
47
- boolDown = true;
48
- var pick = viewer.scene.pick(event.position);
49
- if (Cesium.defined(pick) && pick.id) {
50
- var pickEntity = pick.id;
51
- if (!pickEntity.GeoType || !pickEntity.Editable) {
52
- return;
53
- }
54
- if (pickEntity.GeoType === 'RectangleEditPoint') {
55
- lockingMap(viewer, false);
56
- currentPickVertex = pickEntity;
57
- } else if (pickEntity.GeoType === 'EditRectangle') {
58
- lockingMap(viewer, false);
59
- currentPickPolygon = pickEntity;
60
- }
61
- }
62
- }, Cesium.ScreenSpaceEventType.LEFT_DOWN);
63
- // 鼠标移动事件
64
- handler.setInputAction(function (event) {
65
- //console.log('鼠标移动事件监测:------矩形编辑中------');
66
- if (boolDown && currentPickVertex) {
67
- var pos = getCatesian3FromPX(viewer, event.endPosition);
68
- if (pos) {
69
- updatePos[currentPickVertex.description] = pos;
70
- }
71
- }
72
- if (boolDown && currentPickPolygon) {
73
- var startPosition = viewer.scene.pickPosition(event.startPosition);
74
- var endPosition = viewer.scene.pickPosition(event.endPosition);
75
- var changed_x = endPosition.x - startPosition.x;
76
- var changed_y = endPosition.y - startPosition.y;
77
- var changed_z = endPosition.z - startPosition.z;
78
- updatePos[0] = new Cesium.Cartesian3(updatePos[0].x + changed_x, updatePos[0].y + changed_y, updatePos[0].z + changed_z);
79
- updatePos[1] = new Cesium.Cartesian3(updatePos[1].x + changed_x, updatePos[1].y + changed_y, updatePos[1].z + changed_z);
80
- }
81
- }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
82
- // 左键抬起事件
83
- handler.setInputAction(function () {
84
- entity.rectangle.coordinates = editEntity.rectangle.coordinates;
85
- boolDown = false;
86
- currentPickVertex = undefined;
87
- currentPickPolygon = undefined;
88
- lockingMap(viewer, true);
89
- entity.EditingPoint = updatePos;
90
- }, Cesium.ScreenSpaceEventType.LEFT_UP);
91
- function initVertexEntities() {
92
- var processEntities = [];
93
- var _loop = function _loop(index) {
94
- var verEntity = viewer.entities.add({
95
- id: 'edit_' + newSessionid(),
96
- position: new Cesium.CallbackProperty(function () {
97
- return updatePos[index];
98
- }, false),
99
- point: {
100
- pixelSize: 20,
101
- color: Cesium.Color.YELLOW.withAlpha(0.6),
102
- outlineWidth: 2,
103
- heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
104
- outlineColor: Cesium.Color.DARKRED.withAlpha(1)
105
- },
106
- show: true,
107
- description: index //记录节点索引
108
- });
109
- verEntity.GeoType = 'RectangleEditPoint';
110
- verEntity.Editable = true;
111
- processEntities.push(verEntity);
112
- };
113
- for (var index = 0; index < updatePos.length; index++) {
114
- _loop(index);
115
- }
116
- return processEntities;
117
- }
118
- };
119
- export default EditRectangle;
@@ -1,8 +0,0 @@
1
- declare const EditRegularPolygon: (viewer: any, entity: any, handler: any, collection: {
2
- id: string;
3
- source: any;
4
- target: any;
5
- geoType: string;
6
- processEntities?: any[];
7
- }[]) => void;
8
- export default EditRegularPolygon;
@@ -1,170 +0,0 @@
1
- /**
2
- * 编辑正多边形方法
3
- */
4
- import * as Cesium from 'deeptwins-cesium';
5
- import { getCatesian3FromPX } from "../utils/Coordinate";
6
- import { getRegularPoints, lockingMap, newSessionid } from "../utils/PlotCommon";
7
- var EditRegularPolygon = function EditRegularPolygon(viewer, entity, handler, collection) {
8
- var editItem = collection.find(function (ele) {
9
- return ele.id === entity.id;
10
- });
11
- var editEntity;
12
- var sourcePos = entity.EditingPoint;
13
- var updatePos = Cesium.clone(sourcePos, true);
14
- var updatePositions = getRegularPoints(updatePos.center, updatePos.end, updatePos.num);
15
- entity.show = false;
16
- var dynamicHierarchy = new Cesium.CallbackProperty(function () {
17
- return new Cesium.PolygonHierarchy(updatePositions);
18
- }, false);
19
- if (editItem) {
20
- editEntity = editItem.target;
21
- editEntity.show = true;
22
- editEntity.polygon.hierarchy = dynamicHierarchy;
23
- editItem.processEntities = initVertexEntities();
24
- } else {
25
- var newPolygon = Cesium.clone(entity.polygon);
26
- newPolygon.material = Cesium.Color.RED.withAlpha(0.4);
27
- newPolygon.hierarchy = dynamicHierarchy;
28
- editEntity = viewer.entities.add({
29
- GeoType: 'EditRegularPolygon',
30
- Editable: true,
31
- id: 'edit_' + entity.id,
32
- polygon: newPolygon
33
- });
34
- var vertexs = initVertexEntities();
35
- collection.push({
36
- id: entity.id,
37
- source: entity,
38
- target: editEntity,
39
- geoType: 'remix_regularpolygon',
40
- processEntities: vertexs
41
- });
42
- }
43
- var boolDown = false; //鼠标左键是否处于摁下状态
44
- var currentPickVertex = undefined; //当前选择的要编辑的节点
45
- var currentPickPolygon = undefined; //当前选择的要移动的多边形
46
- // 左键摁下事件
47
- handler.setInputAction(function (event) {
48
- boolDown = true;
49
- var pick = viewer.scene.pick(event.position);
50
- if (Cesium.defined(pick) && pick.id) {
51
- var pickEntity = pick.id;
52
- if (!pickEntity.GeoType || !pickEntity.Editable) {
53
- return;
54
- }
55
- if (pickEntity.GeoType === 'RegularPolygonEditEnd') {
56
- lockingMap(viewer, false);
57
- currentPickVertex = pickEntity;
58
- } else if (pickEntity.GeoType === 'EditRegularPolygon' || pickEntity.GeoType === 'RegularPolygonEditCenter') {
59
- lockingMap(viewer, false);
60
- currentPickPolygon = pickEntity;
61
- }
62
- }
63
- }, Cesium.ScreenSpaceEventType.LEFT_DOWN);
64
- // 鼠标移动事件
65
- handler.setInputAction(function (event) {
66
- //console.log("鼠标移动事件监测:------正多边形编辑中------");
67
- if (boolDown && currentPickVertex) {
68
- var pos = getCatesian3FromPX(viewer, event.endPosition);
69
- updatePos.end = pos;
70
- updatePositions = getRegularPoints(updatePos.center, pos, updatePos.num);
71
- }
72
- if (boolDown && currentPickPolygon) {
73
- var startPosition = viewer.scene.pickPosition(event.startPosition);
74
- var endPosition = viewer.scene.pickPosition(event.endPosition);
75
- var changed_x = endPosition.x - startPosition.x;
76
- var changed_y = endPosition.y - startPosition.y;
77
- var changed_z = endPosition.z - startPosition.z;
78
- updatePos.center = new Cesium.Cartesian3(updatePos.center.x + changed_x, updatePos.center.y + changed_y, updatePos.center.z + changed_z);
79
- updatePos.end = new Cesium.Cartesian3(updatePos.end.x + changed_x, updatePos.end.y + changed_y, updatePos.end.z + changed_z);
80
- updatePositions.forEach(function (element) {
81
- element.x = element.x + changed_x;
82
- element.y = element.y + changed_y;
83
- element.z = element.z + changed_z;
84
- });
85
- }
86
- }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
87
- // 左键抬起事件
88
- handler.setInputAction(function () {
89
- entity.polygon.hierarchy = editEntity.polygon.hierarchy;
90
- boolDown = false;
91
- currentPickVertex = undefined;
92
- currentPickPolygon = undefined;
93
- lockingMap(viewer, true);
94
- entity.EditingPoint = updatePos;
95
- }, Cesium.ScreenSpaceEventType.LEFT_UP);
96
- // 左键点击事件
97
- handler.setInputAction(function (event) {
98
- var pick = viewer.scene.pick(event.position);
99
- if (Cesium.defined(pick) && pick.id) {
100
- if (pick.id.GeoType === 'RegularPolygonEditCenter') {
101
- var index = pick.id.description.getValue() + 1;
102
- var pos = pick.id.position.getValue();
103
- updateProcessObj(true, index, pos);
104
- }
105
- }
106
- }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
107
- //右键点击事件
108
- handler.setInputAction(function (event) {
109
- var pick = viewer.scene.pick(event.position);
110
- if (Cesium.defined(pick) && pick.id) {
111
- if (pick.id.GeoType === 'RegularPolygonEditCenter') {
112
- if (updatePositions.length < 4) {
113
- alert('多边形节点数不能少于3个');
114
- return;
115
- }
116
- var index = pick.id.description.getValue();
117
- updateProcessObj(false, index);
118
- }
119
- }
120
- }, Cesium.ScreenSpaceEventType.RIGHT_CLICK);
121
- function updateProcessObj(add, index, pos) {
122
- var item = collection.find(function (ele) {
123
- return ele.id === entity.id;
124
- });
125
- if (item && item.processEntities) {
126
- item.processEntities.forEach(function (entity) {
127
- viewer.entities.remove(entity);
128
- });
129
- add ? updatePositions.splice(index, 0, pos) : updatePositions.splice(index, 1);
130
- item.processEntities = initVertexEntities();
131
- }
132
- }
133
- function initVertexEntities() {
134
- var centerEntity = viewer.entities.add({
135
- id: 'edit_' + newSessionid(),
136
- position: new Cesium.CallbackProperty(function () {
137
- return updatePos.center;
138
- }, false),
139
- point: {
140
- pixelSize: 20,
141
- color: Cesium.Color.YELLOW.withAlpha(0.6),
142
- outlineWidth: 2,
143
- heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
144
- outlineColor: Cesium.Color.DARKRED.withAlpha(1)
145
- },
146
- show: true
147
- });
148
- centerEntity.GeoType = 'RegularPolygonEditCenter';
149
- centerEntity.Editable = true;
150
- var endEntity = viewer.entities.add({
151
- id: 'edit_' + newSessionid(),
152
- position: new Cesium.CallbackProperty(function () {
153
- return updatePos.end;
154
- }, false),
155
- point: {
156
- pixelSize: 20,
157
- color: Cesium.Color.GREEN.withAlpha(1),
158
- outlineWidth: 2,
159
- heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
160
- outlineColor: Cesium.Color.YELLOW.withAlpha(0.6)
161
- },
162
- show: true
163
- });
164
- endEntity.GeoType = 'RegularPolygonEditEnd';
165
- endEntity.Editable = true;
166
- var processEntities = [centerEntity, endEntity];
167
- return processEntities;
168
- }
169
- };
170
- export default EditRegularPolygon;
@@ -1,8 +0,0 @@
1
- declare const EditRightAngleArrow: (viewer: any, entity: any, handler: any, collection: {
2
- id: string;
3
- source: any;
4
- target: any;
5
- geoType: string;
6
- processEntities?: any[];
7
- }[]) => void;
8
- export default EditRightAngleArrow;
@@ -1,143 +0,0 @@
1
- /**
2
- * 编辑直角箭头方法
3
- */
4
- import * as Cesium from 'deeptwins-cesium';
5
- import { getRightAngleArrowPoints, lockingMap, newSessionid } from "../utils/PlotCommon";
6
- var EditRightAngleArrow = function EditRightAngleArrow(viewer, entity, handler, collection) {
7
- var editItem = collection.find(function (ele) {
8
- return ele.id === entity.id;
9
- });
10
- var editEntity;
11
- var sourcePos = entity.EditingPoint;
12
- var updatePos = Cesium.clone(sourcePos, true);
13
- entity.show = false;
14
- var dynamicHierarchy = new Cesium.CallbackProperty(function () {
15
- var updatePositions = getRightAngleArrowPoints(updatePos);
16
- return new Cesium.PolygonHierarchy(updatePositions);
17
- }, false);
18
- if (editItem) {
19
- editEntity = editItem.target;
20
- editEntity.show = true;
21
- editEntity.polygon.hierarchy = dynamicHierarchy;
22
- editItem.processEntities = initVertexEntities();
23
- } else {
24
- var newPolygon = Cesium.clone(entity.polygon);
25
- newPolygon.material = Cesium.Color.RED.withAlpha(0.4);
26
- newPolygon.hierarchy = dynamicHierarchy;
27
- editEntity = viewer.entities.add({
28
- GeoType: 'EditRightAngleArrow',
29
- Editable: true,
30
- id: 'edit_' + entity.id,
31
- polygon: newPolygon
32
- });
33
- var vertexs = initVertexEntities();
34
- collection.push({
35
- id: entity.id,
36
- source: entity,
37
- target: editEntity,
38
- geoType: 'remix_rightanglearrow',
39
- processEntities: vertexs
40
- });
41
- }
42
- var boolDown = false; //鼠标左键是否处于摁下状态
43
- var currentPickVertex = undefined; //当前选择的要编辑的节点
44
- var currentPickPolygon = undefined; //当前选择的要移动的多边形
45
- // 左键摁下事件
46
- handler.setInputAction(function (event) {
47
- boolDown = true;
48
- var pick = viewer.scene.pick(event.position);
49
- if (Cesium.defined(pick) && pick.id) {
50
- var pickEntity = pick.id;
51
- if (!pickEntity.GeoType || !pickEntity.Editable) {
52
- return;
53
- }
54
- if (pickEntity.GeoType === 'RightAngleArrowEditPoints') {
55
- lockingMap(viewer, false);
56
- currentPickVertex = pickEntity;
57
- } else if (pickEntity.GeoType === 'EditRightAngleArrow' || pickEntity.GeoType === 'RightAngleArrowEditCenterPoints') {
58
- lockingMap(viewer, false);
59
- currentPickPolygon = pickEntity;
60
- }
61
- }
62
- }, Cesium.ScreenSpaceEventType.LEFT_DOWN);
63
- // 鼠标移动事件
64
- handler.setInputAction(function (event) {
65
- //console.log('鼠标移动事件监测:------攻击箭头编辑中------');
66
- if (boolDown && currentPickVertex) {
67
- var pos = viewer.scene.pickPosition(event.endPosition);
68
- updatePos[currentPickVertex.description.getValue()] = pos;
69
- }
70
- if (boolDown && currentPickPolygon) {
71
- var startPosition = viewer.scene.pickPosition(event.startPosition);
72
- var endPosition = viewer.scene.pickPosition(event.endPosition);
73
- var changed_x = endPosition.x - startPosition.x;
74
- var changed_y = endPosition.y - startPosition.y;
75
- var changed_z = endPosition.z - startPosition.z;
76
- updatePos.forEach(function (element) {
77
- element.x = element.x + changed_x;
78
- element.y = element.y + changed_y;
79
- element.z = element.z + changed_z;
80
- });
81
- }
82
- }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
83
- // 左键抬起事件
84
- handler.setInputAction(function () {
85
- entity.polygon.hierarchy = editEntity.polygon.hierarchy;
86
- boolDown = false;
87
- currentPickVertex = undefined;
88
- currentPickPolygon = undefined;
89
- lockingMap(viewer, true);
90
- entity.EditingPoint = updatePos;
91
- }, Cesium.ScreenSpaceEventType.LEFT_UP);
92
- function initVertexEntities() {
93
- var vertexPointsEntity = []; //中途创建的Point对象
94
- var centerPointsEntity = []; //中途创建的中心点对象
95
- var _loop = function _loop(index) {
96
- var point = viewer.entities.add({
97
- id: 'edit_' + newSessionid(),
98
- position: new Cesium.CallbackProperty(function () {
99
- return updatePos[index];
100
- }, false),
101
- point: {
102
- pixelSize: 20,
103
- color: Cesium.Color.YELLOW.withAlpha(0.6),
104
- outlineWidth: 2,
105
- heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
106
- outlineColor: Cesium.Color.DARKRED.withAlpha(1)
107
- },
108
- show: true,
109
- description: index //记录节点索引
110
- });
111
- point.GeoType = 'RightAngleArrowEditPoints';
112
- point.Editable = true;
113
- vertexPointsEntity.push(point);
114
- if (index > 0) {
115
- var centerPoint = viewer.entities.add({
116
- id: 'edit_' + newSessionid(),
117
- position: new Cesium.CallbackProperty(function () {
118
- var startPos = updatePos[index - 1];
119
- return Cesium.Cartesian3.midpoint(startPos, updatePos[index], new Cesium.Cartesian3());
120
- }, false),
121
- point: {
122
- pixelSize: 15,
123
- color: Cesium.Color.GREEN.withAlpha(1),
124
- outlineWidth: 2,
125
- heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
126
- outlineColor: Cesium.Color.YELLOW.withAlpha(0.6)
127
- },
128
- show: true,
129
- description: index //记录节点索引
130
- });
131
- centerPoint.GeoType = 'RightAngleArrowEditCenterPoints';
132
- centerPoint.Editable = true;
133
- centerPointsEntity.push(centerPoint);
134
- }
135
- };
136
- for (var index = 0; index < updatePos.length; index++) {
137
- _loop(index);
138
- }
139
- var processEntities = vertexPointsEntity.concat(centerPointsEntity);
140
- return processEntities;
141
- }
142
- };
143
- export default EditRightAngleArrow;
@@ -1,8 +0,0 @@
1
- declare const EditRoundRectangle: (viewer: any, entity: any, handler: any, collection: {
2
- id: string;
3
- source: any;
4
- target: any;
5
- geoType: string;
6
- processEntities?: any[];
7
- }[]) => void;
8
- export default EditRoundRectangle;