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

Generated on Wed May 31 15:26:47 2006 for TNTsdk by  doxygen 1.3.8-20040913