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
14namespace bpp
15{
23 public virtual Clonable
24{
25public:
28
29 SiteSimulatorInterface* clone() const override = 0;
30
31public:
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() const =0
virtual std::shared_ptr< const Alphabet > getAlphabet() const =0
virtual void outputInternalSites(bool yn)=0
virtual const Alphabet & alphabet() const =0
SiteSimulatorInterface * clone() const override=0
virtual std::unique_ptr< Site > simulateSite(double rate) const =0
virtual std::vector< std::string > getSequenceNames() const =0
virtual std::unique_ptr< Site > simulateSite(size_t rateClass) const =0
virtual std::unique_ptr< Site > simulateSite(size_t ancestralStateIndex, double rate) const =0
Defines the basic types of data flow nodes.