00001 00017 #ifndef INC_GRE_3DPMGEOM_H 00018 #define INC_GRE_3DPMGEOM_H 00019 00020 #ifndef INC_GRE_3DGEOMET_H 00021 #include <gre/3dgeomet.h> 00022 #endif 00023 00024 #ifndef INC_GRE_LRPINMAP_H 00025 #include <gre/lrpinmap.h> 00026 #endif 00027 00028 #ifndef INC_RVC_DBTABLE_H 00029 #include <rvc/dbtable.h> 00030 #endif 00031 00032 namespace GRE { 00033 00034 class PINMAP_GEOMETRIC3D : public GEOMETRIC3D { 00035 public: 00036 00037 PINMAP_GEOMETRIC3D ( 00038 ); 00039 00040 virtual ~PINMAP_GEOMETRIC3D ( 00041 ); 00042 00043 RVC::DBASE GetDatabase () {return m_Database; }; 00044 RVC::DBTABLE& GetTable () {return m_Table; }; 00045 GRE::LAYER_PINMAP* GetPinmapLayer () { return m_Layer; }; 00046 double ComputeScale (const INT32 id); 00047 00048 private: 00049 #ifndef GENERATING_DOXYGEN_OUTPUT 00050 00051 RVC::DBASE m_Database; 00052 RVC::DBTABLE m_Table; 00053 GRE::LAYER_PINMAP *m_Layer; 00054 DRECT3D ALIGN16(m_Extents); 00055 SPATREF::COORDREFSYS m_CoordRefSys; 00056 TRANS2D_MAPGEN m_Transformation; 00057 00058 PINMAP_GEOMETRIC3D ( 00059 const PINMAP_GEOMETRIC3D& rhs 00060 ); 00061 00062 PINMAP_GEOMETRIC3D& operator= ( 00063 const PINMAP_GEOMETRIC3D& rhs 00064 ); 00065 00066 ERRVALUE UpdateExtents ( 00067 TRANS2D_MAPGEN& transformation, 00068 DRECT3D& extents 00069 ); 00070 00071 GEOMETRIC3D* v_CreateInstance ( 00072 ) { return new PINMAP_GEOMETRIC3D(); }; 00073 00074 ERRVALUE v_Build ( 00075 const GRE::LAYER *layer 00076 ); 00077 00078 void v_Free ( 00079 ); 00080 00081 const DRECT3D& v_GetExtents ( 00082 ) { return m_Extents; }; 00083 00084 void v_SetCoordRefSys ( 00085 const SPATREF::COORDREFSYS& CoordRefSys 00086 ); 00087 00088 const SPATREF::COORDREFSYS v_GetCoordRefSys ( 00089 ) { return m_CoordRefSys; }; 00090 00091 const TRANS2D_MAPGEN& v_GetTransformationInternalToModel ( 00092 ) { return m_Transformation; }; 00093 00094 void OnDrawBegin ( GRE::GEOMETRIC3D_BUILDER* builder, const bool wireframe = false); 00095 00096 void OnDrawEnd (); 00097 00098 00099 #endif // GENERATING_DOXYGEN_OUTPUT 00100 00101 }; 00102 00103 } // End of GRE namespace 00104 00105 #endif
1.6.1