bpp-core3  3.0.0
bpp::AssociationDAGraphObserver< N, E > Class Template Referenceabstract

Defines a DA Graph Associator. It is a template which follows (subscribed to) a Graph. More...

#include <Bpp/Graph/AssociationDAGraphObserver.h>

+ Inheritance diagram for bpp::AssociationDAGraphObserver< N, E >:
+ Collaboration diagram for bpp::AssociationDAGraphObserver< N, E >:

Public Types

typedef AssociationDAGraphObserver< N, E >::NodeIndex NodeIndex
 
typedef AssociationDAGraphObserver< N, E >::EdgeIndex EdgeIndex
 
typedef DAGraph::NodeId NodeGraphid
 
typedef DAGraph::EdgeId EdgeGraphid
 
typedef AssociationGraphObserver< N, E >::NodeIterator NodeIterator
 
typedef AssociationGraphObserver< N, E >::EdgeIterator EdgeIterator
 

Public Member Functions

virtual bool isValid () const =0
 
virtual bool isRooted () const =0
 
virtual void rootAt (const std::shared_ptr< N > root)=0
 Sets the root and make the DAG directed from root to leaves. More...
 
virtual std::vector< std::shared_ptr< N > > getFathers (const std::shared_ptr< N > node) const =0
 
virtual std::vector< NodeIndexgetFathers (const NodeIndex node) const =0
 
virtual bool hasFather (const std::shared_ptr< N > nodeObject) const =0
 
virtual bool hasFather (const NodeIndex node) const =0
 
virtual std::vector< std::shared_ptr< N > > getSons (const std::shared_ptr< N > node) const =0
 
virtual std::vector< NodeIndexgetSons (const NodeIndex node) const =0
 
virtual std::shared_ptr< N > getSon (const std::shared_ptr< E > edge) const =0
 
virtual NodeIndex getSon (const EdgeIndex edge) const =0
 
virtual std::shared_ptr< N > getFatherOfEdge (const std::shared_ptr< E > edge) const =0
 
virtual NodeIndex getFatherOfEdge (const EdgeIndex edge) const =0
 
virtual size_t getNumberOfSons (const std::shared_ptr< N > node) const =0
 
virtual size_t getNumberOfFathers (const std::shared_ptr< N > node) const =0
 
virtual std::vector< std::shared_ptr< N > > getLeavesUnderNode (std::shared_ptr< N > node) const =0
 
virtual std::vector< std::shared_ptr< N > > removeSons (const std::shared_ptr< N > node)=0
 
virtual void removeSon (const std::shared_ptr< N > node, const std::shared_ptr< N > son)=0
 
virtual void addSon (const std::shared_ptr< N > nodeObject, const std::shared_ptr< N > sonNodeObject, const std::shared_ptr< E > edgeObject=0)=0
 
virtual std::vector< std::shared_ptr< N > > removeFathers (const std::shared_ptr< N > node)=0
 
virtual void removeFather (const std::shared_ptr< N > node, const std::shared_ptr< N > father)=0
 
virtual void addFather (const std::shared_ptr< N > nodeObject, const std::shared_ptr< N > fatherNodeObject, const std::shared_ptr< E > edgeObject=0)=0
 
virtual std::unique_ptr< NodeIteratorsonsIterator (std::shared_ptr< N > node)=0
 
virtual std::unique_ptr< NodeIteratorsonsIterator (std::shared_ptr< N > node) const =0
 
virtual std::unique_ptr< NodeIteratorfathersIterator (std::shared_ptr< N > node)=0
 
virtual std::unique_ptr< NodeIteratorfathersIterator (std::shared_ptr< N > node) const =0
 
virtual std::vector< std::shared_ptr< N > > getBelowNodes (const std::shared_ptr< N > localRoot)=0
 Get Below Objects. More...
 
virtual std::vector< std::shared_ptr< E > > getBelowEdges (const std::shared_ptr< N > localRoot)=0
 
virtual Clonableclone () const =0
 Create a copy of this object and send a pointer to it. More...
 
Graph Relations Management

Modificating the structure of the graph.

virtual void createNode (std::shared_ptr< N > newNodeObject)=0
 
virtual void createNode (std::shared_ptr< N > objectOriginNode, std::shared_ptr< N > newNodeObject, std::shared_ptr< E > newEdgeObject=00)=0
 
virtual void link (std::shared_ptr< N > nodeObjectA, std::shared_ptr< N > nodeObjectB, std::shared_ptr< E > edgeObject=00)=0
 
virtual void unlink (std::shared_ptr< N > nodeObjectA, std::shared_ptr< N > nodeObjectB)=0
 
virtual void deleteNode (std::shared_ptr< N > nodeObject)=0
 
Object Association

Associate or dissociate N and E objects to pre-existing Graph Nodes and Graph Edges

virtual void associateNode (std::shared_ptr< N > nodeObject, NodeGraphid node)=0
 
virtual void associateEdge (std::shared_ptr< E > edgeObject, EdgeGraphid edge)=0
 
virtual void dissociateNode (std::shared_ptr< N > nodeObject)=0
 
virtual void dissociateEdge (std::shared_ptr< E > edgeObject)=0
 
virtual NodeGraphid getNodeGraphid (const std::shared_ptr< N > nodeObject) const =0
 
virtual EdgeGraphid getEdgeGraphid (const std::shared_ptr< E > edgeObject) const =0
 
virtual const std::shared_ptr< N > getNodeFromGraphid (NodeGraphid) const =0
 
virtual std::shared_ptr< N > getNodeFromGraphid (NodeGraphid)=0
 
virtual std::vector< std::shared_ptr< N > > getNodesFromGraphid (std::vector< NodeGraphid >) const =0
 
virtual std::shared_ptr< E > getEdgeFromGraphid (EdgeGraphid)=0
 
virtual const std::shared_ptr< E > getEdgeFromGraphid (EdgeGraphid) const =0
 
virtual std::vector< std::shared_ptr< E > > getEdgesFromGraphid (std::vector< EdgeGraphid >) const =0
 
virtual std::shared_ptr< N > getRoot () const =0
 
virtual NodeIndex getRootIndex () const =0
 
Object Indexation

Get or set indexes to nodes and edges

virtual bool hasNodeIndex (const std::shared_ptr< N > nodeObject) const =0
 return if the object has an index. More...
 
virtual bool hasEdgeIndex (const std::shared_ptr< E > edgeObject) const =0
 
virtual NodeIndex getNodeIndex (const std::shared_ptr< N > nodeObject) const =0
 
virtual std::vector< NodeIndexgetNodeIndexes (std::vector< std::shared_ptr< N >> nodeObjects) const =0
 
virtual EdgeIndex getEdgeIndex (const std::shared_ptr< E > edgeObject) const =0
 
virtual std::vector< EdgeIndexgetEdgeIndexes (std::vector< std::shared_ptr< E >> edgeObjects) const =0
 
virtual NodeIndex setNodeIndex (const std::shared_ptr< N > nodeObject, NodeIndex index)=0
 
virtual EdgeIndex setEdgeIndex (const std::shared_ptr< E > edgeObject, EdgeIndex index)=0
 
virtual bool hasNode (NodeIndex nodeIndex) const =0
 
virtual bool hasEdge (EdgeIndex edgeIndex) const =0
 
virtual std::shared_ptr< N > getNode (NodeIndex nodeIndex) const =0
 
virtual std::shared_ptr< E > getEdge (EdgeIndex edgeIndex) const =0
 
Iterator interface on Nodes
virtual std::unique_ptr< NodeIteratorallNodesIterator ()=0
 
virtual std::unique_ptr< NodeIteratorallNodesIterator () const =0
 
virtual std::unique_ptr< NodeIteratoroutgoingNeighborNodesIterator (std::shared_ptr< N > node)=0
 
virtual std::unique_ptr< NodeIteratoroutgoingNeighborNodesIterator (std::shared_ptr< N > node) const =0
 
virtual std::unique_ptr< NodeIteratorincomingNeighborNodesIterator (std::shared_ptr< N > node)=0
 
virtual std::unique_ptr< NodeIteratorincomingNeighborNodesIterator (std::shared_ptr< N > node) const =0
 
virtual std::vector< std::shared_ptr< N > > getNeighbors (const std::shared_ptr< N > node) const =0
 
virtual std::vector< NodeIndexgetNeighbors (NodeIndex node) const =0
 
virtual std::vector< std::shared_ptr< E > > getEdges (const std::shared_ptr< N > node) const =0
 
virtual std::vector< EdgeIndexgetEdges (NodeIndex node) const =0
 
virtual std::vector< std::shared_ptr< N > > getOutgoingNeighbors (const std::shared_ptr< N > node) const =0
 
virtual std::vector< NodeIndexgetOutgoingNeighbors (NodeIndex node) const =0
 
virtual std::vector< std::shared_ptr< E > > getOutgoingEdges (const std::shared_ptr< N > node) const =0
 
virtual std::vector< EdgeIndexgetOutgoingEdges (NodeIndex node) const =0
 
virtual std::vector< std::shared_ptr< N > > getIncomingNeighbors (const std::shared_ptr< N > node) const =0
 
virtual std::vector< NodeIndexgetIncomingNeighbors (NodeIndex node) const =0
 
virtual std::vector< std::shared_ptr< E > > getIncomingEdges (const std::shared_ptr< N > node) const =0
 
virtual std::vector< EdgeIndexgetIncomingEdges (NodeIndex node) const =0
 
virtual std::vector< std::shared_ptr< N > > getLeavesFromNode (std::shared_ptr< N > node, unsigned int maxDepth) const =0
 
virtual std::vector< std::shared_ptr< N > > getAllLeaves () const =0
 
virtual std::vector< NodeIndexgetAllLeavesIndexes () const =0
 
virtual std::vector< std::shared_ptr< N > > getAllInnerNodes () const =0
 
virtual std::vector< NodeIndexgetAllInnerNodesIndexes () const =0
 
virtual std::vector< std::shared_ptr< N > > getAllNodes () const =0
 
virtual std::vector< NodeIndexgetAllNodesIndexes () const =0
 
Iterator interface on Edges
virtual std::unique_ptr< EdgeIteratorallEdgesIterator ()=0
 
virtual std::unique_ptr< EdgeIteratoroutgoingEdgesIterator (std::shared_ptr< N > node)=0
 
virtual std::unique_ptr< EdgeIteratorincomingEdgesIterator (std::shared_ptr< N > node)=0
 
virtual std::vector< std::shared_ptr< E > > getAllEdges () const =0
 
virtual std::vector< EdgeIndexgetAllEdgesIndexes () const =0
 
virtual std::shared_ptr< E > getEdgeLinking (std::shared_ptr< N > nodeA, std::shared_ptr< N > nodeB) const =0
 
virtual void setEdgeLinking (std::shared_ptr< N > nodeA, std::shared_ptr< N > nodeB, std::shared_ptr< E > edge)=0
 
Function called by the subjectGraph

Methods called by the subject graph to make this observer so fit the subject graph

virtual void deletedEdgesUpdate (const std::vector< unsigned int > &edgesToDelete)=0
 
virtual void deletedNodesUpdate (const std::vector< unsigned int > &nodesToDelete)=0
 

Static Public Member Functions

template<class A , class B >
static B * copy (const A &a, typename std::enable_if< !std::is_base_of< B, A >::value &&!std::is_abstract< B >::value, B *>::type *=0)
 
template<class A , class B >
static B * copy (const A &a, typename std::enable_if< !std::is_base_of< B, A >::value &&std::is_abstract< B >::value, B *>::type *=0)
 
template<class A , class B >
static B * copy (const A &a, typename std::enable_if< std::is_base_of< B, A >::value &&!std::is_abstract< A >::value, B *>::type *=0)
 
template<class A , class B >
static B * copy (const A &a, typename std::enable_if< std::is_base_of< B, A >::value &&std::is_abstract< A >::value &&std::is_base_of< Clonable, A >::value, B *>::type *=0)
 
template<class A , class B >
static B * copy (const A &a, typename std::enable_if< std::is_base_of< B, A >::value &&std::is_abstract< A >::value &&!std::is_base_of< Clonable, A >::value, B *>::type *=0)
 

Detailed Description

template<class N, class E>
class bpp::AssociationDAGraphObserver< N, E >

Defines a DA Graph Associator. It is a template which follows (subscribed to) a Graph.

Author
Laurent Guéguen

Definition at line 27 of file AssociationDAGraphObserver.h.

Member Typedef Documentation

◆ EdgeGraphid

template<class N , class E >
typedef DAGraph::EdgeId bpp::AssociationDAGraphObserver< N, E >::EdgeGraphid

Definition at line 35 of file AssociationDAGraphObserver.h.

◆ EdgeIndex

template<class N , class E >
typedef AssociationDAGraphObserver<N, E>::EdgeIndex bpp::AssociationDAGraphObserver< N, E >::EdgeIndex

Definition at line 32 of file AssociationDAGraphObserver.h.

◆ EdgeIterator

template<class N , class E >
typedef AssociationGraphObserver<N, E>::EdgeIterator bpp::AssociationDAGraphObserver< N, E >::EdgeIterator

Definition at line 190 of file AssociationDAGraphObserver.h.

◆ NodeGraphid

template<class N , class E >
typedef DAGraph::NodeId bpp::AssociationDAGraphObserver< N, E >::NodeGraphid

Definition at line 34 of file AssociationDAGraphObserver.h.

◆ NodeIndex

template<class N , class E >
typedef AssociationDAGraphObserver<N, E>::NodeIndex bpp::AssociationDAGraphObserver< N, E >::NodeIndex

Definition at line 31 of file AssociationDAGraphObserver.h.

◆ NodeIterator

template<class N , class E >
typedef AssociationGraphObserver<N, E>::NodeIterator bpp::AssociationDAGraphObserver< N, E >::NodeIterator

Iterators

Definition at line 189 of file AssociationDAGraphObserver.h.

Member Function Documentation

◆ addFather()

template<class N , class E >
virtual void bpp::AssociationDAGraphObserver< N, E >::addFather ( const std::shared_ptr< N >  nodeObject,
const std::shared_ptr< N >  fatherNodeObject,
const std::shared_ptr< E >  edgeObject = 0 
)
pure virtual

Add a father to a node

Parameters
nodeObjectthe concerned node
fatherNodeObjectthe node to be added as a father to the node
edgeObjectthe optional edge between the nodes (default = 00)

Implemented in bpp::AssociationDAGraphImplObserver< N, E, DAGraphImpl >.

◆ addSon()

template<class N , class E >
virtual void bpp::AssociationDAGraphObserver< N, E >::addSon ( const std::shared_ptr< N >  nodeObject,
const std::shared_ptr< N >  sonNodeObject,
const std::shared_ptr< E >  edgeObject = 0 
)
pure virtual

Add a son to a node

Parameters
nodeObjectthe concerned node
sonNodeObjectthe node to be added as a son to the father
edgeObjectthe optional edge between the nodes (default = 0)

Implemented in bpp::AssociationDAGraphImplObserver< N, E, DAGraphImpl >.

◆ allEdgesIterator()

◆ allNodesIterator() [1/2]

◆ allNodesIterator() [2/2]

template<class N, class E>
virtual std::unique_ptr<NodeIterator> bpp::AssociationGraphObserver< N, E >::allNodesIterator ( ) const
pure virtualinherited

◆ associateEdge()

template<class N, class E>
virtual void bpp::AssociationGraphObserver< N, E >::associateEdge ( std::shared_ptr< E >  edgeObject,
EdgeGraphid  edge 
)
pure virtualinherited

Associate a E object to an edge in the graph.

Parameters
edgeObjectobject to associate
edgeexisting edge to be associated

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::copy().

◆ associateNode()

template<class N, class E>
virtual void bpp::AssociationGraphObserver< N, E >::associateNode ( std::shared_ptr< N >  nodeObject,
NodeGraphid  node 
)
pure virtualinherited

Associate a N object to a node in the graph.

Parameters
nodeObjectobject to associate
nodeexisting node to be associated

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::copy().

◆ clone()

virtual Clonable* bpp::Clonable::clone ( ) const
pure virtualinherited

Create a copy of this object and send a pointer to it.

Returns
A pointer toward the copy object.

Implemented in bpp::TestFunction, bpp::InfinityDerivableSecondOrderWrapper, bpp::InfinityDerivableFirstOrderWrapper, bpp::InfinityFunctionWrapper, bpp::LinearMatrix< Scalar >, bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >, bpp::StdErr, bpp::FunctionStopCondition, bpp::ColMatrix< Scalar >, bpp::PlaceboTransformedParameter, bpp::StdOut, bpp::GlobalGraph, bpp::ParametersStopCondition, bpp::StlOutputStreamWrapper, bpp::ReparametrizationDerivableSecondOrderWrapper, bpp::IntervalTransformedParameter, bpp::MetaOptimizer, bpp::IntervalConstraint, bpp::BppUnsignedInteger, bpp::StlOutputStream, bpp::SecondOrderDerivable, bpp::LogsumHmmLikelihood, bpp::RescaledHmmLikelihood, bpp::ReparametrizationDerivableFirstOrderWrapper, bpp::BppInteger, bpp::RowMatrix< Scalar >, bpp::RowMatrix< double >, bpp::RowMatrix< Real >, bpp::Parameter, bpp::Simplex, bpp::LowMemoryRescaledHmmLikelihood, bpp::Table< T >, bpp::AbstractNumericalDerivative, bpp::BppDouble, bpp::RTransformedParameter, bpp::NullOutputStream, bpp::ParametrizableCollection< N >, bpp::FirstOrderDerivable, bpp::OptimizerInterface, bpp::AssociationTreeGraphImplObserver< N, E, TreeGraphImpl >, bpp::AssociationDAGraphImplObserver< N, E, DAGraphImpl >, bpp::ThreePointsNumericalDerivative, bpp::DirichletDiscreteDistribution, bpp::SimpleDiscreteDistribution, bpp::DownhillSimplexMethod, bpp::Number< T >, bpp::Number< double >, bpp::Number< int >, bpp::Number< unsigned int >, bpp::FivePointsNumericalDerivative, bpp::ReparametrizationFunctionWrapper, bpp::DataTable, bpp::PrincipalComponentAnalysis, bpp::DualityDiagram, bpp::TruncatedExponentialDiscreteDistribution, bpp::MetaOptimizerInfos, bpp::BrentOneDimension, bpp::NewtonBacktrackOneDimension, bpp::FunctionOperator< F >, bpp::AutoParameter, bpp::GammaDiscreteDistribution, bpp::MixtureOfDiscreteDistributions, bpp::AliasParameterListener, bpp::Range< T >, bpp::PowellMultiDimensions, bpp::InvariantMixedDiscreteDistribution, bpp::TwoPointsNumericalDerivative, bpp::ParameterListener, bpp::OutputStream, bpp::GoldenSectionSearch, bpp::DirectionFunction, bpp::Point2D< T >, bpp::BetaDiscreteDistribution, bpp::ExponentialDiscreteDistribution, bpp::ParameterList, bpp::CorrespondenceAnalysis, bpp::HmmLikelihood, bpp::GaussianDiscreteDistribution, bpp::BfgsMultiDimensions, bpp::NewtonBacktrackOneDimension::NBODStopCondition, bpp::FullHmmTransitionMatrix, bpp::BppNotANumber, bpp::UniformDiscreteDistribution, bpp::ContingencyTableTest, bpp::Font, bpp::ConstantDistribution, bpp::DiscreteDistributionInterface, bpp::MultipleDiscreteDistribution, bpp::DownhillSimplexMethod::DSMStopCondition, bpp::MathOperator, bpp::BrentOneDimension::BODStopCondition, bpp::ConjugateGradientMultiDimensions, bpp::OptimizationStopCondition, bpp::AutoCorrelationTransitionMatrix, bpp::ParameterEvent, bpp::ComputationTree, bpp::GoldenSectionSearch::GSSStopCondition, bpp::PowellMultiDimensions::PMDStopCondition, bpp::ConstraintInterface, bpp::HmmStateAlphabet, bpp::RGBColor, bpp::SimpleMultiDimensions, bpp::SimpleNewtonMultiDimensions, bpp::HmmEmissionProbabilities, bpp::BinaryOperator, bpp::BppVector< T >, bpp::TransformedParameter, bpp::BppString, bpp::ConstantOperator, bpp::NegativeOperator, bpp::HmmTransitionMatrix, bpp::BppNumberI, bpp::BppBoolean, and bpp::NewtonOneDimension.

Referenced by bpp::FirstOrderDerivable::~FirstOrderDerivable(), and bpp::SecondOrderDerivable::~SecondOrderDerivable().

◆ copy() [1/5]

template<class N, class E>
template<class A , class B >
static B* bpp::AssociationGraphObserver< N, E >::copy ( const A &  a,
typename std::enable_if< !std::is_base_of< B, A >::value &&!std::is_abstract< B >::value, B *>::type *  = 0 
)
inlinestaticinherited

Specific copy of A and B objects, if clonable or not.

Definition at line 45 of file AssociationGraphObserver.h.

◆ copy() [2/5]

template<class N, class E>
template<class A , class B >
static B* bpp::AssociationGraphObserver< N, E >::copy ( const A &  a,
typename std::enable_if< !std::is_base_of< B, A >::value &&std::is_abstract< B >::value, B *>::type *  = 0 
)
inlinestaticinherited

Definition at line 51 of file AssociationGraphObserver.h.

◆ copy() [3/5]

template<class N, class E>
template<class A , class B >
static B* bpp::AssociationGraphObserver< N, E >::copy ( const A &  a,
typename std::enable_if< std::is_base_of< B, A >::value &&!std::is_abstract< A >::value, B *>::type *  = 0 
)
inlinestaticinherited

Definition at line 58 of file AssociationGraphObserver.h.

◆ copy() [4/5]

template<class N, class E>
template<class A , class B >
static B* bpp::AssociationGraphObserver< N, E >::copy ( const A &  a,
typename std::enable_if< std::is_base_of< B, A >::value &&std::is_abstract< A >::value &&std::is_base_of< Clonable, A >::value, B *>::type *  = 0 
)
inlinestaticinherited

Definition at line 64 of file AssociationGraphObserver.h.

◆ copy() [5/5]

template<class N, class E>
template<class A , class B >
static B* bpp::AssociationGraphObserver< N, E >::copy ( const A &  a,
typename std::enable_if< std::is_base_of< B, A >::value &&std::is_abstract< A >::value &&!std::is_base_of< Clonable, A >::value, B *>::type *  = 0 
)
inlinestaticinherited

Definition at line 70 of file AssociationGraphObserver.h.

References bpp::AssociationGraphObserver< N, E >::associateEdge(), bpp::AssociationGraphObserver< N, E >::associateNode(), bpp::AssociationGraphObserver< N, E >::createNode(), bpp::AssociationGraphObserver< N, E >::deleteNode(), bpp::AssociationGraphObserver< N, E >::dissociateEdge(), bpp::AssociationGraphObserver< N, E >::dissociateNode(), bpp::AssociationGraphObserver< N, E >::getEdge(), bpp::AssociationGraphObserver< N, E >::getEdgeFromGraphid(), bpp::AssociationGraphObserver< N, E >::getEdgeGraphid(), bpp::AssociationGraphObserver< N, E >::getEdgeIndex(), bpp::AssociationGraphObserver< N, E >::getEdgeIndexes(), bpp::AssociationGraphObserver< N, E >::getEdgesFromGraphid(), bpp::AssociationGraphObserver< N, E >::getNode(), bpp::AssociationGraphObserver< N, E >::getNodeFromGraphid(), bpp::AssociationGraphObserver< N, E >::getNodeGraphid(), bpp::AssociationGraphObserver< N, E >::getNodeIndex(), bpp::AssociationGraphObserver< N, E >::getNodeIndexes(), bpp::AssociationGraphObserver< N, E >::getNodesFromGraphid(), bpp::AssociationGraphObserver< N, E >::getRoot(), bpp::AssociationGraphObserver< N, E >::getRootIndex(), bpp::AssociationGraphObserver< N, E >::hasEdge(), bpp::AssociationGraphObserver< N, E >::hasEdgeIndex(), bpp::AssociationGraphObserver< N, E >::hasNode(), bpp::AssociationGraphObserver< N, E >::hasNodeIndex(), bpp::AssociationGraphObserver< N, E >::link(), bpp::AssociationGraphObserver< N, E >::setEdgeIndex(), bpp::AssociationGraphObserver< N, E >::setNodeIndex(), and bpp::AssociationGraphObserver< N, E >::unlink().

◆ createNode() [1/2]

template<class N, class E>
virtual void bpp::AssociationGraphObserver< N, E >::createNode ( std::shared_ptr< N >  newNodeObject)
pure virtualinherited

Creates an orphaned node from a NodeClass object.

Parameters
newNodeObjectthe N object associated to the node in the graph.

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::copy().

◆ createNode() [2/2]

template<class N, class E>
virtual void bpp::AssociationGraphObserver< N, E >::createNode ( std::shared_ptr< N >  objectOriginNode,
std::shared_ptr< N >  newNodeObject,
std::shared_ptr< E >  newEdgeObject = 00 
)
pure virtualinherited

Creates an node linked to an existing node. Order of parameters match the link method.

Parameters
newNodeObjectthe N object associated to the node in the graph.
objectOriginNodeexisting node. In a directed graph: origin -> newNode.
newEdgeObjectoptional edge between nodes (default = 00)

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

◆ deletedEdgesUpdate()

virtual void bpp::GraphObserver::deletedEdgesUpdate ( const std::vector< unsigned int > &  edgesToDelete)
pure virtualinherited

Delete unused object edges, since they have been deleted in the graph

Parameters
edgesToDeletea vector of Edges to delete

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

◆ deletedNodesUpdate()

virtual void bpp::GraphObserver::deletedNodesUpdate ( const std::vector< unsigned int > &  nodesToDelete)
pure virtualinherited

Delete unused object nodes, since they have been deleted in the graph

Parameters
nodesToDeletea vector of N to delete

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

◆ deleteNode()

template<class N, class E>
virtual void bpp::AssociationGraphObserver< N, E >::deleteNode ( std::shared_ptr< N >  nodeObject)
pure virtualinherited

◆ dissociateEdge()

template<class N, class E>
virtual void bpp::AssociationGraphObserver< N, E >::dissociateEdge ( std::shared_ptr< E >  edgeObject)
pure virtualinherited

◆ dissociateNode()

template<class N, class E>
virtual void bpp::AssociationGraphObserver< N, E >::dissociateNode ( std::shared_ptr< N >  nodeObject)
pure virtualinherited

Dissociate a N or E object to a node or an edge in the graph. Graph is not changed.

Parameters
nodeObjectobject to dissociate

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::copy().

◆ fathersIterator() [1/2]

template<class N , class E >
virtual std::unique_ptr<NodeIterator> bpp::AssociationDAGraphObserver< N, E >::fathersIterator ( std::shared_ptr< N >  node)
pure virtual

◆ fathersIterator() [2/2]

template<class N , class E >
virtual std::unique_ptr<NodeIterator> bpp::AssociationDAGraphObserver< N, E >::fathersIterator ( std::shared_ptr< N >  node) const
pure virtual

◆ getAllEdges()

template<class N, class E>
virtual std::vector<std::shared_ptr<E> > bpp::AssociationGraphObserver< N, E >::getAllEdges ( ) const
pure virtualinherited

◆ getAllEdgesIndexes()

◆ getAllInnerNodes()

template<class N, class E>
virtual std::vector<std::shared_ptr<N> > bpp::AssociationGraphObserver< N, E >::getAllInnerNodes ( ) const
pure virtualinherited

◆ getAllInnerNodesIndexes()

◆ getAllLeaves()

template<class N, class E>
virtual std::vector<std::shared_ptr<N> > bpp::AssociationGraphObserver< N, E >::getAllLeaves ( ) const
pure virtualinherited

◆ getAllLeavesIndexes()

◆ getAllNodes()

template<class N, class E>
virtual std::vector<std::shared_ptr<N> > bpp::AssociationGraphObserver< N, E >::getAllNodes ( ) const
pure virtualinherited

◆ getAllNodesIndexes()

◆ getBelowEdges()

template<class N , class E >
virtual std::vector<std::shared_ptr<E> > bpp::AssociationDAGraphObserver< N, E >::getBelowEdges ( const std::shared_ptr< N >  localRoot)
pure virtual

◆ getBelowNodes()

template<class N , class E >
virtual std::vector<std::shared_ptr<N> > bpp::AssociationDAGraphObserver< N, E >::getBelowNodes ( const std::shared_ptr< N >  localRoot)
pure virtual

Get Below Objects.

Parameters
localRootof the subgraph.
Returns
A vector of ancestor nodes ids.

Implemented in bpp::AssociationDAGraphImplObserver< N, E, DAGraphImpl >.

◆ getEdge()

template<class N, class E>
virtual std::shared_ptr<E> bpp::AssociationGraphObserver< N, E >::getEdge ( EdgeIndex  edgeIndex) const
pure virtualinherited

Return the associated Node index

Parameters
edgeIndexthe index of the wanted edge
Returns
E, an edge object

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::copy().

◆ getEdgeFromGraphid() [1/2]

◆ getEdgeFromGraphid() [2/2]

template<class N, class E>
virtual const std::shared_ptr<E> bpp::AssociationGraphObserver< N, E >::getEdgeFromGraphid ( EdgeGraphid  ) const
pure virtualinherited

◆ getEdgeGraphid()

template<class N, class E>
virtual EdgeGraphid bpp::AssociationGraphObserver< N, E >::getEdgeGraphid ( const std::shared_ptr< E >  edgeObject) const
pure virtualinherited

Return the associated Node ID

Parameters
edgeObjectobject which to return the node ID
Returns
a node ID

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::copy().

◆ getEdgeIndex()

template<class N, class E>
virtual EdgeIndex bpp::AssociationGraphObserver< N, E >::getEdgeIndex ( const std::shared_ptr< E >  edgeObject) const
pure virtualinherited

Return the associated Node index

Parameters
edgeObjectobject which to return the node index
Returns
a node index

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::copy().

◆ getEdgeIndexes()

template<class N, class E>
virtual std::vector<EdgeIndex> bpp::AssociationGraphObserver< N, E >::getEdgeIndexes ( std::vector< std::shared_ptr< E >>  edgeObjects) const
pure virtualinherited

◆ getEdgeLinking()

template<class N, class E>
virtual std::shared_ptr<E> bpp::AssociationGraphObserver< N, E >::getEdgeLinking ( std::shared_ptr< N >  nodeA,
std::shared_ptr< N >  nodeB 
) const
pure virtualinherited

Returns the Edge between two nodes nodeA -> nodeB

Parameters
nodeAsource node (if directed)
nodeBdestination node (if directed)
Returns
the edge between these two nodes

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::EdgeIterator::~EdgeIterator().

◆ getEdges() [1/2]

template<class N, class E>
virtual std::vector<std::shared_ptr<E> > bpp::AssociationGraphObserver< N, E >::getEdges ( const std::shared_ptr< N >  node) const
pure virtualinherited

Get all the edges from/to a node in the graph.

Parameters
nodethe node one wants to get its neighbor edges
Returns
a vector containing the edges

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::NodeIterator::~NodeIterator().

◆ getEdges() [2/2]

◆ getEdgesFromGraphid()

template<class N, class E>
virtual std::vector<std::shared_ptr<E> > bpp::AssociationGraphObserver< N, E >::getEdgesFromGraphid ( std::vector< EdgeGraphid ) const
pure virtualinherited

◆ getFatherOfEdge() [1/2]

template<class N , class E >
virtual std::shared_ptr<N> bpp::AssociationDAGraphObserver< N, E >::getFatherOfEdge ( const std::shared_ptr< E >  edge) const
pure virtual

Return the father of an edge

Parameters
edgethe concerned edge
Returns
the father Node

Implemented in bpp::AssociationDAGraphImplObserver< N, E, DAGraphImpl >.

◆ getFatherOfEdge() [2/2]

template<class N , class E >
virtual NodeIndex bpp::AssociationDAGraphObserver< N, E >::getFatherOfEdge ( const EdgeIndex  edge) const
pure virtual

◆ getFathers() [1/2]

template<class N , class E >
virtual std::vector<std::shared_ptr<N> > bpp::AssociationDAGraphObserver< N, E >::getFathers ( const std::shared_ptr< N >  node) const
pure virtual

Return, the fathers of a node

Parameters
nodethe concerned node
Returns
the father

Implemented in bpp::AssociationDAGraphImplObserver< N, E, DAGraphImpl >.

◆ getFathers() [2/2]

template<class N , class E >
virtual std::vector<NodeIndex> bpp::AssociationDAGraphObserver< N, E >::getFathers ( const NodeIndex  node) const
pure virtual

◆ getIncomingEdges() [1/2]

template<class N, class E>
virtual std::vector<std::shared_ptr<E> > bpp::AssociationGraphObserver< N, E >::getIncomingEdges ( const std::shared_ptr< N >  node) const
pure virtualinherited

In an directed graph, get all the edges which are coming to a node in the graph.

Parameters
nodethe node one wants to get its edges
Returns
a vector containing the incoming edges

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::NodeIterator::~NodeIterator().

◆ getIncomingEdges() [2/2]

template<class N, class E>
virtual std::vector<EdgeIndex> bpp::AssociationGraphObserver< N, E >::getIncomingEdges ( NodeIndex  node) const
pure virtualinherited

◆ getIncomingNeighbors() [1/2]

template<class N, class E>
virtual std::vector<std::shared_ptr<N> > bpp::AssociationGraphObserver< N, E >::getIncomingNeighbors ( const std::shared_ptr< N >  node) const
pure virtualinherited

In an directed graph, get all the neighbors which are coming to a node in the graph.

Parameters
nodethe node one wants to get its neighbors
Returns
a vector containing the incoming neighbors

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::NodeIterator::~NodeIterator().

◆ getIncomingNeighbors() [2/2]

template<class N, class E>
virtual std::vector<NodeIndex> bpp::AssociationGraphObserver< N, E >::getIncomingNeighbors ( NodeIndex  node) const
pure virtualinherited

◆ getLeavesFromNode()

template<class N, class E>
virtual std::vector<std::shared_ptr<N> > bpp::AssociationGraphObserver< N, E >::getLeavesFromNode ( std::shared_ptr< N >  node,
unsigned int  maxDepth 
) const
pure virtualinherited

Get the leaves of a graph, ie, nodes with only one neighbor, starting from a peculiar node, up to a specific depth.

Parameters
nodethe starting node
maxDepththe max recursion depth
Returns
a vector containing the leaves

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::NodeIterator::~NodeIterator().

◆ getLeavesUnderNode()

template<class N , class E >
virtual std::vector<std::shared_ptr<N> > bpp::AssociationDAGraphObserver< N, E >::getLeavesUnderNode ( std::shared_ptr< N >  node) const
pure virtual

Get the leaves of a tree under a peculiar node.

Parameters
nodethe starting node
Returns
a vector containing the leaves

Implemented in bpp::AssociationDAGraphImplObserver< N, E, DAGraphImpl >.

◆ getNeighbors() [1/2]

template<class N, class E>
virtual std::vector<std::shared_ptr<N> > bpp::AssociationGraphObserver< N, E >::getNeighbors ( const std::shared_ptr< N >  node) const
pure virtualinherited

Get all the neighbors of a node in the graph.

Parameters
nodethe node one wants to get its neighbors
Returns
a vector containing the neighbors

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::NodeIterator::~NodeIterator().

◆ getNeighbors() [2/2]

◆ getNode()

template<class N, class E>
virtual std::shared_ptr<N> bpp::AssociationGraphObserver< N, E >::getNode ( NodeIndex  nodeIndex) const
pure virtualinherited

Return the associated Node, querying with an index

Parameters
nodeIndexthe index of the wanted node
Returns
N, a node object

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::copy().

◆ getNodeFromGraphid() [1/2]

template<class N, class E>
virtual const std::shared_ptr<N> bpp::AssociationGraphObserver< N, E >::getNodeFromGraphid ( NodeGraphid  ) const
pure virtualinherited

◆ getNodeFromGraphid() [2/2]

template<class N, class E>
virtual std::shared_ptr<N> bpp::AssociationGraphObserver< N, E >::getNodeFromGraphid ( NodeGraphid  )
pure virtualinherited

◆ getNodeGraphid()

template<class N, class E>
virtual NodeGraphid bpp::AssociationGraphObserver< N, E >::getNodeGraphid ( const std::shared_ptr< N >  nodeObject) const
pure virtualinherited

Return the associated Node ID

Parameters
nodeObjectobject which to return the node ID
Returns
a node ID

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::copy().

◆ getNodeIndex()

template<class N, class E>
virtual NodeIndex bpp::AssociationGraphObserver< N, E >::getNodeIndex ( const std::shared_ptr< N >  nodeObject) const
pure virtualinherited

Return the associated Node index

Parameters
nodeObjectobject which to return the node index
Returns
a node index

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::copy().

◆ getNodeIndexes()

template<class N, class E>
virtual std::vector<NodeIndex> bpp::AssociationGraphObserver< N, E >::getNodeIndexes ( std::vector< std::shared_ptr< N >>  nodeObjects) const
pure virtualinherited

◆ getNodesFromGraphid()

template<class N, class E>
virtual std::vector<std::shared_ptr<N> > bpp::AssociationGraphObserver< N, E >::getNodesFromGraphid ( std::vector< NodeGraphid ) const
pure virtualinherited

◆ getNumberOfFathers()

template<class N , class E >
virtual size_t bpp::AssociationDAGraphObserver< N, E >::getNumberOfFathers ( const std::shared_ptr< N >  node) const
pure virtual

Return the number of fathers

Parameters
nodethe concerned node
Returns
the number of fathers

Implemented in bpp::AssociationDAGraphImplObserver< N, E, DAGraphImpl >.

◆ getNumberOfSons()

template<class N , class E >
virtual size_t bpp::AssociationDAGraphObserver< N, E >::getNumberOfSons ( const std::shared_ptr< N >  node) const
pure virtual

Return the number of sons

Parameters
nodethe concerned node
Returns
the number of sons

Implemented in bpp::AssociationDAGraphImplObserver< N, E, DAGraphImpl >.

◆ getOutgoingEdges() [1/2]

template<class N, class E>
virtual std::vector<std::shared_ptr<E> > bpp::AssociationGraphObserver< N, E >::getOutgoingEdges ( const std::shared_ptr< N >  node) const
pure virtualinherited

In an directed graph, get all the edges which are leaving a node in the graph.

Parameters
nodethe node one wants to get its edges
Returns
a vector containing the outgoing edges

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::NodeIterator::~NodeIterator().

◆ getOutgoingEdges() [2/2]

template<class N, class E>
virtual std::vector<EdgeIndex> bpp::AssociationGraphObserver< N, E >::getOutgoingEdges ( NodeIndex  node) const
pure virtualinherited

◆ getOutgoingNeighbors() [1/2]

template<class N, class E>
virtual std::vector<std::shared_ptr<N> > bpp::AssociationGraphObserver< N, E >::getOutgoingNeighbors ( const std::shared_ptr< N >  node) const
pure virtualinherited

In an directed graph, get all the neighbors which are leaving a node in the graph.

Parameters
nodethe node one wants to get its neighbors
Returns
a vector containing the outgoing neighbors

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::NodeIterator::~NodeIterator().

◆ getOutgoingNeighbors() [2/2]

template<class N, class E>
virtual std::vector<NodeIndex> bpp::AssociationGraphObserver< N, E >::getOutgoingNeighbors ( NodeIndex  node) const
pure virtualinherited

◆ getRoot()

template<class N, class E>
virtual std::shared_ptr<N> bpp::AssociationGraphObserver< N, E >::getRoot ( ) const
pure virtualinherited

◆ getRootIndex()

◆ getSon() [1/2]

template<class N , class E >
virtual std::shared_ptr<N> bpp::AssociationDAGraphObserver< N, E >::getSon ( const std::shared_ptr< E >  edge) const
pure virtual

Return the son of an edge

Parameters
edgethe concerned edge
Returns
the son Node

Implemented in bpp::AssociationDAGraphImplObserver< N, E, DAGraphImpl >.

◆ getSon() [2/2]

template<class N , class E >
virtual NodeIndex bpp::AssociationDAGraphObserver< N, E >::getSon ( const EdgeIndex  edge) const
pure virtual

◆ getSons() [1/2]

template<class N , class E >
virtual std::vector<std::shared_ptr<N> > bpp::AssociationDAGraphObserver< N, E >::getSons ( const std::shared_ptr< N >  node) const
pure virtual

Return the sons of a node

Parameters
nodethe concerned node
Returns
a vector of son Nodes

Implemented in bpp::AssociationDAGraphImplObserver< N, E, DAGraphImpl >.

◆ getSons() [2/2]

template<class N , class E >
virtual std::vector<NodeIndex> bpp::AssociationDAGraphObserver< N, E >::getSons ( const NodeIndex  node) const
pure virtual

◆ hasEdge()

template<class N, class E>
virtual bool bpp::AssociationGraphObserver< N, E >::hasEdge ( EdgeIndex  edgeIndex) const
pure virtualinherited

◆ hasEdgeIndex()

template<class N, class E>
virtual bool bpp::AssociationGraphObserver< N, E >::hasEdgeIndex ( const std::shared_ptr< E >  edgeObject) const
pure virtualinherited

◆ hasFather() [1/2]

template<class N , class E >
virtual bool bpp::AssociationDAGraphObserver< N, E >::hasFather ( const std::shared_ptr< N >  nodeObject) const
pure virtual

Has the node a father?

Implemented in bpp::AssociationDAGraphImplObserver< N, E, DAGraphImpl >.

◆ hasFather() [2/2]

template<class N , class E >
virtual bool bpp::AssociationDAGraphObserver< N, E >::hasFather ( const NodeIndex  node) const
pure virtual

◆ hasNode()

template<class N, class E>
virtual bool bpp::AssociationGraphObserver< N, E >::hasNode ( NodeIndex  nodeIndex) const
pure virtualinherited

◆ hasNodeIndex()

template<class N, class E>
virtual bool bpp::AssociationGraphObserver< N, E >::hasNodeIndex ( const std::shared_ptr< N >  nodeObject) const
pure virtualinherited

◆ incomingEdgesIterator()

◆ incomingNeighborNodesIterator() [1/2]

template<class N, class E>
virtual std::unique_ptr<NodeIterator> bpp::AssociationGraphObserver< N, E >::incomingNeighborNodesIterator ( std::shared_ptr< N >  node)
pure virtualinherited

◆ incomingNeighborNodesIterator() [2/2]

template<class N, class E>
virtual std::unique_ptr<NodeIterator> bpp::AssociationGraphObserver< N, E >::incomingNeighborNodesIterator ( std::shared_ptr< N >  node) const
pure virtualinherited

◆ isRooted()

template<class N , class E >
virtual bool bpp::AssociationDAGraphObserver< N, E >::isRooted ( ) const
pure virtual

Is the DAG rooted? Ie with at most one node with no father.

Returns
true if rooted DAG

Implemented in bpp::AssociationDAGraphImplObserver< N, E, DAGraphImpl >.

◆ isValid()

template<class N , class E >
virtual bool bpp::AssociationDAGraphObserver< N, E >::isValid ( ) const
pure virtual

Is the graph a DAG? A DAG must be acyclic.

Returns
true if valid DAG

Implemented in bpp::AssociationDAGraphImplObserver< N, E, DAGraphImpl >.

◆ link()

template<class N, class E>
virtual void bpp::AssociationGraphObserver< N, E >::link ( std::shared_ptr< N >  nodeObjectA,
std::shared_ptr< N >  nodeObjectB,
std::shared_ptr< E >  edgeObject = 00 
)
pure virtualinherited

Creates a link between two existing nodes. If directed graph: nodeA -> nodeB.

Parameters
nodeObjectAsource node (or first node if undirected)
nodeObjectBtarget node (or second node if undirected)
edgeObjectthe optional edge between the nodes (default = 00)

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::copy().

◆ outgoingEdgesIterator()

◆ outgoingNeighborNodesIterator() [1/2]

template<class N, class E>
virtual std::unique_ptr<NodeIterator> bpp::AssociationGraphObserver< N, E >::outgoingNeighborNodesIterator ( std::shared_ptr< N >  node)
pure virtualinherited

◆ outgoingNeighborNodesIterator() [2/2]

template<class N, class E>
virtual std::unique_ptr<NodeIterator> bpp::AssociationGraphObserver< N, E >::outgoingNeighborNodesIterator ( std::shared_ptr< N >  node) const
pure virtualinherited

◆ removeFather()

template<class N , class E >
virtual void bpp::AssociationDAGraphObserver< N, E >::removeFather ( const std::shared_ptr< N >  node,
const std::shared_ptr< N >  father 
)
pure virtual

Remove a father of a node

Implemented in bpp::AssociationDAGraphImplObserver< N, E, DAGraphImpl >.

◆ removeFathers()

template<class N , class E >
virtual std::vector<std::shared_ptr<N> > bpp::AssociationDAGraphObserver< N, E >::removeFathers ( const std::shared_ptr< N >  node)
pure virtual

Remove the fathers of a node

Returns
a vector containing the removed fathers

Implemented in bpp::AssociationDAGraphImplObserver< N, E, DAGraphImpl >.

◆ removeSon()

template<class N , class E >
virtual void bpp::AssociationDAGraphObserver< N, E >::removeSon ( const std::shared_ptr< N >  node,
const std::shared_ptr< N >  son 
)
pure virtual

Remove a son of a node

Parameters
nodethe concerned node
sonthe node to be removed

Implemented in bpp::AssociationDAGraphImplObserver< N, E, DAGraphImpl >.

◆ removeSons()

template<class N , class E >
virtual std::vector<std::shared_ptr<N> > bpp::AssociationDAGraphObserver< N, E >::removeSons ( const std::shared_ptr< N >  node)
pure virtual

Remove the sons of a node

Returns
a vector containing the removed nodes

Implemented in bpp::AssociationDAGraphImplObserver< N, E, DAGraphImpl >.

◆ rootAt()

template<class N , class E >
virtual void bpp::AssociationDAGraphObserver< N, E >::rootAt ( const std::shared_ptr< N >  root)
pure virtual

Sets the root and make the DAG directed from root to leaves.

Implemented in bpp::AssociationDAGraphImplObserver< N, E, DAGraphImpl >.

◆ setEdgeIndex()

template<class N, class E>
virtual EdgeIndex bpp::AssociationGraphObserver< N, E >::setEdgeIndex ( const std::shared_ptr< E >  edgeObject,
EdgeIndex  index 
)
pure virtualinherited

Set an index associated to an edge

Parameters
edgeObjectobject to which one want to set the index
indexintex to be given, 0 to get the first free index
Returns
the given index

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::copy().

◆ setEdgeLinking()

template<class N, class E>
virtual void bpp::AssociationGraphObserver< N, E >::setEdgeLinking ( std::shared_ptr< N >  nodeA,
std::shared_ptr< N >  nodeB,
std::shared_ptr< E >  edge 
)
pure virtualinherited

Sets the Edge between two nodes nodeA -> nodeB

Parameters
nodeAsource node (if directed)
nodeBdestination node (if directed)
edgethe edge between these two nodes

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::EdgeIterator::~EdgeIterator().

◆ setNodeIndex()

template<class N, class E>
virtual NodeIndex bpp::AssociationGraphObserver< N, E >::setNodeIndex ( const std::shared_ptr< N >  nodeObject,
NodeIndex  index 
)
pure virtualinherited

Set an index associated to a node

Parameters
nodeObjectobject to which one want to set the index
indexintex to be given, 0 to get the first free index
Returns
the given index

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::copy().

◆ sonsIterator() [1/2]

template<class N , class E >
virtual std::unique_ptr<NodeIterator> bpp::AssociationDAGraphObserver< N, E >::sonsIterator ( std::shared_ptr< N >  node)
pure virtual

◆ sonsIterator() [2/2]

template<class N , class E >
virtual std::unique_ptr<NodeIterator> bpp::AssociationDAGraphObserver< N, E >::sonsIterator ( std::shared_ptr< N >  node) const
pure virtual

◆ unlink()

template<class N, class E>
virtual void bpp::AssociationGraphObserver< N, E >::unlink ( std::shared_ptr< N >  nodeObjectA,
std::shared_ptr< N >  nodeObjectB 
)
pure virtualinherited

Detroys a link between two existing nodes in the graph. If directed graph: nodeA -> nodeB.

Parameters
nodeObjectAsource node (or first node if undirected)
nodeObjectBtarget node (or second node if undirected)

Implemented in bpp::AssociationGraphImplObserver< N, E, GraphImpl >, bpp::AssociationGraphImplObserver< N, E, DAGraphImpl >, and bpp::AssociationGraphImplObserver< N, E, TreeGraphImpl >.

Referenced by bpp::AssociationGraphObserver< N, E >::copy().


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