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
1.3.4-20031026