Skip to content

Commit e36a504

Browse files
YueRenbenlorenz
andauthored
Combinatorics: make vertex labels in graph visualization start at 1 (#4459)
Co-authored-by: Benjamin Lorenz <[email protected]>
1 parent 1f7ded1 commit e36a504

File tree

2 files changed

+22
-16
lines changed

2 files changed

+22
-16
lines changed

Diff for: src/Combinatorics/Graphs/functions.jl

+3-7
Original file line numberDiff line numberDiff line change
@@ -1137,15 +1137,11 @@ end
11371137

11381138

11391139
@doc raw"""
1140-
visualize(G::Graph{T}) where {T <: Union{Polymake.Directed, Polymake.Undirected}}
1140+
visualize(G::Graph{T}; kwargs...) where {T <: Union{Polymake.Directed, Polymake.Undirected}}
11411141
1142-
Visualize a graph.
1142+
Visualize a graph, see [`visualize`](@ref Oscar.visualize(::Union{SimplicialComplex, Cone{<:Union{Float64, FieldElem}}, Graph, PolyhedralComplex{<:Union{Float64, FieldElem}}, PolyhedralFan{<:Union{Float64, FieldElem}}, Polyhedron, SubdivisionOfPoints{<:Union{Float64, FieldElem}}})) for details on the keyword arguments.
11431143
"""
1144-
function visualize(G::Graph{T}) where {T <: Union{Polymake.Directed, Polymake.Undirected}}
1145-
BigGraph = Polymake.graph.Graph(ADJACENCY=pm_object(G))
1146-
Polymake.visual(BigGraph)
1147-
end
1148-
1144+
visualize
11491145

11501146

11511147
# Some standard polytopes from graphs

Diff for: src/PolyhedralGeometry/visualization.jl

+19-9
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,7 @@ function visualize(
6565
};
6666
kwargs...,
6767
)
68-
_prepare_visualization(P)
69-
pmo = pm_object(P)
68+
pmo = _prepare_visualization(P)
7069
Polymake.visual(pmo; kwargs...)
7170
end
7271

@@ -92,13 +91,14 @@ julia> visualize(P)
9291
```
9392
"""
9493
function visualize(P::Vector; kwargs::Dict=Dict{Int,Nothing}())
95-
for p in P
96-
@req p isa visual_supported_types "Can not visualize objects of type $(typeof(P))"
97-
_prepare_visualization(p)
98-
end
94+
P = map(
95+
p -> begin
96+
@req p isa visual_supported_types "Can not visualize objects of type $(typeof(P))"
97+
_prepare_visualization(p)
98+
end, P)
9999
vis = [
100100
Polymake.visual(
101-
Polymake.Visual, pm_object(P[i]); get(kwargs, i, Vector{Nothing}(undef, 0))...
101+
Polymake.Visual, P[i]; get(kwargs, i, Vector{Nothing}(undef, 0))...
102102
) for i in 1:length(P)
103103
]
104104
if isdefined(Main, :IJulia) && Main.IJulia.inited
@@ -133,6 +133,7 @@ function _prepare_visualization(
133133
if !Polymake.exists(pm_object(P), "RAY_LABELS")
134134
pm_object(P).RAY_LABELS = string.(1:(Oscar.pm_object(P).N_RAYS))
135135
end
136+
return pm_object(P)
136137
end
137138

138139
function _prepare_visualization(P::SubdivisionOfPoints{<:Union{Float64,FieldElem}})
@@ -144,8 +145,17 @@ function _prepare_visualization(P::SubdivisionOfPoints{<:Union{Float64,FieldElem
144145
if !Polymake.exists(pm_object(P), "POINT_LABELS")
145146
pm_object(P).POINT_LABELS = string.(1:(Oscar.pm_object(P).N_POINTS))
146147
end
148+
return pm_object(P)
149+
end
150+
151+
function _prepare_visualization(sc::SimplicialComplex)
152+
return pm_object(sc)
147153
end
148154

149-
function _prepare_visualization(P::Union{Graph,SimplicialComplex})
150-
return nothing
155+
function _prepare_visualization(
156+
g::Graph{T}
157+
) where {T<:Union{Polymake.Directed,Polymake.Undirected}}
158+
bg = Polymake.graph.Graph{T}(; ADJACENCY=pm_object(g))
159+
bg.NODE_LABELS = string.(1:n_vertices(g))
160+
return bg
151161
end

0 commit comments

Comments
 (0)