manualContourModelCircle.cpp

Go to the documentation of this file.
00001 #include "manualContourModelCircle.h"
00002 
00003 // ----------------------------------------------------------------------------
00004 // ----------------------------------------------------------------------------
00005 // ----------------------------------------------------------------------------
00006 
00007 manualContourModelCircle::manualContourModelCircle()
00008 : manualContourModel()
00009 {
00010 }
00011 
00012 manualContourModelCircle::~manualContourModelCircle()
00013 {
00014 }
00015 
00016 
00017 // ----------------------------------------------------------------------------
00018 manualContourModelCircle * manualContourModelCircle :: Clone()  // virtual
00019 {
00020         manualContourModelCircle * clone = new manualContourModelCircle();
00021         CopyAttributesTo(clone);
00022         return clone;
00023 }
00024 
00025 // ---------------------------------------------------------------------------
00026 
00027 void manualContourModelCircle::CopyAttributesTo( manualContourModelCircle * cloneObject)
00028 {
00029         // Fathers object
00030         manualContourModel::CopyAttributesTo(cloneObject);
00031 }
00032 
00033 //----------------------------------------------------------------
00034 int manualContourModelCircle::GetTypeModel() //virtual
00035 {
00036         return 3;
00037 }
00038 
00039 //----------------------------------------------------------------
00040 void manualContourModelCircle::GetSpline_i_Point(int i, double *x, double *y, double *z) // virtal
00041 {
00042         double angle = _deltaAngle*i;
00043         *x = _radio*cos(angle) + _centerX;
00044         *y = _radio*sin(angle) + _centerY;
00045         *z = _centerZ;
00046 }
00047 
00048 //
00049 // ---------------------------------------------------------------------------
00050 void manualContourModelCircle::UpdateSpline() // virtal
00051 {
00052         manualPoint     *mpA,*mpB;
00053         double difX,difY;
00054     int np      = GetSizeLstPoints( );
00055         int nps = GetNumberOfPointsSpline();
00056         _deltaAngle=(3.14159265*2)/(nps-1);
00057 
00058         if (np==2){
00059                 mpA                     = GetManualPoint(0);
00060                 mpB                     = GetManualPoint(1);
00061                 difX            = mpA->GetX() - mpB->GetX();
00062                 difY            = mpA->GetY() - mpB->GetY();
00063                 _radio          = sqrt( difX*difX + difY*difY );
00064                 _centerX        = mpA->GetX();
00065                 _centerY        = mpA->GetY();
00066                 _centerZ        = mpA->GetZ();
00067         } else {
00068                 _radio          = -1;
00069                 _centerX        = -1;
00070                 _centerY        = -1;
00071                 _centerZ        = -1;
00072         }
00073 }

Generated on 18 Mar 2010 for creaMaracasVisu_lib by  doxygen 1.6.1