C++ main module for gpm Package  1.0
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
GPM_2DSnowGraph Class Reference

This class describes a 2D Snow Graph. More...

#include <GPM_2DSnowGraph.h>

Inheritance diagram for GPM_2DSnowGraph:
Inheritance graph
[legend]
Collaboration diagram for GPM_2DSnowGraph:
Collaboration graph
[legend]

Public Member Functions

virtual void toDoAfterThisSetting ()
 method called after this setting More...
 
tBoolean createPatternFunctions (SV::GPM_PatternFunction &patternFunctions) const
 create the data for rewriting graph More...
 
void setPath (const tString &path)
 set the path More...
 
tString getPath () const
 get the path More...
 
void setPrefix (const tString &v)
 set the prefix More...
 
tString getPrefix () const
 get the prefix More...
 
int getIteration () const
 get the prefix More...
 
void setIterationsMaxNumber (const int &v)
 set the max iterations number More...
 
int getIterationsMaxNumber () const
 get the max iterations number More...
 
virtual SP::GPM_GraphElement newInstance (const tString &className) const
 create a new instance of token More...
 
virtual SP::GPM_Port newPort () const
 create a port More...
 
tVertexIID addPort (const int &id)
 add port More...
 
tVertexIID addPort ()
 add port More...
 
tVertexIID addPort (SP::GPM_Port port)
 add port More...
 
tBoolean addPortEdgeFromIds (const int &from, const int &to, const int &fromPortId, const int &toPortId, tVertexIID &fromPortIID, tVertexIID &toPortIID)
 add 2 ports with ids fromPortId, toPortId from vertex with id from to vertex with id to return the internal ids of the 2 created ports More...
 
tBoolean addPortEdgeFromIds (const int &fromId, const int &toId, const int &fromPortId, const int &toPortId)
 add 2 ports with ids fromPortId, toPortId from vertex with id from to vertex with id to More...
 
void updateGraphElementsEnvironment (const map< tString, SP::GPM_Variable > &nodeEnvironment, const map< tString, SP::GPM_Variable > &portEnvironment, const map< tString, SP::GPM_Variable > &edgeEnvironment)
 update the environment of all graph elements (reverse method of build environments) More...
 
void buildEnvironments (map< tString, SP::GPM_Variable > &nodeEnvironment, map< tString, SP::GPM_Variable > &portEnvironment, map< tString, SP::GPM_Variable > &edgeEnvironment) const
 build the environments More...
 
void getConnectedNodesToPort (const tVertexIID &portIID, tVertexIID &sourceNode, tVertexIID &targetNode) const
 get the 2 nodes connected to port ,with portIID internal id More...
 
void initGroupNames (const vector< tString > &nodeIds, const vector< tString > &portIds)
 init group name More...
 
void initGroupNames ()
 init group name to type of the vertex More...
 
void clearPatternFunctions ()
 clear pattern functions More...
 
void addPatternFunction (SP::GPM_PatternFunction f)
 add pattern function More...
 
SV::GPM_PatternFunction & getPatternFunctions ()
 get the pattern functions More...
 
void generateQuadGraph (const int &nTriangles, const tBoolean &withMiddle, const int &n, const int &m, const tReal &w, const tReal &h, const tReal &xmin, const tReal &ymin)
 generate a quad graph of size nxm by nTriangles More...
 
virtual tBoolean isValid () const
 validate the graph More...
 
virtual tString isEdgeValid (const GPM_Vertex &source, const GPM_Vertex &target, tBoolean &isValid) const
 return true if the 2 vectex can be connected by edge More...
 
virtual tBoolean isMappingValid (const SV::GPM_Vertex &smallGraphVertices, const vector< tVertexIID > &mapping, CORE_Out &io) const
 return true if the mapping is valid More...
 
virtual tBoolean reduce (int &nReductions, CORE_Out &io)
 reduce the graph make on loop until one reduction is done return false if the reducing failed More...
 
void findMesh (const vector< tFlag > &meshTypes, vector< vector< tVertexIID > > &geometries) const
 get all the geometries vertex <–> vertex without ports inside. More...
 
void findMesh (const tFlag &meshType, vector< vector< tVertexIID > > &geometries) const
 get all the geometries vertex <–> vertex without ports inside. More...
 
void findSegments (vector< vector< tVertexIID > > &geometry) const
 set the segments More...
 
virtual tBoolean exportToCurveFile (const tString &fileName, const tString &title, const tString &XLabel, const tString &YLabel) const
 export to a curve file More...
 
tBoolean rewrite (int &nReductions, CORE_Out &io)
 rewrite the graph substitute the patterns by the graphs defined in PatternFunctions algorithm: More...
 
tBoolean run (CORE_Out &io)
 run the writer More...
 
tBoolean run (const tString &path, const tString &prefix, const int &nMaxIterations, CORE_Out &io)
 run the writer More...
 
virtual tBoolean loadGraph (const tString &path, const tString &prefix, const int &nDigits, const int &iterations, CORE_Out &io, tString &fn)
 load the graph during running More...
 
const tGraphgetGraphImplement () const
 get the graph implementation More...
 
tGraphgetGraphImplement ()
 get the graph implementation More...
 
virtual SP::GPM_Node newNode () const
 create a node More...
 
virtual void copy (const GPM_Graph &graph)
 void copy More...
 
tVertexIID addVertex (SP::GPM_Vertex vertex)
 add vertex vertex with id More...
 
tVertexIID addNode ()
 add vertex More...
 
tVertexIID addNode (const int &id)
 add vertex with id More...
 
void removeVertex (const tVertexIID &iid)
 remove vertex with internal id: iid WARNING: the vertexIID of all the nodes may changed ! More...
 
int getVerticesNumber () const
 the the vertices numbers More...
 
SP::GPM_Vertex getVertex (const tVertexIID &iid) const
 get vertex with internal id More...
 
int getVertexId (const tVertexIID &iid) const
 get the id of vertex with internal id More...
 
tVertexIID getVertexIID (const int &id) const
 get the internal id of vertex with id (for convenience use) More...
 
void getVertices (vector< tVertexIID > &vertexIIDs) const
 get the internal id of all vertices More...
 
void getVertices (SV::GPM_Vertex &vertexIIDs) const
 get the internal id of all vertices More...
 
void getConnectedVertices (const tVertexIID &iid, vector< tVertexIID > &vertexIIDs) const
 get the internal id vertices connected to vertex with internal iid More...
 
int getDegree (const tVertexIID &id) const
 get the edges number connected to vertex with id More...
 
virtual SP::GPM_Edge newEdge () const
 get the edge internal id More...
 
virtual SP::GPM_Edge newEdge (const int &id) const
 create a node More...
 
virtual SP::GPM_Edge newEdge (SP::GPM_Vertex source, SP::GPM_Vertex target) const
 create a node More...
 
tBoolean addEdgeFromIds (const int &source, const int &target, tEdgeIID &iid)
 add ad edge from vertex ids (convenience method) More...
 
tBoolean addEdgeFromIds (const int &source, const int &target)
 add vertex from vertex ids (convenience method) More...
 
virtual tBoolean addEdge (const tVertexIID &from, const tVertexIID &to, SP::GPM_Edge edge, tEdgeIID &iid)
 add an edge with name label between vertices from & to More...
 
virtual SP::GPM_Edge addEdge (const tVertexIID &from, const tVertexIID &to)
 add an edge with name label between vertices from & to More...
 
virtual tBoolean addEdge (const tVertexIID &from, const tVertexIID &to, tEdgeIID &eiid)
 add an edge with name label between vertices from & to More...
 
tBoolean removeEdge (const tEdgeIID &edgeId)
 remove edge with id WARNING: the edgeIID of all the edges may changed ! More...
 
tBoolean removeEdges (const tVertexIID &vertexIID)
 remove all edges from vertex with internal id WARNING: the edgeIID of all the edges may changed ! More...
 
tBoolean removeEdges (const tVertexIID &form, const tVertexIID &to)
 remove all edges from vertices from & to WARNING: the edgeIID of all the edges may changed ! More...
 
int getEdgesNumber () const
 get the edges number More...
 
void getEdges (vector< tEdgeIID > &ids) const
 get the index of edges of the graph More...
 
void getEdges (SV::GPM_Edge &edges) const
 get the index of edges of the graph More...
 
void getEdges (const tVertexIID &v, vector< tEdgeIID > &edges) const
 get the edges from vertex v More...
 
tBoolean getEdge (const tVertexIID &e1, const tVertexIID &e2, tEdgeIID &iid) const
 get edge between vertices e1 & e2 More...
 
SP::GPM_Edge getEdge (const tEdgeIID &id)
 get edge with id for writing More...
 
SPC::GPM_Edge getEdge (const tEdgeIID &id) const
 get edge with id for reading More...
 
const GPM_EdgegetEdge (const tVertexIID &e1, const tVertexIID &e2) const
 get edge between vertices e1 & e2 More...
 
GPM_EdgegetEdge (const tVertexIID &e1, const tVertexIID &e2)
 get edge between vertices e1 & e2 More...
 
tBoolean getEdgeFromIds (const int &e1, const int &e2, tEdgeIID &iid) const
 get edge between vertices e1 & e2 (convenience method) More...
 
tBoolean getEdgeFromIds (const int &e1, const int &e2) const
 get edge between vertices e1 & e2 (convenience method) More...
 
void getEdgeVertices (const tEdgeIID &id, tVertexIID &source, tVertexIID &target) const
 get vertices of edges More...
 
int getEdgeId (const tEdgeIID &iid) const
 get id of edge with internal id iid More...
 
tBoolean getEdgeIID (const int &id, tEdgeIID &iid) const
 get the internal id of edge with id (for convenience use) More...
 
void clear ()
 clear the graph More...
 
void close ()
 close the graph More...
 
tBoolean merge (const tVertexIID &from, const tVertexIID &to, CORE_Out &io)
 merge two vertex More...
 
void addSubGraph (const GPM_Graph &graph, map< tVertexIID, tVertexIID > &connections)
 add sub graph More...
 
void executeTriggerActions (CORE_Out &io)
 execute trigger actions More...
 
tBoolean saveToFile (const tString &fileName) const
 save graph to txt file More...
 
tBoolean loadFromFile (const tString &fileName, CORE_Out &io)
 load graph from txt file More...
 
void printGroupId (CORE_Out &io) const
 print the group id More...
 
void updateGroupId ()
 update the group Id of all elements of graph More...
 
tBoolean isIsomorph (const GPM_Graph &g, vector< tVertexIID > &verticesMap, CORE_Out &io) const
 return true if graph is isomorph More...
 
tBoolean isIsomorph (SPC::GPM_Graph g, vector< tVertexIID > &verticesMap, CORE_Out &io) const
 return true if graph is isomorph More...
 
tBoolean isIsomorph (SPC::GPM_Graph g, CORE_Out &io) const
 return true if graph is isomorph More...
 
tBoolean isIsomorph (const GPM_Graph &g, CORE_Out &io) const
 return true if graph is isomorph More...
 
void getPatterns (const GPM_Graph &pattern, const tBoolean &isUpToAutomorphism, const tFlag &upToAutomorphismType, vector< vector< tVertexIID > > &homomorphisms, CORE_Out &io) const
 get all the patterns in graph this thanks to homomorphism mappings pattern must be smaller More...
 
void getPatterns (SPC::GPM_Graph pattern, const tBoolean &isUpToAutomorphism, const tFlag &upToAutomorphismType, vector< vector< tVertexIID > > &homomorphisms, CORE_Out &io) const
 get all the patterns in graph this thanks to homomorphism mappings pattern must be smaller More...
 
void getPatterns (const GPM_Graph &pattern, vector< vector< tVertexIID > > &homomorphisms, CORE_Out &io) const
 get all the patterns in graph this thanks to homomorphism mappings pattern must be smaller More...
 
void getPatterns (SPC::GPM_Graph pattern, vector< vector< tVertexIID > > &homomorphisms, CORE_Out &io) const
 get all the patterns in graph this thanks to homomorphism mappings pattern must be smaller More...
 
virtual tString toString () const
 set the graph to string More...
 
int generateVertexId ()
 generate a vertex id More...
 
int generateEdgeId ()
 generate a edge id More...
 
void getSharedPointer (SP::CORE_Object &p)
 get the shared pointer of this class into p More...
 
void getSharedPointer (SPC::CORE_Object &p) const
 get the shared pointer of this class into p More...
 
tString getClassName () const
 return the class name of the object More...
 
tString getIdentityString () const
 return the identity string of the object of the form className_at_address More...
 
tString getPointerAddress () const
 return the identity string of the object More...
 
template<class T >
tBoolean isInstanceOf () const
 return true if the object is an instance of T More...
 
virtual void print ()
 print the class More...
 
virtual ostream & print (ostream &out) const
 print the class More...
 
virtual void print (const tString &message)
 print the class More...
 
virtual void print (const tInteger &str)
 print More...
 
virtual void print (const tRelativeInteger &str)
 print More...
 
virtual void print (const tReal &str)
 print More...
 
virtual void print (const int &str)
 print More...
 

Static Public Member Functions

static SP::GPM_2DSnowGraph New ()
 create a test class More...
 
static void turnBodyTextToLine (tString &bdy)
 
static void turnBodyLineToText (tString &bdy)
 
static tString getClassName (const tString &identityString)
 return the class name of the object using only the identity string More...
 
template<class T >
static tString getTypeName ()
 get type name More...
 
static tBoolean is64Architecture ()
 return true if the machine is a 64 bits machine More...
 
static tBoolean is32Architecture ()
 return true if the machine is a 32 bits machine More...
 
static tString pointer2String (const void *obj)
 return the string represantation of a pointer More...
 
static void setOutput (ostream &out)
 set output More...
 
static ostream & getOutput ()
 get output More...
 
static void printObjectsInMemory ()
 print object in memory More...
 
static ostream & print (ostream &out, const tString &message)
 print the class More...
 
static void outputPrint (const tString &message)
 

Static Public Attributes

static const tFlag SEGMENT =2
 
static const tFlag TRIANGLE =3
 
static const tFlag TETRAHEDRON =4
 
static const tFlag PYRAMID =5
 
static const tFlag WEDGE =6
 
static const tFlag HEXAHEDRON =8
 
static const tVertexIID NULL_VERTEX =boost::graph_traits<tGraph>::null_vertex()
 
static const tFlag UP_TO_AUTOMORPHISM_ALL =0
 
static const tFlag UP_TO_AUTOMORPHISM_NODE =1
 
static const tFlag UP_TO_AUTOMORPHISM_PORT =2
 
static tBoolean mIsMemoryTesting =false
 indicator to store all classes created and deleted only for debuging version More...
 

Protected Member Functions

 GPM_2DSnowGraph (void)
 create More...
 
virtual ~GPM_2DSnowGraph (void)
 destroy More...
 
virtual tBoolean saveGraph (const tString &path, const tString &prefix, const int &nDigits, const int &iterations, tString &fn) const
 save the graph during running More...
 
void setIteration (const int &v)
 set the iteration More...
 
virtual void patternsMappingSignalEmit (const SVC::GPM_PatternFunction patternFunction, const vector< vector< vector< tVertexIID > > > &fmappings) const
 signal emmiting when the matching of patterns is done More...
 
tBoolean addEdge_ (const tVertexIID &from, const tVertexIID &to, SP::GPM_Edge edge, tEdgeIID &iid)
 add edge without verifications if edge or vertices exists More...
 
void setThis (SP::CORE_Object p)
 set this weak shared pointer called toDoAfterThis setting method More...
 
virtual void setType (tString type)
 set the type of the object More...
 

Detailed Description

This class describes a 2D Snow Graph.

Author
Stephane Despreaux
Version
1.0

A snow flake example consists in replacing an edge by a multi-edge as follow:

snowFlakeTransfo.png

The translation in port graph module is has follow:

snowFlakeTransfoPG.png

The pattern graph to search in the large graph contains :

The replacment transformer graph contains:

The coordinates of the new nodes i,j,k has defined has follow:

The rules are as follow:

The large graph is a triangle which contains:

The results obtainsafter 8 iterations is given as follow:

snowFlake-8.png
with=800px

To simulate this example, 2 classes have to been created:

The GPM_2DSnowGraph::createPatternsFunctions which create a patterns functions has to be specialized: it creates pattern graph, transformer graph, GPM_Snow2DFunction. The code is like this:

tBoolean GPM_2DSnowGraph::createPatternFunctions(SV::GPM_PatternFunction& patternFunctions) const {
tVertexIID pA,pB;
SP::GPM_PortGraph patternGraph=createPatternGraph(pA,pB);
tVertexIID tA,tB;
SP::GPM_PortGraph transformerGraph=createTransformerGraph(tA,tB);
// create the mapping
SP::GPM_PatternFunction patternF=GPM_Snow2DFunction::New();
patternF->setPatternGraph(patternGraph);
patternF->setTransformerGraph(transformerGraph);
patternF->addPEdgeToRemove(pA,pB);
patternF->addPTEdgeToAdd(pA,tA);
patternF->addPTEdgeToAdd(pB,tB);
// create the id for pattern searching
patternF->addVariableNameToNodeGroupId("state");
patternFunctions.clear();
patternFunctions.add(patternF);
return true;
}

The method GPM_PatternFunction::addPEdgeToRemove adds a marker to remove the mapped pattern edge in the large graph

The method GPM_PatternFunction::addPTEdgeToAdd adds an edge in the large graph between mapped pattern graph and the copied transformer graph in the large graph

The method GPM_2DSnowGraph::createTransformerGraph (similarly as GPM_2DSnowGraph::createPatternGraph() and GPM_2DSnowGraph::createInitialGraph() ) creates a graph

SP::GPM_PortGraph GPM_2DSnowGraph::createTransformerGraph(tVertexIID& tA,tVertexIID& tB) const {
// create the transformed pattern
SP::GPM_PortGraph patternTransformed=GPM_PortGraph::New();
int index=-1;
iid=patternTransformed->addPort("-",++index);tA=iid;
iid=patternTransformed->addVertex(++index);
iid=patternTransformed->addPort("+",++index);
iid=patternTransformed->addPort("-",++index);
iid=patternTransformed->addVertex(++index);
iid=patternTransformed->addPort("+",++index);
iid=patternTransformed->addPort("-",++index);
iid=patternTransformed->addVertex(++index);
iid=patternTransformed->addPort("+",++index);tB=iid;
index=0;
patternTransformed->addEdgeFromIds(0,1);
patternTransformed->addEdgeFromIds(1,2);
patternTransformed->addEdgeFromIds(2,3);
patternTransformed->addEdgeFromIds(3,4);
patternTransformed->addEdgeFromIds(4,5);
patternTransformed->addEdgeFromIds(5,6);
patternTransformed->addEdgeFromIds(6,7);
patternTransformed->addEdgeFromIds(7,8);
return patternTransformed;
}

To define the new position of nodes, the methode GPM_PatternFunction::updateTransformerGraphStates has to be specialized. it defined the new coordinates of the copied transformer graph

const vector<tVertexIID>& mappingP2L,
const map<tVertexIID,tVertexIID>& mappingT2L) {
tBoolean succeeds=true;
SP::GPM_Node node;
// get the pattern graph
const GPM_Graph& patternGraph=getPatternGraph();
// get the tranformer graph
const GPM_Graph& transformerGraph=getTransformerGraph();
// get the mapping transformer graph -> copied tranformer graph in large graph
map<tVertexIID,tVertexIID>::const_iterator mappingT2LIter;
// get the coordinate of the first node of pattern graph
node=dynamic_sp_cast<GPM_Node>(largeGraph.getVertex(mappingP2L[patternGraph.getVertexIID(0)])*);
if (node.get()==null) return false;
const tReal *X=node->getCoordinates();
// Xrot is the rotation of axe Z and angle PI/2 of X
tReal Xrot[]={-X[1],X[0],X[2]};
// get the coordinate of the last node of pattern graph
node=dynamic_sp_cast<GPM_Node>(largeGraph.getVertex(mappingP2L[patternGraph.getVertexIID(3)])*);
if (node.get()==null) return false;
const tReal *Y=node->getCoordinates();
// Yrot is the rotation of axe Z and angle PI/2 of Y
tReal Yrot[]={-Y[1],Y[0],Y[2]};
int k=0;
tReal coord[3];
//cout << "X("<<X[0]<<","<<X[1]<<","<<X[2]<<") Y("<<Y[0]<<","<<Y[1]<<","<<Y[2]<<")\n";
// set the coordinate of the first node of transformed graph
iid=transformerGraph.getVertexIID(1);
for (k=0;k<3;k++) coord[k]=(2./3.)*X[k]+(1./3.)*Y[k];
mappingT2LIter=mappingT2L.find(iid);
if (mappingT2LIter!=mappingT2L.end()) {
node=dynamic_sp_cast<GPM_Node>( largeGraph.getVertex(mappingT2LIter->second));
if (node.get()!=null) node->setCoordinates(coord);
}
//cout << "\t A("<<coord[0]<<","<<coord[1]<<","<<coord[2]<<")\n";
// set the coordinate of the 2nd node of transformed graph
iid=transformerGraph.getVertexIID(4);
for (k=0;k<3;k++) {
coord[k]=0.5*(X[k]+Y[k]);
coord[k]+=(sqrt(3.)/6.)*(-Xrot[k]+Yrot[k]);
}
mappingT2LIter=mappingT2L.find(iid);
if (mappingT2LIter!=mappingT2L.end()) {
node=dynamic_sp_cast<GPM_Node>( largeGraph.getVertex(mappingT2LIter->second));
if (node.get()!=null) node->setCoordinates(coord);
}
//cout << "\t B("<<coord[0]<<","<<coord[1]<<","<<coord[2]<<")\n";
// set the coordinate of the 3th node of transformed graph
iid=transformerGraph.getVertexIID(7);
for (k=0;k<3;k++) coord[k]=(1./3.)*X[k]+(2./3.)*Y[k];
mappingT2LIter=mappingT2L.find(iid);
if (mappingT2LIter!=mappingT2L.end()) {
node=dynamic_sp_cast<GPM_Node>( largeGraph.getVertex(mappingT2LIter->second));
if (node.get()!=null) node->setCoordinates(coord);
}
//cout << "\t C("<<coord[0]<<","<<coord[1]<<","<<coord[2]<<")\n";
return succeeds;
}

Note that the nodes & ports are vertices so a special care needs to take the nodes at the right index.

As the pattern graph are not modified, only specialize the method without body

tBoolean GPM_Snow2DFunction::updatePatternGraphStates(GPM_Graph& largeGraph, const vector<tVertexIID>& mappingP2L,CORE_Out& io) {

tBoolean succeeds=true; return succeeds; }

Constructor & Destructor Documentation

GPM_2DSnowGraph::GPM_2DSnowGraph ( void  )
protected

create

References CORE_Object::setType().

Referenced by New().

Here is the call graph for this function:

Here is the caller graph for this function:

GPM_2DSnowGraph::~GPM_2DSnowGraph ( void  )
protectedvirtual

destroy

Member Function Documentation

tBoolean GPM_Graph::addEdge ( const tVertexIID from,
const tVertexIID to,
SP::GPM_Edge  edge,
tEdgeIID iid 
)
virtualinherited
virtual SP::GPM_Edge GPM_Graph::addEdge ( const tVertexIID from,
const tVertexIID to 
)
inlinevirtualinherited

add an edge with name label between vertices from & to

References GPM_Graph::addEdge(), GPM_Graph::generateEdgeId(), and GPM_Graph::newEdge().

Here is the call graph for this function:

virtual tBoolean GPM_Graph::addEdge ( const tVertexIID from,
const tVertexIID to,
tEdgeIID eiid 
)
inlinevirtualinherited

add an edge with name label between vertices from & to

References GPM_Graph::addEdge(), GPM_Graph::generateEdgeId(), GPM_Graph::newEdge(), and tBoolean.

Here is the call graph for this function:

tBoolean GPM_Graph::addEdge_ ( const tVertexIID from,
const tVertexIID to,
SP::GPM_Edge  edge,
tEdgeIID iid 
)
protectedinherited

add edge without verifications if edge or vertices exists

References EdgeProperties::edge.

Referenced by GPM_Graph::addEdge().

Here is the caller graph for this function:

tBoolean GPM_Graph::addEdgeFromIds ( const int &  source,
const int &  target,
tEdgeIID iid 
)
inlineinherited

add ad edge from vertex ids (convenience method)

References GPM_Graph::addEdge(), GPM_Graph::addNode(), GPM_Graph::generateEdgeId(), GPM_Graph::getVertexIID(), and GPM_Graph::newEdge().

Referenced by GPMG_DrawPanel::addEdge(), and GPM_Graph::addEdgeFromIds().

Here is the call graph for this function:

Here is the caller graph for this function:

tBoolean GPM_Graph::addEdgeFromIds ( const int &  source,
const int &  target 
)
inlineinherited

add vertex from vertex ids (convenience method)

References GPM_Graph::addEdgeFromIds().

Here is the call graph for this function:

tVertexIID GPM_Graph::addNode ( )
inlineinherited

add vertex

Parameters
OUTiid: return the internal id of vertex

References GPM_Graph::addVertex(), GPM_Graph::generateVertexId(), and GPM_Graph::newNode().

Referenced by GPM_Graph::addEdgeFromIds(), GPMG_DrawPanel::addNode(), GPM_PortGraph::addPortEdgeFromIds(), GPM_Graph::copy(), and GPM_PortGraph::generateQuadGraph().

Here is the call graph for this function:

Here is the caller graph for this function:

tVertexIID GPM_Graph::addNode ( const int &  id)
inlineinherited

add vertex with id

Parameters
INid: id of the vertex
OUTiid: return the internal id of vertex

References GPM_Graph::addVertex(), and GPM_Graph::newNode().

Here is the call graph for this function:

void GPM_PortGraph::addPatternFunction ( SP::GPM_PatternFunction  f)
inlineinherited

add pattern function

Referenced by GPMG_Project::run().

Here is the caller graph for this function:

tVertexIID GPM_PortGraph::addPort ( const int &  id)
inlineinherited

add port

References GPM_Graph::addVertex().

Referenced by GPMG_DrawPanel::addEdgeToNode(), and GPMG_DrawPanel::addPort().

Here is the call graph for this function:

Here is the caller graph for this function:

tVertexIID GPM_PortGraph::addPort ( )
inlineinherited

add port

References GPM_Graph::addVertex().

Here is the call graph for this function:

tVertexIID GPM_PortGraph::addPort ( SP::GPM_Port  port)
inlineinherited

add port

References GPM_Graph::addVertex().

Here is the call graph for this function:

tBoolean GPM_PortGraph::addPortEdgeFromIds ( const int &  from,
const int &  to,
const int &  fromPortId,
const int &  toPortId,
tVertexIID fromPortIID,
tVertexIID toPortIID 
)
inherited

add 2 ports with ids fromPortId, toPortId from vertex with id from to vertex with id to return the internal ids of the 2 created ports

References GPM_Graph::addEdge(), GPM_Graph::addNode(), GPM_Graph::addVertex(), GPM_Graph::getVertexIID(), GPM_PortGraph::newPort(), GPM_Graph::NULL_VERTEX, and tBoolean.

Here is the call graph for this function:

tBoolean GPM_PortGraph::addPortEdgeFromIds ( const int &  fromId,
const int &  toId,
const int &  fromPortId,
const int &  toPortId 
)
inlineinherited

add 2 ports with ids fromPortId, toPortId from vertex with id from to vertex with id to

void GPM_Graph::addSubGraph ( const GPM_Graph graph,
map< tVertexIID, tVertexIID > &  connections 
)
inherited

add sub graph

Parameters
graph:addinggraph
connectionsis the association between vertex of the sub graph to the corresponding vertex in graph This

References GPM_Graph::addEdge(), GPM_Graph::addVertex(), GPM_Vertex::copy(), GPM_GraphElement::copy(), GPM_Graph::generateEdgeId(), GPM_Graph::generateVertexId(), GPM_Graph::getEdge(), GPM_Graph::getEdges(), GPM_Graph::getVertex(), and GPM_Graph::getVertices().

Here is the call graph for this function:

tVertexIID GPM_Graph::addVertex ( SP::GPM_Vertex  vertex)
inherited

add vertex vertex with id

Parameters
INvertex: vertex to add
OUTiid: return the internal id of vertex

References GPM_Graph::generateVertexId(), VertexProperties::groupId, and VertexProperties::vertex.

Referenced by GPM_Graph::addNode(), GPM_PortGraph::addPort(), GPM_PortGraph::addPortEdgeFromIds(), GPM_Graph::addSubGraph(), GPM_Graph::copy(), and GPM_PortGraph::generateQuadGraph().

Here is the call graph for this function:

Here is the caller graph for this function:

void GPM_PortGraph::buildEnvironments ( map< tString, SP::GPM_Variable > &  nodeEnvironment,
map< tString, SP::GPM_Variable > &  portEnvironment,
map< tString, SP::GPM_Variable > &  edgeEnvironment 
) const
inherited
void GPM_Graph::clear ( )
inherited

clear the graph

Referenced by GPM_Graph::copy(), GPM_PortGraph::generateQuadGraph(), and GPM_Graph::~GPM_Graph().

Here is the caller graph for this function:

void GPM_PortGraph::clearPatternFunctions ( )
inlineinherited

clear pattern functions

void GPM_Graph::close ( )
inherited

close the graph

void GPM_Graph::copy ( const GPM_Graph graph)
virtualinherited
tBoolean GPM_2DSnowGraph::createPatternFunctions ( SV::GPM_PatternFunction &  patternFunctions) const

create the data for rewriting graph

References GPM_Snow2DFunction::New().

Here is the call graph for this function:

void GPM_Graph::executeTriggerActions ( CORE_Out io)
inherited

execute trigger actions

References CORE_Out::DEBUG_MSG, CORE_Out::println(), GPM_Graph::removeEdge(), GPM_Graph::removeVertex(), and CORE_Integer::toString().

Here is the call graph for this function:

tBoolean GPM_PortGraph::exportToCurveFile ( const tString fileName,
const tString title,
const tString XLabel,
const tString YLabel 
) const
virtualinherited

export to a curve file

Reimplemented from GPM_Graph.

References GPM_PortGraph::findSegments(), GPM_Vertex::getCoordinates(), GPM_Graph::getVertex(), and null.

Referenced by saveGraph().

Here is the call graph for this function:

Here is the caller graph for this function:

void GPM_PortGraph::findMesh ( const vector< tFlag > &  meshTypes,
vector< vector< tVertexIID > > &  geometries 
) const
inlineinherited

get all the geometries vertex <–> vertex without ports inside.

void GPM_PortGraph::findMesh ( const tFlag meshType,
vector< vector< tVertexIID > > &  geometries 
) const
inherited
void GPM_PortGraph::findSegments ( vector< vector< tVertexIID > > &  geometry) const
inherited

set the segments

References GPM_Graph::getConnectedVertices(), GPM_Graph::getEdges(), GPM_Graph::getEdgeVertices(), GPM_Graph::getVertex(), tBoolean, CORE_String::toString(), and tString.

Referenced by GPM_PortGraph::exportToCurveFile(), and GPM_PortGraph::findMesh().

Here is the call graph for this function:

Here is the caller graph for this function:

int GPM_Graph::generateEdgeId ( )
inherited

generate a edge id

Referenced by GPM_Graph::addEdge(), GPM_Graph::addEdgeFromIds(), and GPM_Graph::addSubGraph().

Here is the caller graph for this function:

void GPM_PortGraph::generateQuadGraph ( const int &  nTriangles,
const tBoolean withMiddle,
const int &  n,
const int &  m,
const tReal w,
const tReal h,
const tReal xmin,
const tReal ymin 
)
inherited

generate a quad graph of size nxm by nTriangles

Parameters
nTrianglesin [0,2,4]
withMiddle
  • if nTriangles==4 & withMiddle, the middle point is center of the 4 triangles
  • if nTriangles==4 & !withMiddle, only two triangles are drawing & the middle point is a fictive point
nnumber of point on the horizontal lines
mnumber of point on the vertical lines
wsize of the horizontal line. If (w==0) the coordinates is the index of the point
hsize of the horizontal line. If (h==0) the coordinates is the index of the point

References GPM_Graph::addEdge(), GPM_Graph::addNode(), GPM_Graph::addVertex(), GPM_Graph::clear(), GPM_Graph::getVertex(), GPM_Port::New(), GPM_Graph::newEdge(), null, GPM_Vertex::setCoordinates(), GPM_GraphElement::setGraph(), and tReal.

Here is the call graph for this function:

int GPM_Graph::generateVertexId ( )
inherited

generate a vertex id

Referenced by GPM_Graph::addNode(), GPM_Graph::addSubGraph(), and GPM_Graph::addVertex().

Here is the caller graph for this function:

static tString CORE_Object::getClassName ( const tString identityString)
inlinestaticinherited

return the class name of the object using only the identity string

Referenced by CORE_Object::printObjectsInMemory().

Here is the caller graph for this function:

tString CORE_Object::getClassName ( ) const
inherited

return the class name of the object

Returns
the class name of the object

References tString.

Referenced by CORE_Object::getIdentityString().

Here is the caller graph for this function:

void GPM_PortGraph::getConnectedNodesToPort ( const tVertexIID portIID,
tVertexIID sourceNode,
tVertexIID targetNode 
) const
inherited

get the 2 nodes connected to port ,with portIID internal id

References GPM_Graph::getConnectedVertices(), GPM_Graph::getVertex(), null, and GPM_Graph::NULL_VERTEX.

Referenced by GPMG_DrawPanel::getCoordinates().

Here is the call graph for this function:

Here is the caller graph for this function:

void GPM_Graph::getConnectedVertices ( const tVertexIID iid,
vector< tVertexIID > &  vertexIIDs 
) const
inherited

get the internal id vertices connected to vertex with internal iid

References GPM_Graph::NULL_VERTEX.

Referenced by GPM_PortGraph::findSegments(), GPM_PortGraph::getConnectedNodesToPort(), and GPMG_DrawPanel::getPopupMenu().

Here is the caller graph for this function:

int GPM_Graph::getDegree ( const tVertexIID id) const
inherited

get the edges number connected to vertex with id

References GPM_Graph::NULL_VERTEX.

tBoolean GPM_Graph::getEdge ( const tVertexIID e1,
const tVertexIID e2,
tEdgeIID iid 
) const
inherited
SP::GPM_Edge GPM_Graph::getEdge ( const tEdgeIID id)
inherited

get edge with id for writing

SPC::GPM_Edge GPM_Graph::getEdge ( const tEdgeIID id) const
inherited

get edge with id for reading

const GPM_Edge * GPM_Graph::getEdge ( const tVertexIID e1,
const tVertexIID e2 
) const
inherited

get edge between vertices e1 & e2

References GPM_Graph::getEdge(), and null.

Here is the call graph for this function:

GPM_Edge * GPM_Graph::getEdge ( const tVertexIID e1,
const tVertexIID e2 
)
inherited

get edge between vertices e1 & e2

References GPM_Graph::getEdge(), and null.

Here is the call graph for this function:

tBoolean GPM_Graph::getEdgeFromIds ( const int &  e1,
const int &  e2,
tEdgeIID iid 
) const
inlineinherited

get edge between vertices e1 & e2 (convenience method)

References GPM_Graph::getEdge(), and GPM_Graph::getVertexIID().

Here is the call graph for this function:

tBoolean GPM_Graph::getEdgeFromIds ( const int &  e1,
const int &  e2 
) const
inlineinherited

get edge between vertices e1 & e2 (convenience method)

References GPM_Graph::getEdge(), and GPM_Graph::getVertexIID().

Here is the call graph for this function:

int GPM_Graph::getEdgeId ( const tEdgeIID iid) const
inherited

get id of edge with internal id iid

References GPM_Graph::getEdge(), and null.

Here is the call graph for this function:

tBoolean GPM_Graph::getEdgeIID ( const int &  id,
tEdgeIID iid 
) const
inherited

get the internal id of edge with id (for convenience use)

Referenced by GPMG_DrawPanel::deleteEdge(), GPMG_RuleGraphDrawPanel::getPopupMenu(), and GPM_ModelFunction::readRulesFromFile().

Here is the caller graph for this function:

void GPM_Graph::getEdges ( vector< tEdgeIID > &  ids) const
inherited
void GPM_Graph::getEdges ( SV::GPM_Edge &  edges) const
inherited

get the index of edges of the graph

void GPM_Graph::getEdges ( const tVertexIID v,
vector< tEdgeIID > &  edges 
) const
inherited

get the edges from vertex v

References GPM_Graph::NULL_VERTEX.

int GPM_Graph::getEdgesNumber ( ) const
inherited

get the edges number

void GPM_Graph::getEdgeVertices ( const tEdgeIID id,
tVertexIID source,
tVertexIID target 
) const
inherited

get vertices of edges

Referenced by GPM_PortGraph::findSegments(), GPM_ModelFunction::readRulesFromFile(), and GPM_Graph::toString().

Here is the caller graph for this function:

const tGraph& GPM_Graph::getGraphImplement ( ) const
inlineinherited

get the graph implementation

Referenced by GPM_Graph::getPatterns(), GPM_PortGraph::isEdgeValid(), GPM_Graph::isIsomorph(), GPM_PortGraph::isValid(), and GPM_PrintCallback::operator()().

Here is the caller graph for this function:

tGraph& GPM_Graph::getGraphImplement ( )
inlineinherited

get the graph implementation

tString CORE_Object::getIdentityString ( ) const
inlineinherited

return the identity string of the object of the form className_at_address

Returns
the identity string of the object

References CORE_Object::getClassName(), CORE_Object::pointer2String(), and tString.

Referenced by CORE_Object::toString().

Here is the call graph for this function:

Here is the caller graph for this function:

int GPM_PortGraph::getIteration ( ) const
inlineinherited

get the prefix

int GPM_PortGraph::getIterationsMaxNumber ( ) const
inlineinherited

get the max iterations number

static ostream& CORE_Object::getOutput ( )
inlinestaticinherited

get output

tString GPM_PortGraph::getPath ( ) const
inlineinherited

get the path

SV::GPM_PatternFunction& GPM_PortGraph::getPatternFunctions ( )
inlineinherited

get the pattern functions

void GPM_Graph::getPatterns ( const GPM_Graph pattern,
const tBoolean isUpToAutomorphism,
const tFlag upToAutomorphismType,
vector< vector< tVertexIID > > &  homomorphisms,
CORE_Out io 
) const
inherited

get all the patterns in graph this thanks to homomorphism mappings pattern must be smaller

References GPM_Graph::getGraphImplement(), and VertexProperties::groupId.

Referenced by GPM_PortGraph::findMesh(), and GPM_Graph::getPatterns().

Here is the call graph for this function:

Here is the caller graph for this function:

void GPM_Graph::getPatterns ( SPC::GPM_Graph  pattern,
const tBoolean isUpToAutomorphism,
const tFlag upToAutomorphismType,
vector< vector< tVertexIID > > &  homomorphisms,
CORE_Out io 
) const
inlineinherited

get all the patterns in graph this thanks to homomorphism mappings pattern must be smaller

References GPM_Graph::getPatterns(), and null.

Here is the call graph for this function:

void GPM_Graph::getPatterns ( const GPM_Graph pattern,
vector< vector< tVertexIID > > &  homomorphisms,
CORE_Out io 
) const
inlineinherited

get all the patterns in graph this thanks to homomorphism mappings pattern must be smaller

References GPM_Graph::getPatterns().

Here is the call graph for this function:

void GPM_Graph::getPatterns ( SPC::GPM_Graph  pattern,
vector< vector< tVertexIID > > &  homomorphisms,
CORE_Out io 
) const
inlineinherited

get all the patterns in graph this thanks to homomorphism mappings pattern must be smaller

References GPM_Graph::getPatterns().

Here is the call graph for this function:

tString CORE_Object::getPointerAddress ( ) const
inlineinherited

return the identity string of the object

Returns
the identity string of the object

References CORE_Object::pointer2String().

Here is the call graph for this function:

tString GPM_PortGraph::getPrefix ( ) const
inlineinherited

get the prefix

void CORE_Object::getSharedPointer ( SP::CORE_Object &  p)
inlineinherited
void CORE_Object::getSharedPointer ( SPC::CORE_Object &  p) const
inlineinherited

get the shared pointer of this class into p

template<class T >
static tString CORE_Object::getTypeName ( )
inlinestaticinherited

get type name

References tString.

SP::GPM_Vertex GPM_Graph::getVertex ( const tVertexIID iid) const
inherited
int GPM_Graph::getVertexId ( const tVertexIID iid) const
inherited

get the id of vertex with internal id

References GPM_Graph::NULL_VERTEX.

Referenced by GPM_ModelFunction::readRulesFromFile().

Here is the caller graph for this function:

tVertexIID GPM_Graph::getVertexIID ( const int &  id) const
inherited
void GPM_Graph::getVertices ( vector< tVertexIID > &  vertexIIDs) const
inherited
void GPM_Graph::getVertices ( SV::GPM_Vertex &  vertexIIDs) const
inherited

get the internal id of all vertices

int GPM_Graph::getVerticesNumber ( ) const
inherited

the the vertices numbers

Referenced by GPM_Graph::isIsomorph(), and GPM_PrintCallback::operator()().

Here is the caller graph for this function:

void GPM_PortGraph::initGroupNames ( const vector< tString > &  nodeIds,
const vector< tString > &  portIds 
)
inherited

init group name

References GPM_Vertex::getGroupCoordinatesName(), GPM_GraphElement::getVariable(), GPM_Graph::getVertices(), null, GPM_GraphElement::setGroupName(), tString, and GPM_Graph::updateGroupId().

Referenced by GPM_PatternFunction::initGroupNames().

Here is the call graph for this function:

Here is the caller graph for this function:

void GPM_PortGraph::initGroupNames ( )
inlineinherited

init group name to type of the vertex

static tBoolean CORE_Object::is32Architecture ( )
inlinestaticinherited

return true if the machine is a 32 bits machine

References CORE_Object::is64Architecture().

Here is the call graph for this function:

tBoolean CORE_Object::is64Architecture ( )
staticinherited

return true if the machine is a 64 bits machine

Referenced by CORE_Object::is32Architecture().

Here is the caller graph for this function:

tString GPM_PortGraph::isEdgeValid ( const GPM_Vertex source,
const GPM_Vertex target,
tBoolean isValid 
) const
virtualinherited

return true if the 2 vectex can be connected by edge

References GPM_Graph::getGraphImplement(), GPM_GraphElement::getId(), GPM_Graph::getVertexIID(), null, tBoolean, and CORE_Integer::toString().

Referenced by GPMG_DrawPanel::addEdge().

Here is the call graph for this function:

Here is the caller graph for this function:

template<class T >
tBoolean CORE_Object::isInstanceOf ( ) const
inlineinherited

return true if the object is an instance of T

References null.

Referenced by MATH_BinaryOperator::insertInTree(), MATH_UnaryOperator::insertInTree(), and MATH_EndBlock::insertInTree().

Here is the caller graph for this function:

tBoolean GPM_Graph::isIsomorph ( const GPM_Graph g,
vector< tVertexIID > &  verticesMap,
CORE_Out io 
) const
inherited

return true if graph is isomorph

Parameters
g: graph to test the isomorphism whith g
verticesMap: return the mapping from this to g
iooutput device

References GPM_Graph::getGraphImplement(), GPM_Graph::getVerticesNumber(), vertexInvarientFunction::New(), and tBoolean.

Referenced by GPM_Graph::isIsomorph().

Here is the call graph for this function:

Here is the caller graph for this function:

tBoolean GPM_Graph::isIsomorph ( SPC::GPM_Graph  g,
vector< tVertexIID > &  verticesMap,
CORE_Out io 
) const
inlineinherited

return true if graph is isomorph

Parameters
g: graph to test the isomorphism whith g
verticesMap: return the mapping from this to g
iooutput device

References GPM_Graph::isIsomorph(), and null.

Here is the call graph for this function:

tBoolean GPM_Graph::isIsomorph ( SPC::GPM_Graph  g,
CORE_Out io 
) const
inlineinherited

return true if graph is isomorph

Parameters
g: graph to test the isomorphism whith g
iooutput device

References GPM_Graph::isIsomorph().

Here is the call graph for this function:

tBoolean GPM_Graph::isIsomorph ( const GPM_Graph g,
CORE_Out io 
) const
inlineinherited

return true if graph is isomorph

Parameters
g: graph to test the isomorphism whith g
iooutput device

References GPM_Graph::isIsomorph().

Here is the call graph for this function:

tBoolean GPM_PortGraph::isMappingValid ( const SV::GPM_Vertex &  smallGraphVertices,
const vector< tVertexIID > &  mapping,
CORE_Out io 
) const
virtualinherited

return true if the mapping is valid

Reimplemented from GPM_Graph.

References GPM_Graph::isMappingValid(), GPM_PortGraph::isValid(), null, and tBoolean.

Here is the call graph for this function:

tBoolean GPM_PortGraph::isValid ( ) const
virtualinherited

validate the graph

References GPM_Graph::getGraphImplement(), null, and tBoolean.

Referenced by GPM_PortGraph::isMappingValid().

Here is the call graph for this function:

Here is the caller graph for this function:

tBoolean GPM_Graph::loadFromFile ( const tString fileName,
CORE_Out io 
)
inherited

load graph from txt file

References tBoolean, and tString.

Referenced by GPM_PortGraph::loadGraph().

Here is the caller graph for this function:

tBoolean GPM_PortGraph::loadGraph ( const tString path,
const tString prefix,
const int &  nDigits,
const int &  iterations,
CORE_Out io,
tString fn 
)
virtualinherited

load the graph during running

Parameters
the name of the load file in path

References GPM_Graph::loadFromFile(), tBoolean, and CORE_Integer::toString().

Referenced by GPMG_Project::run().

Here is the call graph for this function:

Here is the caller graph for this function:

tBoolean GPM_Graph::merge ( const tVertexIID from,
const tVertexIID to,
CORE_Out io 
)
inherited

merge two vertex

Parameters
fromthe vertex to merge: it will be removed
tothe new vertex

References GPM_Graph::addEdge(), CORE_Out::ERROR_MSG, GPM_Graph::getEdge(), GPM_Graph::getVertex(), CORE_Out::println(), GPM_Graph::removeVertex(), tBoolean, and CORE_Integer::toString().

Here is the call graph for this function:

static SP::GPM_2DSnowGraph GPM_2DSnowGraph::New ( )
inlinestatic

create a test class

References GPM_2DSnowGraph().

Here is the call graph for this function:

virtual SP::GPM_Edge GPM_Graph::newEdge ( ) const
inlinevirtualinherited

get the edge internal id

Returns
false if the edge with id does not exists

update the edge internal ids after removing

create an edge

Reimplemented in GPM_ModelGraph.

References GPM_Edge::New().

Referenced by GPMG_RuleGraphDrawPanel::addEdge(), GPM_Graph::addEdge(), GPM_Graph::addEdgeFromIds(), GPM_PatternFunction::addPTEdgeToAdd(), GPM_PortGraph::generateQuadGraph(), and GPM_Graph::newInstance().

Here is the call graph for this function:

Here is the caller graph for this function:

virtual SP::GPM_Edge GPM_Graph::newEdge ( const int &  id) const
inlinevirtualinherited

create a node

Reimplemented in GPM_ModelGraph.

References GPM_Edge::New().

Here is the call graph for this function:

virtual SP::GPM_Edge GPM_Graph::newEdge ( SP::GPM_Vertex  source,
SP::GPM_Vertex  target 
) const
inlinevirtualinherited

create a node

Reimplemented in GPM_ModelGraph.

References GPM_Edge::New().

Here is the call graph for this function:

SP::GPM_GraphElement GPM_PortGraph::newInstance ( const tString className) const
virtualinherited

create a new instance of token

Reimplemented from GPM_Graph.

References GPM_Graph::newInstance(), GPM_PortGraph::newPort(), CORE_String::toLower(), and tString.

Here is the call graph for this function:

virtual SP::GPM_Node GPM_Graph::newNode ( ) const
inlinevirtualinherited

create a node

Reimplemented in GPM_ModelGraph.

References GPM_Node::New().

Referenced by GPM_Graph::addNode(), and GPM_Graph::newInstance().

Here is the call graph for this function:

Here is the caller graph for this function:

virtual SP::GPM_Port GPM_PortGraph::newPort ( ) const
inlinevirtualinherited

create a port

Reimplemented in GPM_ModelGraph.

References GPM_Port::New().

Referenced by GPM_PortGraph::addPortEdgeFromIds(), and GPM_PortGraph::newInstance().

Here is the call graph for this function:

Here is the caller graph for this function:

void CORE_Object::outputPrint ( const tString message)
staticinherited

print on output

References null, and CORE_Object::print().

Referenced by CORE_Exception::CORE_Exception().

Here is the call graph for this function:

Here is the caller graph for this function:

virtual void GPM_PortGraph::patternsMappingSignalEmit ( const SVC::GPM_PatternFunction  patternFunction,
const vector< vector< vector< tVertexIID > > > &  fmappings 
) const
inlineprotectedvirtualinherited

signal emmiting when the matching of patterns is done

Reimplemented in GPM_ConwayGraph, and GPM_ModelGraph.

tString CORE_Object::pointer2String ( const void *  obj)
staticinherited

return the string represantation of a pointer

References tString.

Referenced by CORE_Object::CORE_Object(), CORE_Object::getIdentityString(), CORE_Object::getPointerAddress(), and CORE_Object::~CORE_Object().

Here is the caller graph for this function:

virtual void CORE_Object::print ( )
inlinevirtualinherited

print the class

References CORE_Object::toString().

Referenced by CORE_Object::outputPrint(), CORE_Out::print(), CORE_Object::print(), CORE_Out::printInt(), CORE_Out::println(), CORE_Out::printReal(), CORE_Out::printString(), and CORE_Out::setAction().

Here is the call graph for this function:

Here is the caller graph for this function:

virtual ostream& CORE_Object::print ( ostream &  out) const
inlinevirtualinherited

print the class

References CORE_Object::print(), and CORE_Object::toString().

Here is the call graph for this function:

void CORE_Object::print ( const tString message)
virtualinherited

print the class

Reimplemented in CORE_Out.

References null, and CORE_Object::print().

Here is the call graph for this function:

void CORE_Object::print ( const tInteger str)
virtualinherited

print

References null.

void CORE_Object::print ( const tRelativeInteger str)
virtualinherited

print

References null.

void CORE_Object::print ( const tReal str)
virtualinherited

print

References null.

void CORE_Object::print ( const int &  str)
virtualinherited

print

References null.

static ostream& CORE_Object::print ( ostream &  out,
const tString message 
)
inlinestaticinherited

print the class

void GPM_Graph::printGroupId ( CORE_Out io) const
inherited

print the group id

References CORE_Out::DEBUG_MSG, VertexProperties::groupId, and CORE_Out::println().

Here is the call graph for this function:

void CORE_Object::printObjectsInMemory ( )
staticinherited

print object in memory

References CORE_Object::getClassName(), CORE_Object::getSharedPointer(), and CORE_Object::mIsMemoryTesting.

Referenced by main().

Here is the call graph for this function:

Here is the caller graph for this function:

tBoolean GPM_PortGraph::reduce ( int &  nReductions,
CORE_Out io 
)
virtualinherited

reduce the graph make on loop until one reduction is done return false if the reducing failed

Parameters
nReductionthe number of reductions

References tBoolean.

tBoolean GPM_Graph::removeEdge ( const tEdgeIID edgeId)
inherited

remove edge with id WARNING: the edgeIID of all the edges may changed !

Referenced by GPMG_DrawPanel::deleteEdge(), and GPM_Graph::executeTriggerActions().

Here is the caller graph for this function:

tBoolean GPM_Graph::removeEdges ( const tVertexIID vertexIID)
inherited

remove all edges from vertex with internal id WARNING: the edgeIID of all the edges may changed !

tBoolean GPM_Graph::removeEdges ( const tVertexIID form,
const tVertexIID to 
)
inherited

remove all edges from vertices from & to WARNING: the edgeIID of all the edges may changed !

References GPM_Graph::NULL_VERTEX.

void GPM_Graph::removeVertex ( const tVertexIID iid)
inherited

remove vertex with internal id: iid WARNING: the vertexIID of all the nodes may changed !

References GPM_Graph::NULL_VERTEX.

Referenced by GPMG_DrawPanel::deleteVertex(), GPM_Graph::executeTriggerActions(), and GPM_Graph::merge().

Here is the caller graph for this function:

tBoolean GPM_PortGraph::rewrite ( int &  nReductions,
CORE_Out io 
)
inlineinherited

rewrite the graph substitute the patterns by the graphs defined in PatternFunctions algorithm:

  • search the pattern in graph This thanks to a mapping. (notice that a mapping must only be between 2 vertices in the same group)

for each pattern, substitute it by Transformed graph into the large graph this & apply the pattern function for coordinates settings

  • reduce the graph this in order to remain a port graph

Referenced by GPMG_Project::run().

Here is the caller graph for this function:

tBoolean GPM_PortGraph::run ( CORE_Out io)
inherited

run the writer

References CORE_Out::ERROR_MSG, CORE_Out::println(), GPM_PortGraph::saveGraph(), tBoolean, and tString.

Here is the call graph for this function:

tBoolean GPM_PortGraph::run ( const tString path,
const tString prefix,
const int &  nMaxIterations,
CORE_Out io 
)
inlineinherited

run the writer

References run().

Here is the call graph for this function:

tBoolean GPM_2DSnowGraph::saveGraph ( const tString path,
const tString prefix,
const int &  nDigits,
const int &  iterations,
tString fn 
) const
protectedvirtual

save the graph during running

Reimplemented from GPM_PortGraph.

References GPM_PortGraph::exportToCurveFile(), GPM_PortGraph::saveGraph(), tBoolean, and CORE_Integer::toString().

Here is the call graph for this function:

tBoolean GPM_Graph::saveToFile ( const tString fileName) const
inherited

save graph to txt file

Referenced by GPMG_Project::saveData(), and GPM_PortGraph::saveGraph().

Here is the caller graph for this function:

void GPM_PortGraph::setIteration ( const int &  v)
inlineprotectedinherited

set the iteration

void GPM_PortGraph::setIterationsMaxNumber ( const int &  v)
inlineinherited

set the max iterations number

static void CORE_Object::setOutput ( ostream &  out)
inlinestaticinherited

set output

void GPM_PortGraph::setPath ( const tString path)
inlineinherited

set the path

void GPM_PortGraph::setPrefix ( const tString v)
inlineinherited

set the prefix

void CORE_Object::setThis ( SP::CORE_Object  p)
inlineprotectedinherited

set this weak shared pointer called toDoAfterThis setting method

References CORE_Object::toDoAfterThisSetting().

Here is the call graph for this function:

virtual void CORE_Object::setType ( tString  type)
inlineprotectedvirtualinherited
virtual void GPM_2DSnowGraph::toDoAfterThisSetting ( )
inlinevirtual

method called after this setting

Reimplemented from CORE_Object.

References CORE_Object::toDoAfterThisSetting().

Here is the call graph for this function:

tString GPM_Graph::toString ( ) const
virtualinherited

set the graph to string

Reimplemented from CORE_Object.

References GPM_Graph::getEdgeVertices(), GPM_Graph::getVertexIID(), CORE_Integer::toString(), and tString.

Here is the call graph for this function:

static void GPM_Object::turnBodyLineToText ( tString bdy)
inlinestaticinherited

brief turn the body from the line to text

References CORE_String::replaceAll().

Referenced by GPMG_Project::loadFromUIClass(), and GPM_ModelFunction::readRulesFromFile().

Here is the call graph for this function:

Here is the caller graph for this function:

static void GPM_Object::turnBodyTextToLine ( tString bdy)
inlinestaticinherited

brief turn the body from the text to line

References CORE_String::replaceAll().

Referenced by GPM_ModelFunction::saveRulesToFile(), and GPMG_Project::saveToUIClass().

Here is the call graph for this function:

Here is the caller graph for this function:

void GPM_PortGraph::updateGraphElementsEnvironment ( const map< tString, SP::GPM_Variable > &  nodeEnvironment,
const map< tString, SP::GPM_Variable > &  portEnvironment,
const map< tString, SP::GPM_Variable > &  edgeEnvironment 
)
inherited

update the environment of all graph elements (reverse method of build environments)

References GPM_Graph::getEdges(), GPM_Graph::getVertices(), null, and GPM_GraphElement::updateEnvironment().

Referenced by GPMG_Project::updateGraphsEnvironments().

Here is the call graph for this function:

Here is the caller graph for this function:

void GPM_Graph::updateGroupId ( )
inherited

update the group Id of all elements of graph

References VertexProperties::groupId, and VertexProperties::vertex.

Referenced by GPM_PortGraph::initGroupNames().

Here is the caller graph for this function:

Member Data Documentation

const tFlag GPM_PortGraph::HEXAHEDRON =8
staticinherited

Referenced by GPM_PortGraph::findMesh().

tBoolean CORE_Object::mIsMemoryTesting =false
staticinherited

indicator to store all classes created and deleted only for debuging version

Referenced by CORE_Object::CORE_Object(), main(), CORE_Object::printObjectsInMemory(), and CORE_Object::~CORE_Object().

const tVertexIID GPM_Graph::NULL_VERTEX =boost::graph_traits<tGraph>::null_vertex()
staticinherited
const tFlag GPM_PortGraph::PYRAMID =5
staticinherited

Referenced by GPM_PortGraph::findMesh().

const tFlag GPM_PortGraph::SEGMENT =2
staticinherited

Referenced by GPM_PortGraph::findMesh().

const tFlag GPM_PortGraph::TETRAHEDRON =4
staticinherited

Referenced by GPM_PortGraph::findMesh().

const tFlag GPM_PortGraph::TRIANGLE =3
staticinherited

Referenced by GPM_PortGraph::findMesh().

const tFlag GPM_Graph::UP_TO_AUTOMORPHISM_ALL =0
staticinherited
const tFlag GPM_Graph::UP_TO_AUTOMORPHISM_NODE =1
staticinherited
const tFlag GPM_Graph::UP_TO_AUTOMORPHISM_PORT =2
staticinherited
const tFlag GPM_PortGraph::WEDGE =6
staticinherited

Referenced by GPM_PortGraph::findMesh().


The documentation for this class was generated from the following files: