00001 /*** 00002 * \file gre/3dcdgeom.h 00003 * \brief CAD_GEOMETRIC3D algorithms 00004 * 00005 * \if NODOC 00006 * $Id: 3dcdgeom.h_v 1.1 2007/06/14 22:59:44 vdronov Exp $ 00007 * 00008 * $Log: 3dcdgeom.h_v $ 00009 * Revision 1.1 2007/06/14 22:59:44 vdronov 00010 * Initial revision 00011 * 00012 * Revision 1.1 2007/06/06 17:39:20 vdronov 00013 * Initial revision 00014 * 00015 * 00016 * \endif 00017 **/ 00018 00019 #ifndef INC_GRE_3DCDGEOM_H 00020 #define INC_GRE_3DCDGEOM_H 00021 00022 #ifndef INC_GRE_3DGEOMET_H 00023 #include <gre/3dgeomet.h> 00024 #endif 00025 00026 #ifndef INC_RVC_CAD_H 00027 #include <rvc/cad.h> 00028 #endif 00029 00030 #ifndef INC_GRE_LRCAD_H 00031 #include <gre/lrcad.h> 00032 #endif 00033 00034 namespace GRE { 00035 00036 class CAD_GEOMETRIC3D : public GEOMETRIC3D { 00037 public: 00038 00039 CAD_GEOMETRIC3D ( 00040 ); 00041 00042 virtual ~CAD_GEOMETRIC3D ( 00043 ); 00044 00045 RVC::CAD* GetCAD () {return &m_CAD; }; 00046 GRE::LAYER_CAD* GetCADLayer () { return m_Layer; }; 00047 double ComputeScale (const INT32 id); 00048 void Set ( 00049 GRE::LAYERDC* layerdc, 00050 GRE::LAYER_CAD::DISPPARM* dispparm 00051 ); 00052 void Clear(); 00053 00054 private: 00055 #ifndef GENERATING_DOXYGEN_OUTPUT 00056 00057 RVC::CAD m_CAD; 00058 GRE::LAYER_CAD *m_Layer; 00059 DRECT3D ALIGN16(m_Extents); 00060 SPATREF::COORDREFSYS m_CoordRefSys; 00061 TRANS2D_MAPGEN m_Transformation; 00062 GRE::LAYERDC* m_LayerDC; 00063 GRE::LAYER_CAD::DISPPARM* m_DispParm; 00064 00065 CAD_GEOMETRIC3D ( 00066 const CAD_GEOMETRIC3D& rhs 00067 ); 00068 00069 CAD_GEOMETRIC3D& operator= ( 00070 const CAD_GEOMETRIC3D& rhs 00071 ); 00072 00073 ERRVALUE UpdateExtents ( 00074 TRANS2D_MAPGEN& transformation, 00075 DRECT3D& extents 00076 ); 00077 00078 bool IsTerrainNeeded () { return true; } 00079 bool IsPointsFieldNeeded () { return true; } 00080 00081 GEOMETRIC3D* v_CreateInstance ( 00082 ) { return new CAD_GEOMETRIC3D(); }; 00083 00084 ERRVALUE v_Build ( 00085 const GRE::LAYER *layer 00086 ); 00087 00088 void v_Free ( 00089 ); 00090 00091 const DRECT3D& v_GetExtents ( 00092 ) { return m_Extents; }; 00093 00094 void v_SetCoordRefSys ( 00095 const SPATREF::COORDREFSYS& CoordRefSys 00096 ); 00097 00098 const SPATREF::COORDREFSYS v_GetCoordRefSys ( 00099 ) { return m_CoordRefSys; }; 00100 00101 const TRANS2D_MAPGEN& v_GetTransformationInternalToModel ( 00102 ) { return m_Transformation; }; 00103 00104 void OnDrawBegin ( GRE::GEOMETRIC3D_BUILDER* builder, const bool wireframe = false); 00105 00106 void OnDrawEnd (); 00107 00108 00109 #endif // GENERATING_DOXYGEN_OUTPUT 00110 00111 }; 00112 00113 } // End of GRE namespace 00114 00115 #endif 00116 00117 00118
1.6.1