00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
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
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051 virtual ~ABSTRACT_SURFACE (
00052 ) {
00053 };
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064 virtual ERRVALUE GetIntersection (
00065 const DPOINT3D& pointFrom,
00066 const DPOINT3D& pointTo,
00067 const SPATREF::COORDREFSYS& coordrefsys,
00068 DPOINT3D& intersection
00069 ) const = 0;
00070
00071 };
00072
00073
00074 class RASTER_SURFACE : public ABSTRACT_SURFACE {
00075
00076 public:
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090 RASTER_SURFACE (
00091 const RVC::RASTER& raster
00092 );
00093
00094 ~RASTER_SURFACE (
00095 );
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107 ERRVALUE GetIntersection (
00108 const DPOINT3D& pointFrom,
00109 const DPOINT3D& pointTo,
00110 const SPATREF::COORDREFSYS& coordrefsys,
00111 DPOINT3D& intersection
00112 ) const;
00113
00114
00115 private:
00116 #ifndef GENERATING_DOXYGEN_OUTPUT
00117
00118
00119
00120
00121
00122
00123
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
00139
00140
00141
00142
00143
00144
00145
00146 #endif // GENERATING_DOXYGEN_OUTPUT
00147 };
00148
00149
00150 #endif
00151