ea 0.6.132 → 0.6.133
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.
- checksums.yaml +4 -4
- data/lib/ea/sources/qea/diagram_builder/routing.rb +37 -0
- data/lib/ea/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 020f344524c3f0702e581b349d7cb3f93a7069a3179684ca59440fd4d4762491
|
|
4
|
+
data.tar.gz: 46f2d46ab28ba95e5c975fedfa9bcd176c19b2acc4f3803635786f070dd315c2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 16f49f774901e21cee845099df07ff8adc9989c3679c03fb49b97692356a81353d40c73c1cdde5dddfcd74b49657744695b61dbf557c96aabebe730fa4f0a7c4
|
|
7
|
+
data.tar.gz: 77fbf77c4cc929cb5565f2a9f712275b13e7244591b2dea3245d4ad096889531af5782aa4a8ad4888d9a2944e789fa9edd2657eb11cc5c93c5c6e9f17a7df3a0
|
|
@@ -182,6 +182,7 @@ module Ea
|
|
|
182
182
|
def correct_stored_ray_origins(model, link_row, diagram_row, geom, context)
|
|
183
183
|
return model if context
|
|
184
184
|
return notelink_stored_ray(model, link_row, diagram_row, geom) if model.connector_type == "NoteLink"
|
|
185
|
+
return package_stored_ray(model, link_row, diagram_row, geom) if model.connector_type == "Package"
|
|
185
186
|
return model unless stored_ray_candidate?(model, link_row, geom)
|
|
186
187
|
|
|
187
188
|
source, target = stored_ray_boxes(link_row, diagram_row)
|
|
@@ -199,6 +200,42 @@ module Ea
|
|
|
199
200
|
model
|
|
200
201
|
end
|
|
201
202
|
|
|
203
|
+
# An empty custom-line package import has no authored bend. When
|
|
204
|
+
# its stored mathematical origins share a row inside both boxes,
|
|
205
|
+
# clip that ray instead of the computed EDGE2 port jog.
|
|
206
|
+
def package_stored_ray(model, link_row, diagram_row, geom)
|
|
207
|
+
return model unless package_ray_candidate?(model, link_row, geom)
|
|
208
|
+
|
|
209
|
+
boxes = stored_ray_boxes(link_row, diagram_row)
|
|
210
|
+
origins = level_package_origins(boxes, geom)
|
|
211
|
+
return model unless origins
|
|
212
|
+
|
|
213
|
+
model.waypoints = package_ray_waypoints(boxes, origins.first.y)
|
|
214
|
+
model.source_anchor, model.target_anchor = origins
|
|
215
|
+
model
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
def package_ray_candidate?(model, link_row, geom)
|
|
219
|
+
model.waypoints.size == 3 && link_row.path.to_s.empty? &&
|
|
220
|
+
model.style.values_at(:mode, :lwidth, :tree) == ["3", "0", nil] &&
|
|
221
|
+
geom[:edge] == 2 && geom.values_at(:sx, :sy, :ex, :ey).all?
|
|
222
|
+
end
|
|
223
|
+
|
|
224
|
+
def level_package_origins(boxes, geom)
|
|
225
|
+
return unless horizontal_ray_gap?(*boxes)
|
|
226
|
+
|
|
227
|
+
origins = association_ray_origins(*boxes, geom, "0")
|
|
228
|
+
origins if origins && origins.first.y == origins.last.y
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
def package_ray_waypoints(boxes, row)
|
|
232
|
+
rightward = boxes[0].x < boxes[1].x
|
|
233
|
+
boxes.each_with_index.map do |box, index|
|
|
234
|
+
x = box.x + (rightward == index.zero? ? box.width : 0)
|
|
235
|
+
Ea::Model::Waypoint.new(position: Ea::Model::Point.new(x: x, y: row))
|
|
236
|
+
end
|
|
237
|
+
end
|
|
238
|
+
|
|
202
239
|
# A straight top-docked NoteLink uses mathematical saved Y offsets,
|
|
203
240
|
# like the other custom rays, while authored bends keep their ports.
|
|
204
241
|
def notelink_stored_ray(model, link_row, diagram_row, geom)
|
data/lib/ea/version.rb
CHANGED