//...................................................................
// Surface.h
//
// class contains surface dimensions (m_Nx, m_Ny)
// (assumed regularly spaced), intensity scale factor (m_Smax),
// elevation histogram number (m_Nz), and pointer to memory holding
// the elevation histogram, elevations, and bitmap of the rendered
// image. Member functions include constructor, destructor, read and
// draw functions, and functions for lambert shading the surface.
//
//...................................................................
#define _HUGE huge // For 16-bit windows
typedef unsigned short byte; // For bitmap data type
typedef short data; // For elevations; short for DTED
typedef short** _HANDLE; // For surface draw parameter
typedef short* _POINTER; // passing.
class CSurface {
private:
byte _HUGE *m_Image; // LS image of surface for display
double m_Smax; // Intensity Scale Factor
double m_GridSize; // Elevation spacing
long m_Nx; // X-Dimension Of Surface
long m_Ny; // Y-Dimension Of Surface
long m_Nz; // Elevation Histogram number
long m_Nb; // Bitmap edge buffer
data *m_Hz; // Elevation difference Histogram
data _HUGE *m_Elevations; // Surface Elevations
public:
CSurface(void); // constructor
~CSurface(void); // destructor
virtual short surfaceRead(char*); // read surface elevations
virtual short surfaceDraw(_HANDLE, // display surface
_POINTER,
_POINTER);
private:
short surfaceHistogram(void); // compute elevation histogram
short surfaceFindSmax(void); // compute intensity scale factor
short surfaceLSRender(void); // lambert shade surface
};
//End of File