openModeller  Version 1.4.0
minimum_distance.hh
Go to the documentation of this file.
00001 
00028 #ifndef _MINIMUM_DISTANCEHH_
00029 #define _MINIMUM_DISTANCEHH_
00030 
00031 #include <openmodeller/om.hh>
00032 
00033 /****************************************************************/
00034 /************************* Minimum Distance *********************/
00035 
00040 class MinimumDistance : public AlgorithmImpl
00041 {
00042 public:
00043 
00046   MinimumDistance();
00047   virtual ~MinimumDistance();
00048 
00049   int initialize();
00050   int iterate();
00051   int done() const;
00052 
00053   Scalar getValue( const Sample& x ) const;
00054   int    getConvergence( Scalar *val );
00055 
00056 protected:
00057   virtual void _getConfiguration( ConfigurationPtr& ) const;
00058   virtual void _setConfiguration( const ConstConfigurationPtr& );
00059 
00060 private:
00061 
00062   bool _done;
00063 
00066   Scalar findDist( const Sample& x, const Sample& pnt ) const;
00067 
00068   Scalar _dist;  
00069 
00070   bool _hasCategorical;
00071   int _numLayers;
00072   Sample _isCategorical;
00073 
00074   std::vector<Sample> _envPoints;
00075 
00076 };
00077 
00078 
00079 #endif
00080