00001
00024 #ifndef INC_SPATMOD_IMAGEDIMENSIONS_H
00025 #define INC_SPATMOD_IMAGEDIMENSIONS_H
00026
00027 #ifndef INC_SPATMOD_IMAGESPANS_H
00028 #include <spatmod/imagespans.h>
00029 #endif
00030
00031 namespace SPATMOD {
00032 namespace IMAGE {
00033
00034
00035
00037 enum TILEPOSITION {
00038 TILEPOSITION_First,
00039 TILEPOSITION_Interior,
00040 TILEPOSITION_Last
00041 };
00042
00043
00044
00046 class DIMENSIONS {
00047 public:
00048
00050 DIMENSIONS ();
00051
00053 const SPANS& GetColumnSpans (
00054 ) const { return (m_SpansColumn); }
00055
00058 INT32 GetNumColumnsOfTiles (
00059 ) const { return (m_SpansColumn.GetNumSpans()); }
00060
00066 double GetNumColumnsPerTile (
00067 TILEPOSITION tileposition
00068 ) const;
00069
00072 INT32 GetNumRowsOfTiles (
00073 ) const { return (m_SpansRow.GetNumSpans()); }
00074
00080 double GetNumRowsPerTile (
00081 TILEPOSITION tileposition
00082 ) const;
00083
00085 const SPANS& GetRowSpans (
00086 ) const { return (m_SpansRow); }
00087
00090 UINT32 GetTotalColumns (
00091 ) const { return (static_cast<UINT32>(m_SpansColumn.GetTotalSize())); }
00092
00095 UINT32 GetTotalRows (
00096 ) const { return (static_cast<UINT32>(m_SpansRow.GetTotalSize())); }
00097
00099 bool IsEqual (
00100 const DIMENSIONS& rhs
00101 ) const { return (m_SpansRow==rhs.m_SpansRow && m_SpansColumn==rhs.m_SpansColumn); }
00102
00104 ERRVALUE SetTileDimensions (
00105 double ColumnsPerTile,
00106 double RowsPerTile,
00107 double ColumnsPerTileFirst = 0,
00108 double RowsPerTileFirst = 0,
00109 double ColumnsPerTileLast = 0,
00110 double RowsPerTileLast = 0
00111 );
00112
00115 ERRVALUE SetTotalDimensions (
00116 UINT32 TotalColumns,
00117 UINT32 TotalRows
00118 );
00119
00120 private:
00121 #ifndef GENERATING_DOXYGEN_OUTPUT
00122
00123 SPANS m_SpansRow;
00124 SPANS m_SpansColumn;
00125
00126 #endif // GENERATING_DOXYGEN_OUTPUT
00127
00128 };
00129
00130 inline bool operator== (
00131 const DIMENSIONS& lhs,
00132 const DIMENSIONS& rhs
00133 ) { return (lhs.IsEqual(rhs)); }
00134
00135 inline bool operator!= (
00136 const DIMENSIONS& lhs,
00137 const DIMENSIONS& rhs
00138 ) { return (!lhs.IsEqual(rhs)); }
00139
00140
00141
00142 }
00143 }
00144
00145 #endif // INC_SPATMOD_IMAGEDIMENSIONS_H