1 #ifndef DISCRETEDISTRIBUTION2D_H
3 #define DISCRETEDISTRIBUTION2D_H
7 #include "discretedistributionfast.h"
11 class TIFFDensityFile;
18 DiscreteDistribution2D(
double xOffset,
double yOffset,
double xSize,
double ySize,
22 ~DiscreteDistribution2D();
26 double pickMarginalX()
const;
27 double pickMarginalY()
const;
28 double pickConditionalOnX(
double x)
const;
29 double pickConditionalOnY(
double y)
const;
31 double getXOffset()
const {
return m_xOffset; }
32 double getYOffset()
const {
return m_yOffset; }
33 double getXSize()
const {
return m_xSize; }
34 double getYSize()
const {
return m_ySize; }
36 bool isYFlipped()
const {
return m_flippedY; }
38 static void generateConditionalsAndMarginal(
double xOffset,
double yOffset,
double xSize,
double ySize,
42 std::vector<DiscreteDistribution *> &conditionals,
45 std::vector<DiscreteDistributionFast *> &conditionals,
46 DiscreteDistributionFast **ppMarginal
52 std::vector<DiscreteDistribution *> m_conditionalXDists;
53 std::vector<DiscreteDistribution *> m_conditionalYDists;
55 DiscreteDistributionFast *m_pMarginalXDist;
56 DiscreteDistributionFast *m_pMarginalYDist;
57 std::vector<DiscreteDistributionFast *> m_conditionalXDists;
58 std::vector<DiscreteDistributionFast *> m_conditionalYDists;
60 double m_xOffset, m_yOffset;
61 double m_xSize, m_ySize;
62 int m_width, m_height;
66 #endif // DISCRETEDISTRIBUTION2D_H
virtual Point2D pickPoint() const =0
Pick a point according to a specific distrubution, specified in a subclass of ProbabilityDistribution...
Helper class to generate random numbers based on some kind of discrete distribution.
Definition: discretedistribution.h:20
This class allows you to generate random numbers, and uses the GNU Scientific Library for this...
Definition: gslrandomnumbergenerator.h:16
Abstract base class for 2D probability distribution implementations so that they can be used intercha...
Definition: probabilitydistribution2d.h:17
This class can be used to represent a polygon.
Definition: polygon2d.h:10