PeriDyno 1.0.0
Loading...
Searching...
No Matches
AutoLayoutDAG.h
Go to the documentation of this file.
1
16#pragma once
18
19namespace dyno {
25 {
26 public:
29
30 void update();
31
32 size_t layerNumber() { return mLayerNum; }
33
34 size_t OtherVerticesSize() { return OtherVertices.size(); }
35
36 std::set<ObjectId>& getOtherVertices() {return OtherVertices;}
37
38 std::vector<ObjectId>& layer(size_t l) { return mNodeLayers[l]; }
39
40 protected:
41 void constructHierarchy();
42
43 void addDummyVertices();
44
46
47 private:
49
50 std::set<ObjectId> mVertices;
51 std::map<ObjectId, std::unordered_set<ObjectId>> mEdges;
52 std::map<ObjectId, std::unordered_set<ObjectId>> mReverseEdges;
53
54 std::map<ObjectId, int> mLayers;
55 std::map<ObjectId, int> mXCoordinate;
56
57 std::vector<std::vector<ObjectId>> mNodeLayers;
58 size_t mLayerNum = 0;
59
60 std::set<ObjectId> OtherVertices;
61
62 int mIterNum = 1;
63 };
64}
std::set< ObjectId > OtherVertices
std::map< ObjectId, std::unordered_set< ObjectId > > mEdges
std::map< ObjectId, int > mXCoordinate
DirectedAcyclicGraph * pDAG
std::set< ObjectId > & getOtherVertices()
std::vector< std::vector< ObjectId > > mNodeLayers
std::map< ObjectId, int > mLayers
std::set< ObjectId > mVertices
AutoLayoutDAG(DirectedAcyclicGraph *dag)
std::vector< ObjectId > & layer(size_t l)
std::map< ObjectId, std::unordered_set< ObjectId > > mReverseEdges
Graph class represents a directed graph.
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25