//******************************************************************* // // License: MIT // // See LICENSE.txt file in the top level directory for more details. // // Author: Mingjie Su // // Description: implementation for image generator // //************************************************************************* // $Id: ossimTilingPoly.h 2725 2011-06-15 18:13:07Z david.burken $ #ifndef ossimTilingPoly_HEADER #define ossimTilingPoly_HEADER 1 #include #include #include class OSSIM_DLL ossimTilingPoly : public ossimTilingRect { public: ossimTilingPoly(); virtual ~ossimTilingPoly(); virtual bool initialize(const ossimMapProjection& proj, const ossimIrect& boundingRect); virtual bool next(ossimRefPtr& resultProjection, ossimIrect& resultingBounds, ossimString& resultingName); virtual bool saveState(ossimKeywordlist& kwl, const char* prefix=0)const; virtual bool loadState(const ossimKeywordlist& kwl, const char* prefix=0); bool useMbr() const; /** return true if exterior cut is initialized. */ bool hasExteriorCut() const; /** return true if interior cut is initialized. */ bool hasInteriorCut() const; ossimRefPtr& getExteriorCut(); ossimRefPtr& getInteriorCut(); bool isFeatureBoundingIntersect() const; protected: struct ossimShpFeature { ossimShpFeature(ossim_int32 fid, ossim_int32 polyType, std::vector polygon, std::vector multiPolys) :m_fid(fid), m_polyType(polyType), m_polygon(polygon), m_multiPolys(multiPolys) {} ossim_int32 m_fid; ossim_int32 m_polyType; std::vector m_polygon; std::vector m_multiPolys; }; bool parseShpFile(); bool nextFeature(); void setRect(); ossimFilename m_shpFilename; bool m_useMbr; ossim_float64 m_bufferDistance; ossimRefPtr m_exteriorCut; ossimRefPtr m_interiorCut; std::vector m_features; bool m_featureBoundingIntersect; TYPE_DATA }; #endif