vtf-logo

SimplexMeanRatio.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00008 #if !defined(__geom_SimplexMeanRatio_h__)
00009 #define __geom_SimplexMeanRatio_h__
00010 
00011 #if defined(DEBUG_geom) && !defined(DEBUG_SimplexMeanRatio)
00012 #define DEBUG_SimplexMeanRatio
00013 #endif
00014 
00015 #include "SimplexJacQF.h"
00016 
00017 #include <limits>
00018 
00019 BEGIN_NAMESPACE_GEOM
00020 
00022 
00044 template<int N, typename T = double>
00045 class SimplexMeanRatio :
00046   public SimplexJacQF<N,T> {
00047 private:
00048 
00049   typedef SimplexJacQF<N,T> Base;
00050 
00051 public:
00052 
00053   //
00054   // Public types.
00055   //
00056 
00058   typedef T Number;
00059 
00061   typedef typename Base::Vertex Vertex;
00062 
00064   typedef typename Base::Simplex Simplex;
00065 
00067   typedef typename Base::Matrix Matrix;
00068 
00069 public:
00070 
00071   //--------------------------------------------------------------------------
00074 
00076   SimplexMeanRatio() :
00077     Base()
00078   {}
00079 
00081   SimplexMeanRatio(const SimplexMeanRatio& other) :
00082     Base(other)
00083   {}
00084 
00086   SimplexMeanRatio(const Simplex& s) :
00087     Base(s)
00088   {}
00089 
00091   SimplexMeanRatio& 
00092   operator=(const SimplexMeanRatio& other) {
00093     if (&other != this) {
00094       Base::operator=(other);
00095     }
00096     return *this;
00097   }
00098   
00100   ~SimplexMeanRatio()
00101   {}
00102 
00104   //--------------------------------------------------------------------------
00107 
00109 
00117   Number
00118   operator()() const;
00119 
00121 
00129   Number
00130   operator()(const Simplex& simplex) const {
00131     setFunction(simplex);
00132     return operator()();
00133   }
00134 
00136 
00144   void
00145   computeGradient(Vertex* gradient) const;
00146 
00148   //--------------------------------------------------------------------------
00152 
00153 
00155   using Base::getMatrix;
00156 
00158   using Base::getGradientMatrix;
00159 
00161   using Base::getDeterminant;
00162 
00164   using Base::getGradientDeterminant;
00165 
00167   using Base::computeContent;
00168 
00170   using Base::computeGradientContent;
00171 
00173   using Base::getDimension;
00174 
00176 
00177 protected:
00178 
00180   Number
00181   computeFunctionGivenS2(Number s2) const;
00182 
00183 };
00184 
00185 END_NAMESPACE_GEOM
00186 
00187 #define __geom_SimplexMeanRatio_ipp__
00188 #include "SimplexMeanRatio.ipp"
00189 #undef __geom_SimplexMeanRatio_ipp__
00190 
00191 #endif

Generated on Fri Aug 24 12:55:58 2007 for Computational Geometry Package by  doxygen 1.4.7