00001 /*** 00002 * \file gre/3dvcgeom.h 00003 * \brief SHAPE_GEOMETRIC3D algorithms 00004 * 00005 * \if NODOC 00006 * $Id: 3dshgeom.h_v 1.1 2007/06/06 17:39:20 vdronov Exp $ 00007 * 00008 * $Log: 3dshgeom.h_v $ 00009 * Revision 1.1 2007/06/06 17:39:20 vdronov 00010 * Initial revision 00011 * 00012 * 00013 * \endif 00014 **/ 00015 00016 #ifndef INC_GRE_3DSHGEOM_H 00017 #define INC_GRE_3DSHGEOM_H 00018 00019 #ifndef INC_GRE_3DGEOMET_H 00020 #include <gre/3dgeomet.h> 00021 #endif 00022 00023 #ifndef INC_RVC_SHAPE_H 00024 #include <rvc/shape.h> 00025 #endif 00026 00027 #ifndef INC_GRE_LRSHAPE_H 00028 #include <gre/lrshape.h> 00029 #endif 00030 00031 namespace GRE { 00032 00033 class SHAPE_GEOMETRIC3D : public GEOMETRIC3D { 00034 public: 00035 00036 SHAPE_GEOMETRIC3D ( 00037 ); 00038 00039 virtual ~SHAPE_GEOMETRIC3D ( 00040 ); 00041 00042 RVC::SHAPE* GetShape () {return &m_Shape; }; 00043 GRE::LAYER_SHAPE* GetShapeLayer () { return m_Layer; }; 00044 double ComputeScale (const INT32 id); 00045 00046 private: 00047 #ifndef GENERATING_DOXYGEN_OUTPUT 00048 00049 RVC::SHAPE m_Shape; 00050 GRE::LAYER_SHAPE *m_Layer; 00051 DRECT3D ALIGN16(m_Extents); 00052 SPATREF::COORDREFSYS m_CoordRefSys; 00053 TRANS2D_MAPGEN m_Transformation; 00054 00055 SHAPE_GEOMETRIC3D ( 00056 const SHAPE_GEOMETRIC3D& rhs 00057 ); 00058 00059 SHAPE_GEOMETRIC3D& operator= ( 00060 const SHAPE_GEOMETRIC3D& rhs 00061 ); 00062 00063 ERRVALUE UpdateExtents ( 00064 TRANS2D_MAPGEN& transformation, 00065 DRECT3D& extents 00066 ); 00067 00068 GEOMETRIC3D* v_CreateInstance ( 00069 ) { return new SHAPE_GEOMETRIC3D(); }; 00070 00071 ERRVALUE v_Build ( 00072 const GRE::LAYER *layer 00073 ); 00074 00075 void v_Free ( 00076 ); 00077 00078 const DRECT3D& v_GetExtents ( 00079 ) { return m_Extents; }; 00080 00081 void v_SetCoordRefSys ( 00082 const SPATREF::COORDREFSYS& CoordRefSys 00083 ); 00084 00085 const SPATREF::COORDREFSYS v_GetCoordRefSys ( 00086 ) { return m_CoordRefSys; }; 00087 00088 const TRANS2D_MAPGEN& v_GetTransformationInternalToModel ( 00089 ) { return m_Transformation; }; 00090 00091 void OnDrawBegin ( GRE::GEOMETRIC3D_BUILDER* builder, const bool wireframe = false); 00092 00093 void OnDrawEnd (); 00094 00095 00096 #endif // GENERATING_DOXYGEN_OUTPUT 00097 00098 }; 00099 00100 } // End of GRE namespace 00101 00102 #endif 00103 00104 00105
1.6.1