base.h
上传用户:chinasdcnc
上传日期:2022-07-02
资源大小:2702k
文件大小:1k
源码类别:

分形几何

开发平台:

Visual C++

  1. //
  2. // Delaunay Triangulation
  3. //
  4. // Homework of CG lesson (Fall 2009) in Tsinghua University.
  5. // All rights reserved.
  6. //
  7. #pragma once
  8. #include <ctime>
  9. #include <cassert>
  10. /**
  11.  * The error tolerance used in global scope.
  12.  */
  13. const double TOLERANCE = 1e-10;
  14. /**
  15.  * The max random number.
  16.  */
  17. const double INV_RAND_MAX = 1.0 / (RAND_MAX + 1.0);
  18. /**
  19.  * Returns the absolute value of @c val.
  20.  */
  21. template<typename T>
  22. inline T fabs(T val)
  23. {
  24.     if (val < 0)
  25.         return -val;
  26.     else
  27.         return val;
  28. }
  29. /**
  30.  * Returns the max value of @c val.
  31.  */
  32. template<typename T>
  33. inline T getMax(T a, T b)
  34. {
  35.     if (a > b)
  36.         return a;
  37.     else
  38.         return b;
  39. }
  40. /**
  41.  * Returns the min value of @c val.
  42.  */
  43. template<typename T>
  44. inline T getMin(T a, T b)
  45. {
  46.     if (a > b)
  47.         return b;
  48.     else
  49.         return a;
  50. }
  51. /**
  52.  * Returns a random integer between @c start(inclusive) and @c end(exclusive).
  53.  */
  54. inline int random(int start, int end)
  55. {
  56.     assert(end > start);
  57.     return start + rand() % (end - start);
  58. }
  59. /**
  60.  * Returns a random double double number between 0(inclusive) and 1(exclusive).
  61.  */
  62. inline double random(void)
  63. {
  64.     return  rand() * INV_RAND_MAX;
  65. }