Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

vuHistogram.cpp

Go to the documentation of this file.
00001 #include "vuHistogram.h"
00002 
00003 vuHistogram::vuHistogram( HistType type) 
00004 {
00005     reset();
00006     setType(type);
00007 }
00008 
00009 vuHistogram::~vuHistogram()
00010 {
00011 }
00012 
00013 void vuHistogram::setType(HistType type)
00014 {
00015     m_Type = type;
00016     reset();
00017 }
00018 
00019 const char* vuHistogram::getTypeName() const
00020 { 
00021     //histogram names
00022     const static char  s_TypeName[][255] =
00023         {"Intensity", "Isosurface Area"};
00024     return s_TypeName[(int)m_Type];
00025 }
00026 
00027 void vuHistogram::reset()
00028 {
00029     int i, len = m_Histogram.getLength();
00030     for(i=0; i<len; i++)
00031         m_Histogram[i] = 0;
00032 }
00033 
00034 void vuHistogram::setSize(dword size)
00035 {
00036     dword len = m_Histogram.getLength();
00037     m_Histogram.setSize(size);
00038     if(size > len)
00039     {
00040         dword p;
00041         for(p = len; p<size; p++)
00042             m_Histogram[p] = 0;
00043     }
00044 }
00045 
00046 void vuHistogram::recordIntensity(word intensity)
00047 {
00048     int len = m_Histogram.getLength();
00049     if(intensity >= len)
00050     {
00051         int p;
00052         for(p = intensity; p>=len; p--)
00053             m_Histogram[p] = 0;
00054     }
00055     m_Histogram[intensity]++;
00056 }
00057 
00058 ostream& operator<<(ostream& os, const vuHistogram& hist)
00059 {
00060     dword v;
00061     dword len = hist.m_Histogram.getLength();
00062     for(v=0; v<len; v++)
00063     {
00064         os << v <<" \t" << hist.m_Histogram[v] << endl;
00065     }
00066     return os;
00067 }
00068 

Generated on Wed Dec 15 21:20:34 2004 for vuVolume by  doxygen 1.3.9.1