github.com/kaydxh/golang@v0.0.131/pkg/gocv/cgo/third_path/opencv4/include/opencv2/flann/timer.h (about)

     1  /***********************************************************************
     2   * Software License Agreement (BSD License)
     3   *
     4   * Copyright 2008-2009  Marius Muja (mariusm@cs.ubc.ca). All rights reserved.
     5   * Copyright 2008-2009  David G. Lowe (lowe@cs.ubc.ca). All rights reserved.
     6   *
     7   * THE BSD LICENSE
     8   *
     9   * Redistribution and use in source and binary forms, with or without
    10   * modification, are permitted provided that the following conditions
    11   * are met:
    12   *
    13   * 1. Redistributions of source code must retain the above copyright
    14   *    notice, this list of conditions and the following disclaimer.
    15   * 2. Redistributions in binary form must reproduce the above copyright
    16   *    notice, this list of conditions and the following disclaimer in the
    17   *    documentation and/or other materials provided with the distribution.
    18   *
    19   * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
    20   * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
    21   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
    22   * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
    23   * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
    24   * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    25   * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    26   * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    27   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
    28   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    29   *************************************************************************/
    30  
    31  #ifndef OPENCV_FLANN_TIMER_H
    32  #define OPENCV_FLANN_TIMER_H
    33  
    34  //! @cond IGNORED
    35  
    36  #include <time.h>
    37  #include "opencv2/core.hpp"
    38  #include "opencv2/core/utility.hpp"
    39  
    40  namespace cvflann
    41  {
    42  
    43  /**
    44   * A start-stop timer class.
    45   *
    46   * Can be used to time portions of code.
    47   */
    48  class StartStopTimer
    49  {
    50      int64 startTime;
    51  
    52  public:
    53      /**
    54       * Value of the timer.
    55       */
    56      double value;
    57  
    58  
    59      /**
    60       * Constructor.
    61       */
    62      StartStopTimer()
    63          : startTime(0)
    64      {
    65          reset();
    66      }
    67  
    68      /**
    69       * Starts the timer.
    70       */
    71      void start()
    72      {
    73          startTime = cv::getTickCount();
    74      }
    75  
    76      /**
    77       * Stops the timer and updates timer value.
    78       */
    79      void stop()
    80      {
    81          int64 stopTime = cv::getTickCount();
    82          value += ( (double)stopTime - startTime) / cv::getTickFrequency();
    83      }
    84  
    85      /**
    86       * Resets the timer value to 0.
    87       */
    88      void reset()
    89      {
    90          value = 0;
    91      }
    92  
    93  };
    94  
    95  }
    96  
    97  //! @endcond
    98  
    99  #endif // FLANN_TIMER_H