| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- #include "CPlaqueResult.h"
- #include <cstdlib>
- CPlaqueResult::CPlaqueResult()
- {
- result = new plaque::PlaqueResult;
- Initialize();
- }
- CPlaqueResult::~CPlaqueResult()
- {
- if ( result->m_tPtLongeantPlaque )
- {
- delete[] result->m_tPtLongeantPlaque;
- }
- if ( result->m_ptList )
- {
- delete[] result->m_ptList;
- }
-
- if ( result->m_tbPtsTrouvesFin )
- {
- delete[] result->m_tbPtsTrouvesFin;
- }
-
- delete result;
- }
-
- void CPlaqueResult::Initialize()
- {
- result->plaque_max_thickness = 0.0;
- result->plaque_mean_thickness = 0.0;
- result->plaque_area = 0.0;
- result->plaque_mean_density = 0.0;
- result->numberOfMeasures = 0;
-
- result->m_nPtLongeantPlaque = 0;
- result->m_tPtLongeantPlaque = NULL;
- result->m_nPtList = 0;
- result->m_ptList = NULL;
- result->m_ptInferieur.x = 0;
- result->m_ptInferieur.y = 0;
- result->m_nVecteursTrouves = 0;
- result->m_tbPtsTrouvesFin = NULL;
-
- result->code_retour = 0;
- result->code_debug1 = 0;
- result->code_debug2 = 0;
- result->code_debug3 = 0;
- result->code_debug4 = 0;
- result->code_debug5 = 0;
-
- result->m_type = 0;
- result->m_Etape = 0;
- }
- int CPlaqueResult::fill( plaque::PlaqueResult* res)
- {
- int retour;
- if ( res )
- {
- if ( res->m_tPtLongeantPlaque )
- {
- delete[] res->m_tPtLongeantPlaque;
- }
-
- /* if ( res->m_ptList )
- {
- delete[] res->m_ptList;
- }
- */
- if ( res->m_tbPtsTrouvesFin )
- {
- delete[] res->m_tbPtsTrouvesFin;
- }
- int n = result->m_nPtLongeantPlaque;
- res->plaque_max_thickness = result->plaque_max_thickness;
- res->plaque_mean_thickness = result->plaque_mean_thickness;
- res->plaque_area = result->plaque_area;
- res->plaque_mean_density = result->plaque_mean_density;
- res->numberOfMeasures = result->numberOfMeasures;
- res->code_retour = result->code_retour;
- res->code_debug1 = result->code_debug1;
- res->code_debug2 = result->code_debug2;
- res->code_debug3 = result->code_debug3;
- res->code_debug4 = result->code_debug4;
- res->code_debug5 = result->code_debug5;
-
- res->m_type = result->m_type;
- res->m_Etape = result->m_Etape;
-
- res->m_ptInferieur.x = result->m_ptInferieur.x;
- res->m_ptInferieur.y = result->m_ptInferieur.y;
- // Transfert de l'image résultats de l'analyse
- unsigned char *dadd, *dadd2, *amax;
- res->m_nbpix = result->m_nbpix;
- res->m_dataImg = new unsigned char[result->m_nbpix];
- dadd = (unsigned char *) result->m_dataImg;
- amax = dadd + result->m_nbpix;
- dadd2 = res->m_dataImg;
- while (dadd < amax)
- {
- *dadd2 = *dadd;
- dadd++;
- dadd2++;
- }
-
- res->m_tPtLongeantPlaque = new plaque::Point[ n ];
- res->m_nPtLongeantPlaque = n;
-
- if ( !res->m_tPtLongeantPlaque )
- {
- return false;
- }
- int i;
- for ( i = 0; i < n; i++ )
- {
- res->m_tPtLongeantPlaque[ i ] = result->m_tPtLongeantPlaque[ i ];
- }
- /*
- // Tab 2
- n = result->m_nPtList;
- res->m_ptList = new plaque::Point[ n ];
- res->m_nPtList = n;
-
- if ( !res->m_ptList )
- {
- return false;
- }
- for ( i = 0; i < n; i++ )
- {
- res->m_ptList[ i ] = result->m_ptList[ i ];
- }
- */
- // Tab 3
- res->m_nVecteursTrouves = result->m_nVecteursTrouves;
- n = res->m_nVecteursTrouves;
- res->m_tbPtsTrouvesFin = new plaque::Point[ n ];
-
- if ( !res->m_tbPtsTrouvesFin )
- {
- return false;
- }
- for ( i = 0; i < n; i++ )
- {
- res->m_tbPtsTrouvesFin[ i ] = result->m_tbPtsTrouvesFin[ i ];
- }
- }
- retour = res->m_nVecteursTrouves;
- return retour;
- }
- int CPlaqueResult::fill2( plaque::PlaqueResult* res)
- {
- int retour;
- retour = 0;
- if ( res )
- {
- res->plaque_max_thickness = result->plaque_max_thickness;
- res->plaque_mean_thickness = result->plaque_mean_thickness;
- res->plaque_area = result->plaque_area;
- res->plaque_mean_density = result->plaque_mean_density;
- res->numberOfMeasures = result->numberOfMeasures;
- res->code_retour = result->code_retour;
- res->code_debug1 = result->code_debug1;
- res->code_debug2 = result->code_debug2;
- res->code_debug3 = result->code_debug3;
- res->code_debug4 = result->code_debug4;
- res->code_debug5 = result->code_debug5;
- }
- return retour;
- }
- bool CPlaqueResult::allocate_vectors( long n_points )
- {
- if ( !n_points )
- {
- return false;
- }
-
- result->m_nPtLongeantPlaque = n_points;
- result->m_tPtLongeantPlaque = new plaque::Point[ n_points ];
-
- if ( !result->m_tPtLongeantPlaque )
- {
- return false;
- }
- return true;
- }
-
-
|