00001
00017 #ifndef INC_RVC_OP_RASTER_PROPERTIES_H
00018 #define INC_RVC_OP_RASTER_PROPERTIES_H
00019
00020 #ifndef INC_MI32_RPOVRGN_H
00021 #include <mi32/rpovrgn.h>
00022 #endif
00023
00024 namespace RVC {
00025
00026 #ifndef GENERATING_DOXYGEN_OUTPUT
00027 class OBJITEM;
00028 class DBASE_POINT;
00029 class DBASE_POLYGON;
00030 #endif // GENERATING_DOXYGEN_OUTPUT
00031
00032 namespace OP {
00033
00035 class RASTER_GEOMETRIC_PROPERTIES {
00036 public:
00037
00038 enum TABLEDESCRIPTOR {
00039 TABLEDESCRIPTOR_UseDefault,
00040 TABLEDESCRIPTOR_EditDialog,
00041 TABLEDESCRIPTOR_SetManually
00042 };
00043
00044 RASTER_GEOMETRIC_PROPERTIES (
00045 ) :
00046 m_ComputeHistogram(false),
00047 m_IncludeIslands(false),
00048 m_BoundaryCells(RASTER_REGION_PROP_CALC::BOUNDARYCELLS_IncludeAll),
00049 m_PopupTableDescriptorDialog(false),
00050 m_PointTableDescriptorMethod(RVC::OP::RASTER_GEOMETRIC_PROPERTIES::TABLEDESCRIPTOR_UseDefault),
00051 m_PolygonTableDescriptorMethod(RVC::OP::RASTER_GEOMETRIC_PROPERTIES::TABLEDESCRIPTOR_UseDefault),
00052 m_HistogramTableDescriptorMethod(RVC::OP::RASTER_GEOMETRIC_PROPERTIES::TABLEDESCRIPTOR_UseDefault)
00053 {
00054 }
00055
00056 ~RASTER_GEOMETRIC_PROPERTIES ( ) { }
00057
00059 ERRVALUE ComputeRasterProperties (
00060 RVC::OBJITEM& VectObjItem,
00061 RVC::OBJITEMLIST& RastObjItemList,
00062 MISTRING& report
00063 );
00064
00066 RASTER_REGION_PROP_CALC::BOUNDARYCELLS GetBoundaryCells (
00067 ) { return m_BoundaryCells; }
00068
00070 void SetBoundaryCells ( RASTER_REGION_PROP_CALC::BOUNDARYCELLS BoundaryCells )
00071 { m_BoundaryCells = BoundaryCells; }
00072
00074 bool GetComputeHistograms ( )
00075 { return m_ComputeHistogram; }
00076
00078 void SetComputeHistograms ( bool ComputeHistogram )
00079 { m_ComputeHistogram = ComputeHistogram; }
00080
00082 bool GetIncludeIslands ( )
00083 { return m_IncludeIslands; }
00084
00086 void SetIncludeIslands ( bool IncludeIslands )
00087 { m_IncludeIslands = IncludeIslands; }
00088
00090 void SetPointTableDescriptor (
00091 TABLEDESCRIPTOR method,
00092 RVC::DESCRIPTOR* descriptor = 0
00093 );
00094
00096 void SetPolygonTableDescriptor (
00097 TABLEDESCRIPTOR method,
00098 RVC::DESCRIPTOR* descriptor = 0
00099 );
00100
00102 void SetHistogramTableDescriptor (
00103 TABLEDESCRIPTOR method,
00104 RVC::DESCRIPTOR* descriptor = 0
00105 );
00106
00107 private:
00108 #ifndef GENERATING_DOXYGEN_OUTPUT
00109 RASTER_REGION_PROP_CALC::BOUNDARYCELLS m_BoundaryCells;
00110 bool m_ComputeHistogram;
00111 bool m_IncludeIslands;
00112
00113 TABLEDESCRIPTOR m_PointTableDescriptorMethod;
00114 RVC::DESCRIPTOR m_PointTableDescriptor;
00115 TABLEDESCRIPTOR m_PolygonTableDescriptorMethod;
00116 RVC::DESCRIPTOR m_PolygonTableDescriptor;
00117 TABLEDESCRIPTOR m_HistogramTableDescriptorMethod;
00118 RVC::DESCRIPTOR m_HistogramTableDescriptor;
00119
00120 bool m_PopupTableDescriptorDialog;
00121
00122 INT32 MakeStatisticsTableForPoints(RVC::DBASE_POINT& pointdbase, RVC::RASTER& raster);
00123 INT32 MakeStatisticsTableForPolygons(RVC::DBASE_POLYGON& polygondbase, RVC::RASTER& raster);
00124 INT32 MakeHistogramTableForPolygons(RVC::DBASE_POLYGON& polygondbase, RVC::RASTER& raster);
00125 #endif // GENERATING_DOXYGEN_OUTPUT
00126 };
00127
00128 }
00129 }
00130
00131
00132 #endif // INC_RVC_OP_RASTER_PROPERTIES_H
00133