asurface.h

Go to the documentation of this file.
00001 /**
00002  * \file asurface.h <mi32/asurface.h>
00003  * \brief Convert screen coordinates to map/elevation coordinates function 
00004  *
00005  * \if NODOC
00006  * $Id: asurface.h_v 1.3 2003/09/15 13:49:56 fileserver!dwilliss Exp $
00007  *
00008  * $Log: asurface.h_v $
00009  * Revision 1.3  2003/09/15 13:49:56  fileserver!dwilliss
00010  * Doxygen
00011  *
00012  * Revision 1.2  2001/12/26 18:51:20  vdronov
00013  * forgot destructor implementation
00014  *
00015  * Revision 1.1  2001/12/26 18:06:28  vdronov
00016  * Initial revision
00017  *
00018  * 
00019  * \endif
00020 **/
00021 
00022 #ifndef  INC_MI32_ASURFACE_H
00023 #define  INC_MI32_ASURFACE_H
00024 
00025 #include <mi32/trans2dc.h>
00026 
00027 #include <rvc/raster.h>
00028 
00029 class ABSTRACT_SURFACE {
00030 
00031    public:
00032       
00033    // ENUMERATIONS
00034    
00035    // NESTED CLASSES
00036 
00037    // TYPEDEFS
00038 
00039    // MEMBERS
00040 
00041    // STATIC METHODS
00042 
00043    // CONSTRUCTION / DESTRUCTION
00044 
00045    virtual ~ABSTRACT_SURFACE (
00046       ) {
00047       };
00048 
00049    // OPERATORS
00050 
00051    // METHODS
00052 
00053    //! Calculate an intersection between a beam and surface
00054    //!
00055    //! @return 1 if an intersection exists
00056    //!           0 if it doesn't exist 
00057    //!           < 0 if an error       
00058    virtual ERRVALUE GetIntersection (
00059       const DPOINT3D& pointFrom,             //!< Point from
00060       const DPOINT3D& pointTo,               //!< Point to
00061       const MAPPROJPARM& mapprojparm,        //!< Map projection parameters 
00062       DPOINT3D& intersection                 //!< Intersection of surface and line
00063       ) const = 0;
00064 
00065    };
00066 
00067 
00068 class RASTER_SURFACE : public ABSTRACT_SURFACE {
00069 
00070    public:
00071 
00072    // ENUMERATIONS
00073    
00074    // NESTED CLASSES
00075 
00076    // TYPEDEFS
00077 
00078    // MEMBERS
00079 
00080    // STATIC METHODS
00081 
00082    // CONSTRUCTION / DESTRUCTION
00083 
00084    RASTER_SURFACE (
00085       const RVC::RASTER& raster
00086       );
00087 
00088    ~RASTER_SURFACE (
00089       );
00090 
00091    // OPERATORS
00092 
00093    // METHODS
00094 
00095 
00096    //! Calculate an intersection between a beam and surface
00097    //!
00098    //! @return 1 if an intersection exists
00099    //!           0 if it doesn't exist 
00100    //!           < 0 if an error       
00101    ERRVALUE GetIntersection (
00102       const DPOINT3D& pointFrom,             //!< Point from
00103       const DPOINT3D& pointTo,               //!< Point to
00104       const MAPPROJPARM& mapprojparm,        //!< Map projection parameters 
00105       DPOINT3D& intersection                 //!< Intersection of surface and line
00106       ) const;
00107 
00108 
00109    private:
00110    #ifndef GENERATING_DOXYGEN_OUTPUT
00111    // ENUMERATIONS
00112    
00113    // NESTED CLASSES
00114 
00115    // TYPEDEFS
00116 
00117    // MEMBERS
00118 
00119    const RVC::RASTER m_Raster;
00120 
00121    double m_XScale;
00122    double m_YScale;
00123    double m_ZScale;
00124    double m_ZOffset;
00125    double m_MaxElevation;
00126    double m_MinElevation;
00127    bool m_HasNull;
00128    double m_NullValue;
00129 
00130    TRANS2D_MAPGEN m_TransMap;
00131 
00132    // STATIC METHODS
00133 
00134    // CONSTRUCTION / DESTRUCTION
00135 
00136    // OPERATORS
00137 
00138    // METHODS
00139 
00140    #endif // GENERATING_DOXYGEN_OUTPUT
00141    };
00142 
00143 
00144 #endif
00145 

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