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.11 2004/09/03 16:56:55 vdronov Exp $
00007  *
00008  * $Log: 3dtinter.h_v $
00009  * Revision 1.11  2004/09/03 16:56:55  vdronov
00010  * *** empty log message ***
00011  *
00012  * Revision 1.10  2004/08/11 23:04:16  vdronov
00013  * *** empty log message ***
00014  *
00015  * Revision 1.9  2004/07/30 19:08:37  vdronov
00016  * *** empty log message ***
00017  *
00018  * Revision 1.8  2004/06/28 20:54:30  vdronov
00019  * *** empty log message ***
00020  *
00021  * Revision 1.7  2003/09/15 13:48:59  fileserver!dwilliss
00022  * Doxygen
00023  *
00024  * Revision 1.6  2003/08/15 16:06:53  vdronov
00025  * nc
00026  *
00027  * Revision 1.5  2003/07/30 14:36:00  mju
00028  * Check inclusion guards.
00029  * Ignore private section.
00030  *
00031  * Revision 1.4  2003/05/05 20:02:19  vdronov
00032  * lc
00033  *
00034  * Revision 1.3  2003/04/09 19:10:19  vdronov
00035  * terrain null value
00036  *
00037  * Revision 1.2  2003/03/25 23:37:03  vdronov
00038  * multiple updates
00039  *
00040  * Revision 1.1  2003/03/10 15:08:24  vdronov
00041  * Initial revision
00042  * \endif
00043  */ 
00044 
00045 #ifndef  INC_GRE_3DTINTER_H
00046 #define  INC_GRE_3DTINTER_H
00047 
00048 #ifndef  INC_GRE_3DTERRA_H
00049 #include <gre/3dterra.h>
00050 #endif
00051 
00052 #ifndef  INC_MI32_ASURFACE_H
00053 #include <mi32/asurface.h>
00054 #endif
00055 
00056 #ifndef  INC_MI32_SIMPLEAR_H
00057 #include <mi32/simplear.h>
00058 #endif
00059 
00060 #ifndef  INC_RVC_GEOREFER_H
00061 #include <rvc/georefer.h>
00062 #endif
00063 
00064 #ifndef  INC_RVC_TIN_H
00065 #include <rvc/tin.h>
00066 #endif
00067 
00068 namespace GRE {
00069 
00070 //! TIN terrain model.
00071 class TINTERRAIN : public TERRAIN {
00072    public:
00073 
00074       TINTERRAIN (                                 //! Constructor 
00075          );
00076 
00077       ~TINTERRAIN (                                //! Destructor 
00078          );
00079 
00080    private:
00081       #ifndef GENERATING_DOXYGEN_OUTPUT
00082 
00083       ABSTRACT_SURFACE *m_Surface;
00084       DRECT3D m_Extents;
00085       SPATREF::COORDREFSYS m_CoordRefSys;
00086 
00087       RVC::TIN m_TIN;
00088 
00089       TRIANGULATION m_Triangulation;
00090       BITSET m_TrianglesBits;            
00091 
00092       TINTERRAIN& operator= (                      //! Assignment operator (not implemented)
00093          const TINTERRAIN& rhs
00094          );
00095 
00096       TERRAIN* v_CreateInstance (
00097          ) { return new TINTERRAIN(); };
00098 
00099       ERRVALUE v_Build (
00100          const GRE_LAYER *layer
00101          );
00102 
00103       bool v_IsObjectTypeSupported (
00104          const RVC::OBJTYPE objtype
00105          ) const { return (objtype == RVC::OBJTYPE_TIN); };
00106 
00107       void v_Free (
00108          );
00109 
00110       ERRVALUE Create (              
00111          const GRE_LAYER *layer
00112          );
00113 
00114       void Delete (               
00115          );
00116 
00117       ERRVALUE v_GetDefaultScene ( 
00118          SCENE3D& scene
00119          ) const;
00120 
00121       ERRVALUE v_SetScene (
00122          const SCENE3D& scene,
00123          const SIMPLE_ARRAY<TEXTURE*> &textures   
00124          );
00125 
00126       ERRVALUE v_DrawScene (
00127          CONTROLLER &controller,        
00128          DRAWINGCONTEXT3D& drawing,
00129          TEXTURE* texture,
00130          TEXTUREFILTER* texturefilter
00131          );
00132 
00133       float v_GetElevation (
00134          const float x,
00135          const float y
00136          ) const;
00137 
00138       ERRVALUE v_ComputeProfile (
00139          const POLYLINE& polyline,
00140          POLYLINE& profile,
00141          SIMPLE_ARRAY<INT32>& index
00142          );
00143 
00144       float v_GetAngleToNorth (
00145          const float x,
00146          const float y
00147          ) const;
00148 
00149       const ABSTRACT_SURFACE* v_GetAbstractSurface (
00150          ) { return m_Surface; }
00151 
00152       bool v_HasNull (
00153          ) const { return false; };
00154 
00155       bool v_IsNull (
00156          const float x,
00157          const float y
00158          ) const { return false; };
00159 
00160       void v_SetCoordRefSys (
00161          const SPATREF::COORDREFSYS& CoordRefSys
00162          );
00163 
00164       const SPATREF::COORDREFSYS v_GetCoordRefSys (
00165          ) const { return m_CoordRefSys; };
00166 
00167       const DRECT3D& v_GetExtents (
00168          ) { return m_Extents; };
00169 
00170       void v_CreateBoundary (
00171          REGION2D& boundary
00172          );
00173 
00174       #endif //!< GENERATING_DOXYGEN_OUTPUT
00175    };
00176 
00177 };    //! End of namespace
00178 
00179 #endif
00180 

Generated on Tue Dec 14 13:18:12 2004 for TNTsdk by  doxygen 1.3.8-20040913