gre/3dtinter.h

Go to the documentation of this file.
00001 /*** 
00002  * \file 3dtinter.h <gre/3dtinter.h>
00003  * \brief Base class for terrain decimation algorithms
00004  *
00005  * \if NODOC
00006  * $Id: 3dtinter.h_v 1.7 2003/09/15 13:48:59 fileserver!dwilliss Exp $
00007  *
00008  * $Log: 3dtinter.h_v $
00009  * Revision 1.7  2003/09/15 13:48:59  fileserver!dwilliss
00010  * Doxygen
00011  *
00012  * Revision 1.6  2003/08/15 16:06:53  vdronov
00013  * nc
00014  *
00015  * Revision 1.5  2003/07/30 14:36:00  mju
00016  * Check inclusion guards.
00017  * Ignore private section.
00018  *
00019  * Revision 1.4  2003/05/05 20:02:19  vdronov
00020  * lc
00021  *
00022  * Revision 1.3  2003/04/09 19:10:19  vdronov
00023  * terrain null value
00024  *
00025  * Revision 1.2  2003/03/25 23:37:03  vdronov
00026  * multiple updates
00027  *
00028  * Revision 1.1  2003/03/10 15:08:24  vdronov
00029  * Initial revision
00030  * \endif
00031  */ 
00032 
00033 #ifndef  INC_GRE_3DTINTER_H
00034 #define  INC_GRE_3DTINTER_H
00035 
00036 #ifndef  INC_GRE_3DTERRA_H
00037 #include <gre/3dterra.h>
00038 #endif
00039 
00040 #ifndef  INC_MI32_ASURFACE_H
00041 #include <mi32/asurface.h>
00042 #endif
00043 
00044 #ifndef  INC_MI32_SIMPLEAR_H
00045 #include <mi32/simplear.h>
00046 #endif
00047 
00048 #ifndef  INC_RVC_GEOREFER_H
00049 #include <rvc/georefer.h>
00050 #endif
00051 
00052 #ifndef  INC_RVC_TIN_H
00053 #include <rvc/tin.h>
00054 #endif
00055 
00056 namespace GRE {
00057 
00058 //! TIN terrain model.
00059 class TINTERRAIN : public TERRAIN {
00060    public:
00061 
00062       TINTERRAIN (                                 //! Constructor 
00063          );
00064 
00065       ~TINTERRAIN (                                //! Destructor 
00066          );
00067 
00068    private:
00069       #ifndef GENERATING_DOXYGEN_OUTPUT
00070 
00071       ABSTRACT_SURFACE *m_Surface;
00072       DRECT3D m_Extents;
00073       MAPPROJPARM m_MapProjParm;
00074 
00075       RVC::TIN m_TIN;
00076 
00077       TRIANGULATION m_Triangulation;
00078       BITSET m_TrianglesBits;            
00079 
00080       TINTERRAIN& operator= (                      //! Assignment operator (not implemented)
00081          const TINTERRAIN& rhs
00082          );
00083 
00084       TERRAIN* v_CreateInstance (
00085          ) { return new TINTERRAIN(); };
00086 
00087       ERRVALUE v_Build (
00088          const GRE_LAYER *layer
00089          );
00090 
00091       bool v_IsObjectTypeSupported (
00092          const RVC::OBJTYPE objtype
00093          ) const { return (objtype == RVC::OBJTYPE_TIN); };
00094 
00095       void v_Free (
00096          );
00097 
00098       ERRVALUE Create (              
00099          const GRE_LAYER *layer
00100          );
00101 
00102       void Delete (               
00103          );
00104 
00105       ERRVALUE v_GetDefaultScene ( 
00106          SCENE3D& scene
00107          ) const;
00108 
00109       ERRVALUE v_SetScene (
00110          const SCENE3D& scene,
00111          const SIMPLE_ARRAY<TEXTURE*> &textures   
00112          );
00113 
00114       ERRVALUE v_DrawScene (
00115          CONTROLLER &controller,        
00116          DRAWINGCONTEXT3D& drawing,
00117          TEXTURE* texture,
00118          TEXTUREFILTER* texturefilter
00119          );
00120 
00121       float v_GetElevation (
00122          const float x,
00123          const float y
00124          ) const;
00125 
00126       float v_GetAngleToNorth (
00127          const float x,
00128          const float y
00129          ) const;
00130 
00131       const ABSTRACT_SURFACE* v_GetAbstractSurface (
00132          ) { return m_Surface; }
00133 
00134       bool v_HasNull (
00135          ) const { return false; };
00136 
00137       bool v_IsNull (
00138          const float x,
00139          const float y
00140          ) const { return false; };
00141 
00142       void v_SetMapProjParm (
00143          const MAPPROJPARM& mapprojparm
00144          );
00145 
00146       const MAPPROJPARM v_GetMapProjParm (
00147          ) const { return m_MapProjParm; };
00148 
00149       const DRECT3D& v_GetExtents (
00150          ) { return m_Extents; };
00151 
00152       #endif //!< GENERATING_DOXYGEN_OUTPUT
00153    };
00154 
00155 };    //! End of namespace
00156 
00157 #endif
00158 

Generated on Thu Aug 12 06:18:24 2004 for TNTsdk by doxygen 1.3.4-20031026