00001 #ifndef _RR_CONTROLPOINTGENERATOR_H_ 00002 #define _RR_CONTROLPOINTGENERATOR_H_ 00003 00004 #include <vrs/callback.h> 00005 #include <vrs/so.h> 00006 #include <vrs/vector.h> 00007 00008 #include <vector> 00009 00010 00011 namespace random_racer 00012 { 00013 00020 class ControlPointGenerator : public VRS::SharedObj 00021 { 00025 unsigned int m_numControlPoints; 00026 00032 unsigned int m_lowRounds, m_upRounds; 00033 00037 double m_midHeight; 00038 00042 VRS::SO<VRS::Callback1<std::vector<VRS::Vector>* > > m_callback; 00043 00047 void terGenrateLowRoundsCommand(const std::string& lowRounds); 00048 00052 void terGenrateUpRoundsCommand(const std::string& upRounds); 00053 00057 void terGenrateMidHeightCommand(const std::string& midHeight); 00058 00059 public: 00060 00064 ControlPointGenerator(unsigned int numControlPoints); 00065 00069 virtual ~ControlPointGenerator(); 00070 00077 void generateControlPoints(std::vector<VRS::Vector>* target); 00078 00082 inline VRS::SO<VRS::Callback1<std::vector<VRS::Vector>* > > getCallback() 00083 { 00084 return m_callback; 00085 } 00086 }; 00087 00088 } // namespace random_racer 00089 00090 #endif /* _RR_CONTROLPOINTGENERATOR_H_ */
1.5.1