3dftter.h

Go to the documentation of this file.
00001 
00002 
00003 /*** 
00004  * \file 3dftter.h flat terangulation <gre/3dftter.h>
00005  * \brief 
00006  *
00007  * \if NODOC
00008  * $Id: 3dftter.h_v 1.6 2004/09/03 16:55:16 vdronov Exp $
00009  *
00010  * $Log: 3dftter.h_v $
00011  * Revision 1.6  2004/09/03 16:55:16  vdronov
00012  * *** empty log message ***
00013  *
00014  * Revision 1.5  2004/08/11 23:00:12  vdronov
00015  * *** empty log message ***
00016  *
00017  * Revision 1.4  2004/07/30 19:07:17  vdronov
00018  * *** empty log message ***
00019  *
00020  * Revision 1.3  2004/06/29 13:56:21  vdronov
00021  * *** empty log message ***
00022  *
00023  * Revision 1.2  2004/06/17 17:23:55  vdronov
00024  * added case for non raster flat surface
00025  *
00026  * Revision 1.1  2004/06/15 16:06:18  vdronov
00027  * Initial revision
00028  *
00029  * \endif
00030 **/ 
00031 
00032 #ifndef  INC_GRE_3DFTTER_H
00033 #define  INC_GRE_3DFTTER_H
00034 
00035 #ifndef  INC_GRE_3DTERRA_H
00036 #include <gre/3dterra.h>
00037 #endif
00038 
00039 #ifndef  INC_GRE_3DSCENE_H
00040 #include <gre/3dscene.h>
00041 #endif
00042 
00043 #ifndef  INC_MI32_ASURFACE_H
00044 #include <mi32/asurface.h>
00045 #endif
00046 
00047 #ifndef  INC_MI32_SIMPLEAR_H
00048 #include <mi32/simplear.h>
00049 #endif
00050 
00051 #ifndef  INC_RVC_GEOREFER_H
00052 #include <rvc/georefer.h>
00053 #endif
00054 
00055 namespace GRE {
00056 
00057 //! Flat triangulation terrain model.
00058 class FLATTRIANGULATION : public TERRAIN {
00059    public:
00060 
00061       FLATTRIANGULATION (                                //! Constructor 
00062          );
00063 
00064       ~FLATTRIANGULATION (                               //! Destructor 
00065          );
00066 
00067    private:
00068       #ifndef GENERATING_DOXYGEN_OUTPUT
00069 
00070       ABSTRACT_SURFACE *m_Surface;
00071       DRECT2D m_ObjExtents;
00072       DRECT3D m_Extents;
00073       SPATREF::COORDREFSYS m_CoordRefSys;
00074       TRANS2D_MAPGEN m_Transformation;
00075       bool m_IsRaster;
00076 
00077       TRIANGULATION m_Triangulation;
00078       BITSET m_TrianglesBits; 
00079       SCENE3D *m_Scene;
00080 
00081       FLATTRIANGULATION& operator= (                        //! Assignment operator (not implemented)
00082          const FLATTRIANGULATION& rhs
00083          );
00084 
00085       TERRAIN* v_CreateInstance (
00086          ) { return new FLATTRIANGULATION(); };
00087 
00088       ERRVALUE v_Build (
00089          const GRE_LAYER *layer
00090          );
00091 
00092       bool v_IsObjectTypeSupported (
00093          const RVC::OBJTYPE objtype
00094          ) const { return (objtype == RVC::OBJTYPE_Raster); };
00095 
00096       void v_Free (
00097          );
00098 
00099       ERRVALUE Create (              
00100          const GRE_LAYER *layer
00101          );
00102 
00103       void Delete (               
00104          );
00105 
00106       ERRVALUE v_GetDefaultScene ( 
00107          SCENE3D& scene
00108          ) const;
00109 
00110       ERRVALUE v_SetScene (
00111          const SCENE3D& scene,
00112          const SIMPLE_ARRAY<TEXTURE*> &textures   
00113          );
00114 
00115       ERRVALUE v_DrawScene (
00116          CONTROLLER &controller,        
00117          DRAWINGCONTEXT3D& drawing,
00118          TEXTURE* texture,
00119          TEXTUREFILTER* texturefilter
00120          );
00121 
00122       float v_GetElevation (
00123          const float x,
00124          const float y
00125          ) const;
00126 
00127       ERRVALUE v_ComputeProfile (
00128          const POLYLINE& polyline,
00129          POLYLINE& profile,
00130          SIMPLE_ARRAY<INT32>& index
00131          );
00132 
00133       float v_GetAngleToNorth (
00134          const float x,
00135          const float y
00136          ) const;
00137 
00138       const ABSTRACT_SURFACE* v_GetAbstractSurface (
00139          ) { return m_Surface; }
00140 
00141       void v_SetCoordRefSys (
00142          const SPATREF::COORDREFSYS& CoordRefSys
00143          );
00144 
00145       const SPATREF::COORDREFSYS v_GetCoordRefSys (
00146          ) const { return m_CoordRefSys; };
00147 
00148       const DRECT3D& v_GetExtents (
00149          ) { return m_Extents; };
00150 
00151       void v_CreateBoundary (
00152          REGION2D& boundary
00153          );
00154 
00155       bool v_HasNull (
00156          ) const { return false; };
00157 
00158       bool v_IsNull (
00159          const float x,
00160          const float y
00161          ) const;
00162 
00163       ERRVALUE CreateRegularTIN (
00164          const TRANS2D_MAPGEN& transformation
00165          );
00166 
00167       void DeleteRegularTIN (
00168          );
00169 
00170       ERRVALUE SetSceneForRegularTIN (
00171          const SCENE3D& scene,
00172          const SIMPLE_ARRAY<TEXTURE*> &textures   
00173          );
00174 
00175       ERRVALUE DrawSceneForRegularTIN (
00176          CONTROLLER &controller,        
00177          DRAWINGCONTEXT3D& drawing,
00178          TEXTURE* texture,
00179          TEXTUREFILTER* texturefilter
00180          );
00181 
00182       void TransformRegularTIN (
00183          const TRANS2D_MAPGEN& transformation
00184          );
00185 
00186    #endif //!< GENERATING_DOXYGEN_OUTPUT
00187    };
00188 
00189 };    //! End of namespace
00190 
00191 #endif
00192 
00193 

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