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

Spectral/vuSampleRay.h

Go to the documentation of this file.
00001 #ifndef _VUSAMPLERAY_H_
00002 #define _VUSAMPLERAY_H_
00003 
00004 #include "vuVector.h"
00005 #include "vuRay.h"
00006 #include "DatGrid.h"
00007 #include "DatPnt.h"
00008 
00009 namespace ns_vu1112112 {
00010 using namespace ns_vu1112112;
00011 
00013 //
00014 // File:   vuSampleRay.h
00015 // Author: Steve Kilthau
00016 // Date:   August, 1999
00017 // Adapted to vuVolume by Steven Bergner, 2001
00022 class vuSampleRay : public vuRay
00023 {
00024     friend class DatGrid;
00025     friend class DatPnt;
00026 public:
00028     vuSampleRay();
00029     vuSampleRay(const vuSampleRay &r);    
00030     vuSampleRay(const vuRay &r);    
00031     ~vuSampleRay();               
00032 
00033     void SamplingDistance(float sd);    
00034     float SamplingDistance() const;             
00035 
00037     vuSampleRay& operator=(vuSampleRay &rhs);
00038 
00039     bool advanceRay();
00040 
00045     bool getSamplePoint(DatPnt& dat) const;
00047     bool getSamplePointWithGradient(DatPnt &dat) const;
00048 
00051     bool attachToGrid(const DatGrid& grid);
00052     
00053 protected:
00054     float         m_SmpDist;                    
00055 
00056     const DatGrid *m_Grid;                      
00057     int           grid_index;
00058     int           gridPos[3];                   
00059     int           axis[3];                      
00060     int           step[3];                      
00061     float         incr[2][2];                   
00062     float         dist[3];                      
00063     int           maxSmp, numSmp;               
00064 
00065     int           m_Side, m_InSide;             
00066 
00067     int                 steps;                  
00068     
00069     DatPnt              *cell[8];
00070     float               w[8];                   
00071     int                 p[3];                   
00072     float               t[3];                   
00073     bool        emptySample;                    
00074 };
00075 
00076 } // end of namespace
00077 
00078 #endif

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