00001 00015 #ifndef INC_MI32_RASTERGEN_H 00016 #define INC_MI32_RASTERGEN_H 00017 00018 #ifndef INC_RVC_OBJITEM_H 00019 #include <rvc/objitem.h> 00020 #endif 00021 00022 #ifndef INC_MI32_SPATREF_H 00023 #include <mi32/spatref.h> 00024 #endif 00025 00026 #ifndef INC_MI32_DOUBLEAR_H 00027 #include <mi32/doublear.h> 00028 #endif 00029 00030 00031 //===================================================================================================================== 00032 00034 class RASTERGEN { 00035 public: 00036 00038 RASTERGEN (); 00039 00041 virtual ~RASTERGEN (); 00042 00044 ERRVALUE Compute ( 00045 RVC::OBJITEM& ObjItemTargetRast 00046 ) const { return (v_Compute(ObjItemTargetRast)); } 00047 00048 private: 00049 00051 virtual ERRVALUE v_Compute ( 00052 RVC::OBJITEM& ObjItemTargetRast 00053 ) const = 0; 00054 }; 00055 00056 00057 //===================================================================================================================== 00058 00060 class RASTERGEN_VIEWSHED : public RASTERGEN { 00061 public: 00062 00064 RASTERGEN_VIEWSHED ( 00065 ); 00066 00068 virtual ~RASTERGEN_VIEWSHED ( 00069 ); 00070 00072 const SPATREF::COORDREFSYS& GetViewPointCRS ( 00073 ) const { return (m_ViewPointCRS); } 00074 00076 void SetHorizontalAngleRange ( 00077 const DOUBLE_RANGE& HorizontalRange 00078 ) { m_HorizontalRange = HorizontalRange; } 00079 00081 void SetMaximumDistance ( 00082 double distance 00083 ) { m_MaxDistance = distance; } 00084 00087 void SetMinimumVisiblePoints ( 00088 int MinVisiblePoints 00089 ) { m_MinVisiblePoints = MinVisiblePoints; } 00090 00092 void SetSourceRaster ( 00093 const RVC::OBJITEM& ObjItemSourceRast 00094 ) { m_ObjItemSourceRast = ObjItemSourceRast; } 00095 00097 void SetUseEllipsoidCurvature ( 00098 bool UseCurvature 00099 ) { m_UseEllipsoidCurvature = UseCurvature; } 00100 00102 void SetVerticalAngleRange ( 00103 const DOUBLE_RANGE& VerticalRange 00104 ) { m_VerticalRange = VerticalRange; } 00105 00107 void SetVerticalScale ( 00108 double scale 00109 ) { m_VerticalScale = scale; } 00110 00113 void SetViewPointCRS ( 00114 const SPATREF::COORDREFSYS& ViewPointCRS 00115 ) { m_ViewPointCRS = ViewPointCRS; } 00116 00118 void SetViewPointHeight ( 00119 double height 00120 ) { m_ViewPointHeight = height; } 00121 00123 void SetViewPoints ( 00124 const DPOINT2D *ViewPoints, 00125 int NumViewPoints 00126 ); 00127 00128 private: 00129 #ifndef GENERATING_DOXYGEN_OUTPUT 00130 00131 RVC::OBJITEM m_ObjItemSourceRast; 00132 SPATREF::COORDREFSYS m_ViewPointCRS; 00133 DOUBLE_ARRAY<DPOINT2D> m_ViewPoints; 00134 DOUBLE_RANGE m_HorizontalRange; 00135 DOUBLE_RANGE m_VerticalRange; 00136 double m_ViewPointHeight; 00137 double m_MaxDistance; 00138 double m_VerticalScale; 00139 int m_MinVisiblePoints; 00140 bool m_UseEllipsoidCurvature; 00141 00142 ERRVALUE v_Compute ( 00143 RVC::OBJITEM& ObjItemTargetRast 00144 ) const; 00145 00146 #endif 00147 }; 00148 00149 //===================================================================================================================== 00150 00151 #endif // INC_MI32_RASTERGEN_H
1.6.1