MCPcopy Create free account
hub / github.com/Kitware/VTK / Serialize_vtkGraph

Function Serialize_vtkGraph

Common/DataModel/vtkGraphSerDesHelper.cxx:28–88  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

26}
27
28static nlohmann::json Serialize_vtkGraph(vtkObjectBase* object, vtkSerializer* serializer)
29{
30 using json = nlohmann::json;
31 if (auto* graph = vtkGraph::SafeDownCast(object))
32 {
33 json state;
34 if (auto superSerializer = serializer->GetHandler(typeid(vtkGraph::Superclass)))
35 {
36 state = superSerializer(object, serializer);
37 }
38 state["SuperClassNames"].push_back("vtkObject");
39
40 {
41 auto value = graph->GetVertexData();
42 if (value)
43 {
44 state["VertexData"] = serializer->SerializeJSON(reinterpret_cast<vtkObjectBase*>(value));
45 }
46 }
47 {
48 auto value = graph->GetEdgeData();
49 if (value)
50 {
51 state["EdgeData"] = serializer->SerializeJSON(reinterpret_cast<vtkObjectBase*>(value));
52 }
53 }
54 {
55 auto value = graph->GetPoints();
56 if (value)
57 {
58 state["Points"] = serializer->SerializeJSON(reinterpret_cast<vtkObjectBase*>(value));
59 }
60 }
61
62 vtkGraphInternals* internals = graph->GetGraphInternals(false);
63 auto& graphInternalState = state["InternalAdjacency"] = json::array();
64 for (const auto& adj : internals->Adjacency)
65 {
66 json adjListState;
67 auto& inEdgesState = adjListState["InEdges"] = json::array();
68 auto& outEdgesState = adjListState["OutEdges"] = json::array();
69 for (const auto& inEdge : adj.InEdges)
70 {
71 inEdgesState.push_back({ inEdge.Id, inEdge.Source });
72 }
73 for (const auto& outEdge : adj.OutEdges)
74 {
75 outEdgesState.push_back({ outEdge.Id, outEdge.Target });
76 }
77 graphInternalState.push_back(adjListState);
78 }
79 state["NumberOfEdges"] = internals->NumberOfEdges;
80 state["UsingPedigreeIds"] = internals->UsingPedigreeIds;
81
82 return state;
83 }
84 else
85 {

Callers

nothing calls this directly

Calls 8

arrayClass · 0.85
GetVertexDataMethod · 0.80
SerializeJSONMethod · 0.80
GetEdgeDataMethod · 0.80
GetGraphInternalsMethod · 0.80
GetHandlerMethod · 0.45
push_backMethod · 0.45
GetPointsMethod · 0.45

Tested by

no test coverage detected