bpp-phyl3 3.0.0
BranchedModelSet.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_MAPPING_BRANCHEDMODELSET_H
6#define BPP_PHYL_MAPPING_BRANCHEDMODELSET_H
7
8#include <cstddef>
9#include <vector>
10
11
12namespace bpp
13{
19class TransitionModelInterface;
20
22{
23public:
25 virtual ~BranchedModelSet() {}
26
30 virtual size_t getNumberOfModels() const = 0;
31
37 virtual std::vector<size_t> getModelNumbers() const = 0;
38
45 virtual std::shared_ptr<const TransitionModelInterface> getModel(size_t index) const = 0;
46
54 virtual std::shared_ptr<const TransitionModelInterface> getModelForBranch(unsigned int branchId) const = 0;
55
56 virtual std::shared_ptr<TransitionModelInterface> getModelForBranch(unsigned int branchId) = 0;
57
65 virtual std::vector<unsigned int> getBranchesWithModel(size_t index) const = 0;
66};
67} // end of namespace bpp.
68#endif // BPP_PHYL_MAPPING_BRANCHEDMODELSET_H
virtual std::vector< unsigned int > getBranchesWithModel(size_t index) const =0
Get a list of branches id for which the given model is associated.
virtual std::shared_ptr< const TransitionModelInterface > getModelForBranch(unsigned int branchId) const =0
Get the model associated to a particular branch id.
virtual std::shared_ptr< TransitionModelInterface > getModelForBranch(unsigned int branchId)=0
virtual std::shared_ptr< const TransitionModelInterface > getModel(size_t index) const =0
Get the model with a ginev index.
virtual size_t getNumberOfModels() const =0
virtual std::vector< size_t > getModelNumbers() const =0
Defines the basic types of data flow nodes.