src/Volume.h

Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include "common.h"
00004 
00005 #include <vector>
00006 #include "Voxel.h"
00007 #include "Matrix.h"
00008 
00009 
00013 class Volume
00014 {
00015 
00016 public:
00017 
00018         Volume();
00019         Volume( const std::string &strFilename );
00020         ~Volume(void);
00021 
00022   void load( const std::string &strFilename );
00023   void release();
00024 
00025 
00029   const Voxel& getVoxel( const int iX, const int iY, const int iZ ) const
00030         {
00031                 return m_voxels[ iX + iY*m_sizeX + iZ*m_sizeX*m_sizeY ];
00032         };
00033 
00034 
00035 
00039   const Voxel& getVoxel(const int iIndex) const
00040         {
00041                 return m_voxels[iIndex];
00042         };
00043 
00044 
00045 
00049   const Voxel* getVolume() const
00050         {
00051                 return &( m_voxels.front() );
00052         };
00053 
00054 
00058         const int getSizeX() const
00059         {
00060                 return m_sizeX;
00061         };
00062 
00063 
00067         const int getSizeY() const
00068         {
00069                 return m_sizeY;
00070         };
00071 
00072 
00076         const int getSizeZ() const
00077         {
00078                 return m_sizeZ;
00079         };
00080 
00081 
00085         const int getSize() const
00086         {
00087                 return int( m_voxels.size() );
00088         };
00089 
00093   const int* getDensityDistribution () const
00094   {
00095     return m_densityArray;
00096   }
00097 
00098 private:
00099   std::vector<Voxel> m_voxels;
00100 
00101   int m_sizeX;  // was: m_iWidth;
00102   int m_sizeY;  // was: m_iHeight;
00103   int m_sizeZ;  // was: m_iDepth;
00104 
00105         int m_densityArray[DENSITY_COUNT];
00106   int m_maxDensityIndex;
00107 };
00108 

Generated on Mon Dec 10 18:18:11 2007 for VisLU by  doxygen 1.5.4