@@ -122,8 +122,7 @@ function HalfEdgeTopology(halves::AbstractVector{Tuple{HalfEdge,HalfEdge}})
122
122
edge4pair = Dict{Tuple{Int,Int},Int}()
123
123
for (i, (h₁, h₂)) in enumerate(ordered)
124
124
u, v = h₁.head, h₂.head
125
- edge4pair[(u, v)] = i
126
- edge4pair[(v, u)] = i
125
+ edge4pair[minmax(u, v)] = i
127
126
end
128
127
129
128
HalfEdgeTopology(halfedges, half4elem, half4vert, edge4pair)
@@ -208,10 +207,9 @@ function HalfEdgeTopology(elems::AbstractVector{<:Connectivity}; sort=true)
208
207
halves = Vector{Tuple{HalfEdge,HalfEdge}}()
209
208
visited = Set{Tuple{Int,Int}}()
210
209
for ((u, v), he) in half4pair
211
- if (u, v) ∉ visited
210
+ if minmax (u, v) ∉ visited
212
211
push!(halves, (he, he.half))
213
- push!(visited, (u, v))
214
- push!(visited, (v, u))
212
+ push!(visited, minmax(u, v))
215
213
end
216
214
end
217
215
@@ -294,14 +292,14 @@ vertices `uv`.
294
292
295
293
Always return the half-edge to the "left".
296
294
"""
297
- half4pair(t::HalfEdgeTopology, uv::Tuple{Int,Int}) = half4edge(t, t. edge4pair[uv] )
295
+ half4pair(t::HalfEdgeTopology, uv::Tuple{Int,Int}) = half4edge(t, edge4pair(t, uv) )
298
296
299
297
"""
300
298
edge4pair(t, uv)
301
299
302
300
Return the edge of the half-edge topology `t` for the pair of vertices `uv`.
303
301
"""
304
- edge4pair(t, uv) = t.edge4pair[uv ]
302
+ edge4pair(t, uv) = t.edge4pair[minmax(uv...) ]
305
303
306
304
# ---------------------
307
305
# HIGH-LEVEL INTERFACE
0 commit comments