bpp-phyl3  3.0.0
SiteSimulator.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_SIMULATION_SITESIMULATOR_H
6 #define BPP_PHYL_SIMULATION_SITESIMULATOR_H
7 
8 // From bpp-core
9 #include <Bpp/Clonable.h>
10 
11 // From bpp-seq:
12 #include <Bpp/Seq/Site.h>
13 
14 namespace bpp
15 {
23  public virtual Clonable
24 {
25 public:
28 
29  SiteSimulatorInterface* clone() const override = 0;
30 
31 public:
32  virtual std::unique_ptr<Site> simulateSite() const = 0;
33 
34  virtual std::unique_ptr<Site> simulateSite(size_t rateClass) const = 0;
35 
36  virtual std::unique_ptr<Site> simulateSite(double rate) const = 0;
37 
38  virtual std::unique_ptr<Site> simulateSite(size_t ancestralStateIndex, double rate) const = 0;
39 
40  virtual std::vector<std::string> getSequenceNames() const = 0;
41 
42  virtual std::shared_ptr<const Alphabet> getAlphabet() const = 0;
43 
44  virtual const Alphabet& alphabet() const = 0;
45 
46  virtual void outputInternalSites(bool yn) = 0;
47 };
48 } // end of namespace bpp.
49 #endif // BPP_PHYL_SIMULATION_SITESIMULATOR_H
The SiteSimulator interface. SiteSimulator classes can simulate single sites.
Definition: SiteSimulator.h:24
virtual std::unique_ptr< Site > simulateSite(double rate) const =0
virtual std::unique_ptr< Site > simulateSite(size_t ancestralStateIndex, double rate) const =0
virtual std::shared_ptr< const Alphabet > getAlphabet() const =0
virtual void outputInternalSites(bool yn)=0
virtual std::unique_ptr< Site > simulateSite() const =0
SiteSimulatorInterface * clone() const override=0
virtual std::unique_ptr< Site > simulateSite(size_t rateClass) const =0
virtual const Alphabet & alphabet() const =0
virtual std::vector< std::string > getSequenceNames() const =0
Defines the basic types of data flow nodes.