43 #pragma GCC system_header
50 #include <boost/date_time/posix_time/posix_time.hpp>
80 boost::posix_time::ptime end_time = boost::posix_time::microsec_clock::local_time ();
81 return (
static_cast<double> (((end_time -
start_time_).total_milliseconds ())));
95 start_time_ = boost::posix_time::microsec_clock::local_time ();
121 title_ (
std::string (title))
123 start_time_ = boost::posix_time::microsec_clock::local_time ();
127 title_ (
std::string (
""))
129 start_time_ = boost::posix_time::microsec_clock::local_time ();
135 std::cerr << title_ <<
" took " << val <<
"ms.\n";
161 : window_size_ (window_size)
163 stop_watch_.
reset ();
170 if (event_time_queue_.size () > window_size_)
171 event_time_queue_.pop ();
178 if (event_time_queue_.size () < 2)
180 return ((event_time_queue_.size () - 1) /
181 (event_time_queue_.back () - event_time_queue_.front ()));
187 stop_watch_.
reset ();
188 event_time_queue_ = std::queue<double> ();
194 std::queue<double> event_time_queue_;
195 const size_t window_size_;
199 #ifndef MEASURE_FUNCTION_TIME
200 #define MEASURE_FUNCTION_TIME \
201 ScopeTime scopeTime(__func__)
207 boost::posix_time::ptime epoch_time (boost::gregorian::date (1970, 1, 1));
208 boost::posix_time::ptime current_time = boost::posix_time::microsec_clock::local_time ();
209 return (
static_cast<double>((current_time - epoch_time).total_nanoseconds ()) * 1.0e-9);
214 #define DO_EVERY_TS(secs, currentTime, code) \
216 static double s_lastDone_ = 0.0; \
217 double s_now_ = (currentTime); \
218 if (s_lastDone_ > s_now_) \
219 s_lastDone_ = s_now_; \
220 if ((s_now_ - s_lastDone_) > (secs)) { \
222 s_lastDone_ = s_now_; \
230 #define DO_EVERY(secs, code) \
231 DO_EVERY_TS(secs, pcl::getTime(), code)
237 #endif //#ifndef PCL_NORMS_H_