ui: typed edges
Edges in the graph view are now colored according to their type.
This commit is contained in:
@@ -211,37 +211,31 @@ std::set<DummyEdge> GraphController::getNeighbourEdgesOfNode(const DummyNode& no
|
||||
{
|
||||
std::set<DummyEdge> result;
|
||||
|
||||
std::vector<std::pair<Id, Id>> rawEdges;
|
||||
std::vector<std::pair<Id, Id>> callEdges = m_graphAccess->getCallEdgesOfNode(node.tokenId);
|
||||
std::vector<std::pair<Id, Id>> usageEdges = m_graphAccess->getUsageEdgesOfNode(node.tokenId);
|
||||
std::vector<std::pair<Id, Id>> typeOfEdges = m_graphAccess->getTypeOfEdgesOfNode(node.tokenId);
|
||||
std::vector<std::pair<Id, Id>> returnTypeEdges = m_graphAccess->getReturnTypeOfEdgesOfNode(node.tokenId);
|
||||
std::vector<std::pair<Id, Id>> parameterEdges = m_graphAccess->getParameterOfEdgesOfNode(node.tokenId);
|
||||
|
||||
if(callEdges.size() > 0)
|
||||
for(unsigned int i = 0; i < callEdges.size(); i++)
|
||||
{
|
||||
rawEdges.insert(rawEdges.end(), callEdges.begin(), callEdges.end());
|
||||
result.insert(DummyEdge(callEdges[i].first, callEdges[i].second, Edge::EdgeType::EDGE_CALL));
|
||||
}
|
||||
if(usageEdges.size() > 0)
|
||||
for(unsigned int i = 0; i < usageEdges.size(); i++)
|
||||
{
|
||||
rawEdges.insert(rawEdges.end(), usageEdges.begin(), usageEdges.end());
|
||||
result.insert(DummyEdge(usageEdges[i].first, usageEdges[i].second, Edge::EdgeType::EDGE_USAGE));
|
||||
}
|
||||
if(typeOfEdges.size() > 0)
|
||||
for(unsigned int i = 0; i < typeOfEdges.size(); i++)
|
||||
{
|
||||
rawEdges.insert(rawEdges.end(), typeOfEdges.begin(), typeOfEdges.end());
|
||||
result.insert(DummyEdge(typeOfEdges[i].first, typeOfEdges[i].second, Edge::EdgeType::EDGE_TYPE_OF));
|
||||
}
|
||||
if(returnTypeEdges.size() > 0)
|
||||
for(unsigned int i = 0; i < returnTypeEdges.size(); i++)
|
||||
{
|
||||
rawEdges.insert(rawEdges.end(), returnTypeEdges.begin(), returnTypeEdges.end());
|
||||
result.insert(DummyEdge(returnTypeEdges[i].first, returnTypeEdges[i].second, Edge::EdgeType::EDGE_RETURN_TYPE_OF));
|
||||
}
|
||||
if(parameterEdges.size() > 0)
|
||||
for(unsigned int i = 0; i < parameterEdges.size(); i++)
|
||||
{
|
||||
rawEdges.insert(rawEdges.end(), parameterEdges.begin(), parameterEdges.end());
|
||||
}
|
||||
|
||||
for(unsigned int i = 0; i < rawEdges.size(); i++)
|
||||
{
|
||||
result.insert(DummyEdge(rawEdges[i].first, rawEdges[i].second));
|
||||
result.insert(DummyEdge(parameterEdges[i].first, parameterEdges[i].second, Edge::EdgeType::EDGE_PARAMETER_TYPE_OF));
|
||||
}
|
||||
|
||||
for(unsigned int i = 0; i < node.subNodes.size(); i++)
|
||||
|
||||
@@ -3,8 +3,11 @@
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "utility/math/Vector4.h"
|
||||
#include "utility/types.h"
|
||||
|
||||
#include "data/graph/Edge.h"
|
||||
|
||||
class GraphNode;
|
||||
|
||||
class GraphEdge
|
||||
@@ -20,15 +23,19 @@ public:
|
||||
|
||||
virtual std::weak_ptr<GraphNode> getOwner() = 0;
|
||||
virtual std::weak_ptr<GraphNode> getTarget() = 0;
|
||||
|
||||
virtual void setColor(const Vec4i& color) = 0;
|
||||
virtual Vec4i getColor() const = 0;
|
||||
};
|
||||
|
||||
// temporary data structure for (visual) graph creation process
|
||||
struct DummyEdge
|
||||
{
|
||||
public:
|
||||
DummyEdge(const Id o, const Id t)
|
||||
DummyEdge(const Id o, const Id t, Edge::EdgeType type)
|
||||
: ownerId(o)
|
||||
, targetId(t)
|
||||
, edgeType(type)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -66,6 +73,8 @@ public:
|
||||
|
||||
Id ownerId;
|
||||
Id targetId;
|
||||
|
||||
Edge::EdgeType edgeType;
|
||||
};
|
||||
|
||||
#endif // GRAPH_EDGE_H
|
||||
Reference in New Issue
Block a user