AutoControlPoints.h

Go to the documentation of this file.
00001 #ifndef __AutoControlPoints_h_INCLUDED__
00002 #define __AutoControlPoints_h_INCLUDED__
00003 
00004 #include "manualContourModel.h"
00005 #include "Propagation.h"
00006 #include "vectorFunctions.h"
00007 
00008 class AutoControlPoints : Vector
00009 {
00010         public:
00011                         AutoControlPoints();
00012                         ~AutoControlPoints();           
00013                         int GetSizeVector       ( std::vector<double>*Vector );
00014 
00015                         void PointLeft          ( std::vector<double>*IndX, std::vector<double>*InY, std::vector<double>*InZ, 
00016                                                                   double* lex, double* ley, double* lez );
00017                         void PointRight         ( std::vector<double>*IndX, std::vector<double>*InY, std::vector<double>*InZ, 
00018                                                                   double* rix, double* riy, double* riz );
00019                         void PointHigh          ( std::vector<double>*IndX, std::vector<double>*InY, std::vector<double>*InZ, 
00020                                                                   double* hix, double* hiy, double* hiz );
00021                         void PointLow           ( std::vector<double>*IndX, std::vector<double>*InY, std::vector<double>*InZ, 
00022                                                                   double* lox, double* loy, double* loz );
00023                         void TwoPoints          ( std::vector<double>*InX, std::vector<double>*InY, std::vector<double>*InZ );
00024                         
00025                         void Intersection       ( double x01, double y01, double x02, double y02, double mn, double m2, double* x, double* y );
00026                         void InterBetweenContours                       ( std::vector<double>*InX, std::vector<double>*InY, std::vector<double>*InZ );
00027                         void GetInterBetweenContours            ( std::vector<Vector>*interVX, std::vector<Vector>*interVY );
00028                         void IntersectionPoints                         ( );
00029                         void GetIntersectionPoints                      ( std::vector<Vector>*interVX, std::vector<Vector>*interVY );
00030                         void GetErrorBetweenContours            ( std::vector<double>*vec );
00031                         void CalculeControlPoints                       ( std::vector<double>*InX, std::vector<double>*InY, std::vector<double>*InZ );
00032                         void GetControlPoints                           ( std::vector<double>*OutX, std::vector<double>*OutY, std::vector<double>*OutZ );
00033                         void CalculeInitialControlPoints        ( std::vector<double>*InX, std::vector<double>*InY, std::vector<double>*InZ );
00034                         void GetInitialControlPoints            ( std::vector<double>*OutX, std::vector<double>*OutY, std::vector<double>*OutZ );
00035                         void SetNumSplineInterpolation          ( int num ); 
00036         
00037         private:
00038                         void ChargeSpline                                       ( );
00039                         double  Slope                                           ( double x0, double y0, double x1, double y1 );
00040                         double  Normal                                          ( double x0, double y0, double* m, double xi );
00041                         void    CircleCenter                            ( std::vector<double>*InX, std::vector<double>*InY, std::vector<double>*InZ, double *cx, double *cy, double *r );
00042                         void    CirclePoints                            ( double cx, double cy, double r, double grad, double *x, double *y );  
00043                         void    InterCircle                                     ( std::vector<double>*InX, std::vector<double>*InY, std::vector<double>*InZ );
00044                         void    maxminLocal                                     ( );
00045                         void    fixBetweenPoints                        ( double val );
00046                         void    ErrorBetweenContours            ( );
00047                         void    AddControlPoint                         ( bool activate );
00048                         void    InterBetweenControl                     ( );
00049                         void    fixBetweenControl                       ( );
00050                         void    PossibleIntersections           ( std::vector<double>*InX, std::vector<double>*InY, std::vector<double>*InZ );
00051                         void    ControlInContour                        ( std::vector<double>*InX, std::vector<double>*InY, std::vector<double>*InZ );
00052                         void    NearMaxError2Control            ( );
00053                         void    MoveControlPointInContour       ( std::vector<double>*InX, std::vector<double>*InY, std::vector<double>*InZ );
00054                         double  MoveAndAverage                          ( int dir, std::vector<double>*InX, std::vector<double>*InY, std::vector<double>*InZ );
00055                         void    MoveControlPoints                       ( std::vector<double>*InX, std::vector<double>*InY, std::vector<double>*InZ );
00056                         void    GetNewPoints                            ( std::vector<double>*InX, std::vector<double>*InY, std::vector<double>*InZ );
00057                         void    GetInitialNewPoints                     ( std::vector<double>*InX, std::vector<double>*InY, std::vector<double>*InZ );
00058                         
00059                         int                                             _SizeVectorIn;
00060                         std::vector<double>             _controlpointsX;
00061                         std::vector<double>             _controlpointsY;
00062                         std::vector<double>             _controlpointsZ;
00063 
00064                         manualContourModel              *_mContourModel;
00065                         int                                             _numspline;
00066                         double                                  _pathsize;
00067 
00068                         std::vector<double>             _chargecontrolpointsX;
00069                         std::vector<double>             _chargecontrolpointsY;
00070                         std::vector<double>             _chargecontrolpointsZ;
00071 
00072                         std::vector<double>             _circleX;
00073                         std::vector<double>             _circleY;
00074                         std::vector<double>             _intercircleX;
00075                         std::vector<double>             _intercircleY;
00076                         std::vector<double>             _intercircleDist;
00077                         std::vector<double>             _interbewteencircleX;
00078                         std::vector<double>             _interbewteencircleY;
00079                         std::vector<double>             _interbewteencircleDist;
00080                         std::vector<int>                _interbewteencirclePos;
00081 
00082                         std::vector<int>                _posmaxlocal;
00083                         std::vector<int>                _posminlocal;
00084                         std::vector<double>             _maxlocalX;
00085                         std::vector<double>             _maxlocalY;
00086                         std::vector<double>             _minlocalX;
00087                         std::vector<double>             _minlocalY;
00088                         std::vector<double>             _minmaxlocalX;
00089                         std::vector<double>             _minmaxlocalY;
00090                         std::vector<int>                _posminmaxlocal;
00091 
00092                         std::vector<Vector>             _intervectorX;
00093                         std::vector<Vector>             _intervectorY;
00094                         std::vector<double>             _interpointsX;
00095                         std::vector<double>             _interpointsY;
00096                         int                                             _posA;
00097                         int                                             _posB;
00098 
00099                         double                                  _errorpos;
00100                         std::vector<double>             _errorvector;
00101                         
00102                         std::vector<Vector>             _intervecXX;
00103                         std::vector<Vector>             _intervecYY;
00104                         std::vector<Vector>             _interitselfX;
00105                         std::vector<Vector>             _interitselfY;
00106 
00107                         int                                             _posn;
00108                         std::vector<int>                _contIncontpos; 
00109 
00110 };
00111 
00112 #endif //  __AutoControlPoints_h_INCLUDED__
00113  
00114  

Generated on 18 Mar 2010 for creaMaracasVisu_lib by  doxygen 1.6.1