00001 00008 /***************************************************************************** 00009 ** Ifdefs 00010 *****************************************************************************/ 00011 00012 #ifndef ECL_GEOMETRY_FUNCTION_MATH_HPP_ 00013 #define ECL_GEOMETRY_FUNCTION_MATH_HPP_ 00014 00015 /***************************************************************************** 00016 ** Includes 00017 *****************************************************************************/ 00018 00019 #include <ecl/config/macros.hpp> 00020 00021 /***************************************************************************** 00022 ** Namespaces 00023 *****************************************************************************/ 00024 00025 namespace ecl { 00026 00027 /***************************************************************************** 00028 ** Factory 00029 *****************************************************************************/ 00036 template <typename Function> 00037 class ECL_PUBLIC FunctionMath { 00038 public: 00042 FunctionMath() {}; 00043 virtual ~FunctionMath() {}; 00044 }; 00045 00046 /***************************************************************************** 00047 ** Maximum/Minimum 00048 *****************************************************************************/ 00049 00059 template <typename Function> 00060 class ECL_LOCAL Maximum { 00061 private: 00065 Maximum() {}; 00066 virtual ~Maximum() {}; 00067 }; 00068 00069 00079 template <typename Function> 00080 class ECL_LOCAL Minimum { 00081 private: 00085 Minimum() {}; 00086 virtual ~Minimum() {}; 00087 }; 00088 00089 00093 template <typename Function> 00094 class ECL_LOCAL Intersection { 00095 private: 00099 Intersection() {}; 00100 virtual ~Intersection() {}; 00101 }; 00102 00106 template <typename Function> 00107 class ECL_LOCAL Division { 00108 private: 00112 Division() {}; 00113 virtual ~Division() {}; 00114 }; 00115 00119 template <typename Function> 00120 class ECL_LOCAL Roots { 00121 private: 00125 Roots() {}; 00126 virtual ~Roots() {}; 00127 }; 00128 00129 }; // namespace ecl 00130 00131 00132 #endif /* ECL_GEOMETRY_FUNCTION_MATH_HPP_ */