00001
00036 #ifndef INC_SPATMOD_IMAGESPANS_H
00037 #define INC_SPATMOD_IMAGESPANS_H
00038
00039 #ifndef INC_MI32_MISTRING_H
00040 #include <mi32/mistring.h>
00041 #endif
00042
00043 namespace SPATMOD {
00044 namespace IMAGE {
00045
00046
00047
00049 class SPANS {
00050 public:
00051
00053 SPANS ();
00054
00057 ERRVALUE AdjustForRange (
00058 double Start,
00059 double Size
00060 );
00061
00064 void ApplyScale (
00065 double zoom
00066 );
00067
00070 double ComputeEnd (
00071 INT32 span
00072 ) const;
00073
00077 INT32 ComputeSpanPos (
00078 double value,
00079 bool& IsOnBoundary
00080 ) const;
00081
00084 double ComputeSize (
00085 INT32 span
00086 ) const;
00087
00090 double ComputeStart (
00091 INT32 span
00092 ) const;
00093
00095 MISTRING GetLogString () const;
00096
00098 UINT32 GetNumSpans (
00099 ) const { return (m_NumSpans); }
00100
00103 double GetSpanSizeFirst (
00104 ) const { return (m_SpanSizeFirst); }
00105
00108 double GetSpanSizeInterior (
00109 ) const { return (m_SpanSizeInterior); }
00110
00114 double GetSpanSizeLast (
00115 ) const { return (m_SpanSizeLast); }
00116
00118 double GetSpanSizeMaximum (
00119 ) const;
00120
00122 double GetSpanSizeMinimum (
00123 ) const;
00124
00126 double GetTotalSize (
00127 ) const { return (m_TotalSize); }
00128
00132 bool IsAligned (
00133 const SPANS& testspans,
00134 double testoffset
00135 ) const;
00136
00138 bool IsEqual (
00139 const SPANS& rhs
00140 ) const;
00141
00143 ERRVALUE SetSpanSizes (
00144 double SpanSize,
00145 double SpanSizeFirst = 0,
00146 double SpanSizeLast = 0
00147 );
00148
00151 ERRVALUE SetTotalSize (
00152 double TotalSize
00153 );
00154
00155 private:
00156 #ifndef GENERATING_DOXYGEN_OUTPUT
00157
00158 double m_TotalSize;
00159 double m_SpanSizeFirst;
00160 double m_SpanSizeInterior;
00161 double m_SpanSizeLast;
00162 UINT32 m_NumSpans;
00163
00164 #endif // GENERATING_DOXYGEN_OUTPUT
00165
00166 };
00167
00168 inline bool operator== (
00169 const SPANS& lhs,
00170 const SPANS& rhs
00171 ) { return (lhs.IsEqual(rhs)); }
00172
00173 inline bool operator!= (
00174 const SPANS& lhs,
00175 const SPANS& rhs
00176 ) { return (!lhs.IsEqual(rhs)); }
00177
00178
00179
00180 }
00181 }
00182
00183 #endif // INC_SPATMOD_IMAGESPANS_H