20 #ifndef TULIP_METAGRAPH_H
21 #define TULIP_METAGRAPH_H
23 #include <tulip/PropertyTypes.h>
24 #include <tulip/AbstractProperty.h>
28 class PropertyContext;
31 typedef AbstractProperty<tlp::GraphType, tlp::EdgeSetType> AbstractGraphProperty;
40 friend class GraphAbstract;
46 void treatEvent(
const Event&);
50 bool setNodeStringValue(
const node n,
const std::string & v);
51 bool setAllNodeStringValue(
const std::string & v);
52 bool setEdgeStringValue(
const edge e,
const std::string & v);
53 bool setAllEdgeStringValue(
const std::string & v);
54 static const std::string propertyTypename;
55 const std::string& getTypename()
const {
56 return propertyTypename;
61 virtual void setNodeValue(
const node n,
const GraphType::RealType& g);
62 virtual void setAllNodeValue(
const GraphType::RealType& g);
63 virtual bool readNodeDefaultValue(std::istream& iss);
64 virtual bool readNodeValue(std::istream& iss,
node n);
65 virtual unsigned int edgeValueSize()
const {
70 bool hasNonDefaultValue(
const node n)
const {
71 return nodeProperties.hasNonDefaultValue(n.
id);
73 bool hasNonDefaultValue(
const edge e)
const {
74 return !edgeProperties.get(e.
id).empty();
78 MutableContainer<std::set<node> > referencedGraph;
79 const std::set<edge>& getReferencedEdges(
const edge)
const;
This class extends upon PropertyInterface, and adds type-safe methods to get and set the node and edg...
PropertyInterface describes the interface of a graph property.
The edge struct represents an edge in a Graph object.
The node struct represents a node in a Graph object.
A graph property that maps a tlp::Graph* value to graph elements.
Event is the base class for all events used in the Observation mechanism.
unsigned int id
id The identifier of the node.
unsigned int id
id The identifier of the edge.