@enervance/insight-cim-model 0.0.161 → 0.0.162

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 (119) hide show
  1. package/dist/constants/cim-class-names.d.ts +10 -0
  2. package/dist/constants/cim-class-names.js +11 -1
  3. package/dist/constants/cim-class-names.js.map +1 -1
  4. package/dist/converter/integral7/converter.integral7.d.ts +3 -1
  5. package/dist/converter/integral7/converter.integral7.js +219 -243
  6. package/dist/converter/integral7/converter.integral7.js.map +1 -1
  7. package/dist/converter/integral7/dl-convert/data-manager.d.ts +1 -10
  8. package/dist/converter/integral7/dl-convert/data-manager.js +0 -34
  9. package/dist/converter/integral7/dl-convert/data-manager.js.map +1 -1
  10. package/dist/converter/integral7/dl-convert/db/data-types.d.ts +0 -9
  11. package/dist/converter/integral7/dl-convert/db/data-types.js +0 -11
  12. package/dist/converter/integral7/dl-convert/db/data-types.js.map +1 -1
  13. package/dist/converter/integral7/dl-convert/dl-converter-i7.d.ts +153 -99
  14. package/dist/converter/integral7/dl-convert/dl-converter-i7.js +3401 -1315
  15. package/dist/converter/integral7/dl-convert/dl-converter-i7.js.map +1 -1
  16. package/dist/converter/integral7/dl-convert/executor.d.ts +3 -1
  17. package/dist/converter/integral7/dl-convert/executor.js +4 -3
  18. package/dist/converter/integral7/dl-convert/executor.js.map +1 -1
  19. package/dist/converter/integral7/model/dl-utils/util-functions.d.ts +7 -35
  20. package/dist/converter/integral7/model/dl-utils/util-functions.js +7 -659
  21. package/dist/converter/integral7/model/dl-utils/util-functions.js.map +1 -1
  22. package/dist/converter/integral7/{util-asset.model.d.ts → util-cim.model.d.ts} +5 -1
  23. package/dist/converter/integral7/{util-asset.model.js → util-cim.model.js} +10 -4
  24. package/dist/converter/integral7/util-cim.model.js.map +1 -0
  25. package/dist/converter/integral7/utils-cgmes-export.js +2 -0
  26. package/dist/converter/integral7/utils-cgmes-export.js.map +1 -1
  27. package/dist/converter/integral7/utils-trafo3w.d.ts +2 -2
  28. package/dist/converter/integral7/utils-trafo3w.js +21 -4
  29. package/dist/converter/integral7/utils-trafo3w.js.map +1 -1
  30. package/dist/converter/integral7/utils.d.ts +10 -22
  31. package/dist/converter/integral7/utils.js +187 -327
  32. package/dist/converter/integral7/utils.js.map +1 -1
  33. package/dist/etl/etl-dppower/etl-dppower.d.ts +15 -0
  34. package/dist/etl/etl-dppower/etl-dppower.js +204 -0
  35. package/dist/etl/etl-dppower/etl-dppower.js.map +1 -0
  36. package/dist/index.d.ts +2 -0
  37. package/dist/index.js +3 -0
  38. package/dist/index.js.map +1 -1
  39. package/dist/interfaces/model/wires/IRegulatingCondEq.d.ts +3 -0
  40. package/dist/model/assetinfo/CableInfo.d.ts +7 -0
  41. package/dist/model/assetinfo/CableInfo.js +49 -0
  42. package/dist/model/assetinfo/CableInfo.js.map +1 -1
  43. package/dist/model/assetinfo/OverheadWireInfo.d.ts +7 -0
  44. package/dist/model/assetinfo/OverheadWireInfo.js +49 -0
  45. package/dist/model/assetinfo/OverheadWireInfo.js.map +1 -1
  46. package/dist/model/assets/Facility.js +17 -3
  47. package/dist/model/assets/Facility.js.map +1 -1
  48. package/dist/model/assets/LifecycleDate.d.ts +1 -0
  49. package/dist/model/assets/LifecycleDate.js +3 -0
  50. package/dist/model/assets/LifecycleDate.js.map +1 -1
  51. package/dist/model/common/Location.js +1 -1
  52. package/dist/model/common/Location.js.map +1 -1
  53. package/dist/model/core/ACDCTerminal.js +2 -1
  54. package/dist/model/core/ACDCTerminal.js.map +1 -1
  55. package/dist/model/core/Equipment.js +6 -1
  56. package/dist/model/core/Equipment.js.map +1 -1
  57. package/dist/model/core/Substation.js +7 -7
  58. package/dist/model/core/Substation.js.map +1 -1
  59. package/dist/model/dc/DCLine.js +17 -17
  60. package/dist/model/dc/DCLineSegment.js +25 -25
  61. package/dist/model/diagram/DiagramObject.js +2 -2
  62. package/dist/model/diagram/DiagramObject.js.map +1 -1
  63. package/dist/model/equivalents/EquivalentInjection.d.ts +10 -0
  64. package/dist/model/equivalents/EquivalentInjection.js +111 -0
  65. package/dist/model/equivalents/EquivalentInjection.js.map +1 -1
  66. package/dist/model/extensions/amprion/core/AMPRIONBay.js.map +1 -1
  67. package/dist/model/extensions/enervance/assets/EVWireObject.js +7 -1
  68. package/dist/model/extensions/enervance/assets/EVWireObject.js.map +1 -1
  69. package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.d.ts +0 -1
  70. package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.js +0 -3
  71. package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.js.map +1 -1
  72. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js +8 -1
  73. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js.map +1 -1
  74. package/dist/model/loadmodel/ConformLoadGroup.js +22 -22
  75. package/dist/model/loadmodel/LoadArea.js +21 -21
  76. package/dist/model/loadmodel/SubLoadArea.js +22 -22
  77. package/dist/model/wires/ACLineSegment.d.ts +3 -0
  78. package/dist/model/wires/ACLineSegment.js +7 -1
  79. package/dist/model/wires/ACLineSegment.js.map +1 -1
  80. package/dist/model/wires/AsynchronousMachine.js +0 -1
  81. package/dist/model/wires/AsynchronousMachine.js.map +1 -1
  82. package/dist/model/wires/ExternalNetworkInjection.js.map +1 -1
  83. package/dist/model/wires/PowerTransformer.js +2 -0
  84. package/dist/model/wires/PowerTransformer.js.map +1 -1
  85. package/dist/model/wires/PowerTransformerEnd.js +1 -0
  86. package/dist/model/wires/PowerTransformerEnd.js.map +1 -1
  87. package/dist/model/wires/RatioTapChanger.js +1 -1
  88. package/dist/model-container/enum/EVSourceSystemKind.d.ts +1 -0
  89. package/dist/model-container/enum/EVSourceSystemKind.js +1 -0
  90. package/dist/model-container/enum/EVSourceSystemKind.js.map +1 -1
  91. package/dist/model-container/model/ModelContainer.d.ts +5 -0
  92. package/dist/model-container/model/ModelContainer.js +9 -0
  93. package/dist/model-container/model/ModelContainer.js.map +1 -1
  94. package/dist/util/util-create.d.ts +1 -1
  95. package/dist/util/util-create.js +4 -2
  96. package/dist/util/util-create.js.map +1 -1
  97. package/dist/util/utils.d.ts +1 -1
  98. package/dist/util/utils.js +4 -2
  99. package/dist/util/utils.js.map +1 -1
  100. package/dist/utils2/cim.model.utils.js +6 -0
  101. package/dist/utils2/cim.model.utils.js.map +1 -1
  102. package/dist/utils2/common.utils.d.ts +1 -0
  103. package/dist/utils2/common.utils.js +6 -2
  104. package/dist/utils2/common.utils.js.map +1 -1
  105. package/dist/utils2/fuseki.utils.js +7 -1
  106. package/dist/utils2/fuseki.utils.js.map +1 -1
  107. package/dist/utils2/import.utils.d.ts +2 -1
  108. package/dist/utils2/import.utils.js +9 -3
  109. package/dist/utils2/import.utils.js.map +1 -1
  110. package/dist/utils2/parser.utils.js +7 -7
  111. package/dist/utils2/parser.utils.js.map +1 -1
  112. package/package.json +5 -2
  113. package/dist/converter/integral7/dl-convert/dl-converter-i7-2.d.ts +0 -157
  114. package/dist/converter/integral7/dl-convert/dl-converter-i7-2.js +0 -3521
  115. package/dist/converter/integral7/dl-convert/dl-converter-i7-2.js.map +0 -1
  116. package/dist/converter/integral7/dl-convert/dl-converter-i7.types.d.ts +0 -3
  117. package/dist/converter/integral7/dl-convert/dl-converter-i7.types.js +0 -3
  118. package/dist/converter/integral7/dl-convert/dl-converter-i7.types.js.map +0 -1
  119. package/dist/converter/integral7/util-asset.model.js.map +0 -1
@@ -5,25 +5,11 @@ exports.DLUtilFunctions = void 0;
5
5
  * Hilfsklasse zum Abspeichern der Dl-Profil-relevanten Attribute
6
6
  * um bspw. die Positionen der Schaltfelder leicher ermitteln zu können
7
7
  */
8
- const constants_1 = require("./constants.js");
9
- const utils_schema_1 = require("../../utils-schema.js");
10
- const integral_sql_1 = require("../../sql/integral.sql.js");
11
8
  const DiagramObject_1 = require("../../../../model/diagram/DiagramObject.js");
12
- const QueryObjectSsabNsg_1 = require("./QueryObjectSsabNsg.js");
13
9
  const DiagramObjectPoint_1 = require("../../../../model/diagram/DiagramObjectPoint.js");
14
- const parser_utils_1 = require("../../../../utils2/parser.utils.js");
15
10
  const common_utils_1 = require("../../../../utils2/common.utils.js");
11
+ const cim_class_names_1 = require("../../../../constants/cim-class-names.js");
16
12
  class DLUtilFunctions {
17
- static getCenterOfPoints(diagramObjectPoints) {
18
- const centerCoordinates = [0, 0];
19
- for (const diagramObjectPoint of diagramObjectPoints) {
20
- centerCoordinates[0] += diagramObjectPoint.xPosition;
21
- centerCoordinates[1] += diagramObjectPoint.yPosition;
22
- }
23
- centerCoordinates[0] /= diagramObjectPoints.length;
24
- centerCoordinates[1] /= diagramObjectPoints.length;
25
- return centerCoordinates;
26
- }
27
13
  static distanceVector2Line(lStart, lEnd, v) {
28
14
  const lineVector = [lEnd[0] - lStart[0], lEnd[1] - lStart[1]];
29
15
  const a = [lEnd[0] - lStart[0], lEnd[1] - lStart[1]];
@@ -33,9 +19,6 @@ class DLUtilFunctions {
33
19
  const dist = crossProduct / busbarSectionVectorLength;
34
20
  return dist !== null && dist !== void 0 ? dist : 0;
35
21
  }
36
- static lengthOfVector(v) {
37
- return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2));
38
- }
39
22
  static dot(v1, v2) {
40
23
  return v1[0] * v2[0] + v1[1] * v2[1];
41
24
  }
@@ -46,13 +29,6 @@ class DLUtilFunctions {
46
29
  }
47
30
  return resV;
48
31
  }
49
- static divideScalar(v, scalar) {
50
- const resV = [];
51
- for (let a = 0; a < v.length; ++a) {
52
- resV.push(v[a] / scalar);
53
- }
54
- return resV;
55
- }
56
32
  static add(v, ...v_args) {
57
33
  const v_return = [...v];
58
34
  for (let a = 0; a < v_args.length; ++a) {
@@ -76,21 +52,6 @@ class DLUtilFunctions {
76
52
  const temp3 = DLUtilFunctions.add(lStart, temp2);
77
53
  return temp3;
78
54
  }
79
- static isNegativeOrZero(v) {
80
- const epsilon = 0.0000001;
81
- return v < 0 || (v > -epsilon && v < epsilon);
82
- }
83
- static vec(lStart, lEnd, v) {
84
- const unitVec = [lEnd[0] - lStart[0], lEnd[1] - lStart[1]];
85
- const unitVecLength = Math.sqrt(Math.pow(unitVec[0], 2) + Math.pow(unitVec[1], 2));
86
- unitVec[0] = unitVec[0] / unitVecLength;
87
- unitVec[1] = unitVec[1] / unitVecLength;
88
- const t = DLUtilFunctions.dot(v, unitVec) - DLUtilFunctions.dot(lStart, unitVec);
89
- const tempV = DLUtilFunctions.add(lStart, DLUtilFunctions.subtract(DLUtilFunctions.mutliplyScalar(unitVec, t), v));
90
- const tempVLength = Math.sqrt(Math.pow(tempV[0], 2) + Math.pow(tempV[1], 2));
91
- const resultVec = DLUtilFunctions.divideScalar(tempV, tempVLength);
92
- return tempV;
93
- }
94
55
  /**
95
56
  * Rotiere einen DiagramObjectPoint um den gegebenen Winkel (clockwise Rotation)
96
57
  * Der Winkel wird dabei in Grad angegeben und es wird am Ende auf eine bestimmte Anzahl an Nachkommastellen gerundet
@@ -131,16 +92,6 @@ class DLUtilFunctions {
131
92
  point[0] = Math.round(resultCoords[0] * amountOfDecimals) / amountOfDecimals;
132
93
  point[1] = Math.round(resultCoords[1] * amountOfDecimals) / amountOfDecimals;
133
94
  }
134
- static shiftAddBasedOnNsgSo(cimModel, integral7, variantenNr, nsgSoID, uuidPointsMap) {
135
- const nsgSo = integral7.integralNSGStandorte.get(nsgSoID);
136
- uuidPointsMap.forEach((entryDiagramObject, key) => {
137
- entryDiagramObject.diagramObjectPoints.forEach(entryDiagramObjectPoint => {
138
- entryDiagramObjectPoint.xPosition += nsgSo.xrel;
139
- entryDiagramObjectPoint.yPosition += nsgSo.yrel;
140
- });
141
- });
142
- this.addi7ObjectToCIMModel(uuidPointsMap, cimModel, integral7, variantenNr);
143
- }
144
95
  /**
145
96
  * Basierend auf der Ausrichtung der Schaltanlage wird die Rotation in Grad berechnet.
146
97
  * Ausrichtung => Grad: 0 => 90°, 1 => 180°, 2, => 270°, 3 => 0°
@@ -162,408 +113,6 @@ class DLUtilFunctions {
162
113
  // Um negative Rotationswerte zu vermeiden wird 360 dazu addiert
163
114
  return (360 + nsgSaDegrees + nsgSfDegrees) % 360;
164
115
  }
165
- // static translate(vector: number[], ...diagramObjectPoints: DiagramObjectPoint[]) {
166
- // for(const diagramObjectPoint of diagramObjectPoints ) {
167
- // }
168
- // }
169
- // static rotate(angleInDegrees: number, ...diagramObjectPoints: DiagramObjectPoint[]) {
170
- // for(const diagramObjectPoint of diagramObjectPoints ) {
171
- // }
172
- // }
173
- static rotateAndShiftBasedOnNsgSAA(nsgSo, nsgSa, nsgSaab, diagramObjects, useLeftOffset = false) {
174
- let saabShiftOffset = 0;
175
- for (const tempNsgSaab of nsgSa.nsgSaabschnitt) {
176
- saabShiftOffset = saabShiftOffset < (tempNsgSaab.nslots + tempNsgSaab.laenge) ? (tempNsgSaab.nslots + tempNsgSaab.laenge) : saabShiftOffset;
177
- }
178
- for (const diagramObject of diagramObjects) {
179
- for (const diagramObjectPoint of diagramObject.diagramObjectPoints) {
180
- diagramObjectPoint.xPosition += useLeftOffset ? nsgSaab.nslots * constants_1.NsgConstants.HORIZONTAL_OFFSET : 0;
181
- DLUtilFunctions.rotateDiagramObjectPoint(diagramObjectPoint, -90 * nsgSa.ausrichtung);
182
- diagramObjectPoint.xPosition += nsgSo.xrel + nsgSa.xrel + (nsgSa.ausrichtung === 2 ? saabShiftOffset * constants_1.NsgConstants.HORIZONTAL_OFFSET : 0);
183
- diagramObjectPoint.yPosition += nsgSo.yrel + nsgSa.yrel + (nsgSa.ausrichtung === 3 ? saabShiftOffset * constants_1.NsgConstants.HORIZONTAL_OFFSET : 0);
184
- }
185
- }
186
- }
187
- static rotateShiftAddBasedOnNsgSAA(cimModel, integral7, variantenNr, nsgSaaID, uuidPointsMap, useLeftOffset = false) {
188
- const nsgSaa = integral7.integralNSGSAAbschnitt.get(nsgSaaID);
189
- const nsgSa = integral7.integralNSGSchaltanlage.get(nsgSaa.nsgsaid);
190
- const nsgSo = integral7.integralNSGStandorte.get(nsgSa.nsgsoid);
191
- let saaShiftOffset = 0;
192
- for (const tempNsgSaa of nsgSa.saabNsg) {
193
- saaShiftOffset = saaShiftOffset < (tempNsgSaa.nslots + tempNsgSaa.laenge) ? (tempNsgSaa.nslots + tempNsgSaa.laenge) : saaShiftOffset;
194
- }
195
- uuidPointsMap.forEach((entryDiagramObject, key) => {
196
- entryDiagramObject.diagramObjectPoints.forEach(entryDiagramObjectPoint => {
197
- entryDiagramObjectPoint.xPosition += useLeftOffset ? nsgSaa.nslots * constants_1.NsgConstants.HORIZONTAL_OFFSET : 0;
198
- DLUtilFunctions.rotateDiagramObjectPoint(entryDiagramObjectPoint, -90 * nsgSa.ausrichtung);
199
- entryDiagramObjectPoint.xPosition += nsgSo.xrel + nsgSa.xrel + (nsgSa.ausrichtung === 2 ? saaShiftOffset * constants_1.NsgConstants.HORIZONTAL_OFFSET : 0);
200
- entryDiagramObjectPoint.yPosition += nsgSo.yrel + nsgSa.yrel + (nsgSa.ausrichtung === 3 ? saaShiftOffset * constants_1.NsgConstants.HORIZONTAL_OFFSET : 0);
201
- });
202
- // entryDiagramObject.rotation = entryDiagramObject.rotation ? (entryDiagramObject.rotation + (90 * nsgSa.ausrichtung) + normalRotateFactor) % 360 : undefined;
203
- });
204
- this.addi7ObjectToCIMModel(uuidPointsMap, cimModel, integral7, variantenNr);
205
- }
206
- static cloneDiagramObject(other) {
207
- var _a;
208
- const newDiagramObject = new DiagramObject_1.DiagramObject(common_utils_1.CommonUtils.generateUUID());
209
- newDiagramObject.rotation = (_a = other.rotation) !== null && _a !== void 0 ? _a : 0;
210
- for (let i = 0; i < other.diagramObjectPoints.length; i++) {
211
- const p = other.diagramObjectPoints[i];
212
- const diagramObjectPoint = new DiagramObjectPoint_1.DiagramObjectPoint(p.xPosition, p.yPosition, (i + 1));
213
- diagramObjectPoint.mrid = common_utils_1.CommonUtils.generateUUID();
214
- diagramObjectPoint.diagramObject = newDiagramObject;
215
- newDiagramObject.addDiagramObjectPoint(diagramObjectPoint);
216
- }
217
- return newDiagramObject;
218
- }
219
- static addi7ObjectToCIMModel(uuidPointsMap, cimModel, integral7, variantenNr) {
220
- for (const nodePointEntry of uuidPointsMap.entries()) {
221
- const cimObject = cimModel.getObject(nodePointEntry[0]);
222
- const diagram = cimModel.getDiagram(integral7.i7SchemaID2UUID.get(variantenNr));
223
- const diagramObject = new DiagramObject_1.DiagramObject((0, parser_utils_1.getUUID)(undefined));
224
- diagramObject.name = `DiagramObject`;
225
- if (cimObject !== undefined) {
226
- diagramObject.setIdentifiedObject(cimObject);
227
- }
228
- else {
229
- diagramObject.setIdentifiedObjectUUID(nodePointEntry[0]);
230
- }
231
- diagramObject.setDiagram(diagram);
232
- diagram.addDiagramObject(diagramObject);
233
- (0, utils_schema_1.copyDiagramObject)(diagramObject, nodePointEntry[1]);
234
- integral7.placedCIMObjectsForDLProfil.set(nodePointEntry[0], diagramObject);
235
- }
236
- }
237
- static placeKupplung(i7KnotenBeziehungen, relevantSSabIDs, nsgSSABs, integralID2UUID, placedCIMObjectUUIDs, kpFeldDeltaausrichtung, kpFeldLeftOffset, isLKupplung, objects) {
238
- const nodePointMap = new Map();
239
- const maxSSabPos = Math.max(...[...nsgSSABs.values()].map(ssab => ssab.posSSAB));
240
- const containsLeistungsschalter = i7KnotenBeziehungen.find(entry => entry.knotenTyp === integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.LEISTUNGSSCHALTER]) !== undefined;
241
- // Platziere zusammenhängende Elemente auf einer Linie
242
- const initialNodes = i7KnotenBeziehungen.filter(elem => relevantSSabIDs.has(elem.aknoten));
243
- // Eine Kupplung belegt im Standardfall in integral7 drei Felder
244
- const defaultWidthOfKupplung = 2 * constants_1.NsgConstants.HORIZONTAL_OFFSET;
245
- for (const initialNode of initialNodes) {
246
- // some weird behavior
247
- if (nodePointMap.get(initialNode.id) || placedCIMObjectUUIDs.has(integralID2UUID.get(initialNode.id))) {
248
- continue;
249
- }
250
- let tempNodePoints = new Map();
251
- // Mapped die Node-ID auf die SSAB, wenn das Node mit einer SSAB verbunden ist
252
- let tempNodeSSABConnectedMap = new Map();
253
- let connectionLength = 0;
254
- let lastNode = null;
255
- let crtNode = initialNode;
256
- // Zähle die Anzahl an Nodes, die innberhalb der Kupplung liegen
257
- while (crtNode) {
258
- connectionLength += 1;
259
- lastNode = crtNode;
260
- crtNode = i7KnotenBeziehungen.find(elem => elem.aknoten === crtNode.eknoten);
261
- }
262
- let isUniversal = false;
263
- let lastNodeLeistungsschalter = false;
264
- if (relevantSSabIDs.has(lastNode.eknoten)) {
265
- // Beziehung geht von Sammelschiene zu Sammelschiene
266
- }
267
- else {
268
- // Schaue, ob ggfs. eine Universale Kupplung vorliegt
269
- // => Endknoten liegt in einem anderen Knoten als Endknoten vor
270
- // ==> Daher Erhöhe die Länge um 1
271
- if (i7KnotenBeziehungen.find(elem => elem.eknoten === lastNode.eknoten && elem !== lastNode)) {
272
- isUniversal = true;
273
- lastNodeLeistungsschalter = (lastNode.knotenTyp === integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.LEISTUNGSSCHALTER]);
274
- if (lastNodeLeistungsschalter) {
275
- connectionLength += 1;
276
- }
277
- }
278
- }
279
- //const defaultLength = 3 * NsgConstants.HORIZONTAL_OFFSET;
280
- let yVecLength = undefined;
281
- let ssabAnfYPos = undefined;
282
- if (isLKupplung && !isUniversal) {
283
- ssabAnfYPos = QueryObjectSsabNsg_1.QueryObjectSsabNsg.getBottomRightPoint(nsgSSABs.get(initialNode.aknoten)).y;
284
- const ssabEndYPos = QueryObjectSsabNsg_1.QueryObjectSsabNsg.getTopLeftPoint(nsgSSABs.get(lastNode.eknoten)).y;
285
- yVecLength = ssabEndYPos - ssabAnfYPos;
286
- }
287
- let pointIndex = 0;
288
- if (connectionLength == 1) {
289
- // Platziere Knoten in der Mitte ==> Setze daher die Länge auf 2
290
- pointIndex = 1;
291
- connectionLength = 3;
292
- }
293
- /* BEGIN: Setze Null-basierte x-Koordinate und ggfs. y-Koordinate (wenn Längskupplung) */
294
- lastNode = null;
295
- crtNode = initialNode;
296
- while (crtNode) {
297
- if (nodePointMap.get(crtNode.id) === undefined) {
298
- // let xPos = 3 * (initialXPos > 0 ? initialXPos : (pointIndex / connectionLength));
299
- let xPos = (isUniversal && !lastNodeLeistungsschalter ? 1 : (pointIndex / (connectionLength - 1)));
300
- let yPos = undefined;
301
- if (isLKupplung && !isUniversal) {
302
- yPos = ssabAnfYPos + yVecLength * (pointIndex / connectionLength);
303
- }
304
- else {
305
- yPos = 0; // Setze y erstmal auf 0 ==> Die y-Position wird nachträglich erst gesetzt
306
- }
307
- const crtNodeDiagramObject = DLUtilFunctions.createDiagramObjectWithPoint(xPos, yPos);
308
- nodePointMap.set(crtNode.id, crtNodeDiagramObject);
309
- tempNodePoints.set(crtNode.id, crtNodeDiagramObject);
310
- pointIndex += 1;
311
- }
312
- if (relevantSSabIDs.has(crtNode.aknoten) || relevantSSabIDs.has(crtNode.eknoten)) {
313
- const ssab = relevantSSabIDs.has(crtNode.aknoten) ? nsgSSABs.get(crtNode.aknoten) : nsgSSABs.get(crtNode.eknoten);
314
- tempNodeSSABConnectedMap.set(crtNode.id, ssab);
315
- }
316
- lastNode = crtNode;
317
- crtNode = i7KnotenBeziehungen.find(elem => elem.aknoten === crtNode.eknoten);
318
- }
319
- /* END: Setze Null-basierte x-Koordinate und ggfs. y-Koordinate (wenn Längskupplung) */
320
- /* BEGIN: Shifte Punkte entlang x-Achse basierend auf SSAB.x oder KpFeld-Position */
321
- let leftOffset = undefined;
322
- if (!isLKupplung) {
323
- // Für Querkupplungen ist das leftOffset das Offset des KpFeldes
324
- leftOffset = kpFeldLeftOffset;
325
- }
326
- else {
327
- // Für Längskupplungen ist das leftOffset das Offset die rechte untere x-Position der Sammelschiene
328
- if (isUniversal && !lastNodeLeistungsschalter) {
329
- leftOffset = QueryObjectSsabNsg_1.QueryObjectSsabNsg.getTopLeftPoint(tempNodeSSABConnectedMap.get(initialNode.id)).x;
330
- }
331
- else {
332
- leftOffset = QueryObjectSsabNsg_1.QueryObjectSsabNsg.getBottomRightPoint(tempNodeSSABConnectedMap.get(initialNode.id)).x;
333
- }
334
- }
335
- for (const tempNodePointEntry of tempNodePoints) {
336
- if (isLKupplung && isUniversal && !lastNodeLeistungsschalter) {
337
- tempNodePointEntry[1].diagramObjectPoints[0].xPosition = leftOffset;
338
- }
339
- else {
340
- tempNodePointEntry[1].diagramObjectPoints[0].xPosition = (tempNodePointEntry[1].diagramObjectPoints[0].xPosition * defaultWidthOfKupplung) + leftOffset;
341
- }
342
- if (tempNodePointEntry[0] === initialNode.id && isUniversal && !lastNodeLeistungsschalter) {
343
- tempNodePointEntry[1].diagramObjectPoints[0].xPosition -= (constants_1.NsgConstants.HORIZONTAL_OFFSET / 4);
344
- }
345
- else if (tempNodePointEntry[0] === initialNode.id && isUniversal) {
346
- tempNodePointEntry[1].diagramObjectPoints[0].xPosition += (constants_1.NsgConstants.HORIZONTAL_OFFSET / 4);
347
- }
348
- }
349
- if (!isUniversal) {
350
- tempNodePoints.get(initialNode.id).diagramObjectPoints[0].xPosition += (constants_1.NsgConstants.HORIZONTAL_OFFSET / (connectionLength));
351
- tempNodePoints.get(lastNode.id).diagramObjectPoints[0].xPosition -= (constants_1.NsgConstants.HORIZONTAL_OFFSET / (connectionLength));
352
- }
353
- /* END: Shifte Punkte entlang x-Achse basierend auf SSAB.x oder KpFeld-Position */
354
- if (!isLKupplung) {
355
- // Fall: Querkupplung
356
- tempNodePoints.forEach((value, key) => {
357
- value.rotation = 90;
358
- });
359
- // Setze die korrekten y-Positionen
360
- for (const tempNodePointEntry of tempNodePoints) {
361
- if (tempNodeSSABConnectedMap.get(tempNodePointEntry[0]) && containsLeistungsschalter) {
362
- // Sammelschienenknoten auf die Sammelschienen, falls ein Leistungsschalter in der Querkupplung vorhanden ist
363
- tempNodePointEntry[1].diagramObjectPoints[0].yPosition = tempNodeSSABConnectedMap.get(tempNodePointEntry[0]).posSSAB * constants_1.NsgConstants.VERTICAL_OFFSET;
364
- const tempNode = i7KnotenBeziehungen.find(elem => elem.id === tempNodePointEntry[0]);
365
- if (relevantSSabIDs.has(tempNode.eknoten)) {
366
- tempNodePointEntry[1].rotation = kpFeldDeltaausrichtung === 0 ? 180 : 0;
367
- }
368
- else {
369
- tempNodePointEntry[1].rotation = kpFeldDeltaausrichtung === 0 ? 0 : 180;
370
- }
371
- }
372
- else {
373
- const ssabOffset = kpFeldDeltaausrichtung === 0 ? 0 : maxSSabPos - 1;
374
- const yOffsetMaxPosSSAB = ((kpFeldDeltaausrichtung === 0 ? -1 : 1) * (1) + ssabOffset) * constants_1.NsgConstants.VERTICAL_OFFSET;
375
- //const yOffsetMaxPosSSAB = (kpFeldDeltaausrichtung === 0 ? -1 : 1) * maxSSabPos * NsgConstants.VERTICAL_OFFSET;
376
- tempNodePointEntry[1].diagramObjectPoints[0].yPosition = yOffsetMaxPosSSAB;
377
- if (isUniversal && tempNodeSSABConnectedMap.get(tempNodePointEntry[0])) {
378
- tempNodePointEntry[1].rotation = kpFeldDeltaausrichtung === 0 ? 0 : 180;
379
- }
380
- }
381
- }
382
- }
383
- else {
384
- // Fall: Längskupplung
385
- if (isUniversal) {
386
- for (const tempNodePointEntry of tempNodePoints) {
387
- if (tempNodeSSABConnectedMap.get(tempNodePointEntry[0]) && containsLeistungsschalter) {
388
- // Sammelschienenknoten auf die Sammelschienen, falls ein Leistungsschalter in der Längskupplung vorhanden ist
389
- tempNodePointEntry[1].diagramObjectPoints[0].yPosition = tempNodeSSABConnectedMap.get(tempNodePointEntry[0]).posSSAB * constants_1.NsgConstants.VERTICAL_OFFSET;
390
- }
391
- else {
392
- const yOffsetMaxPosSSAB = -1 * maxSSabPos * constants_1.NsgConstants.VERTICAL_OFFSET;
393
- tempNodePointEntry[1].diagramObjectPoints[0].yPosition = yOffsetMaxPosSSAB;
394
- }
395
- }
396
- }
397
- else {
398
- // Wurde bereits oben gesetzt
399
- }
400
- }
401
- // BEGIN: ConnectivityNode-Support
402
- let prevNode = null;
403
- crtNode = initialNode;
404
- while (crtNode) {
405
- // Platzieren erst dann, wenn der Knoten nicht mehr auf eine Sammelschiene verweist
406
- if (!relevantSSabIDs.has(crtNode.aknoten)) {
407
- const aKnotenUUID = integralID2UUID.get(crtNode.aknoten);
408
- const eKnotenUUID = integralID2UUID.get(crtNode.eknoten);
409
- if (!placedCIMObjectUUIDs.has(aKnotenUUID) && !nodePointMap.has(crtNode.aknoten)) {
410
- // Standard-Platzierung
411
- const prevNodePoint = nodePointMap.get(prevNode.id);
412
- const crtNodePoint = nodePointMap.get(crtNode.id);
413
- nodePointMap.set(crtNode.aknoten, DLUtilFunctions.createDiagramObjectWithPoint((prevNodePoint.diagramObjectPoints[0].xPosition + crtNodePoint.diagramObjectPoints[0].xPosition) / 2, (prevNodePoint.diagramObjectPoints[0].yPosition + crtNodePoint.diagramObjectPoints[0].yPosition) / 2));
414
- if (isLKupplung) {
415
- // Bei Längskupplungen
416
- if (isUniversal) {
417
- if (relevantSSabIDs.has(prevNode.aknoten) && !relevantSSabIDs.has(crtNode.eknoten)) {
418
- // Erster Knoten hat Beziehung zu einer Sammelschiene und aktueller Knoten nicht
419
- nodePointMap.set(crtNode.aknoten, DLUtilFunctions.createDiagramObjectWithPoint(nodePointMap.get(prevNode.id).diagramObjectPoints[0].xPosition, nodePointMap.get(crtNode.id).diagramObjectPoints[0].yPosition));
420
- }
421
- }
422
- }
423
- else {
424
- // Bei Querkupplungen
425
- if (relevantSSabIDs.has(prevNode.aknoten) && !relevantSSabIDs.has(crtNode.eknoten)) {
426
- // Erster Knoten hat Beziehung zu einer Sammelschiene und aktueller Knoten nicht
427
- nodePointMap.set(crtNode.aknoten, DLUtilFunctions.createDiagramObjectWithPoint(nodePointMap.get(prevNode.id).diagramObjectPoints[0].xPosition, nodePointMap.get(crtNode.id).diagramObjectPoints[0].yPosition));
428
- }
429
- else if (relevantSSabIDs.has(crtNode.eknoten) && !relevantSSabIDs.has(prevNode.aknoten)) {
430
- // Letzer Knoten hat Beziehung zu einer Sammelschiene und vorheriger Knoten nicht
431
- nodePointMap.set(crtNode.aknoten, DLUtilFunctions.createDiagramObjectWithPoint(nodePointMap.get(crtNode.id).diagramObjectPoints[0].xPosition, nodePointMap.get(prevNode.id).diagramObjectPoints[0].yPosition));
432
- }
433
- /*if (isUniversal && !placedCIMObjectsForDLProfil.has(eKnotenUUID) && !nodePointMap.has(crtNode.eknoten)) {
434
- if( containsLeistungsschalter ) {
435
- const xExtraOffset = 0.75 * NsgConstants.HORIZONTAL_OFFSET;
436
- nodePointMap.set(crtNode.eknoten, new DiagramObjectPoint(nodePointMap.get(crtNode.id).x + xExtraOffset, nodePointMap.get(crtNode.id).y));
437
- } else {
438
- nodePointMap.set(crtNode.eknoten, new DiagramObjectPoint(nodePointMap.get(crtNode.id).x, nodePointMap.get(crtNode.id).y));
439
- }
440
- }*/
441
- }
442
- }
443
- }
444
- if (isUniversal && !placedCIMObjectUUIDs.has(integralID2UUID.get(crtNode.eknoten)) && !nodePointMap.has(crtNode.eknoten)) {
445
- if (containsLeistungsschalter && !relevantSSabIDs.has(crtNode.aknoten)) {
446
- const xExtraOffset = 0.75 * constants_1.NsgConstants.HORIZONTAL_OFFSET;
447
- nodePointMap.set(crtNode.eknoten, DLUtilFunctions.createDiagramObjectWithPoint(nodePointMap.get(crtNode.id).diagramObjectPoints[0].xPosition + xExtraOffset, nodePointMap.get(crtNode.id).diagramObjectPoints[0].yPosition));
448
- }
449
- else {
450
- if (relevantSSabIDs.has(crtNode.aknoten) && !relevantSSabIDs.has(crtNode.eknoten)) {
451
- // Knoten hat Beziehung zu einer Sammelschiene verweist dann auf eine nicht Sammelschiene
452
- let yOffsetMaxPosSSAB = undefined;
453
- if (!isLKupplung) {
454
- const ssabOffset = kpFeldDeltaausrichtung === 0 ? 0 : maxSSabPos;
455
- yOffsetMaxPosSSAB = ((kpFeldDeltaausrichtung === 0 ? -1 : 1) * (1) + ssabOffset) * constants_1.NsgConstants.VERTICAL_OFFSET;
456
- }
457
- else {
458
- yOffsetMaxPosSSAB = -1 * maxSSabPos * constants_1.NsgConstants.VERTICAL_OFFSET;
459
- }
460
- nodePointMap.set(crtNode.eknoten, DLUtilFunctions.createDiagramObjectWithPoint(nodePointMap.get(crtNode.id).diagramObjectPoints[0].xPosition, yOffsetMaxPosSSAB));
461
- }
462
- }
463
- }
464
- prevNode = crtNode;
465
- crtNode = i7KnotenBeziehungen.find(elem => elem.aknoten === crtNode.eknoten);
466
- }
467
- // END: ConnectivityNode-Support
468
- // BEGIN: Terminal-Support
469
- // crtNode = initialNode;
470
- // while (crtNode) {
471
- // let aKnotenPos: DiagramObjectPoint = undefined;
472
- // let eKnotenPos: DiagramObjectPoint = undefined;
473
- //
474
- // if (!isLKupplung) {
475
- // if (relevantSSabIDs.has(crtNode.aknoten)) {
476
- // aKnotenPos = new DiagramObjectPoint(((containsLeistungsschalter) ? nodePointMap.get(crtNode.id).diagramObjectPoints[0].xPosition : leftOffset), nsgSSABs.get(crtNode.aknoten).posSSAB * NsgConstants.VERTICAL_OFFSET);
477
- // }
478
- // if (relevantSSabIDs.has(crtNode.eknoten)) {
479
- // eKnotenPos = new DiagramObjectPoint(((containsLeistungsschalter) ? nodePointMap.get(crtNode.id).diagramObjectPoints[0].xPosition : leftOffset + defaultWidthOfKupplung), nsgSSABs.get(crtNode.eknoten).posSSAB * NsgConstants.VERTICAL_OFFSET);
480
- // }
481
- // } else {
482
- // if (relevantSSabIDs.has(crtNode.aknoten)) {
483
- // if (isUniversal) {
484
- // aKnotenPos = new DiagramObjectPoint(nodePointMap.get(crtNode.id).diagramObjectPoints[0].xPosition, nsgSSABs.get(crtNode.aknoten).posSSAB * NsgConstants.VERTICAL_OFFSET)
485
- // } else {
486
- // aKnotenPos = new DiagramObjectPoint(QueryObjectSsabNsg.getBottomRightPoint(nsgSSABs.get(crtNode.aknoten)).x, nsgSSABs.get(crtNode.aknoten).posSSAB * NsgConstants.VERTICAL_OFFSET)
487
- // }
488
- // }
489
- // if (relevantSSabIDs.has(crtNode.eknoten)) {
490
- // if (isUniversal) {
491
- // eKnotenPos = new DiagramObjectPoint(nodePointMap.get(crtNode.id).diagramObjectPoints[0].xPosition, nsgSSABs.get(crtNode.eknoten).posSSAB * NsgConstants.VERTICAL_OFFSET)
492
- // } else {
493
- // eKnotenPos = new DiagramObjectPoint(QueryObjectSsabNsg.getTopLeftPoint(nsgSSABs.get(crtNode.eknoten)).x, nsgSSABs.get(crtNode.eknoten).posSSAB * NsgConstants.VERTICAL_OFFSET)
494
- // }
495
- // }
496
- // }
497
- //
498
- // DLUtilFunctions.exportTerminals(crtNode, nodePointMap, integralID2UUID, objects, aKnotenPos, eKnotenPos)
499
- //
500
- // lastNode = crtNode;
501
- // crtNode = i7KnotenBeziehungen.find(elem => elem.aknoten === crtNode.eknoten);
502
- // }
503
- // END: Terminal-Support
504
- }
505
- return nodePointMap;
506
- }
507
- static exportTerminals(nodeRelation, nodePointMap, integralID2UUID, objects, aKnotenPos = undefined, eKnotenPos = undefined) {
508
- // if (nodePointMap.has(nodeRelation.id)) {
509
- // const ceTerminals = objects.getConductingEquipment(integralID2UUID.get(nodeRelation.id)).terminals;
510
- //
511
- // /* aKnoten => current bzw. ConnectivityNode -> ConductingEquipment */
512
- // let terminalDiagramObject: DiagramObject;
513
- // let cnTerminals = cimModel.getConnectivityNode(integralID2UUID.get(nodeRelation.aknoten)).terminals;
514
- // let terminal = [...cnTerminals.values()].filter(t => ceTerminals.has(t.getUUID()))[0];
515
- //
516
- // // ConductingEquipment-Punkt
517
- // let ceDiagramObject = nodePointMap.get(nodeRelation.id);
518
- //
519
- // let cePoint = ceDiagramObject.diagramObjectPoints[0];
520
- // terminalDiagramObject = DLUtilFunctions.createDiagramObjectWithPoint(cePoint.xPosition, cePoint.yPosition);
521
- //
522
- // let cnPoint;
523
- // // ConnectivityNode-Punkt
524
- // if (nodePointMap.has(nodeRelation.aknoten)) {
525
- // cnPoint = aKnotenPos ? aKnotenPos : nodePointMap.get(nodeRelation.aknoten).diagramObjectPoints[0];
526
- // if (cnPoint.xPosition !== cePoint.xPosition && cnPoint.yPosition !== cePoint.yPosition) {
527
- // // Füge zusätzlichen Eckpunkt ein
528
- // terminalDiagramObject.diagramObjectPoints.push(new DiagramObjectPoint(cnPoint.xPosition, cePoint.yPosition));
529
- // }
530
- // terminalDiagramObject.diagramObjectPoints.push(new DiagramObjectPoint(cnPoint.xPosition, cnPoint.yPosition));
531
- // DLUtilFunctions.adjustTerminalCEPosition(nodePointMap.get(nodeRelation.id), cnPoint, terminalDiagramObject.diagramObjectPoints[0]);
532
- // }
533
- // /* --- */
534
- //
535
- // /* current => eKnoten bzw. ConductingEquipment -> ConnectivityNode */
536
- // cnTerminals = cimModel.getConnectivityNode(integralID2UUID.get(nodeRelation.eknoten)).terminals;
537
- // terminal = [...cnTerminals.values()].filter(t => ceTerminals.has(t.getUUID()))[0];
538
- //
539
- // cePoint = nodePointMap.get(nodeRelation.id).diagramObjectPoints[0];
540
- // terminalDiagramObject = DLUtilFunctions.createDiagramObjectWithPoint(cePoint.xPosition, cePoint.yPosition);
541
- //
542
- // // ConnectivityNode-Punkt
543
- // if (nodePointMap.has(nodeRelation.eknoten)) {
544
- // cnPoint = eKnotenPos ? eKnotenPos : nodePointMap.get(nodeRelation.eknoten).diagramObjectPoints[0];
545
- // if (cnPoint.xPosition !== cePoint.xPosition && cnPoint.yPosition !== cePoint.yPosition) {
546
- // // Füge zusätzlichen Eckpunkt ein
547
- // terminalDiagramObject.diagramObjectPoints.push(new DiagramObjectPoint(cnPoint.xPosition, cePoint.yPosition));
548
- // }
549
- // terminalDiagramObject.diagramObjectPoints.push(new DiagramObjectPoint(cnPoint.xPosition, cnPoint.yPosition));
550
- // DLUtilFunctions.adjustTerminalCEPosition(nodePointMap.get(nodeRelation.id), cnPoint, terminalDiagramObject.diagramObjectPoints[0]);
551
- // }
552
- // }
553
- /* --- */
554
- }
555
- static adjustTerminalCEPosition(ceDiagramObject, cnPoint, terminalDiagramObjectPoint) {
556
- // Das Offset wird in Richtung des CN vollzogen entsprechend der Ausrichtung des CE
557
- const isLeft = cnPoint.xPosition < terminalDiagramObjectPoint.xPosition;
558
- const isTop = cnPoint.yPosition < terminalDiagramObjectPoint.yPosition;
559
- const ceRotation = ceDiagramObject.rotation;
560
- if (ceRotation === 0 || ceRotation === 180) {
561
- terminalDiagramObjectPoint.yPosition += (isTop ? -1 : 1) * constants_1.NsgConstants.TERMINAL_CE_OFFSET;
562
- }
563
- else if (ceRotation === 90 || ceRotation === 270) {
564
- terminalDiagramObjectPoint.xPosition += (isLeft ? -1 : 1) * constants_1.NsgConstants.TERMINAL_CE_OFFSET;
565
- }
566
- }
567
116
  static copyAndPushDiagramObjectPoint(diagramObject, diagramObjectPoint2Copy, unshift) {
568
117
  const diagramObjectPoint = new DiagramObjectPoint_1.DiagramObjectPoint(diagramObjectPoint2Copy.xPosition, diagramObjectPoint2Copy.yPosition);
569
118
  diagramObjectPoint.mrid = common_utils_1.CommonUtils.generateUUID();
@@ -593,13 +142,14 @@ class DLUtilFunctions {
593
142
  }
594
143
  }
595
144
  static createDiagramObjectWithPoint2(args) {
596
- const diagramObject = new DiagramObject_1.DiagramObject(common_utils_1.CommonUtils.generateUUID(), args.diagramObjectName);
145
+ const uuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.DiagramObject, DLUtilFunctions.uuidNamespaces, args.identifiedObjectUUID);
146
+ const diagramObject = new DiagramObject_1.DiagramObject(uuid, args.diagramObjectName);
597
147
  diagramObject.diagramUUID = args.diagramUUID;
598
148
  diagramObject.identifiedObjectUUID = args.identifiedObjectUUID;
599
149
  diagramObject.rotation = args.rotation !== undefined ? args.rotation : null;
600
150
  const diagramObjectPoint = new DiagramObjectPoint_1.DiagramObjectPoint(args.xPosition, args.yPosition);
601
- diagramObjectPoint.mrid = common_utils_1.CommonUtils.generateUUID();
602
151
  diagramObjectPoint.sequenceNumber = args.sequenceNumber !== undefined ? args.sequenceNumber : 1;
152
+ diagramObjectPoint.mrid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.DiagramObjectPoint, DLUtilFunctions.uuidNamespaces, uuid + diagramObjectPoint.sequenceNumber);
603
153
  diagramObjectPoint.diagramObject = diagramObject;
604
154
  diagramObject.diagramObjectPoints.push(diagramObjectPoint);
605
155
  return diagramObject;
@@ -626,122 +176,6 @@ class DLUtilFunctions {
626
176
  }
627
177
  return diagramObject;
628
178
  }
629
- static createDiagramObjectWithPointArrayBased(xy, rotation) {
630
- const diagramObject = new DiagramObject_1.DiagramObject();
631
- diagramObject.rotation = rotation;
632
- diagramObject.diagramObjectPoints.push(new DiagramObjectPoint_1.DiagramObjectPoint(xy[0], xy[1]));
633
- return diagramObject;
634
- }
635
- static filterByVariantenNrOnlyEingeblendet(result, variantenNr, onlyEingeblendet) {
636
- let filteredResults = result.filter(elem => elem.variantennr === variantenNr);
637
- if (onlyEingeblendet) {
638
- filteredResults = filteredResults.filter(elem => {
639
- return (elem.eingeblendet === 1 || (elem.eingeblendet === null && elem.angezeigt === 1));
640
- });
641
- }
642
- return filteredResults;
643
- }
644
- static getXYOffsetFromRelCM(type, nsgObject, anschlussID, nsgLeitungspkt) {
645
- let xOffset = 0;
646
- let yOffset = 0;
647
- if (type === integral_sql_1.Integral7TableNames.NSG_SCHALTFELD) {
648
- // Auswerten, ob ein Schaltfeld am Anfang angeschlossen ist
649
- // Falls ja, Ausrichtung des Schaltfeldes und der zugehörigen Schaltanlage relevant
650
- // Ignoriere xrel und yrel vom Leitungspunkt
651
- // const nsgSchaltfeld = integral7.integralNSGSchaltfeld.get(anschlussID);
652
- const nsgSchaltfeld = nsgObject;
653
- switch (nsgSchaltfeld.orientation) {
654
- case 0: // TOP
655
- // c => x += c
656
- // m => y += (m *-1)
657
- xOffset = nsgLeitungspkt.abstand_rel_anchor_c;
658
- yOffset = nsgLeitungspkt.abstand_rel_anchor_m * (-1);
659
- break;
660
- case 1: // RIGHT
661
- // m => x += (m)
662
- // c => y += (c)
663
- xOffset = nsgLeitungspkt.abstand_rel_anchor_m;
664
- yOffset = nsgLeitungspkt.abstand_rel_anchor_c;
665
- break;
666
- case 2: // BOTTOM
667
- // c => x += (c *-1)
668
- // m => y += (m)
669
- xOffset = nsgLeitungspkt.abstand_rel_anchor_c * (-1);
670
- yOffset = nsgLeitungspkt.abstand_rel_anchor_m;
671
- break;
672
- case 3: // LEFT
673
- // m => x += (m *-1)
674
- // c => y += (c *-1)
675
- xOffset = nsgLeitungspkt.abstand_rel_anchor_m * (-1);
676
- yOffset = nsgLeitungspkt.abstand_rel_anchor_c * (-1);
677
- break;
678
- }
679
- }
680
- else if (type === integral_sql_1.Integral7TableNames.NSG_QUERZWEIG) {
681
- const nsgQuerzweig = nsgObject;
682
- switch (nsgQuerzweig.ausrichtung) {
683
- case 0:
684
- xOffset = nsgLeitungspkt.abstand_rel_anchor_c * (-1);
685
- yOffset = nsgLeitungspkt.abstand_rel_anchor_m;
686
- break;
687
- case 1:
688
- xOffset = nsgLeitungspkt.abstand_rel_anchor_m * (-1);
689
- yOffset = nsgLeitungspkt.abstand_rel_anchor_c * (-1);
690
- break;
691
- case 2:
692
- xOffset = nsgLeitungspkt.abstand_rel_anchor_c;
693
- yOffset = nsgLeitungspkt.abstand_rel_anchor_m * (-1);
694
- break;
695
- case 3:
696
- xOffset = nsgLeitungspkt.abstand_rel_anchor_m;
697
- yOffset = nsgLeitungspkt.abstand_rel_anchor_c;
698
- break;
699
- }
700
- }
701
- else {
702
- xOffset = nsgLeitungspkt.abstand_rel_anchor_c;
703
- yOffset = nsgLeitungspkt.abstand_rel_anchor_m * (-1);
704
- }
705
- return [xOffset, yOffset];
706
- }
707
- static convertNsgKnoten(cimModel, integral7, data, refCimObjectUUID, width, height, xParentRel, yParentRel) {
708
- const diagramUUID = integral7.i7SchemaID2UUID.get(data.variantennr);
709
- const diagram = cimModel.getDiagram(diagramUUID);
710
- // const nsgStandort = integral7.integralNSGStandorte.get(data.nsgso);
711
- // if (!diagram || !nsgStandort) {
712
- if (!diagram) { // || !nsgStandort) {
713
- return;
714
- }
715
- const diagramObject = new DiagramObject_1.DiagramObject(common_utils_1.CommonUtils.generateUUID(), 'Abzweig');
716
- diagramObject.diagramUUID = diagramUUID;
717
- diagramObject.setDiagram(diagram);
718
- const diagramObjectPoint = new DiagramObjectPoint_1.DiagramObjectPoint(xParentRel + data.xrel + (width / 2), yParentRel + data.yrel + (height / 2));
719
- diagramObjectPoint.mrid = common_utils_1.CommonUtils.generateUUID();
720
- diagramObjectPoint.diagramObject = diagramObject;
721
- diagramObject.addDiagramObjectPoint(diagramObjectPoint);
722
- // Füge dem CIMModel hinzu
723
- cimModel.addDiagramObject(diagramObject);
724
- cimModel.addDiagramObjectPoint(diagramObjectPoint);
725
- if (refCimObjectUUID !== undefined) {
726
- diagramObject.setIdentifiedObjectUUID(refCimObjectUUID);
727
- integral7.placedCIMObjectsForDLProfil.set(refCimObjectUUID, diagramObject);
728
- // TODO replaced with new key
729
- DLUtilFunctions.setObjectIntoMapJSONBased(integral7.i7ID2UUID, DLUtilFunctions.stringifySchemaKey({
730
- id: data.id,
731
- variantennr: data.variantennr
732
- }), refCimObjectUUID);
733
- // integral7.i7ID2UUID.set(data.id, refCimObjectUUID);
734
- }
735
- else {
736
- // TODO replaced with new key
737
- DLUtilFunctions.setObjectIntoMapJSONBased(integral7.i7ID2UUID, DLUtilFunctions.stringifySchemaKey({
738
- id: data.id,
739
- variantennr: data.variantennr
740
- }), diagramObject.getUUID());
741
- // integral7.i7ID2UUID.set(data.id, diagramObject.getUUID());
742
- integral7.placedCIMObjectsForDLProfil.set(diagramObject.getUUID(), diagramObject);
743
- }
744
- }
745
179
  static splitLineIntoLineSegments(segmentPercentages, linePoints) {
746
180
  // const resultDiagramObjects: DiagramObject[] = [];
747
181
  const resultSegments = [];
@@ -815,96 +249,10 @@ class DLUtilFunctions {
815
249
  }
816
250
  return resultSegments;
817
251
  }
818
- static convertACLineSegment(completeLength, segmentPercentages, eqUUIDs, i7LineBasePoints) {
819
- const returnedDiagramObjects = [];
820
- // Bestimme komplette 'Pixellänge' der Leitung
821
- let completePixelLength = 0;
822
- for (let a = 1; a < i7LineBasePoints.length; ++a) {
823
- const tempX = i7LineBasePoints[a].xPosition - i7LineBasePoints[a - 1].xPosition;
824
- const tempY = i7LineBasePoints[a].yPosition - i7LineBasePoints[a - 1].yPosition;
825
- completePixelLength += Math.sqrt((tempX * tempX) + (tempY * tempY));
826
- }
827
- // Der Leitungsabschnitt zwischen 'lastB' und 'b' wird mit der Leitung 'eqIdx' verknüpft
828
- let lastB = 0;
829
- let b = 1;
830
- for (let eqIdx = 0; eqIdx < segmentPercentages.length; ++eqIdx) {
831
- let crtPixelPercentageSize = 0;
832
- let lastPixelPercentageSize;
833
- const epsilon = 0.00001;
834
- let crtPixelLength = 0;
835
- for (let idx = 1; idx < b; ++idx) {
836
- const tempX = i7LineBasePoints[idx].xPosition - i7LineBasePoints[idx - 1].xPosition;
837
- const tempY = i7LineBasePoints[idx].yPosition - i7LineBasePoints[idx - 1].yPosition;
838
- crtPixelLength += Math.sqrt((tempX * tempX) + (tempY * tempY));
839
- }
840
- do {
841
- // Nehme weitere DiagramObjectPoint zum aktuellen LineSegment hinzu
842
- const tempX = i7LineBasePoints[b].xPosition - i7LineBasePoints[b - 1].xPosition;
843
- const tempY = i7LineBasePoints[b].yPosition - i7LineBasePoints[b - 1].yPosition;
844
- crtPixelLength += Math.sqrt((tempX * tempX) + (tempY * tempY));
845
- lastPixelPercentageSize = crtPixelPercentageSize;
846
- crtPixelPercentageSize = (crtPixelLength / completePixelLength);
847
- b++;
848
- } while (crtPixelPercentageSize < segmentPercentages[eqIdx] && b < i7LineBasePoints.length);
849
- const crtPixelPercentage = (crtPixelLength / completePixelLength);
850
- if (crtPixelPercentage <= segmentPercentages[eqIdx] + epsilon) {
851
- // Ende erreicht
852
- }
853
- else if (crtPixelPercentage > segmentPercentages[eqIdx]) {
854
- let decreased = false;
855
- //if (b === i7LineBasePoints.length) {
856
- b--;
857
- decreased = true;
858
- //}
859
- // Neuer DiagramObjectPoint notwendig
860
- // Interpoliere dafür zwischen den letzten beiden Punkten und erzeuge neuen Punkt
861
- let tempX = i7LineBasePoints[b].xPosition - i7LineBasePoints[b - 1].xPosition;
862
- let tempY = i7LineBasePoints[b].yPosition - i7LineBasePoints[b - 1].yPosition;
863
- const percentageOfSegment = crtPixelPercentageSize - lastPixelPercentageSize;
864
- const tempRestX = tempX * (1 - percentageOfSegment);
865
- const tempRestY = tempY * (1 - percentageOfSegment);
866
- tempX = tempX * percentageOfSegment;
867
- tempY = tempY * percentageOfSegment;
868
- const newDiagramObjectPoint = {
869
- xPosition: i7LineBasePoints[b - 1].xPosition + tempX,
870
- yPosition: i7LineBasePoints[b - 1].yPosition + tempY
871
- };
872
- crtPixelLength -= Math.sqrt((tempRestX * tempRestX) + (tempRestY * tempRestY));
873
- i7LineBasePoints.splice(b, 0, newDiagramObjectPoint);
874
- if (decreased)
875
- b++;
876
- }
877
- const diagramObject = new DiagramObject_1.DiagramObject(common_utils_1.CommonUtils.generateUUID(), 'DiagramObject');
878
- diagramObject.setIdentifiedObjectUUID(eqUUIDs[eqIdx]);
879
- returnedDiagramObjects.push(diagramObject);
880
- let i = 1;
881
- for (let idx = lastB; idx < b; ++idx) {
882
- const diagramObjectPoint = new DiagramObjectPoint_1.DiagramObjectPoint(i7LineBasePoints[idx].xPosition, i7LineBasePoints[idx].yPosition, i);
883
- diagramObjectPoint.mrid = common_utils_1.CommonUtils.generateUUID();
884
- diagramObjectPoint.diagramObject = diagramObject;
885
- diagramObject.addDiagramObjectPoint(diagramObjectPoint);
886
- ++i;
887
- }
888
- lastB = b - 1;
889
- }
890
- return returnedDiagramObjects;
891
- }
892
- static stringifySchemaKey(key) {
893
- return JSON.stringify(key);
894
- }
895
- static parseSchemaKey(key) {
896
- return JSON.parse(key);
897
- }
898
- static getObjectFromMapJSONBased(map, complexKey) {
899
- return map.get(complexKey);
900
- }
901
- static setObjectIntoMapJSONBased(map, complexKey, value) {
902
- return map.set(complexKey, value);
903
- }
904
- static hasMapObjectJSONBased(map, complexKey) {
905
- return map.has(complexKey);
252
+ static setUuidNamespaces(uuidNamespaces) {
253
+ DLUtilFunctions.uuidNamespaces = uuidNamespaces;
906
254
  }
907
255
  }
908
256
  exports.DLUtilFunctions = DLUtilFunctions;
909
- DLUtilFunctions.EPSILON = 0.0000001;
257
+ DLUtilFunctions.uuidNamespaces = new Array();
910
258
  //# sourceMappingURL=util-functions.js.map