00001
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089 #ifndef INC_RVC_GEOREGION_H
00090 #define INC_RVC_GEOREGION_H
00091
00092 #ifndef INC_RVC_GEOMETRC_H
00093 #include <rvc/geometrc.h>
00094 #endif
00095
00096 #ifndef INC_MI32_REGION2D_H
00097 #include <mi32/region2d.h>
00098 #endif
00099
00100 #ifndef GENERATING_DOXYGEN_OUTPUT
00101 namespace SPATREF {
00102 class COORDREFSYS;
00103 }
00104 #endif // GENERATING_DOXYGEN_OUTPUT
00105
00106 namespace RVC {
00107
00108 class GEOREGION : public GEOMETRIC {
00109 public:
00110
00111 #ifndef GENERATING_DOXYGEN_OUTPUT
00112 class MAKEPARMS;
00113 #endif // GENERATING_DOXYGEN_OUTPUT
00114
00116 GEOREGION (
00117 );
00118
00120 GEOREGION (
00121 const GEOREGION& rhs
00122 );
00123
00125 virtual ~GEOREGION (
00126 );
00127
00129 GEOREGION& operator= (
00130 const GEOREGION& rhs
00131 );
00132
00134 ERRVALUE Make (
00135 const OBJECT& parent,
00136 const DESCRIPTOR& Descriptor,
00137 const MAKEPARMS& MakeParms,
00138 const CREDENTIALS* Credentials RVC_DEFAULT_CREDENTIALS
00139 );
00140
00142 ERRVALUE Make (
00143 OBJITEM& ObjItem,
00144 const MAKEPARMS& MakeParms,
00145 const char* Source = 0,
00146 const CREDENTIALS* Credentials RVC_DEFAULT_CREDENTIALS
00147 );
00148
00150 const SPATREF::COORDREFSYS& GetCoordRefSys (
00151 ) const;
00152
00154 const REGION2D& GetRegion (
00155 ) const;
00156
00158 ERRVALUE Write (
00159 );
00160
00162 void SetRegion (
00163 const REGION2D& region
00164 );
00165
00166 private:
00167 #ifndef GENERATING_DOXYGEN_OUTPUT
00168
00170 virtual ERRVALUE v_CloseObject ();
00171 virtual OBJTYPE v_GetDftObjectType () const;
00172 virtual bool v_IsObjectOpen () const;
00173 virtual ERRVALUE v_OpenObject (OPENMODE OpenMode, MDLGPARENT parent, const CREDENTIALS* Credentials);
00174
00176 virtual void v_GetExtents (DRECT3D &extents) const;
00177 virtual void v_GetScale (double& xscale, double& yscale) const;
00178 virtual double v_GetZOffset () const;
00179 virtual double v_GetZScale () const;
00180 virtual bool v_HasCapability (int Capability) const;
00181 virtual void v_SetScale (double xscale, double yscale);
00182 virtual void v_SetZOffset (double zoffset);
00183 virtual void v_SetZScale (double zscale);
00184
00186 virtual ERRVALUE v_ExtractTo (GEOMETRIC& DestObj, GEOMETRIC::ELEMTRANSLIST& TransList, const TRANS2D_MAPGEN& tmg, GEOMETRIC::EXTRACTFLAGS ExtractFlags) const;
00187 virtual INT32 v_FindClosestElementLow (ELEMTYPE ElemType, const DPOINT2D& SearchPt, GEOMETRIC::SEARCHFILTER* SearchFilter, double SearchDist, double* DistFromElem) const;
00188 virtual ERRVALUE v_GetElementExtents (ELEMTYPE ElemType, INT32 ElemNum, DRECT3D& Extents) const;
00189 virtual INT32 v_GetNextElementID (ELEMTYPE ElemType) const;
00190 virtual INT32 v_GetNumElements (ELEMTYPE ElemType) const;
00191 virtual POINTTYPE v_GetPointType () const;
00192 virtual INT32 v_GetPointSize () const;
00193 virtual QSEARCHTREE* v_GetSearchTree (ELEMTYPE ElemType) const;
00194 virtual double v_GetTotalLineLength () const;
00195 virtual bool v_IsElementDeleted (const ELEMENT& Element) const;
00196 virtual bool v_IsEmpty () const;
00197 virtual ERRVALUE v_SetExtents (const DRECT3D &extents);
00198 virtual ERRVALUE v_SetNextElementID (ELEMTYPE ElemType, INT32 NextElementID);
00199 virtual void v_SetSearchTree (ELEMTYPE ElemType, QSEARCHTREE* SearchTree) const;
00200 virtual ERRVALUE v_SetTotalLineLength (double length);
00201 virtual int v_SetupElemTransList (const GEOMETRIC::ELEMSELECTPARMS& SelectParms, GEOMETRIC::ELEMTRANSLIST& TransList, GEOMETRIC::ELEMSELECTFILTER* SelectFilter) const;
00202 virtual bool v_TestElementAgainstRegion (const ELEMENT& Element, const REGION2D& region, TESTCRITERIA TestMode) const;
00203 virtual ERRVALUE v_UpdateExtents (const DRECT3D &extents);
00204
00206 virtual ERRVALUE v_FindClosestElementsLow (const DPOINT2D& SearchPt, double SearchDist, SEARCHFILTER* SearchFilter, SIMPLE_ARRAY<ELEMENT>& ElementList, COMPONENT Component) const;
00207 virtual ERRVALUE v_FindElementDrawSet (ELEMTYPE ElemType, const DRECT2D& SearchExtents, SEARCHRESULT& SearchResult) const;
00208 virtual ERRVALUE v_FindElementSearchSet (ELEMTYPE ElemType, const DRECT2D& SearchExtents, SEARCHRESULT& SearchResult) const;
00209 virtual ERRVALUE v_FindElementSet (ELEMTYPE ElemType, const DRECT2D& SearchExtents, UNSIGNEDSET& ElemSet, bool BuildIndex) const;
00210 virtual INT32 v_GetAttachmentIndex (const ELEMENT& Element) const;
00211 virtual ERRVALUE v_ReadElement (INT32 ElemNum, POLYLINELIST& LineList, DIMENSION dim) const;
00212 virtual ERRVALUE v_ReadElement (INT32 ElemNum, POLYLINE& PointList, DIMENSION dim) const;
00213 virtual ERRVALUE v_ReadElement (INT32 ElemNum, REGION2D& Region, DIMENSION dim) const;
00214 virtual ERRVALUE v_ReadNextLine (ELEMENT& Element, POLYLINELIST& LineList, DIMENSION dim) const;
00215 virtual ERRVALUE v_ReadNextPoint (ELEMENT& Element, POLYLINE& PointList, DIMENSION dim) const;
00216 virtual ERRVALUE v_ReadNextRegion (ELEMENT& Element, REGION2D& Region, DIMENSION dim) const;
00217 virtual ERRVALUE v_ReadRegion (const BITSET_UNOWNED& ElemSet, REGION2D& Region, DIMENSION dim, bool NoIslands) const;
00218
00219 POINTTYPE DeterminePointType () const;
00220 ERRVALUE ExtractToVector (GEOMETRIC& DestObj, const ELEMTRANSLIST& TransList, const TRANS2D_MAPGEN& tmg, GEOMETRIC::EXTRACTFLAGS ExtractFlags) const;
00221 ERRVALUE ExtractToCAD (GEOMETRIC& DestObj, const ELEMTRANSLIST& TransList, const TRANS2D_MAPGEN& tmg, GEOMETRIC::EXTRACTFLAGS ExtractFlags) const;
00222 ERRVALUE ExtractToRegion (GEOMETRIC& DestObj, const ELEMTRANSLIST& TransList, const TRANS2D_MAPGEN& tmg, GEOMETRIC::EXTRACTFLAGS ExtractFlags) const;
00223
00224 REGION2D m_Region;
00225 #endif // GENERATING_DOXYGEN_OUTPUT
00226 };
00227
00228
00229 class GEOREGION::MAKEPARMS {
00230 public:
00231 MAKEPARMS (
00232 const REGION2D& region
00233 ) :
00234 m_Region(region)
00235 {}
00236
00237 private:
00238 REGION2D m_Region;
00239
00240 friend class GEOREGION;
00241 };
00242
00243 }
00244
00245 #endif