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
13namespace bpp
14{
23 public virtual Clonable
24{
25public:
28
30
31public:
37 virtual const Node* getNode() const = 0;
38
44 virtual void setNode(const Node* node) = 0;
45};
46
57 public virtual Clonable
58{
59public:
62
63 TreeParsimonyDataInterface* clone() const override = 0;
64
65public:
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 size_t getArrayPosition(int parentId, int sonId, size_t currentPosition) const =0
TreeParsimonyDataInterface * clone() const override=0
virtual std::shared_ptr< const TreeTemplate< Node > > getTree() const =0
virtual const TreeTemplate< Node > & tree() const =0
virtual const TreeParsimonyNodeDataInterface & nodeData(int nodeId) const =0
virtual TreeParsimonyNodeDataInterface & nodeData(int nodeId)=0
TreeParsimonyScore node data structure.
virtual const Node * getNode() const =0
Get the node associated to this data structure.
virtual void setNode(const Node *node)=0
Set the node associated to this data.
TreeParsimonyNodeDataInterface * clone() const =0
The phylogenetic tree class.
Definition: TreeTemplate.h:59
Defines the basic types of data flow nodes.