00001 00011 #ifndef RATIOBASEDSPLITER_H 00012 #define RATIOBASEDSPLITER_H 00013 00014 #include "Point3DSetSpliter.h" 00015 #include "RandomDistribution.h" 00016 00018 00023 class RatioBasedSpliter : public Point3DSetSpliter { 00024 00025 public: 00026 00028 RatioBasedSpliter( vector<double> const& ratios ); 00029 00031 virtual shared_ptr< vector< shared_ptr<Point3DSet> > > split( Point3DSet const& points ); 00032 00033 private: 00034 00036 vector<double> probabilities; 00037 00039 vector<double> cumsum; 00040 00042 static UniformDistribution prob_zero_one; 00043 00044 }; 00045 00046 #endif