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

Generated on Thu Apr 26 04:03:30 2007 for TNTsdk by  doxygen 1.5.2