![]() |
MAGiC
V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
|
#include <hypergraphlib_arc.h>
Types publics | |
typedef std::multimap< int, Node * > | MultimapNodesById |
typedef std::pair< int, Node * > | Int_Node_Pair |
Fonctions membres publiques | |
Arc (Graph *__owner, int __id) | |
Arc (Graph *__owner, int __id, const std::vector< int > &__nodesId) | |
Arc (const Arc &, Graph *__owner=0) | |
~Arc () | |
MultimapNodesById & | Nodes () |
void | Add (Node *) |
int | Remove (int __id) |
int | Remove (Node *__node) |
int | Rank () const |
int | NodeCount (int) const |
Node * | First () const |
Node * | Last () const |
bool | IsLoopOfNode (int __NodeId) |
bool | IsLoop () |
![]() | |
GraphObject (const Graph *__owner, const int __id) | |
GraphObject (const GraphObject &, const Graph *__owner) | |
int | Id () const |
const Graph * | Owner () const |
void * | GetUserData () const |
void | SetUserData (void *) |
void * | GetUserData (unsigned i) const |
void | SetUserData (unsigned i, void *) |
Attributs privés | |
MultimapNodesById | _nodes |
Membres hérités additionnels | |
![]() | |
const Graph * | _owner |
const int | _id |
std::map< int, void * > | _userData |
Définition à la ligne 37 du fichier hypergraphlib_arc.h.
typedef std::pair< int, Node * > HypergraphLib::Arc::Int_Node_Pair |
Définition à la ligne 40 du fichier hypergraphlib_arc.h.
typedef std::multimap< int, Node * > HypergraphLib::Arc::MultimapNodesById |
Définition à la ligne 39 du fichier hypergraphlib_arc.h.
HypergraphLib::Arc::Arc | ( | Graph * | __owner, |
int | __id | ||
) |
Constructs an empty Arc
Définition à la ligne 34 du fichier hypergraphlib_arc.cpp.
HypergraphLib::Arc::Arc | ( | Graph * | __owner, |
int | __id, | ||
const std::vector< int > & | __nodesId | ||
) |
Constructor taking the graph, the arc's ID, and the array of node IDs of the arc
Copy constructor
Définition à la ligne 39 du fichier hypergraphlib_arc.cpp.
Références _nodes, HypergraphLib::GraphObject::_owner, Add(), et HypergraphLib::Graph::GetNode().
HypergraphLib::Arc::~Arc | ( | ) |
Définition à la ligne 54 du fichier hypergraphlib_arc.cpp.
void HypergraphLib::Arc::Add | ( | Node * | __node | ) |
Adds one node to the arc
Définition à la ligne 59 du fichier hypergraphlib_arc.cpp.
Références _nodes, et HypergraphLib::GraphObject::Id().
Référencé par Arc(), CAD4FE::MCBody::ContractEdgeToVertex(), HypergraphLib::Graph::Graph(), CAD4FE::ShortestPath::InitializeAdjacencyGraph(), CAD4FE::MCBody::MergeVertices(), et CAD4FE::MCBody::SplitEdge().
Node * HypergraphLib::Arc::First | ( | ) | const |
Returns the first node in the arc
Définition à la ligne 102 du fichier hypergraphlib_arc.cpp.
Références _nodes.
Référencé par IsLoop(), et CAD4FE::MCBody::SuppressMCEdge().
bool HypergraphLib::Arc::IsLoop | ( | ) |
Returns wether this arc is a simple loop : has rank = 2 and 2 times the same node
Définition à la ligne 120 du fichier hypergraphlib_arc.cpp.
Références _nodes, First(), et Last().
Référencé par CAD4FE::MCBody::ExportBRep(), CAD4FE::VertexCriteria::GetScore(), CAD4FE::MCBody::SuppressMCEdge(), et CAD4FE::VertexCriteria::Update().
bool HypergraphLib::Arc::IsLoopOfNode | ( | int | __NodeId | ) |
Returns wether this arc is a loop of the node X
Définition à la ligne 115 du fichier hypergraphlib_arc.cpp.
Références NodeCount().
Référencé par CAD4FE::MCBody::ContractEdgeToVertex(), et CAD4FE::MCBody::Face_GetCycles().
Node * HypergraphLib::Arc::Last | ( | ) | const |
Returns the last node in the arc
Définition à la ligne 108 du fichier hypergraphlib_arc.cpp.
Références _nodes.
Référencé par IsLoop().
int HypergraphLib::Arc::NodeCount | ( | int | __id | ) | const |
Returns the number of ocurences of the specified node in this arc : this function will return "2" if it is a loop on this node
Définition à la ligne 92 du fichier hypergraphlib_arc.cpp.
Références _nodes.
Référencé par IsLoopOfNode().
Arc::MultimapNodesById & HypergraphLib::Arc::Nodes | ( | ) |
Returns the array of nodes of the arc
Définition à la ligne 97 du fichier hypergraphlib_arc.cpp.
Références _nodes.
Référencé par HypergraphLib::Node::AdjacentNodes(), CAD4FE::MCBody::ContractEdgeToVertex(), HypergraphLib::dfsCycle(), HypergraphLib::Dijkstra(), HypergraphLib::Graph::DuplicateArc(), CAD4FE::MCBody::Edge_GetAdjacentFaces(), HypergraphLib::Filaments(), HypergraphLib::Node::GetNbArcsToNode(), HypergraphLib::Graph::Graph(), HypergraphLib::Node::IsAdjacentToNode(), CAD4FE::MCBody::MergeVertices(), CAD4FE::MCAA::Node_Segment_Same_Face(), HypergraphLib::Graph::RemoveArc(), CAD4FE::MCAA::SplitEdge(), CAD4FE::MCBody::SplitEdge(), CAD4FE::MCBody::SuppressMCEdge(), et CAD4FE::MCBody::SuppressMCVertex().
int HypergraphLib::Arc::Rank | ( | ) | const |
Returns the rank of this node
Définition à la ligne 87 du fichier hypergraphlib_arc.cpp.
Références _nodes.
Référencé par CAD4FE::ShortestPathByClosestPointOnEdge::ComputeDistance(), CAD4FE::LocalEdgeCriteria::DeletionScore(), CAD4FE::EdgeCollapseCriteria::GetScore(), CAD4FE::VertexCriteria::GetScore(), CAD4FE::MCBody::SplitEdge(), CAD4FE::MCBody::SuppressMCVertex(), et CAD4FE::VertexCriteria::Update().
int HypergraphLib::Arc::Remove | ( | int | __id | ) |
Removes one occurence of the node ID in this arc Returns 1 if one occurence was found, but 0 if no occurences were found
Définition à la ligne 69 du fichier hypergraphlib_arc.cpp.
Références _nodes.
Référencé par Remove(), et HypergraphLib::Graph::RemoveArc().
int HypergraphLib::Arc::Remove | ( | Node * | __node | ) |
Définition à la ligne 64 du fichier hypergraphlib_arc.cpp.
Références HypergraphLib::GraphObject::Id(), et Remove().
|
private |