Changeset 69 in pacpusframework for trunk/include/Pacpus
- Timestamp:
- Jan 10, 2013, 12:04:42 AM (12 years ago)
- Location:
- trunk/include/Pacpus
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/Pacpus/DbitePlayer/DbtPlyEngineStateChart.h
r66 r69 78 78 79 79 //////////////////////////////////////////////////////////////////////////////// 80 /// State class when player is on pause. 80 81 class DBITE_PLAYER_API PausedState 81 82 : public DbtPlyEngineState … … 98 99 99 100 //////////////////////////////////////////////////////////////////////////////// 101 /// State class when player is stopped. 100 102 class DBITE_PLAYER_API StoppedState 101 103 : public DbtPlyEngineState -
trunk/include/Pacpus/PacpusTools/ShMem.h
r67 r69 16 16 #ifdef WIN32 17 17 # include "Win32ShMem.h" 18 /// Defines shared memory as a Windows shared memory 18 19 # define ShMemType Win32ShMem 19 20 #else 20 21 # include "PosixShMem.h" 22 /// Defines shared memory as a POSIX shared memory 21 23 # define ShMemType PosixShMem 22 24 #endif … … 24 26 namespace pacpus { 25 27 28 /// Shared memory class. 29 /// 30 /// Inherits from Win32ShMem on Windows system and from PosixShMem on Unix-like systems. 26 31 class ShMem 27 32 : public ShMemType 28 33 { 29 34 public: 30 /// @briefCtor of shared memory class.35 /// Ctor of shared memory class. 31 36 /// 32 37 /// Creates a shared memory of size @b size and named @b name. … … 43 48 } 44 49 45 /// @briefDtor of shared memory class.50 /// Dtor of shared memory class. 46 51 /// 47 52 /// Does nothing. -
trunk/include/Pacpus/PacpusTools/ShMemBase.h
r66 r69 14 14 #define DEF_PACPUS_SHMEMBASE_H 15 15 16 /// Base class for shared memory objects. 16 17 class ShMemBase 17 18 { 18 19 public: 19 ShMemBase()20 {21 /*printf("ShMemBase::ShMemBase() not implemented !\n");*/22 }20 /// Ctor 21 ShMemBase() 22 { 23 } 23 24 24 virtual ~ShMemBase()25 {26 /*printf("ShMemBase::~ShMemBase() not implemented !\n");*/27 }25 /// Dtor 26 virtual ~ShMemBase() 27 { 28 } 28 29 29 // Use this method to get the data of the shared memory30 virtual void *read() = 0;30 /// Use this method to get the data of the shared memory 31 virtual void *read() = 0; 31 32 32 // Use this method to write data in shared memory33 virtual void write(void *data, int size, unsigned long offset = 0) = 0;33 /// Use this method to write data in shared memory 34 virtual void write(void *data, int size, unsigned long offset = 0) = 0; 34 35 35 // Use this method to wait the incoming of new data36 // you can specify a timeout in ms to avoid infinite blocking or 0 (infinite)37 // return true if new data available before the timeout or else false38 virtual bool wait(unsigned long timeout = 0) = 0;36 /// Use this method to wait the incoming of new data 37 /// you can specify a timeout in ms to avoid infinite blocking or 0 (infinite) 38 /// @returns @b true if new data available before the timeout, @b false otherwise 39 virtual bool wait(unsigned long timeout = 0) = 0; 39 40 40 // To lock the access to the memory41 virtual void lockMemory() = 0;41 /// To lock the access to the memory 42 virtual void lockMemory() = 0; 42 43 43 // To unlock the access to the memory44 virtual void unlockMemory() = 0;44 /// To unlock the access to the memory 45 virtual void unlockMemory() = 0; 45 46 46 47 #ifdef WIN32 47 // Return the event handle under Windows48 //... under Linux ?49 virtual void * getEventIdentifier() = 0;48 /// Return the event handle under Windows 49 /// @todo ... under Linux ? 50 virtual void * getEventIdentifier() = 0; 50 51 #endif 51 52 52 53 protected: 53 void * shMem_; 54 54 /// @todo Documentation 55 void * shMem_; 56 55 57 private: 56 58 }; -
trunk/include/Pacpus/PacpusTools/Win32ShMem.h
r67 r69 17 17 #include <Pacpus/PacpusTools/ShMemBase.h> 18 18 19 /// Windows handle (opaque pointer) type definition 20 /// 21 /// Forward declaration of typedefs is impossible. 19 22 typedef void * HANDLE; 20 23 24 /// Shared memory object for Windows. 21 25 class Win32ShMem 22 26 : public ShMemBase 23 27 { 24 28 public: 29 /// Ctor 25 30 Win32ShMem(const char * name, int size); 31 /// Dtor 26 32 ~Win32ShMem(); 27 33 34 /// @todo Documentation 28 35 virtual bool wait(unsigned long timeout = 0); 36 /// @todo Documentation 29 37 virtual void * read(); 38 /// @todo Documentation 30 39 virtual void read(void * mem, int size); 40 /// @todo Documentation 31 41 virtual void write(void * data, int size, unsigned long offset = 0); 42 /// @todo Documentation 32 43 virtual void lockMemory(); 44 /// @todo Documentation 33 45 virtual void unlockMemory(); 46 /// @todo Documentation 34 47 virtual void * getEventIdentifier(); 35 48 -
trunk/include/Pacpus/PacpusTools/geodesie.h
r67 r69 31 31 32 32 //////////////////////////////////////////////////////////////////////// 33 /// 9x9 matrix ??? 34 /// 33 35 /// @todo Documentation 34 36 /// @todo Rewrite! … … 58 60 /// Dtor of Raf98 class. 59 61 ~Raf98(); 62 60 63 /// @todo Documentation 61 64 /// @param s filepath 62 65 bool Load(const std::string & s); 66 63 67 /// @todo Documentation 64 68 /// @param longitude [degrees] 65 69 /// @param latitude [degrees] 70 /// @param Hwgs84 Output: interpolated altitude using WGS84 geoid model [meters] 66 71 bool Interpol(double longitude/*deg*/, double latitude/*deg*/, double* Hwgs84) const; 67 72 -
trunk/include/Pacpus/PacpusTools/math/rng.hpp
r66 r69 7 7 /// @version $Id$ 8 8 /// @copyright Copyright (c) UTC/CNRS Heudiasyc 2006 - 2013. All rights reserved. 9 /// @brief Brief description.9 /// @brief Random number generators. 10 10 /// 11 11 /// Detailed description. … … 22 22 namespace rng { 23 23 24 /*! 25 * \class normal_generator 26 * \brief This class is basic normal random number generator \n 27 * template id RealType describe number precision (float double ....)\n 28 * template id PRNG describe pseudo random number generator ( see boost random) 29 */ 30 template < class RealType , class PRNG > class normal_generator { 31 public : 32 /*! 33 * Default construtor 34 */ 35 normal_generator(): 36 engine(time(NULL)), 37 generator(engine,boost::normal_distribution<RealType>(0,1)) 38 {} 39 /*! 40 * Construtor 41 * \param dist : a normal distribution (see boost distributions) 42 */ 43 normal_generator(const boost::math::normal_distribution<RealType> & dist): 44 engine(time(NULL)), 45 generator(engine,boost::normal_distribution<RealType>(dist.mean(),dist.sigma())) 46 {} 47 /*! 48 * Construtor 49 * \param mean : mean of the normal distribution 50 * \param sigma : satndard deviation of the normal distribution 51 */ 52 normal_generator(const RealType & mean ,const RealType & sigma): 53 engine(time(NULL)), 54 generator(engine,boost::normal_distribution<RealType>(mean(),sigma())) 55 {} 56 57 /*! 58 * Get a random number 59 */ 60 RealType operator()() {return generator();} 61 62 /*! 63 * Set normal distribution 64 * \param dist : a normal distribution (see boost distributions) 65 */ 66 void distribution( const boost::math::normal_distribution<RealType> & dist) { 67 generator.dist= boost::normal_distribution<RealType>(dist.mean(),dist.standard_deviation()); 68 } 69 70 /*! 71 * Set normal distrubution 72 * \param mean : mean of the normal distribution 73 * \param sigma : satndard deviation of the normal distribution 74 */ 75 void distribution( const RealType & mean ,const RealType & sigma) { 76 generator.distribution()= boost::normal_distribution<RealType>(mean,sigma); 77 } 78 79 private : 80 81 /*! 82 * \brief pseudo random number generator 83 */ 84 PRNG engine; 85 86 /*! 87 * \brief the normal random number generator 88 */ 89 boost::variate_generator<PRNG, boost::normal_distribution<RealType> > generator; 24 /// This class is basic normal random number generator 25 /// 26 /// @tparam RealType describe number precision, e.g. @c float, @c double 27 /// @tparam PRNG describe pseudo random number generator 28 /// @see boost::random 29 template <class RealType, class PRNG> 30 class normal_generator 31 { 32 public: 33 /// Default construtor 34 normal_generator() 35 : engine(time(NULL)) 36 , generator(engine,boost::normal_distribution<RealType>(0,1)) 37 {} 38 39 /// Construtor 40 /// 41 /// @param dist a normal distribution 42 /// @see boost::distributions 43 normal_generator(const boost::math::normal_distribution<RealType> & dist) 44 : engine(time(NULL)) 45 , generator(engine,boost::normal_distribution<RealType>(dist.mean(),dist.sigma())) 46 {} 47 48 /// Constructor 49 /// 50 /// @param mean mean of the normal distribution 51 /// @param sigma standard deviation of the normal distribution 52 normal_generator(const RealType & mean ,const RealType & sigma) 53 : engine(time(NULL)) 54 , generator(engine,boost::normal_distribution<RealType>(mean(),sigma())) 55 {} 56 57 /// Get a random number 58 RealType operator()() 59 { 60 return generator(); 61 } 62 63 /// Set normal distribution 64 /// 65 /// @param dist : a normal distribution 66 /// @see boost::distributions 67 void distribution( const boost::math::normal_distribution<RealType> & dist) 68 { 69 generator.dist= boost::normal_distribution<RealType>(dist.mean(),dist.standard_deviation()); 70 } 71 72 /// Set normal distrubution 73 /// 74 /// @param mean : mean of the normal distribution 75 /// @param sigma : satndard deviation of the normal distribution 76 void distribution( const RealType & mean ,const RealType & sigma) { 77 generator.distribution()= boost::normal_distribution<RealType>(mean,sigma); 78 } 79 80 private: 81 /// pseudorandom number generator 82 PRNG engine; 83 84 /// the normal random number generator 85 boost::variate_generator<PRNG, boost::normal_distribution<RealType> > generator; 90 86 }; 91 87 92 typedef class normal_generator<double,boost::mt19937> normal_rng; 93 94 95 96 /*! 97 * \class uniform_generator 98 * \brief This class is basic uniform random number generator \n 99 * template id RealType describe number precision (float double ....)\n 100 * template id PRNG describe pseudo random number generator ( see boost random) 101 */ 102 template < class RealType , class PRNG > class uniform_generator { 103 104 public : 105 /*! 106 * Default construtor 107 */ 108 uniform_generator(): 109 engine(time(NULL)), 110 generator(engine, boost::uniform_real<RealType>(0,1)) 111 {} 112 /*! 113 * Construtor 114 * \param dist : a uniform distribution (see boost distributions) 115 */ 116 uniform_generator(const boost::math::uniform_distribution<RealType> & dist): 117 engine(time(NULL)), 118 generator(engine, boost::uniform_real<RealType>(dist.lower(),dist.upper())) 119 {} 120 /*! 121 * Construtor 122 * \param lower : the lower value of the uniform distribution 123 * \param upper : the upper value of the uniform distribution 124 */ 125 uniform_generator(const RealType & lower , const RealType & upper): 126 engine(time(NULL)), 127 generator(engine, boost::uniform_real<RealType>(lower,upper)) 128 {} 129 130 /*! 131 * Get a random number 132 */ 133 RealType operator()() {return generator();} 134 /*! 135 * Set uniform distribution 136 * \param dist : a normal distribution (see boost distributions) 137 */ 138 void distribution( const boost::math::uniform_distribution<RealType> & dist) { 139 generator.dist()= boost::uniform_real<RealType>(dist.lower(),dist.upper()); 140 } 141 /*! 142 * Set uniform distribution 143 * \param lower : the lower value of the uniform distribution 144 * \param upper : the upper value of the uniform distribution 145 */ 146 void distribution( const RealType & lower , const RealType & upper) { 147 generator.dist()= boost::uniform_real<RealType>(lower,upper); 148 } 149 150 private : 151 /*! 152 * \brief pseudo random number generator 153 */ 154 PRNG engine; 155 /*! 156 * \brief the uniform random number generator 157 */ 158 boost::variate_generator<PRNG, boost::uniform_real<RealType> > generator; 88 /// Defines normal random number generator as a Mersenne Twister 19937 with double-precision numbers 89 typedef class normal_generator<double, boost::mt19937> normal_rng; 90 91 /// This class is basic uniform random number generator. 92 /// 93 /// @tparam RealType describe number precision, e.g. @c float, @c double 94 /// @tparam PRNG describe pseudo random number generator 95 /// @see boost::random 96 template <class RealType, class PRNG> 97 class uniform_generator 98 { 99 public: 100 /// Default construtor 101 uniform_generator() 102 : engine(time(NULL)) 103 , generator(engine, boost::uniform_real<RealType>(0,1)) 104 {} 105 106 /// Construtor 107 /// @param dist a uniform distribution 108 /// @see boost::distributions 109 uniform_generator(const boost::math::uniform_distribution<RealType> & dist) 110 : engine(time(NULL)) 111 , generator(engine, boost::uniform_real<RealType>(dist.lower(),dist.upper())) 112 {} 113 114 /// Constructor 115 /// 116 /// @param lower the lower value of the uniform distribution 117 /// @param upper the upper value of the uniform distribution 118 uniform_generator(const RealType & lower , const RealType & upper) 119 : engine(time(NULL)) 120 , generator(engine, boost::uniform_real<RealType>(lower,upper)) 121 {} 122 123 /// Get a random number 124 RealType operator()() 125 { 126 return generator(); 127 } 128 129 /// Set uniform distribution 130 /// 131 /// @param dist a normal distribution 132 /// @see boost::distributions 133 void distribution( const boost::math::uniform_distribution<RealType> & dist) 134 { 135 generator.dist()= boost::uniform_real<RealType>(dist.lower(),dist.upper()); 136 } 137 138 /// Set uniform distribution 139 /// 140 /// @param lower the lower value of the uniform distribution 141 /// @param upper the upper value of the uniform distribution 142 void distribution( const RealType & lower , const RealType & upper) 143 { 144 generator.dist()= boost::uniform_real<RealType>(lower,upper); 145 } 146 147 private: 148 /// @brief pseudo random number generator 149 PRNG engine; 150 /// @brief the uniform random number generator 151 boost::variate_generator<PRNG, boost::uniform_real<RealType> > generator; 159 152 }; 160 153 161 typedef class uniform_generator<double,boost::mt19937> uniform_rng; 162 163 164 /*! 165 * \class traingle_generator 166 * \brief This class is basic triangular random number generator \n 167 * template id RealType describe number precision (float double ....)\n 168 * template id PRNG describe pseudo random number generator ( see boost random) 169 */ 170 template < class RealType , class PRNG > class triangle_generator { 171 172 public : 173 /*! 174 * Default construtor 175 */ 176 triangle_generator(): 177 engine(time(NULL)), 178 generator(engine, boost::triangle_distribution<RealType>(-1,0,1)) 179 {} 180 /*! 181 * Construtor 182 * \param dist : a traingle distribution (see boost distributions) 183 */ 184 triangle_generator(const boost::math::triangular_distribution<RealType> & dist): 185 engine(time(NULL)), 186 generator(engine, boost::triangle_distribution<RealType>(dist.lower(),dist.upper())) 187 {} 188 /*! 189 * Constructor : 190 * \param lower : the lower value of the uniform distribution 191 * \param mode : the mode value of the uniform distribution 192 * \param upper : the upper value of the uniform distribution 193 */ 194 triangle_generator(const RealType & lower , const RealType & mode ,const RealType & upper): 195 engine(time(NULL)), 196 generator(engine, boost::triangle_distribution<RealType>(lower,mode,upper)) 197 {} 198 /*! 199 * Get a random number 200 */ 201 RealType operator()() {return generator();} 202 /*! 203 * Set triangle distribution 204 * \param dist : a normal distribution (see boost distributions) 205 */ 206 void distribution( const boost::math::triangular_distribution<RealType> & dist) { 207 generator.dist()= boost::triangle_distribution<RealType>(dist.lower(),dist.mode(),dist.upper()); 208 } 209 /*! 210 * Set triangle distribution 211 * \param lower : the lower value of the uniform distribution 212 * \param mode : the mode value of the uniform distribution 213 * \param upper : the upper value of the uniform distribution 214 */ 215 void distribution( const RealType & lower ,const RealType & mode ,const RealType & upper) { 216 generator.dist()= boost::triangle_distribution<RealType>(lower,mode,upper); 217 } 218 219 private : 220 /*! 221 * \brief pseudo random number generator 222 */ 223 PRNG engine; 224 /*! 225 * \brief the triangle random number generator 226 */ 227 boost::variate_generator<PRNG, boost::triangle_distribution<RealType> > generator; 154 /// Defines uniform random number generator as a Mersenne Twister 19937 with double-precision numbers 155 typedef class uniform_generator<double, boost::mt19937> uniform_rng; 156 157 /// This class is basic triangular random number generator 158 /// 159 /// @tparam RealType describe number precision, e.g. @c float, @c double 160 /// @tparam PRNG describe pseudo random number generator ( see boost random) 161 template <class RealType, class PRNG> 162 class triangle_generator 163 { 164 public: 165 /// Default construtor 166 triangle_generator() 167 : engine(time(NULL)) 168 , generator(engine, boost::triangle_distribution<RealType>(-1,0,1)) 169 {} 170 171 /// Construtor 172 /// 173 /// @param dist : a traingle distribution 174 /// @see boost distributions 175 triangle_generator(const boost::math::triangular_distribution<RealType> & dist) 176 : engine(time(NULL)) 177 ,generator(engine, boost::triangle_distribution<RealType>(dist.lower(),dist.upper())) 178 {} 179 180 /// Constructor 181 /// 182 /// @param lower the lower value of the uniform distribution 183 /// @param mode the mode value of the uniform distribution 184 /// @param upper the upper value of the uniform distribution 185 triangle_generator(const RealType & lower, const RealType & mode ,const RealType & upper) 186 : engine(time(NULL)) 187 , generator(engine, boost::triangle_distribution<RealType>(lower,mode,upper)) 188 {} 189 190 /// Get a random number 191 RealType operator()() 192 { 193 return generator(); 194 } 195 196 /// Set triangle distribution 197 /// @param dist a normal distribution 198 /// @see boost::distributions 199 void distribution( const boost::math::triangular_distribution<RealType> & dist) 200 { 201 generator.dist()= boost::triangle_distribution<RealType>(dist.lower(),dist.mode(),dist.upper()); 202 } 203 204 /// Set triangle distribution 205 /// @param lower the lower value of the uniform distribution 206 /// @param mode the mode value of the uniform distribution 207 /// @param upper the upper value of the uniform distribution 208 void distribution( const RealType & lower, const RealType & mode ,const RealType & upper) 209 { 210 generator.dist()= boost::triangle_distribution<RealType>(lower,mode,upper); 211 } 212 213 private : 214 /// pseudorandom number generator 215 PRNG engine; 216 /// the triangle random number generator 217 boost::variate_generator<PRNG, boost::triangle_distribution<RealType> > generator; 228 218 }; 229 219 230 typedef class triangle_generator<double, boost::mt19937> triangle_rng;220 typedef class triangle_generator<double, boost::mt19937> triangle_rng; 231 221 232 222 } // namespace rng -
trunk/include/Pacpus/PacpusTools/matrice.h
r66 r69 21 21 } t_m; 22 22 23 /// Simple matrix. 24 /// @todo Documentation 23 25 class matrice 24 26 { … … 29 31 30 32 public: 31 // constructeurs33 /// Ctor 32 34 matrice(); 35 /// Ctor 33 36 matrice(unsigned short int nl, unsigned short int nc); 37 /// Ctor 34 38 matrice(unsigned short int nl, unsigned short int nc,t_m type); 39 /// Copy ctor 35 40 matrice(const matrice &source); //constructeur par copie 36 // destructeur41 /// Dtor 37 42 virtual ~matrice(void); 38 void Alloue(unsigned short int nl, unsigned short int nc); //allocation de la matrice39 43 40 // fonction pour le calcul de matrice 44 /// Allocates matrix data 45 /// @todo Rename 46 void Alloue(unsigned short int nl, unsigned short int nc); 47 48 /// Assignment operator for matrix operand 41 49 matrice &operator=(const matrice &m);//m=m1 50 /// Assignment operator for scalar operand 42 51 matrice &operator=(double x); //m=x 43 operator double()const{return **lignes;} 52 /// Conversion operator to double 53 /// @todo FIXME 54 operator double() const 55 { 56 return **lignes; 57 } 44 58 45 59 matrice &operator+=(const matrice &m); //m+=m1 -
trunk/include/Pacpus/kernel/pacpus.h
r66 r69 17 17 #include <Pacpus/kernel/road_time.h> 18 18 19 // Deprecated, you should use M_PI from cmath. 19 /// Pi math constant 20 /// 21 /// @deprecated,use M_PI from cmath. 20 22 #ifndef PACPUS_PI 21 23 # define PACPUS_PI 3.1415926 22 24 #endif 23 25 24 // Export macro for PacpusLib DLL for Windows only26 /// Export macro for PacpusLib DLL for Windows only 25 27 #ifdef WIN32 26 28 # ifdef PACPUSLIB_EXPORTS … … 36 38 #endif 37 39 40 /// @def PACPUS_DEPRECATED(func) 41 /// Develops to the function or method declaration @b func 42 /// and marks it as deprecated. 43 44 /// @def PACPUS_DEPRECATED(func, msg) 45 /// Develops to the function or method declaration @b func 46 /// and marks it as deprecated with a given comment @b msg. 38 47 #ifdef __GNUC__ 39 48 # define PACPUS_DEPRECATED(func) func __attribute__ ((deprecated))
Note:
See TracChangeset
for help on using the changeset viewer.