⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer.hh

📁 penMesh is a generic and efficient data structure for representing and manipulating polygonal meshes
💻 HH
字号:
// ============================================================================// $Id: Timer.hh,v 1.1.1.1 2004-09-06 12:37:51 botsch Exp $// ----------------------------------------------------------------------------#ifndef TIMER_HH#define TIMER_HH// ----------------------------------------------------------------------------/** \file Timer.hh    A timer class*/// ----------------------------------------------------------------------------#include <OpenMesh/Core/System/config.hh>//#include <iostream>#include <string>#if defined(OM_CC_MIPS)#  include <assert.h>#else#  include <cassert>#endif// ------------------------------------------------------------- namespace ----namespace OpenMesh {namespace Utils {// -------------------------------------------------------------- forwards ----class TimerImpl;// ----------------------------------------------------------------- class ----/** Timer class */class Timer{public:  /// Formatting options for member Timer::as_string()  enum Format {    Automatic,    Long,    Hours,    Minutes,    Seconds,    HSeconds,    MSeconds,    MicroSeconds,    NanoSeconds  };  Timer(void);  ~Timer(void);  /// Returns true if self is in a valid state!  bool is_valid() const { return state_!=Invalid; }  bool is_stopped() const { return state_==Stopped; }  /// Reset the timer  void reset(void);  /// Start measurement  void start(void);  /// Stop measurement  void stop(void);  /// Continue measurement  void cont(void);  /// Give resolution of timer. Depends on the underlying measurement method.  float resolution() const;      /// Returns measured time in seconds, if the timer is in state 'Stopped'  double seconds(void) const;  /// Returns measured time in hundredth seconds, if the timer is in state 'Stopped'  double hseconds(void) const { return seconds()*1e2; }  /// Returns measured time in milli seconds, if the timer is in state 'Stopped'  double mseconds(void) const { return seconds()*1e3; }  /// Returns measured time in micro seconds, if the timer is in state 'Stopped'  double useconds(void) const { return seconds()*1e6; }    /** Returns the measured time as a string. Use the format flags to specify      a wanted resolution.   */  std::string as_string(Format format = Automatic);    /** Returns a given measured time as a string. Use the format flags to       specify a wanted resolution.   */  static std::string as_string(double seconds, Format format = Automatic);public:  //@{  /// Compare timer values  bool operator < (const Timer& t2) const   {     assert( is_stopped() && t2.is_stopped() );     return (seconds() < t2.seconds());   }  bool operator > (const Timer& t2) const  {     assert( is_stopped() && t2.is_stopped() );     return (seconds() > t2.seconds());   }  bool operator == (const Timer& t2) const  {     assert( is_stopped() && t2.is_stopped() );     return (seconds() == t2.seconds());   }  bool operator <= (const Timer& t2) const  {    assert( is_stopped() && t2.is_stopped() );     return (seconds() <= t2.seconds());   }  bool operator >=(const Timer& t2) const  {     assert( is_stopped() && t2.is_stopped() );     return (seconds() >= t2.seconds());   }  //@}protected:  TimerImpl *impl_;  enum {    Invalid = -1,    Stopped =  0,    Running =  1  } state_;};/** Write seconds to output stream.  *  Timer must be stopped before. *  \relates Timer */inline std::ostream& operator << (std::ostream& _o, const Timer& _t){   return (_o << _t.seconds());}// ============================================================================} // END_NS_UTILS} // END_NS_OPENMESH// ============================================================================#endif// end of Timer.hh// ===========================================================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -