bpp-phyl3  3.0.0
TreeParsimonyData.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: The Bio++ Development Group
2 //
3 // SPDX-License-Identifier: CECILL-2.1
4 
5 #ifndef BPP_PHYL_PARSIMONY_TREEPARSIMONYDATA_H
6 #define BPP_PHYL_PARSIMONY_TREEPARSIMONYDATA_H
7 
8 #include <Bpp/Clonable.h>
9 
10 #include "../Tree/Node.h"
11 #include "../Tree/TreeTemplate.h"
12 
13 namespace bpp
14 {
23  public virtual Clonable
24 {
25 public:
28 
30 
31 public:
37  virtual const Node* getNode() const = 0;
38 
44  virtual void setNode(const Node* node) = 0;
45 };
46 
57  public virtual Clonable
58 {
59 public:
62 
63  TreeParsimonyDataInterface* clone() const override = 0;
64 
65 public:
66  virtual const TreeTemplate<Node>& tree() const = 0;
67  virtual std::shared_ptr<const TreeTemplate<Node>> getTree() const = 0;
68  virtual size_t getArrayPosition(int parentId, int sonId, size_t currentPosition) const = 0;
69  virtual size_t getRootArrayPosition(size_t site) const = 0;
70  virtual TreeParsimonyNodeDataInterface& nodeData(int nodeId) = 0;
71  virtual const TreeParsimonyNodeDataInterface& nodeData(int nodeId) const = 0;
72 };
73 } // end of namespace bpp.
74 #endif // BPP_PHYL_PARSIMONY_TREEPARSIMONYDATA_H
The phylogenetic node class.
Definition: Node.h:59
TreeParsimonyScore data structure.
virtual size_t getRootArrayPosition(size_t site) const =0
virtual std::shared_ptr< const TreeTemplate< Node > > getTree() const =0
virtual TreeParsimonyNodeDataInterface & nodeData(int nodeId)=0
virtual size_t getArrayPosition(int parentId, int sonId, size_t currentPosition) const =0
TreeParsimonyDataInterface * clone() const override=0
virtual const TreeTemplate< Node > & tree() const =0
virtual const TreeParsimonyNodeDataInterface & nodeData(int nodeId) const =0
TreeParsimonyScore node data structure.
virtual void setNode(const Node *node)=0
Set the node associated to this data.
virtual const Node * getNode() const =0
Get the node associated to this data structure.
TreeParsimonyNodeDataInterface * clone() const =0
The phylogenetic tree class.
Definition: TreeTemplate.h:59
Defines the basic types of data flow nodes.