10 _optimizer(optimizer),
11 _vertexTag(vertexTag),
34 int depth=(int) distance;
41 parentStar->
_gauge.insert(vParent);
47 if (depth && ! (depth%
_step )){
58 VertexStarMap::iterator it=
_vsMap.find(v);
62 _vsMap.insert(make_pair(v,s));
69 VertexStarMap::iterator it=
_vsMap.find(v);
77 HyperGraph::EdgeSet::iterator it=
_freeEdges.find(e);
81 for (
size_t i=0; i<e->
vertices().size(); i++){
virtual double perform(HyperGraph::Vertex *v, HyperGraph::Vertex *vParent, HyperGraph::Edge *e, double distance)
static Factory * instance()
return the instance
HyperGraph::EdgeSet _lowLevelEdges
edges in the lower level
VertexStarMultimap _vsMmap
int level() const
returns the level of the edge
SparseOptimizer * _optimizer
void init()
initializes the visit and clears the internal structures
const VertexContainer & vertices() const
const std::string & tag(const HyperGraph::HyperGraphElement *v) const
return the TAG given a vertex
const EdgeSet & edges() const
HyperGraph::VertexSet _lowLevelVertices
vertices that are fixed (center of the star)
HyperGraph::VertexSet _gauge
vertices that are fixed (center of the star)
Star * getStar(HyperGraph::Vertex *v)
A general case Vertex for optimization.
abstract Vertex, your types must derive from that one
HyperGraph::EdgeSet _freeEdges
BackBoneTreeAction(SparseOptimizer *optimizer, std::string vertexTag, int level, int step)
void addToMap(Star *s, HyperGraph::Vertex *v)
bool fillStar(Star *s, HyperGraph::Edge *e_)
helper function that adds to a star an edge and all its vertices