00001
00028 #ifndef INC_RVC_RASTERTHEMEPARM_H
00029 #define INC_RVC_RASTERTHEMEPARM_H
00030
00031 #ifndef INC_RVC_SIMPLE_H
00032 #include <rvc/simple.h>
00033 #endif
00034
00035 #ifndef INC_MI32_COLOR_H
00036 #include <mi32/color.h>
00037 #endif
00038
00039
00040 namespace RVC {
00041 class OBJMAKEPARMS;
00042
00043 class RASTERTHEMEPARM : public RVC::SIMPLE {
00044 public:
00045
00046 enum DISTRIB {
00047 DISTRIB_UserDefined = 0,
00048 DISTRIB_EqualCount,
00049 DISTRIB_EqualInterval,
00050 };
00051
00052 enum ROUNDMODE {
00053 ROUNDMODE_None = 0,
00054 ROUNDMODE_Closest,
00055 ROUNDMODE_Down,
00056 ROUNDMODE_Up
00057 };
00058
00059 enum COLORPATH {
00060 COLORPATH_Auto = 0,
00061 COLORPATH_RGB,
00062 COLORPATH_HISCW,
00063 COLORPATH_HISCCW,
00064 COLORPATH_HBSCW,
00065 COLORPATH_HBSCCW,
00066 COLORPATH_MaxAuto = COLORPATH_HBSCCW
00067 };
00068
00069 struct SPREAD {
00070 INT16 MinClass;
00071 INT16 MaxClass;
00072 UINT8 AllClasses;
00073 UINT8 DoColor;
00074 COLORPATH ColorPath;
00075 COLOR StartColor;
00076 COLOR EndColor;
00077 };
00078
00080 RASTERTHEMEPARM ();
00081
00083 RASTERTHEMEPARM (
00084 const RVC::RASTERTHEMEPARM& rhs
00085 );
00086
00088 virtual ~RASTERTHEMEPARM ();
00089
00091 RVC::RASTERTHEMEPARM& operator= (
00092 const RVC::RASTERTHEMEPARM& rhs
00093 );
00094
00096 INT16 GetNumClasses () const
00097 { return (m_NumClasses); }
00098
00100 bool IsUpperInclusive () const
00101 { return (m_IsUpperInclusive); }
00102
00104 DISTRIB GetDistribMode () const
00105 { return (m_DistribMode); }
00106
00108 ROUNDMODE GetRoundMode () const
00109 { return (m_RoundMode); }
00110
00112 bool IsFirstClassExcluded () const
00113 { return (m_ExcludeFirstClass); }
00114
00116 bool IsLastClassExcluded () const
00117 { return (m_ExcludeLastClass); }
00118
00120 bool IsLimitedToDataRange () const
00121 { return (m_LimitToDataRange); }
00122
00124 double GetRoundTo () const
00125 { return (m_RoundTo); }
00126
00128 const SIMPLE_ARRAY<double>& GetClassBoundaries () const
00129 { return (m_ClassBoundaries); }
00130
00131 const SPREAD& GetSpread () const
00132 { return (m_Spread); }
00133
00135 void SetNumClasses (INT16 numclasses)
00136 { m_NumClasses = numclasses; }
00137
00139 void SetUpperIsInclusive (bool isupperinclusive)
00140 { m_IsUpperInclusive = isupperinclusive; }
00141
00143 void SetDistribMode (DISTRIB distribmode)
00144 { m_DistribMode = distribmode; }
00145
00147 void SetRoundMode (ROUNDMODE roundmode)
00148 { m_RoundMode= roundmode; }
00149
00151 void SetExcludeFirstClass (bool excludefirstclass)
00152 { m_ExcludeFirstClass = excludefirstclass; }
00153
00155 void SetExcludeLastClass (bool excludelastclass)
00156 { m_ExcludeLastClass = excludelastclass; }
00157
00159 void SetLimitToDataRange (bool limittorange)
00160 { m_LimitToDataRange = limittorange; }
00161
00163 void SetRoundTo (double roundto)
00164 { m_RoundTo = roundto; }
00165
00167 void SetClassBoundaries (const SIMPLE_ARRAY<double> &boundaries);
00168
00170 void SetSpread (const SPREAD &spread);
00171
00172 private:
00173 #ifndef GENERATING_DOXYGEN_OUTPUT
00174 bool m_IsUpperInclusive;
00175 INT16 m_NumClasses;
00176 DISTRIB m_DistribMode;
00177 ROUNDMODE m_RoundMode;
00178 bool m_ExcludeFirstClass;
00179 bool m_ExcludeLastClass;
00180 bool m_LimitToDataRange;
00181 double m_RoundTo;
00182 double m_lastmaxval;
00183 SIMPLE_ARRAY<double> m_ClassBoundaries;
00184 SPREAD m_Spread;
00185
00186
00187 virtual OBJTYPE v_GetDftObjectType () const;
00188
00189
00190 virtual ERRVALUE v_GetDftNameDesc (const OBJECT& parent, DESCRIPTOR& Descriptor);
00191 virtual ERRVALUE v_MakeData (RVC::OBJMAKEPARMS& ObjMakeParms);
00192 virtual ERRVALUE v_ReadData (RVC::OBJOPENPARMS& ObjOpenParms);
00193 virtual ERRVALUE v_WriteData (RVC::OBJOPENPARMS& ObjOpenParms);
00194
00195 #endif // GENERATING_DOXYGEN_OUTPUT
00196 };
00197 }
00198
00199 #endif // INC_RVC_RASTTHEMEPRM_H
00200