]> Creatis software - creaMaracasVisu.git/blob - bbtk/src/bbmaracasvisuContourStatistics.cxx
31219232012a1e5d5b15b13fa67640de5a1ab29c
[creaMaracasVisu.git] / bbtk / src / bbmaracasvisuContourStatistics.cxx
1 #include "bbmaracasvisuContourStatistics.h"
2 #include "bbcreaMaracasVisuPackage.h"
3 #include <math.h>
4 namespace bbcreaMaracasVisu
5 {
6
7 BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,ContourStatistics)
8 BBTK_BLACK_BOX_IMPLEMENTATION(ContourStatistics,bbtk::AtomicBlackBox);
9
10 //------------------------------------------------------------
11 void ContourStatistics::Process()
12 {
13
14           double max=0,min=0;
15           double average=0,standardeviation=0;
16           double acum=0;
17           double ng;
18           int size=0;
19           if (bbGetInputLstValue()!=NULL)
20           {
21                 size=bbGetInputLstValue()->size();
22                 if (size>0){
23                max=(*bbGetInputLstValue())[0];
24                    min=(*bbGetInputLstValue())[0];
25      // Average
26                         int i;
27                         for ( i=0; i<size; i++ )
28                         {
29                                 ng=(*bbGetInputLstValue())[i];
30                                 acum = acum + ng;
31                                 if (max<ng) max=ng;             // Max
32                                 if (min>ng) min=ng;     // Min
33                         }
34                         average = acum / size;
35
36           // Standar Deviation
37                         acum=0;
38                         double tmp;
39                         for ( i=0; i<size; i++ )
40                         {
41                 tmp = (*bbGetInputLstValue())[i] - average;
42                                 acum = acum + tmp*tmp;
43                         }
44                         standardeviation = sqrt(acum/size);
45
46                 }
47           }
48
49           // OUTPUT
50       bbSetOutputMax( max );
51       bbSetOutputnPoints( size );
52       bbSetOutputMin( min );
53       bbSetOutputAverage( average );
54       bbSetOutputStandarDeviation( standardeviation );
55 }
56
57 //------------------------------------------------------------
58 void ContourStatistics::bbUserConstructor()
59 {
60       bbSetInputLstValue(NULL);
61 }
62
63 //------------------------------------------------------------
64 void ContourStatistics::bbUserCopyConstructor(bbtk::BlackBox::Pointer)
65 {
66 }
67
68 //------------------------------------------------------------
69 void ContourStatistics::bbUserDestructor()
70 {
71 }
72
73 }
74 // EO namespace bbcreaMaracasVisu
75
76