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 
12 namespace bpp
13 {
19 class TransitionModelInterface;
20 
22 {
23 public:
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::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::shared_ptr< TransitionModelInterface > getModelForBranch(unsigned int branchId)=0
virtual std::shared_ptr< const TransitionModelInterface > getModelForBranch(unsigned int branchId) const =0
Get the model associated to a particular branch id.
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::vector< size_t > getModelNumbers() const =0
Defines the basic types of data flow nodes.