OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ossimTilingPoly Class Reference

#include <ossimTilingPoly.h>

Inheritance diagram for ossimTilingPoly:
ossimTilingRect ossimTiling ossimObject ossimReferenced

Classes

struct  ossimShpFeature
 

Public Member Functions

 ossimTilingPoly ()
 
virtual ~ossimTilingPoly ()
 
virtual bool initialize (const ossimMapProjection &proj, const ossimIrect &boundingRect)
 
virtual bool next (ossimRefPtr< ossimMapProjection > &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
 
bool hasExteriorCut () const
 return true if exterior cut is initialized. More...
 
bool hasInteriorCut () const
 return true if interior cut is initialized. More...
 
ossimRefPtr< ossimGeoPolyCutter > & getExteriorCut ()
 
ossimRefPtr< ossimGeoPolyCutter > & getInteriorCut ()
 
bool isFeatureBoundingIntersect () const
 
- Public Member Functions inherited from ossimTilingRect
 ossimTilingRect ()
 
virtual ~ossimTilingRect ()
 
- Public Member Functions inherited from ossimTiling
 ossimTiling ()
 
bool initialize (const ossimMapProjection &proj, const ossimIrect &boundingRect)
 
bool next (ossimRefPtr< ossimMapProjection > &resultProjection, ossimIrect &resultingBounds, ossimString &resultingName) const
 
void reset ()
 
void setTilingDistance (const ossimDpt &tilingDistance, ossimUnitType unitType)
 
void setDelta (const ossimDpt &delta, ossimTilingDeltaType deltaType)
 This sets the pixel delta. More...
 
void setTileNameMask (const ossimString &mask)
 This sets the tilename mask. More...
 
ossimString getTileNameMask () const
 
bool getRowCol (ossim_int64 &row, ossim_int64 &col, ossim_int64 tileId) const
 
bool getOrigin (ossimDpt &origin, ossim_int64 tileId) const
 
bool getOrigin (ossimDpt &origin, ossim_int64 row, ossim_int64 col) const
 
void setPaddingSizeInPixels (const ossimIpt &pizelOverlap)
 
ossimDpt getDeltaPerPixel () const
 
virtual std::ostream & print (std::ostream &out) const
 Generic print method. More...
 
- Public Member Functions inherited from ossimObject
 ossimObject ()
 
virtual ~ossimObject ()
 
virtual ossimObjectdup () const
 
virtual ossimString getShortName () const
 
virtual ossimString getLongName () const
 
virtual ossimString getDescription () const
 
virtual ossimString getClassName () const
 
virtual RTTItypeid getType () const
 
virtual bool canCastTo (ossimObject *obj) const
 
virtual bool canCastTo (const RTTItypeid &id) const
 
virtual bool canCastTo (const ossimString &parentClassName) const
 
virtual bool isEqualTo (const ossimObject &obj, ossimCompareType compareType=OSSIM_COMPARE_FULL) const
 
virtual void accept (ossimVisitor &visitor)
 
- Public Member Functions inherited from ossimReferenced
 ossimReferenced ()
 
 ossimReferenced (const ossimReferenced &)
 
ossimReferencedoperator= (const ossimReferenced &)
 
void ref () const
 increment the reference count by one, indicating that this object has another pointer which is referencing it. More...
 
void unref () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
void unref_nodelete () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
int referenceCount () const
 

Protected Member Functions

bool parseShpFile ()
 
bool nextFeature ()
 
void setRect ()
 
- Protected Member Functions inherited from ossimTilingRect
bool initializeBase (const ossimMapProjection &proj, const ossimIrect &boundingRect, ossimDpt &convertedTilingDistance)
 
void getConvertedDistance (ossimDpt &pt, ossimDpt inputDistance) const
 
ossimDpt getPaddingSize () const
 
- Protected Member Functions inherited from ossimTiling
void getConvertedTilingDistance (ossimDpt &pt) const
 
bool validate () const
 
bool isAngularUnit (ossimUnitType unitType) const
 
bool isLinearUnit (ossimUnitType unitType) const
 
void getTileName (ossimString &resultingName, ossim_int64 row, ossim_int64 col, ossim_int64 id) const
 
void clampGeographic (ossimDrect &rect) const
 
- Protected Member Functions inherited from ossimReferenced
virtual ~ossimReferenced ()
 

Protected Attributes

ossimFilename m_shpFilename
 
bool m_useMbr
 
ossim_float64 m_bufferDistance
 
ossimRefPtr< ossimGeoPolyCutterm_exteriorCut
 
ossimRefPtr< ossimGeoPolyCutterm_interiorCut
 
std::vector< ossimShpFeaturem_features
 
bool m_featureBoundingIntersect
 
- Protected Attributes inherited from ossimTilingRect
bool m_clipToAoi
 
ossim_float64 m_lastWidth
 
ossim_float64 m_lastHeight
 
bool m_useOffset
 
ossimDpt m_offsetInPixels
 
ossimDpt m_tilingDistanceInPixels
 
ossimDpt m_tilinResolutionDistance
 
ossimUnitType m_tilingResolutionUnitType
 
ossimDpt m_fractionalPixelMisalignment
 
- Protected Attributes inherited from ossimTiling
ossimDpt theTilingDistance
 The size of a tile in theTilingDistanceUnitType. More...
 
ossimUnitType theTilingDistanceUnitType
 The unit type for "theDelta", and "theTilingDistance". More...
 
ossimDpt theDelta
 If (theDeltaType == ossimTilingDeltaType_TOTAL_PIXELS) then this is the size of the tile in pixels like 1024 x 1024. More...
 
ossimTilingDeltaType theDeltaType
 
ossim_int64 theOutputSizeInBytes
 If set tiling size is controlled by the desired output size in bytes. More...
 
ossim_uint32 theNumberOfBands
 Output number of bands. More...
 
ossim_uint32 theNumberOfBytesPerPixelPerBand
 Output number of bytes per pixel. More...
 
ossimDpt thePaddingSizeInPixels
 
ossimRefPtr< ossimMapProjectiontheMapProjection
 
ossimIrect theImageRect
 
ossimDrect theTilingRect
 
ossim_int64 theTileId
 
ossim_int64 theTotalHorizontalTiles
 
ossim_int64 theTotalVerticalTiles
 
ossim_int64 theTotalTiles
 
ossimString theTileNameMask
 
bool theEdgeToEdgeFlag
 This flags the code to shift the tie point so that the edge of the pixel falls on the tile boundary. More...
 

Additional Inherited Members

- Public Types inherited from ossimTiling
enum  ossimTilingDeltaType { ossimTilingDeltaType_TOTAL_PIXELS, ossimTilingDeltaType_PER_PIXEL }
 

Detailed Description

Definition at line 20 of file ossimTilingPoly.h.

Constructor & Destructor Documentation

◆ ossimTilingPoly()

ossimTilingPoly::ossimTilingPoly ( )

Definition at line 29 of file ossimTilingPoly.cpp.

30  : ossimTilingRect(),
31  m_shpFilename(""),
32  m_useMbr(true),
33  m_bufferDistance(0.0),
34  m_exteriorCut(0),
35  m_interiorCut(0),
37 {
38 }
ossimRefPtr< ossimGeoPolyCutter > m_exteriorCut
ossimFilename m_shpFilename
bool m_featureBoundingIntersect
ossim_float64 m_bufferDistance
ossimRefPtr< ossimGeoPolyCutter > m_interiorCut

◆ ~ossimTilingPoly()

ossimTilingPoly::~ossimTilingPoly ( )
virtual

Definition at line 40 of file ossimTilingPoly.cpp.

References m_exteriorCut, m_features, and m_interiorCut.

41 {
42  m_exteriorCut = 0; // Ref ptr, not a leak.
43  m_interiorCut = 0; // ditto...
44  m_features.clear();
45 }
std::vector< ossimShpFeature > m_features
ossimRefPtr< ossimGeoPolyCutter > m_exteriorCut
ossimRefPtr< ossimGeoPolyCutter > m_interiorCut

Member Function Documentation

◆ getExteriorCut()

ossimRefPtr< ossimGeoPolyCutter > & ossimTilingPoly::getExteriorCut ( )

Definition at line 356 of file ossimTilingPoly.cpp.

References m_exteriorCut.

Referenced by ossimIgen::outputProduct().

357 {
358  return m_exteriorCut;
359 }
ossimRefPtr< ossimGeoPolyCutter > m_exteriorCut

◆ getInteriorCut()

ossimRefPtr< ossimGeoPolyCutter > & ossimTilingPoly::getInteriorCut ( )

Definition at line 361 of file ossimTilingPoly.cpp.

References m_interiorCut.

Referenced by ossimIgen::outputProduct().

362 {
363  return m_interiorCut;
364 }
ossimRefPtr< ossimGeoPolyCutter > m_interiorCut

◆ hasExteriorCut()

bool ossimTilingPoly::hasExteriorCut ( ) const

return true if exterior cut is initialized.

Definition at line 346 of file ossimTilingPoly.cpp.

References m_exteriorCut, and ossimRefPtr< T >::valid().

Referenced by ossimIgen::outputProduct().

347 {
348  return m_exteriorCut.valid();
349 }
bool valid() const
Definition: ossimRefPtr.h:75
ossimRefPtr< ossimGeoPolyCutter > m_exteriorCut

◆ hasInteriorCut()

bool ossimTilingPoly::hasInteriorCut ( ) const

return true if interior cut is initialized.

Definition at line 351 of file ossimTilingPoly.cpp.

References m_interiorCut, and ossimRefPtr< T >::valid().

Referenced by ossimIgen::outputProduct().

352 {
353  return m_interiorCut.valid();
354 }
bool valid() const
Definition: ossimRefPtr.h:75
ossimRefPtr< ossimGeoPolyCutter > m_interiorCut

◆ initialize()

bool ossimTilingPoly::initialize ( const ossimMapProjection proj,
const ossimIrect boundingRect 
)
virtual

Reimplemented from ossimTilingRect.

Definition at line 47 of file ossimTilingPoly.cpp.

49 {
50  bool result = false;
51  if(traceDebug())
52  {
54  << "ossimTilingPoly::initialize DEBUG: Entered..."
55  << "\nBounding rect === " << boundingRect
56  << std::endl;
57  }
58 
59  ossimDpt convertedTilingDistance = theTilingDistance;
60  result = initializeBase(proj, boundingRect, convertedTilingDistance);
61  if (result)
62  {
63  return parseShpFile();
64  }
65  return result;
66 }
ossimDpt theTilingDistance
The size of a tile in theTilingDistanceUnitType.
Definition: ossimTiling.h:122
bool initializeBase(const ossimMapProjection &proj, const ossimIrect &boundingRect, ossimDpt &convertedTilingDistance)
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ isFeatureBoundingIntersect()

bool ossimTilingPoly::isFeatureBoundingIntersect ( ) const

Definition at line 366 of file ossimTilingPoly.cpp.

References m_featureBoundingIntersect.

Referenced by ossimIgen::outputProduct().

367 {
369 }
bool m_featureBoundingIntersect

◆ loadState()

bool ossimTilingPoly::loadState ( const ossimKeywordlist kwl,
const char *  prefix = 0 
)
virtual

Method to the load (recreate) the state of the object from a keyword list. Return true if ok or false on error.

Reimplemented from ossimTilingRect.

Definition at line 115 of file ossimTilingPoly.cpp.

References ossimString::contains(), ossimString::empty(), ossimKeywordlist::find(), ossimTilingRect::loadState(), m_bufferDistance, m_shpFilename, m_useMbr, ossimString::substitute(), ossimTiling::thePaddingSizeInPixels, ossimTiling::theTileNameMask, useMbr(), and ossimDpt::x.

117 {
118  bool result = ossimTilingRect::loadState(kwl, prefix);
119 
120  //Get the shp file if any
121  m_shpFilename = kwl.find(prefix, "tile_source");
122 
123  // Get the mask if any.
124  if (!m_shpFilename.empty())
125  {
126  if (theTileNameMask.contains("%r%_%c%"))
127  {
128  theTileNameMask = theTileNameMask.substitute("%r%_%c%", "%f%", true);
129  }
130  result = true;
131  }
132 
133  const char* useMbr = kwl.find(prefix, "padding_use_mbr");
134  if (useMbr)
135  {
136  if (!ossimString(useMbr).toBool())
137  {
138  m_useMbr = false;
140  }
141  }
142 
143  return result;
144 }
ossimString substitute(const ossimString &searchKey, const ossimString &replacementValue, bool replaceAll=false) const
Substitutes searchKey string with replacementValue and returns a string.
const char * find(const char *key) const
bool useMbr() const
bool contains(char aChar) const
Definition: ossimString.h:58
ossimFilename m_shpFilename
ossim_float64 m_bufferDistance
ossimString theTileNameMask
Definition: ossimTiling.h:180
ossimDpt thePaddingSizeInPixels
Definition: ossimTiling.h:172
double x
Definition: ossimDpt.h:164
bool empty() const
Definition: ossimString.h:411
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)

◆ next()

bool ossimTilingPoly::next ( ossimRefPtr< ossimMapProjection > &  resultProjection,
ossimIrect resultingBounds,
ossimString resultingName 
)
virtual

Reimplemented from ossimTilingRect.

Definition at line 68 of file ossimTilingPoly.cpp.

References ossimPolyCutter::getRectangle(), m_exteriorCut, m_features, nextFeature(), ossimString::substitute(), ossimTiling::theMapProjection, ossimTiling::theTileId, ossimTiling::theTileNameMask, and ossimTiling::theTotalTiles.

71 {
72  bool result = true;
73 
75  {
76  ostringstream idString;
77  ossim_int64 tileId = theTileId + 1;
78  if (tileId < static_cast<ossim_int64>(m_features.size()))
79  {
80  idString << m_features[tileId].m_fid;
81  resultingName = theTileNameMask;
82  resultingName = resultingName.substitute("%f%", idString.str().c_str());
83  }
84  result = nextFeature();
85  resultingBounds = m_exteriorCut->getRectangle();
86 
87  resultProjection = theMapProjection;
88 
89  ++theTileId;
90  }
91  else
92  {
93  result = false;
94  }
95 
96  return result;
97 }
ossimString substitute(const ossimString &searchKey, const ossimString &replacementValue, bool replaceAll=false) const
Substitutes searchKey string with replacementValue and returns a string.
std::basic_ostringstream< char > ostringstream
Class for char output memory streams.
Definition: ossimIosFwd.h:35
ossim_int64 theTileId
Definition: ossimTiling.h:176
ossimRefPtr< ossimMapProjection > theMapProjection
Definition: ossimTiling.h:173
std::vector< ossimShpFeature > m_features
ossimRefPtr< ossimGeoPolyCutter > m_exteriorCut
ossim_int64 theTotalTiles
Definition: ossimTiling.h:179
const ossimIrect & getRectangle() const
ossimString theTileNameMask
Definition: ossimTiling.h:180
long long ossim_int64

◆ nextFeature()

bool ossimTilingPoly::nextFeature ( )
protected

Definition at line 146 of file ossimTilingPoly.cpp.

References ossimGeoPolyCutter::addPolygon(), ossimPolyCutter::clear(), ossimRefPtr< T >::get(), ossimGeoPolygon::getHoleList(), m_exteriorCut, m_features, m_interiorCut, ossimGeoAnnotationPolyObject::OSSIM_POLY_INTERIOR_RING, ossimPolyCutter::OSSIM_POLY_NULL_INSIDE, ossimPolyCutter::setCutType(), ossimGeoPolyCutter::setPolygon(), setRect(), ossimGeoPolyCutter::setView(), ossimTiling::theMapProjection, and ossimTiling::theTileId.

Referenced by next().

147 {
148  if (!m_exteriorCut)
149  {
152  }
153 
154  bool result = false;
155  ossim_int64 tileId = theTileId + 1;//use (theTileId+1) because theTileId is intialized as -1
156  if (tileId < static_cast<ossim_int64>(m_features.size()))
157  {
158  if (m_features[tileId].m_polygon.size() > 0)
159  {
161  {
162  if (!m_interiorCut)
163  {
167  }
168  m_interiorCut->setPolygon(m_features[tileId].m_polygon);
169  }
170  else
171  {
172  // std::vector<ossimGpt> points = m_features[tileId].m_polygon;
173  // for (ossim_uint32 i = 0; i < points.size(); i++)
174  // {
175  // ossimGpt point = points[i];
176  // }
177  m_exteriorCut->setPolygon(m_features[tileId].m_polygon);
178  setRect();
179  }
180  result = true;
181  }
182  else if (m_features[tileId].m_multiPolys.size() > 0)
183  {
184  for (ossim_uint32 i = 0; i < m_features[tileId].m_multiPolys.size(); i++)
185  {
186  ossimGeoPolygon geoPoly = m_features[tileId].m_multiPolys[i];
187  std::vector<ossimGeoPolygon> holePolys = geoPoly.getHoleList();
188  if (holePolys.size() > 0)
189  {
190  if (!m_interiorCut)
191  {
195  }
196  m_interiorCut->clear();
197  for (ossim_uint32 j = 0; j < holePolys.size(); j++)
198  {
199  m_interiorCut->addPolygon(holePolys[j]);
200  }
201  }
202  m_exteriorCut->setPolygon(m_features[tileId].m_multiPolys[i]);
203  setRect();
204  }
205  result = true;
206  }
207  }
208  else
209  {
210  result = false;
211  }
212  return result;
213 }
virtual void setPolygon(const vector< ossimDpt > &polygon, ossim_uint32 i=0)
ossim_int64 theTileId
Definition: ossimTiling.h:176
ossimRefPtr< ossimMapProjection > theMapProjection
Definition: ossimTiling.h:173
std::vector< ossimShpFeature > m_features
ossimRefPtr< ossimGeoPolyCutter > m_exteriorCut
std::vector< ossimGeoPolygon > & getHoleList()
virtual bool setView(ossimObject *baseObject)
unsigned int ossim_uint32
virtual void addPolygon(const vector< ossimIpt > &polygon)
ossimRefPtr< ossimGeoPolyCutter > m_interiorCut
long long ossim_int64
void setCutType(ossimPolyCutterCutType cutType)

◆ parseShpFile()

bool ossimTilingPoly::parseShpFile ( )
protected

Definition at line 246 of file ossimTilingPoly.cpp.

References ossimString::contains(), ossimString::empty(), ossimRefPtr< T >::get(), ossimMapProjection::getDecimalDegreesPerPixel(), ossimEsriShapeFileInterface::getFeatureTable(), ossimImageHandler::getImageGeometry(), ossimMapProjection::getMetersPerPixel(), ossimGeoAnnotationMultiPolyObject::getMultiPolygon(), ossimGeoAnnotationPolyObject::getPoints(), ossimGeoAnnotationPolyObject::getPolyType(), ossimImageGeometry::getProjection(), ossimImageHandlerRegistry::instance(), ossimMapProjection::isGeographic(), m_bufferDistance, m_features, m_shpFilename, m_useMbr, ossimImageHandlerRegistry::open(), OSSIM_DEGREES, OSSIM_METERS, PTR_CAST, ossimEsriShapeFileInterface::setGeometryBuffer(), ossimEsriShapeFileInterface::setQuery(), ossimString::split(), ossimTiling::theMapProjection, ossimTiling::thePaddingSizeInPixels, ossimTiling::theTotalTiles, and ossimDpt::x.

247 {
248  m_features.clear();
249 
250  ossimString query = "";
251  bool result = false;
252  if (m_shpFilename.contains("|"))
253  {
254  ossimString fileName = m_shpFilename;
255  std::vector<ossimString> fileList = fileName.split("|");
256  if (fileList.size() > 1)
257  {
258  m_shpFilename = fileList[0];
259  query = fileList[1];
260  }
261  }
262 
265  if (shpInterface != 0)
266  {
267  if (!query.empty())
268  {
269  shpInterface->setQuery(query);
270  }
271  if (m_useMbr == false)
272  {
273  ossimProjection* proj = shpHandler->getImageGeometry()->getProjection();
275  if (mapProj)
276  {
277  if (mapProj->isGeographic())
278  {
281  }
282  else
283  {
286  }
287  }
288  }
289  std::multimap<long, ossimAnnotationObject*> features = shpInterface->getFeatureTable();
290  if (features.size() > 0)
291  {
292  std::multimap<long, ossimAnnotationObject*>::iterator it = features.begin();
293  while (it != features.end())
294  {
295  ossimAnnotationObject* anno = it->second;
296  if (anno != 0)
297  {
299  ossimGeoAnnotationMultiPolyObject* annoMultiPoly = 0;
300  if (annoPoly == 0)
301  {
302  annoMultiPoly = PTR_CAST(ossimGeoAnnotationMultiPolyObject, anno);
303  }
304  if (annoPoly != 0)
305  {
306  result = true;
307  std::vector<ossimGpt> polygon;
308 
309  //get the points of a polygon
310  std::vector<ossimGpt> points = annoPoly->getPoints();
311  for (ossim_uint32 i = 0; i < points.size(); i++)
312  {
313  polygon.push_back(points[i]);
314  }
315 
316  //get polygon type, if it is an internal polygon, initialize the internal cutter
318  ossimShpFeature feature(it->first, polyType, polygon, std::vector<ossimGeoPolygon>());
319  m_features.push_back(feature);
320  }
321  else if (annoMultiPoly != 0)
322  {
323  std::vector<ossimGeoPolygon> multiPolys = annoMultiPoly->getMultiPolygon();
324  ossimShpFeature feature(it->first, 0, std::vector<ossimGpt>(), multiPolys);
325  }
326  }
327  it++;
328  }
329  }
330  }
331  if (m_features.size() > 0)
332  {
333  theTotalTiles = m_features.size();
334  result = true;
335  }
336  return result;
337 }
virtual const ossimDpt & getDecimalDegreesPerPixel() const
Returns decimal degrees per pixel as an ossimDpt with "x" representing longitude and "y" representing...
virtual std::vector< ossimGpt > getPoints()
virtual void setQuery(const ossimString &query)=0
Pure virtual setQuery method.
virtual ossimImageHandler * open(const ossimFilename &fileName, bool trySuffixFirst=true, bool openOverview=true) const
open that takes a filename.
bool contains(char aChar) const
Definition: ossimString.h:58
ossimRefPtr< ossimMapProjection > theMapProjection
Definition: ossimTiling.h:173
std::vector< ossimShpFeature > m_features
virtual bool isGeographic() const
void split(std::vector< ossimString > &result, const ossimString &separatorList, bool skipBlankFields=false) const
Splits this string into a vector of strings (fields) using the delimiter list specified.
virtual ossimRefPtr< ossimImageGeometry > getImageGeometry()
Returns the image geometry object associated with this tile source or NULL if non defined...
unsigned int ossim_uint32
ossimFilename m_shpFilename
ossim_int64 theTotalTiles
Definition: ossimTiling.h:179
#define PTR_CAST(T, p)
Definition: ossimRtti.h:321
const std::vector< ossimGeoPolygon > & getMultiPolygon() const
ossim_float64 m_bufferDistance
const ossimProjection * getProjection() const
Access methods for projection (may be NULL pointer).
ossimDpt thePaddingSizeInPixels
Definition: ossimTiling.h:172
double x
Definition: ossimDpt.h:164
bool empty() const
Definition: ossimString.h:411
virtual std::multimap< long, ossimAnnotationObject * > getFeatureTable()=0
Pure virtual getFeatureTable method.
static ossimImageHandlerRegistry * instance()
virtual ossimDpt getMetersPerPixel() const
virtual void setGeometryBuffer(ossim_float64 distance, ossimUnitType type)=0
Pure virtual setGeometryBuffer method.

◆ saveState()

bool ossimTilingPoly::saveState ( ossimKeywordlist kwl,
const char *  prefix = 0 
) const
virtual

Method to save the state of the object to a keyword list. Return true if ok or false on error.

Reimplemented from ossimTilingRect.

Definition at line 99 of file ossimTilingPoly.cpp.

References ossimKeywordlist::add(), ossimString::c_str(), m_shpFilename, m_useMbr, and ossimTilingRect::saveState().

101 {
102  kwl.add(prefix,
103  "tile_source",
105  true);
106 
107  kwl.add(prefix,
108  "paddding_use_mbr",
109  m_useMbr,
110  true);
111 
112  return ossimTilingRect::saveState(kwl, prefix);;
113 }
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
ossimFilename m_shpFilename
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const

◆ setRect()

void ossimTilingPoly::setRect ( )
protected

Definition at line 215 of file ossimTilingPoly.cpp.

References ossimIrect::clipToRect(), ossimIrect::completely_within(), ossimPolyCutter::getRectangle(), ossimIrect::intersects(), ossimIrect::lr(), m_exteriorCut, m_featureBoundingIntersect, m_useMbr, ossimPolyCutter::setRectangle(), ossimTiling::theImageRect, ossimTiling::thePaddingSizeInPixels, ossimIrect::ul(), ossimIpt::x, ossimDpt::x, ossimIpt::y, and ossimDpt::y.

Referenced by nextFeature().

216  {
218  if (rect.intersects(theImageRect))
219  {
221  if (!rect.completely_within(theImageRect))
222  {
223  ossimIrect clipRect = rect.clipToRect(theImageRect);
224  m_exteriorCut->setRectangle(clipRect);
225  rect = clipRect;
226  }
227  }
228  else
229  {
231  }
232  if (m_useMbr)
233  {
235  {
240  ossimIrect clipRect = newRect.clipToRect(theImageRect);//in case the bounding is larger than input image after adding buffer
241  m_exteriorCut->setRectangle(clipRect);
242  }
243  }
244  }
double y
Definition: ossimDpt.h:165
const ossimIpt & ul() const
Definition: ossimIrect.h:274
ossimIrect theImageRect
Definition: ossimTiling.h:174
ossimRefPtr< ossimGeoPolyCutter > m_exteriorCut
bool intersects(const ossimIrect &rect) const
Definition: ossimIrect.cpp:183
bool completely_within(const ossimIrect &rect) const
Definition: ossimIrect.cpp:425
bool m_featureBoundingIntersect
const ossimIpt & lr() const
Definition: ossimIrect.h:276
const ossimIrect & getRectangle() const
ossimIrect clipToRect(const ossimIrect &rect) const
Definition: ossimIrect.cpp:501
ossim_int32 y
Definition: ossimIpt.h:142
ossimDpt thePaddingSizeInPixels
Definition: ossimTiling.h:172
double x
Definition: ossimDpt.h:164
ossim_int32 x
Definition: ossimIpt.h:141
void setRectangle(const ossimIrect &rect)
int ossim_int32

◆ useMbr()

bool ossimTilingPoly::useMbr ( ) const

Definition at line 339 of file ossimTilingPoly.cpp.

References m_useMbr.

Referenced by loadState(), and ossimIgen::outputProduct().

340 {
341  //if the use_mbr is set to true, no matter if the padding is set to 0 or greater than 0,
342  //always clip the MBR of each feature
343  return m_useMbr;
344 }

Member Data Documentation

◆ m_bufferDistance

ossim_float64 ossimTilingPoly::m_bufferDistance
protected

Definition at line 84 of file ossimTilingPoly.h.

Referenced by loadState(), and parseShpFile().

◆ m_exteriorCut

ossimRefPtr<ossimGeoPolyCutter> ossimTilingPoly::m_exteriorCut
protected

◆ m_featureBoundingIntersect

bool ossimTilingPoly::m_featureBoundingIntersect
protected

Definition at line 90 of file ossimTilingPoly.h.

Referenced by isFeatureBoundingIntersect(), and setRect().

◆ m_features

std::vector<ossimShpFeature> ossimTilingPoly::m_features
protected

Definition at line 89 of file ossimTilingPoly.h.

Referenced by next(), nextFeature(), parseShpFile(), and ~ossimTilingPoly().

◆ m_interiorCut

ossimRefPtr<ossimGeoPolyCutter> ossimTilingPoly::m_interiorCut
protected

Definition at line 87 of file ossimTilingPoly.h.

Referenced by getInteriorCut(), hasInteriorCut(), nextFeature(), and ~ossimTilingPoly().

◆ m_shpFilename

ossimFilename ossimTilingPoly::m_shpFilename
protected

Definition at line 82 of file ossimTilingPoly.h.

Referenced by loadState(), parseShpFile(), and saveState().

◆ m_useMbr

bool ossimTilingPoly::m_useMbr
protected

Definition at line 83 of file ossimTilingPoly.h.

Referenced by loadState(), parseShpFile(), saveState(), setRect(), and useMbr().


The documentation for this class was generated from the following files: