]> Creatis software - creaMaracasVisu.git/blob - bbtk/src/bbmaracasvisuContourStatistics.cxx
.
[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::bbUserSetDefaultValues()
59 {
60       bbSetInputLstValue(NULL);
61 }
62
63         
64         //-----------------------------------------------------------------     
65         void ContourStatistics::bbUserInitializeProcessing()
66         {
67         }
68         
69         //-----------------------------------------------------------------     
70         void ContourStatistics::bbUserFinalizeProcessing()
71         {
72         }
73         
74         //-----------------------------------------------------------------     
75         
76
77 }
78 // EO namespace bbcreaMaracasVisu
79
80