1 #ifndef DISCRETEDISTRIBUTION2D_H
3 #define DISCRETEDISTRIBUTION2D_H
7 #include "discretedistributionfast.h"
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; }
37 bool getFloor()
const {
return m_floor; }
39 static void generateConditionalsAndMarginal(
double xOffset,
double yOffset,
double xSize,
double ySize,
43 std::vector<DiscreteDistribution *> &conditionals,
46 std::vector<DiscreteDistributionFast *> &conditionals,
47 DiscreteDistributionFast **ppMarginal
53 std::vector<DiscreteDistribution *> m_conditionalXDists;
54 std::vector<DiscreteDistribution *> m_conditionalYDists;
56 DiscreteDistributionFast *m_pMarginalXDist;
57 DiscreteDistributionFast *m_pMarginalYDist;
58 std::vector<DiscreteDistributionFast *> m_conditionalXDists;
59 std::vector<DiscreteDistributionFast *> m_conditionalYDists;
61 double m_xOffset, m_yOffset;
62 double m_xSize, m_ySize;
63 int m_width, m_height;
68 #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