Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members

mitkTF2DRGBAPSPSplineClassifier.h

00001 /*=========================================================================
00002 
00003   Program:   3DMed
00004   Date:      $Date: 2014-02-25 18:30:00 +0800 $
00005   Version:   $Version: 4.6.0 $
00006   Copyright: MIPG, Institute of Automation, Chinese Academy of Sciences
00007 
00008 =========================================================================*/
00009 
00010 #ifndef __mitkTF2DRGBAPSPSplineClassifier_h
00011 #define __mitkTF2DRGBAPSPSplineClassifier_h
00012 
00013 #include "mitkTF2DRGBAClassifier.h"
00014 
00021 class MITK_VISUALIZATION_API mitkTF2DRGBAPSPSplineClassifier : public mitkTF2DRGBAClassifier  
00022 {
00023 public:
00024     MITK_TYPE( mitkTF2DRGBAPSPSplineClassifier, mitkTF2DRGBAClassifier )
00025 
00026     mitkTF2DRGBAPSPSplineClassifier();
00027 
00033     void SetSmoothnessDegree( int smoothnessdegree );
00034 
00040     void SetDelta( float delta );
00041 
00046     int GetSmoothnessDegree() const
00047     {
00048         return SmoothnessDegree;
00049     }
00050 
00055     float GetDelta() const
00056     {
00057         return Delta;
00058     }
00059 
00060 protected:
00061     virtual ~mitkTF2DRGBAPSPSplineClassifier();
00062 
00063     virtual void _updateCurve();
00064 
00066     // This funcition implementes an implicit function from a design polygon
00067     // "Control Points" and returns a 2D implicit function z=f(x,y)
00069     double SplineValue( int x, int y );
00070 
00072     // This funcition implementes an implicit function from a given line 
00073     // segment specified by two points located at StartPoint(x,y) and 
00074     // EndPoint(x,y).
00076     double LineSeg( int x, int y, double StartPoint[2], double EndPoint[2] );
00077 
00079     // This funcition implementes an implicit function from a ray originated  
00080     // at Point(x,y) with a slope "beta"
00082     double Vertex( int x, int y, double Point[2], double alpha, double beta );
00083 
00085     // This funcition defines the generalized Heaviside smooth unit step  
00086     // function of order n
00088     double HeavisideFunc( double s, int n );
00089     double HeavisideFuncNum( double s, int n );
00090     double Square_Angle( double x, double y, double beta );
00091     double Corner( double x, double y, double beta );
00092     double Power( double x, int n );
00093 
00094     // a positive integer used to specify the degree of smoothness
00095     int SmoothnessDegree;
00096 
00097     //a positive number used to specify the softness of the designed implicit polygon
00098     float Delta;
00099 
00100 private:
00101     mitkTF2DRGBAPSPSplineClassifier(const mitkTF2DRGBAPSPSplineClassifier&);
00102     void operator = (const mitkTF2DRGBAPSPSplineClassifier&);
00103 
00104 };
00105 
00106 #endif 
00107 
00108 

Generated on Tue Feb 25 15:00:37 2014 for MITK (Medical Imaging ToolKit) by  doxygen 1.4.3