OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Types | Public Member Functions | Private Attributes | Friends | List of all members
ossimIrect Class Reference

#include <ossimIrect.h>

Public Types

enum  { UPPER_LEFT = 1, LOWER_LEFT = 2, LOWER_RIGHT = 4, UPPER_RIGHT = 8 }
 

Public Member Functions

 ossimIrect ()
 
 ossimIrect (ossimIpt ul_corner, ossimIpt lr_corner, ossimCoordSysOrientMode mode=OSSIM_LEFT_HANDED)
 
 ossimIrect (ossim_int32 ul_corner_x, ossim_int32 ul_corner_y, ossim_int32 lr_corner_x, ossim_int32 lr_corner_y, ossimCoordSysOrientMode mode=OSSIM_LEFT_HANDED)
 
 ossimIrect (const ossimIrect &rect)
 
 ossimIrect (const ossimDrect &rect)
 
 ossimIrect (const std::vector< ossimIpt > &points, ossimCoordSysOrientMode mode=OSSIM_LEFT_HANDED)
 
 ossimIrect (const ossimIpt &p1, const ossimIpt &p2, const ossimIpt &p3, const ossimIpt &p4, ossimCoordSysOrientMode=OSSIM_LEFT_HANDED)
 
 ossimIrect (const ossimIpt &center, ossim_uint32 size_x, ossim_uint32 size_y, ossimCoordSysOrientMode mode=OSSIM_LEFT_HANDED)
 Constructs an Irect surrounding the specified point, and of specified size. More...
 
 ~ossimIrect ()
 destructor More...
 
const ossimIrectoperator= (const ossimIrect &rect)
 
const ossimIrectoperator= (const ossimDrect &rect)
 
bool operator!= (const ossimIrect &rect) const
 
bool operator== (const ossimIrect &rect) const
 
const ossimIrectoperator*= (ossim_int32 scalar)
 
ossimIrect operator* (ossim_int32 scalar) const
 
const ossimIrectoperator*= (double scalar)
 
ossimIrect operator* (double scalar) const
 
const ossimIrectoperator*= (const ossimDpt &scalar)
 
ossimIrect operator* (const ossimDpt &scalar) const
 
const ossimIrectoperator+= (const ossimIpt &shift)
 
const ossimIrectoperator-= (const ossimIpt &shift)
 
ossimIrect operator+ (const ossimIpt &shift) const
 
ossimIrect operator- (const ossimIpt &shift) const
 
const ossimIrectoperator+= (const ossimDpt &shift)
 
const ossimIrectoperator-= (const ossimDpt &shift)
 
ossimIrect operator+ (const ossimDpt &shift) const
 
ossimIrect operator- (const ossimDpt &shift) const
 
const ossimIptul () const
 
const ossimIptur () const
 
const ossimIptlr () const
 
const ossimIptll () const
 
const ossimIrectchangeOrientationMode (ossimCoordSysOrientMode mode)
 
void getBounds (ossim_int32 &minx, ossim_int32 &miny, ossim_int32 &maxx, ossim_int32 &maxy) const
 
void getCenter (ossimDpt &center_point) const
 
void makeNan ()
 
bool hasNans () const
 
bool isNan () const
 
ossimCoordSysOrientMode orientMode () const
 
void setOrientMode (ossimCoordSysOrientMode mode)
 
void stretchToTileBoundary (const ossimIpt &tileWidthHeight)
 
ossimString toString () const
 
bool toRect (const ossimString &rectString)
 expected Format: form 1: ( 30, -90, 512, 512, [LH|RH] ) -x- -y- -w- -h- -Right or left handed- More...
 
const ossimIrectexpand (const ossimIpt &padding)
 
bool insureMinimumSize (const ossimIpt &width_height)
 Guarantees that this rect will be at least w X h big. More...
 
ossim_uint32 area () const
 
void set_ul (const ossimIpt &pt)
 
void set_ur (const ossimIpt &pt)
 
void set_lr (const ossimIpt &pt)
 
void set_ll (const ossimIpt &pt)
 
void set_ulx (ossim_int32 x)
 
void set_uly (ossim_int32 y)
 
void set_urx (ossim_int32 x)
 
void set_ury (ossim_int32 y)
 
void set_lrx (ossim_int32 x)
 
void set_lry (ossim_int32 y)
 
void set_llx (ossim_int32 x)
 
void set_lly (ossim_int32 y)
 
bool pointWithin (const ossimIpt &pt) const
 
bool intersects (const ossimIrect &rect) const
 
bool completely_within (const ossimIrect &rect) const
 
ossimCoordSysOrientMode orientationMode () const
 
ossim_uint32 height () const
 
ossim_uint32 width () const
 
ossimIpt size () const
 
ossimIrect clipToRect (const ossimIrect &rect) const
 
ossimIpt midPoint () const
 
void print (std::ostream &os) const
 
ossimIrect combine (const ossimIrect &rect) const
 
bool saveState (ossimKeywordlist &kwl, const char *prefix=0) const
 
bool loadState (const ossimKeywordlist &kwl, const char *prefix=0)
 

Private Attributes

ossimIpt theUlCorner
 
ossimIpt theUrCorner
 
ossimIpt theLrCorner
 
ossimIpt theLlCorner
 
ossimCoordSysOrientMode theOrientMode
 

Friends

ossimIrect operator* (double scalar, const ossimIrect &rect)
 
OSSIMDLLEXPORT std::ostream & operator<< (std::ostream &os, const ossimIrect &rect)
 

Detailed Description

Definition at line 48 of file ossimIrect.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
UPPER_LEFT 
LOWER_LEFT 
LOWER_RIGHT 
UPPER_RIGHT 

Definition at line 51 of file ossimIrect.h.

Constructor & Destructor Documentation

◆ ossimIrect() [1/8]

ossimIrect::ossimIrect ( )
inline

Definition at line 59 of file ossimIrect.h.

Referenced by clipToRect(), combine(), insureMinimumSize(), loadState(), ossimIrect(), stretchToTileBoundary(), and toRect().

60  :
61  theUlCorner(0, 0),
62  theUrCorner(0, 0),
63  theLrCorner(0, 0),
64  theLlCorner(0, 0),
66  {}
ossimIpt theUrCorner
Definition: ossimIrect.h:533
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossimIpt theLlCorner
Definition: ossimIrect.h:535
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537

◆ ossimIrect() [2/8]

ossimIrect::ossimIrect ( ossimIpt  ul_corner,
ossimIpt  lr_corner,
ossimCoordSysOrientMode  mode = OSSIM_LEFT_HANDED 
)
inline

Definition at line 68 of file ossimIrect.h.

71  :
72  theUlCorner(ul_corner),
73  theUrCorner(lr_corner.x, ul_corner.y),
74  theLrCorner(lr_corner),
75  theLlCorner(ul_corner.x, lr_corner.y),
76  theOrientMode(mode)
77  {}
ossimIpt theUrCorner
Definition: ossimIrect.h:533
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossimIpt theLlCorner
Definition: ossimIrect.h:535
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
ossim_int32 x
Definition: ossimIpt.h:141

◆ ossimIrect() [3/8]

ossimIrect::ossimIrect ( ossim_int32  ul_corner_x,
ossim_int32  ul_corner_y,
ossim_int32  lr_corner_x,
ossim_int32  lr_corner_y,
ossimCoordSysOrientMode  mode = OSSIM_LEFT_HANDED 
)
inline

Definition at line 79 of file ossimIrect.h.

84  :
85  theUlCorner(ul_corner_x, ul_corner_y),
86  theUrCorner(lr_corner_x, ul_corner_y),
87  theLrCorner(lr_corner_x, lr_corner_y),
88  theLlCorner(ul_corner_x, lr_corner_y),
89  theOrientMode(mode)
90  {}
ossimIpt theUrCorner
Definition: ossimIrect.h:533
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossimIpt theLlCorner
Definition: ossimIrect.h:535
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537

◆ ossimIrect() [4/8]

ossimIrect::ossimIrect ( const ossimIrect rect)
inline

Definition at line 92 of file ossimIrect.h.

93  :
94  theUlCorner(rect.ul()),
95  theUrCorner(rect.ur()),
96  theLrCorner(rect.lr()),
97  theLlCorner(rect.ll()),
99  {}
ossimIpt theUrCorner
Definition: ossimIrect.h:533
const ossimIpt & ul() const
Definition: ossimIrect.h:274
const ossimIpt & ll() const
Definition: ossimIrect.h:277
ossimCoordSysOrientMode orientMode() const
Definition: ossimIrect.h:351
ossimIpt theLrCorner
Definition: ossimIrect.h:534
const ossimIpt & lr() const
Definition: ossimIrect.h:276
ossimIpt theLlCorner
Definition: ossimIrect.h:535
const ossimIpt & ur() const
Definition: ossimIrect.h:275
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537

◆ ossimIrect() [5/8]

ossimIrect::ossimIrect ( const ossimDrect rect)

Definition at line 31 of file ossimIrect.cpp.

32  :
33  theUlCorner(rect.ul()),
34  theUrCorner(rect.ur()),
35  theLrCorner(rect.lr()),
36  theLlCorner(rect.ll()),
38 {}
ossimIpt theUrCorner
Definition: ossimIrect.h:533
const ossimDpt & ul() const
Definition: ossimDrect.h:339
ossimCoordSysOrientMode orientMode() const
Definition: ossimDrect.h:414
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossimIpt theLlCorner
Definition: ossimIrect.h:535
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
const ossimDpt & ur() const
Definition: ossimDrect.h:340
const ossimDpt & ll() const
Definition: ossimDrect.h:342
const ossimDpt & lr() const
Definition: ossimDrect.h:341

◆ ossimIrect() [6/8]

ossimIrect::ossimIrect ( const std::vector< ossimIpt > &  points,
ossimCoordSysOrientMode  mode = OSSIM_LEFT_HANDED 
)

Must compute a bounding rect given these image points.

Definition at line 40 of file ossimIrect.cpp.

References makeNan(), ossim::max(), ossim::min(), OSSIM_LEFT_HANDED, ossimIrect(), theOrientMode, x, and y.

42  :
43  theOrientMode (mode)
44 {
45  if(points.size())
46  {
47  ossim_uint32 index;
48  ossim_int32 minx = points[0].x;
49  ossim_int32 miny = points[0].y;
50  ossim_int32 maxx = points[0].x;
51  ossim_int32 maxy = points[0].y;
52 
53  // find the bounds
54  for(index = 1; index < points.size();index++)
55  {
56  minx = ossim::min(minx, points[index].x);
57  miny = ossim::min(miny, points[index].y);
58  maxx = ossim::max(maxx, points[index].x);
59  maxy = ossim::max(maxy, points[index].y);
60 
61  }
63  {
64  *this = ossimIrect(minx, miny, maxx, maxy, mode);
65  }
66  else
67  {
68  *this = ossimIrect(minx,maxy, maxx, miny, mode);
69  }
70  }
71  else
72  {
73  makeNan();
74  }
75 }
ossim_uint32 x
T max(T a, T b)
Definition: ossimCommon.h:236
ossim_uint32 y
unsigned int ossim_uint32
T min(T a, T b)
Definition: ossimCommon.h:203
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
void makeNan()
Definition: ossimIrect.h:329
int ossim_int32

◆ ossimIrect() [7/8]

ossimIrect::ossimIrect ( const ossimIpt p1,
const ossimIpt p2,
const ossimIpt p3,
const ossimIpt p4,
ossimCoordSysOrientMode  mode = OSSIM_LEFT_HANDED 
)

Definition at line 77 of file ossimIrect.cpp.

References ossimIpt::hasNans(), makeNan(), ossim::max(), ossim::min(), OSSIM_LEFT_HANDED, ossimIrect(), theOrientMode, ossimIpt::x, and ossimIpt::y.

82  :theOrientMode(mode)
83 {
84  if(p1.hasNans()||p2.hasNans()||p3.hasNans()||p4.hasNans())
85  {
86  makeNan();
87  }
88  else
89  {
90  ossim_int32 minx, miny;
91  ossim_int32 maxx, maxy;
92 
93  minx = ossim::min( p1.x, ossim::min(p2.x, ossim::min(p3.x, p4.x)));
94  miny = ossim::min( p1.y, ossim::min(p2.y, ossim::min(p3.y, p4.y)));
95  maxx = ossim::max( p1.x, ossim::max(p2.x, ossim::max(p3.x, p4.x)));
96  maxy = ossim::max( p1.y, ossim::max(p2.y, ossim::max(p3.y, p4.y)));
97 
99  {
100  *this = ossimIrect(minx, miny, maxx, maxy, mode);
101  }
102  else
103  {
104  *this = ossimIrect(minx,maxy, maxx, miny, mode);
105  }
106  }
107 }
T max(T a, T b)
Definition: ossimCommon.h:236
T min(T a, T b)
Definition: ossimCommon.h:203
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
void makeNan()
Definition: ossimIrect.h:329
ossim_int32 x
Definition: ossimIpt.h:141
bool hasNans() const
Definition: ossimIpt.h:58
int ossim_int32

◆ ossimIrect() [8/8]

ossimIrect::ossimIrect ( const ossimIpt center,
ossim_uint32  size_x,
ossim_uint32  size_y,
ossimCoordSysOrientMode  mode = OSSIM_LEFT_HANDED 
)

Constructs an Irect surrounding the specified point, and of specified size.

Definition at line 116 of file ossimIrect.cpp.

References OSSIM_LEFT_HANDED, ossimIrect(), ossimIpt::x, and ossimIpt::y.

120 : theOrientMode (mode)
121 {
122  ossim_int32 minx = center.x - size_x/2;
123  ossim_int32 maxx = minx + size_x - 1;
124 
125  ossim_int32 miny = center.y - size_y/2;
126  ossim_int32 maxy = miny + size_y - 1;
127 
128  if(mode == OSSIM_LEFT_HANDED)
129  *this = ossimIrect(minx, miny, maxx, maxy, mode);
130  else
131  *this = ossimIrect(minx,maxy, maxx, miny, mode);
132 }
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
ossim_int32 x
Definition: ossimIpt.h:141
int ossim_int32

◆ ~ossimIrect()

ossimIrect::~ossimIrect ( )

destructor

Definition at line 109 of file ossimIrect.cpp.

110 {
111 }

Member Function Documentation

◆ area()

ossim_uint32 ossimIrect::area ( ) const
inline

◆ changeOrientationMode()

const ossimIrect& ossimIrect::changeOrientationMode ( ossimCoordSysOrientMode  mode)
inline

Definition at line 279 of file ossimIrect.h.

References OSSIM_LEFT_HANDED, and OSSIM_RIGHT_HANDED.

280  {
281  // if we are already in the orientation then return
282  //
283  if(mode == theOrientMode) return *this;
284  if(mode == OSSIM_LEFT_HANDED)
285  {
286  // we must be right handed so change to left handed
287  *this = ossimIrect(theUlCorner.x,
288  theLlCorner.y,
289  theLrCorner.x,
290  theUlCorner.y,
292  }
293  else
294  {
295  // we must be left handed so change to RIGHT handed
296  *this = ossimIrect(theUlCorner.x,
297  theLlCorner.y,
298  theLrCorner.x,
299  theUlCorner.y,
301  }
302  theOrientMode = mode;
303 
304  return *this;
305  }
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossimIpt theLlCorner
Definition: ossimIrect.h:535
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
ossim_int32 x
Definition: ossimIpt.h:141

◆ clipToRect()

ossimIrect ossimIrect::clipToRect ( const ossimIrect rect) const

Definition at line 501 of file ossimIrect.cpp.

References intersects(), lr(), MAX, MIN, OSSIM_INT_NAN, OSSIM_LEFT_HANDED, ossimIrect(), theOrientMode, ul(), ossimIpt::x, and ossimIpt::y.

Referenced by ossimPixelFlipper::clipTile(), ossimBrightnessMatch::computeInputBrightness(), ossimGeoAnnotationBitmap::draw(), ossimAnnotationFontObject::draw(), ossimMapCompositionSource::drawBorders(), ossimElevRemapper::elevRemap(), ossimImageDataHelper::fill(), ossimWatermarkFilter::fill(), ossimAdrgTileSource::fillBuffer(), ossimRpfCacheTileSource::fillSubTileCadrg(), ossimCibCadrgTileSource::fillSubTileCadrg(), ossimRpfCacheTileSource::fillSubTileCib(), ossimCibCadrgTileSource::fillSubTileCib(), ossimCacheTileSource::fillTile(), ossimImageCacheTileSource::fillTile(), ossimGpkgReader::fillTile(), ossimGeoPdfReader::fillTile(), ossimCcfTileSource::fillUcharBuffer(), ossimCcfTileSource::fillUshortBuffer(), ossimNullPixelFlip::flipPixels(), ossimFont::getBoundingClipBox(), ossimFusionCombiner::getBoundingRect(), ossimWatermarkFilter::getCenterRect(), ossimGeoPdfReader::getIntersectingEntries(), ossimImageCacheBase::getIntersectingEntries(), ossimRpfCacheTileSource::getIntersectingEntries(), ossimCibCadrgTileSource::getIntersectingEntries(), ossimWatermarkFilter::getLowerCenterRect(), ossimWatermarkFilter::getLowerLeftRect(), ossimWatermarkFilter::getLowerRightRect(), ossimOpjJp2Reader::getOverviewTile(), ossimNitfTileSource::getPartialReadSize(), ossimElevImageSource::getTile(), ossimMemoryImageSource::getTile(), ossimUsgsDemTileSource::getTile(), ossimTiledImagePatch::getTile(), ossimJpegTileSource::getTile(), ossimGdalTileSource::getTile(), ossimGpkgReader::getTile(), ossimHdf5ImageHandler::getTile(), ossimCcfTileSource::getTile(), ossimHdfReader::getTile(), ossimDtedTileSource::getTile(), ossimH5ImageHandler::getTile(), ossimPngReader::getTile(), ossimMrSidReader::getTile(), ossimMG4LidarReader::getTile(), ossimAdrgTileSource::getTile(), ossimKakaduJ2kReader::getTile(), ossimKakaduJp2Reader::getTile(), ossimTiffTileSource::getTile(), ossimTiledImageHandler::getTile(), ossimGeoPdfReader::getTile(), ossimNitfTileSource::getTile(), ossimKakaduJpipHandler::getTileAtRes(), ossimGdalTileSource::getTileBlockRead(), ossimWatermarkFilter::getUniformDenseRects(), ossimWatermarkFilter::getUniformSparceRects(), ossimWatermarkFilter::getUpperCenterRect(), ossimWatermarkFilter::getUpperLeftRect(), ossimWatermarkFilter::getUpperRightRect(), ossimViewshedTool::initProcessingChain(), ossimImageData::loadBandTemplate(), ossimNitfTileSource::loadBlockFromCache(), ossimTiffTileSource::loadFromTile(), ossimImageData::loadShortBand(), ossimNitfTileSource::loadTile(), ossimImageData::loadTile(), ossimImageData::loadTileFromBilTemplate(), ossimImageData::loadTileFromBipAlphaTemplate(), ossimImageData::loadTileFromBipTemplate(), ossimImageData::loadTileFromBsqTemplate(), ossimKakaduJp2Reader::loadTileFromCache(), ossimKakaduJ2kReader::loadTileFromCache(), ossimImageData::nullTileAlpha(), ossimGeoPdfReader::resetCacheBuffer(), ossimTilingPoly::setRect(), ossimImageData::unloadBandTemplate(), ossimImageData::unloadBandToBsqTemplate(), ossimImageData::unloadTileToBilTemplate(), ossimImageData::unloadTileToBipAlphaTemplate(), ossimImageData::unloadTileToBipTemplate(), and ossimImageData::unloadTileToBsqTemplate().

502 {
503  if (theOrientMode != rect.theOrientMode)
504  return (*this);
505 
506  int x0 = MAX(rect.ul().x, ul().x);
507  int x1 = MIN(rect.lr().x, lr().x);
508  int y0, y1;
509 
510  if(!this->intersects(rect))
511  {
512  return ossimIrect(OSSIM_INT_NAN,
515  OSSIM_INT_NAN);
516 
517  }
519  {
520  y0 = MAX(rect.ul().y, ul().y);
521  y1 = MIN(rect.lr().y, lr().y);
522 
523  if( (x1 < x0) || (y1 < y0) )
524  return ossimIrect(ossimIpt(0,0), ossimIpt(0,0), theOrientMode);
525  else
526  return ossimIrect(x0, y0, x1, y1, theOrientMode);
527  }
528  else
529  {
530  y1 = MIN(rect.ul().y,ul().y);
531  y0 = MAX(rect.lr().y,lr().y);
532 
533  if((x1 < x0) || (y1 < y0))
534  return ossimIrect(ossimIpt(0,0), ossimIpt(0,0), theOrientMode);
535  else
536  return ossimIrect(x0, y1, x1, y0, theOrientMode);
537  }
538 }
#define OSSIM_INT_NAN
const ossimIpt & ul() const
Definition: ossimIrect.h:274
bool intersects(const ossimIrect &rect) const
Definition: ossimIrect.cpp:183
const ossimIpt & lr() const
Definition: ossimIrect.h:276
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
#define MAX(x, y)
Definition: ossimIrect.cpp:27
ossim_int32 x
Definition: ossimIpt.h:141
#define MIN(x, y)
Definition: ossimIrect.cpp:28

◆ combine()

ossimIrect ossimIrect::combine ( const ossimIrect rect) const

Definition at line 543 of file ossimIrect.cpp.

References hasNans(), lr(), OSSIM_LEFT_HANDED, ossimIrect(), theOrientMode, ul(), ossimIpt::x, and ossimIpt::y.

Referenced by ossimVpfAnnotationSource::computeBoundingRect(), ossimPolyCutter::computeBoundingRect(), ossimVpfAnnotationLibraryInfo::getBoundingProjectedRect(), ossimVpfAnnotationCoverageInfo::getBoundingProjectedRect(), ossimVpfAnnotationFeatureInfo::getBoundingProjectedRect(), ossimAnnotationSource::getBoundingRect(), and ossimImageRenderer::initializeBoundingRects().

544 {
545  // If any rect has NANs, it is assumed uninitialized, so assign the result to just the other
546  if (hasNans())
547  return rect;
548  if(rect.hasNans())
549  return *this;
550 
551  if (theOrientMode != rect.theOrientMode)
552  return(*this);
553 
554  ossimIpt ulCombine;
555  ossimIpt lrCombine;
556 
558  {
559  ulCombine.x = ((ul().x <= rect.ul().x)?ul().x:rect.ul().x);
560  ulCombine.y = ((ul().y <= rect.ul().y)?ul().y:rect.ul().y);
561  lrCombine.x = ((lr().x >= rect.lr().x)?lr().x:rect.lr().x);
562  lrCombine.y = ((lr().y >= rect.lr().y)?lr().y:rect.lr().y);
563  }
564  else
565  {
566  ulCombine.x = ((ul().x <= rect.ul().x)?ul().x:rect.ul().x);
567  ulCombine.y = ((ul().y >= rect.ul().y)?ul().y:rect.ul().y);
568  lrCombine.x = ((lr().x >= rect.lr().x)?lr().x:rect.lr().x);
569  lrCombine.y = ((lr().y <= rect.lr().y)?lr().y:rect.lr().y);
570  }
571 
572  return ossimIrect(ulCombine, lrCombine, theOrientMode);
573 }
const ossimIpt & ul() const
Definition: ossimIrect.h:274
const ossimIpt & lr() const
Definition: ossimIrect.h:276
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
bool hasNans() const
Definition: ossimIrect.h:337
ossim_int32 x
Definition: ossimIpt.h:141

◆ completely_within()

bool ossimIrect::completely_within ( const ossimIrect rect) const

Returns true if "this" rectangle is contained completely within the input rectangular "rect".

Definition at line 425 of file ossimIrect.cpp.

References hasNans(), ll(), lr(), OSSIM_LEFT_HANDED, theLrCorner, theOrientMode, theUlCorner, ul(), ur(), ossimIpt::x, and ossimIpt::y.

Referenced by ossimPixelFlipper::clipTile(), ossimElevRemapper::elevRemap(), ossimJpegTileSource::fillTile(), ossimGeoPdfReader::fillTile(), ossimNullPixelFlip::flipPixels(), ossimPixelFlipper::flipPixels(), ossimIgenGenerator::generatePixelTiledSpecList(), ossimNitfTileSource::getPartialReadSize(), ossimImageToPlaneNormalFilter::getTile(), ossimRectangleCutFilter::getTile(), ossimElevImageSource::getTile(), ossimUsgsDemTileSource::getTile(), ossimGdalTileSource::getTile(), ossimHdf5ImageHandler::getTile(), ossimCcfTileSource::getTile(), ossimHdfReader::getTile(), ossimBitMaskTileSource::getTile(), ossimDtedTileSource::getTile(), ossimPngReader::getTile(), ossimH5ImageHandler::getTile(), ossimMG4LidarReader::getTile(), ossimMrSidReader::getTile(), ossimKakaduJ2kReader::getTile(), ossimKakaduJp2Reader::getTile(), ossimTiffTileSource::getTile(), ossimGeoPdfReader::getTile(), ossimNitfTileSource::getTile(), ossimGdalTileSource::getTileBlockRead(), ossimImageData::loadBandTemplate(), ossimTiffTileSource::loadFromRgbaU8Strip(), ossimTiffTileSource::loadFromScanLine(), ossimTiffTileSource::loadFromU16Strip(), ossimImageData::loadTileFromBilTemplate(), ossimImageData::loadTileFromBipAlphaTemplate(), ossimImageData::loadTileFromBipTemplate(), ossimImageData::loadTileFromBsqTemplate(), ossimImageData::nullTileAlphaTemplate(), ossimGeoPdfReader::resetCacheBuffer(), and ossimTilingPoly::setRect().

426 {
427  if(hasNans() || rect.hasNans())
428  {
429  return false;
430  }
431  if (theOrientMode != rect.theOrientMode)
432  return false;
433 
434  /* --------------
435  | 1 |
436  | ---------- |
437  | | | |
438  | | | |
439  | | 2 | |
440  | | | |
441  | | | |
442  | ---------- |
443  | |
444  -------------- */
445 
446  bool rtn = true;
447  if ((theUlCorner.x > rect.ur().x)||
448  (theUlCorner.x < rect.ul().x))
449  rtn = false;
450 
451  else if ((theLrCorner.x > rect.lr().x)||
452  (theLrCorner.x < rect.ll().x))
453  rtn = false;
454 
455  else if (theOrientMode == OSSIM_LEFT_HANDED)
456  {
457  if ((theUlCorner.y < rect.ul().y)||
458  (theUlCorner.y > rect.lr().y))
459  rtn = false;
460 
461  else if ((theLrCorner.y > rect.lr().y)||
462  (theLrCorner.y < rect.ul().y))
463  rtn = false;
464  }
465 
466  else
467  {
468  if ( (theUlCorner.y > rect.ul().y)||
469  (theUlCorner.y < rect.lr().y))
470  rtn = false;
471 
472  else if ((theLrCorner.y < rect.lr().y)||
473  (theLrCorner.y > rect.ul().y))
474  rtn = false;
475  }
476 
477  return rtn;
478 }
const ossimIpt & ul() const
Definition: ossimIrect.h:274
const ossimIpt & ll() const
Definition: ossimIrect.h:277
ossimIpt theLrCorner
Definition: ossimIrect.h:534
const ossimIpt & lr() const
Definition: ossimIrect.h:276
const ossimIpt & ur() const
Definition: ossimIrect.h:275
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
bool hasNans() const
Definition: ossimIrect.h:337
ossim_int32 x
Definition: ossimIpt.h:141

◆ expand()

const ossimIrect & ossimIrect::expand ( const ossimIpt padding)

Definition at line 308 of file ossimIrect.cpp.

References OSSIM_LEFT_HANDED, theLlCorner, theLrCorner, theOrientMode, theUlCorner, theUrCorner, ossimIpt::x, and ossimIpt::y.

Referenced by ATP::ossimDescriptorSource::getTile(), and ossimPotraceTool::transformLineStrings().

309 {
310  theUlCorner.x -= padding.x;
311  theUrCorner.x += padding.x;
312  theLrCorner.x += padding.x;
313  theLlCorner.x -= padding.x;
315  {
316  theUlCorner.y -= padding.y;
317  theUrCorner.y -= padding.y;
318  theLrCorner.y += padding.y;
319  theLlCorner.y += padding.y;
320  }
321  else
322  {
323  theUlCorner.y += padding.y;
324  theUrCorner.y += padding.y;
325  theLrCorner.y -= padding.y;
326  theLlCorner.y -= padding.y;
327  }
328 
329  return *this;
330 }
ossimIpt theUrCorner
Definition: ossimIrect.h:533
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossimIpt theLlCorner
Definition: ossimIrect.h:535
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
ossim_int32 x
Definition: ossimIpt.h:141

◆ getBounds()

void ossimIrect::getBounds ( ossim_int32 minx,
ossim_int32 miny,
ossim_int32 maxx,
ossim_int32 maxy 
) const
inline

Definition at line 306 of file ossimIrect.h.

References OSSIM_LEFT_HANDED.

308  {
309  minx = theUlCorner.x;
310  maxx = theLrCorner.x;
312  {
313  miny = theUlCorner.y;
314  maxy = theLrCorner.y;
315  }
316  else
317  {
318  maxy = theUlCorner.y;
319  miny = theLrCorner.y;
320  }
321  }
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
ossim_int32 x
Definition: ossimIpt.h:141

◆ getCenter()

void ossimIrect::getCenter ( ossimDpt center_point) const

Initializes center_point with center of the rectangle. Makes center_point nan if this rectangle has nans.

Definition at line 672 of file ossimIrect.cpp.

References hasNans(), ossimDpt::makeNan(), theLlCorner, theLrCorner, theUlCorner, theUrCorner, ossimIpt::x, ossimDpt::x, ossimIpt::y, and ossimDpt::y.

Referenced by ATP::AtpTileSource::computeParallax(), and ATP::AtpGenerator::initialize().

673 {
674  if (hasNans())
675  {
676  center_point.makeNan();
677  return;
678  }
679 
680  double d = (theUlCorner.x + theUrCorner.x + theLrCorner.x + theLlCorner.x);
681  center_point.x = d / 4.0;
682 
684  center_point.y = d / 4.0;
685 }
ossimIpt theUrCorner
Definition: ossimIrect.h:533
double y
Definition: ossimDpt.h:165
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossimIpt theLlCorner
Definition: ossimIrect.h:535
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossim_int32 y
Definition: ossimIpt.h:142
double x
Definition: ossimDpt.h:164
bool hasNans() const
Definition: ossimIrect.h:337
ossim_int32 x
Definition: ossimIpt.h:141
void makeNan()
Definition: ossimDpt.h:65

◆ hasNans()

bool ossimIrect::hasNans ( ) const
inline

Definition at line 337 of file ossimIrect.h.

Referenced by ossimGpkgWriter::addLevels(), ossimRectanglePartitioner::binaryPartition(), combine(), completely_within(), ossimChipProcTool::computeAdjustedViewFromGrect(), ossimVpfAnnotationSource::computeBoundingRect(), ossimPolyCutter::computeBoundingRect(), ossimViewshedTool::computeRadius(), ossimAnnotationFontObject::draw(), ossimImageHistogramSource::execute(), ossimCacheTileSource::fillTile(), ossimVpfAnnotationLibraryInfo::getBoundingProjectedRect(), ossimVpfAnnotationCoverageInfo::getBoundingProjectedRect(), ossimVpfAnnotationFeatureInfo::getBoundingProjectedRect(), ossimImageCombiner::getBoundingRect(), ossimPolyCutter::getBoundingRect(), ossimScaleFilter::getBoundingRect(), ossimAnnotationSource::getBoundingRect(), ossimMeanMedianFilter::getBoundingRect(), ossimImageSourceSequencer::getBoundingRect(), ossimMapCompositionSource::getBoundingRect(), getCenter(), ossimImageHistogramSource::getHistogram(), ossimGdalTileSource::getImageRectangle(), ossimPdfWriter::getLgiDict(), ossimGmlSupportData::getLimits(), ossimPdfWriter::getLowerLeftPageOffset(), ossimGdalTileSource::getMaxSize(), ossimImageCombiner::getNextTile(), ossimTiledImageHandler::getNumberOfLines(), ossimVpfTileSource::getNumberOfLines(), ossimOgrGdalTileSource::getNumberOfLines(), ossimOrthoImageMosaic::getNumberOfOverlappingImages(), ossimTiledImageHandler::getNumberOfSamples(), ossimVpfTileSource::getNumberOfSamples(), ossimOgrGdalTileSource::getNumberOfSamples(), ossimGpkgWriter::getNumberOfZoomLevels(), ossimOverviewSequencer::getOutputImageRectangle(), ossimOrthoImageMosaic::getOverlappingImages(), ossimOrthoImageMosaic::getRelativeRect(), ossimPolyCutter::getTile(), ossimRectangleCutFilter::getTile(), ossimMemoryImageSource::getTile(), ossimMapCompositionSource::getViewingRect(), ossimGpkgWriter::getZoomLevels(), ossimGpkgNsgTileMatrixExtentRecord::init(), ossimRectangleCutFilter::initialize(), ossimOverviewSequencer::initialize(), ossimImageFileWriter::initialize(), ossimImageRenderer::initializeBoundingRects(), ossimShorelineTool::initProcessingChain(), ossimHlzTool::initProcessingChain(), ossimViewshedTool::initProcessingChain(), intersects(), ossimQuadProjection::lineSampleHeightToWorld(), midPoint(), operator=(), pointWithin(), ossimQuadProjection::saveState(), saveState(), ossimImageSourceSequencer::setAreaOfInterest(), ossimImageData::setImageRectangle(), ossimImageData::setImageRectangleAndBands(), ossimRectangleCutFilter::setRectangle(), ossimImageData::unloadBandToBsqTemplate(), ossimImageData::unloadTileToBilTemplate(), ossimImageData::unloadTileToBipAlphaTemplate(), ossimImageData::unloadTileToBipTemplate(), ossimImageData::unloadTileToBsqTemplate(), ossimImageSourceSequencer::updateTileDimensions(), ossimOverviewSequencer::updateTileDimensions(), ossimTiling::validate(), ossimArcInfoGridWriter::writeBinaryAigBounds(), ossimGpkgWriter::writeEntry(), ossimImageFileWriter::writeEnviHeaderFile(), ossimImageFileWriter::writeErsHeaderFile(), ossimImageFileWriter::writeExternalGeometryFile(), ossimImageFileWriter::writeFgdcFile(), ossimArcInfoGridWriter::writeFile(), ossimImageFileWriter::writeReadmeFile(), and ossimImageFileWriter::writeWorldFile().

337  { return (theUlCorner.hasNans() ||
338  theLlCorner.hasNans() ||
339  theLrCorner.hasNans() ||
340  theUrCorner.hasNans());}
ossimIpt theUrCorner
Definition: ossimIrect.h:533
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossimIpt theLlCorner
Definition: ossimIrect.h:535
ossimIpt theUlCorner
Definition: ossimIrect.h:532
bool hasNans() const
Definition: ossimIpt.h:58

◆ height()

ossim_uint32 ossimIrect::height ( ) const
inline

Returns the height of the rectangle.

Definition at line 487 of file ossimIrect.h.

Referenced by ossimMapCompositionSource::addGeographicBottomGridLabels(), ossimMapCompositionSource::addMeterGridLabels(), ossimTableRemapper::allocate(), ossimAnnotationSource::allocate(), ossimHsiRemapper::allocate(), ossimGdBitmapFont::allocateBuffer(), ossimGdalWriter::buildGdalOverviews(), ossimAnnotationFontObject::computeBoundingRect(), ossimImageHistogramSource::computeFastModeHistogram(), ossimHlzTool::computeHLZ(), ossimBrightnessMatch::computeInputBrightness(), ossim::computeLevels(), ossimNitfProjectionFactory::computeScaleInDecimalDegrees(), ossimNitfProjectionFactory::computeScaleInMeters(), ossimViewshedTool::computeViewshed(), ossimPotraceTool::convertToBitmap(), ossimIntensityAdjustmentFilter::createAndPopulateGrid(), ossimOpjCompressor::createOpjImage(), ossim_hdf5::crossesDateline(), ossimJpegCodec::decodeJpegToRgb(), ossimGeoAnnotationBitmap::draw(), ossimAnnotationFontObject::draw(), ossimElevRemapper::elevRemap(), ossimWatermarkFilter::fill(), ossimRpfCacheTileSource::fillSubTileCadrg(), ossimCibCadrgTileSource::fillSubTileCadrg(), ossimRpfCacheTileSource::fillSubTileCib(), ossimCibCadrgTileSource::fillSubTileCib(), ossimCacheTileSource::fillTile(), ossimImageCacheTileSource::fillTile(), ossimJpegTileSource::fillTile(), ossimPngReader::fillTile(), ossimGeoPdfReader::fillTile(), ossimNullPixelFlip::flipPixels(), ossimCacheTileSource::getCacheId(), ossimWatermarkFilter::getCenterRect(), ossimNitfCommon::getCompressionRate(), ossim::getDims(), ossimMrSidReader::getImageDimensions(), ossimMrSidReader::getImageTileHeight(), ossimKakaduJp2Reader::getImageTileHeight(), ossimGmlSupportData::getLimits(), ossimWatermarkFilter::getLowerCenterRect(), ossimWatermarkFilter::getLowerLeftRect(), ossimWatermarkFilter::getLowerRightRect(), ossimGpkgWriter::getMatrixSize(), ossimGdalTileSource::getMaxSize(), ossimFusionCombiner::getNormIntensity(), ossimFusionCombiner::getNormTile(), ossimVideoImageSource::getNumberOfLines(), ossimTiledImageHandler::getNumberOfLines(), ossimVpfTileSource::getNumberOfLines(), ossimHdf5ImageDataset::getNumberOfLines(), ossimOgrGdalTileSource::getNumberOfLines(), ossimH5ImageDataset::getNumberOfLines(), ossimPngReader::getNumberOfLines(), ossimVpfTileSource::getNumberOfSamples(), ossimOgrGdalTileSource::getNumberOfSamples(), ossimGpkgWriter::getNumberOfZoomLevels(), ossimOverviewSequencer::getOutputImageRectangle(), ossimNitfTileSource::getPartialReadSize(), ossimRectanglePartitioner::getSize(), ossimHsvToRgbSource::getTile(), ossimJpegYCbCrToRgbSource::getTile(), ossimRgbToJpegYCbCrSource::getTile(), ossimDespeckleFilter::getTile(), ossimFftFilter::getTile(), ossimFeatherMosaic::getTile(), ossimImageMosaic::getTile(), ossimElevationMosaic::getTile(), ossimGammaRemapper::getTile(), ossimBandMergeSource::getTile(), ossimMaxMosaic::getTile(), ossimAOD::getTile(), ossimSFIMFusion::getTile(), ossimClosestToCenterCombiner::getTile(), ossimConvolutionSource::getTile(), ossimElevImageSource::getTile(), ossimHsiRemapper::getTile(), ossimMemoryImageSource::getTile(), ossimGdalTileSource::getTile(), ossimTopographicCorrectionFilter::getTile(), ossimBitMaskTileSource::getTile(), ossimMG4LidarReader::getTile(), ossimMrSidReader::getTile(), ossimPointCloudImageHandler::getTile(), ossimLasReader::getTile(), ossimTiffTileSource::getTile(), ossimEquationCombiner::getTile(), ossimKakaduJpipHandler::getTileAtRes(), ossimH5ImageDataset::getTileBuf(), ossimHdf5ImageDataset::getTileBuf(), ossimNitfTileSource::getTileHeight(), ossimWatermarkFilter::getUniformDenseRects(), ossimWatermarkFilter::getUniformSparceRects(), ossimGdalDataset::init(), ossimTilingRect::initializeBase(), ossimQuadProjection::initializeGrids(), ossimH5GridModel::initializeModelParams(), ossimCoarseGridModel::initializeModelParams(), ossimImageHandler::initImageParameters(), ossimHlzTool::initProcessingChain(), ossimViewshedTool::initProcessingChain(), insureMinimumSize(), ossimAtCorrGridRemapper::interpolate(), ATP::AtpGenerator::layoutSearchTileRects(), ossimImageData::loadBandTemplate(), ossimGdalTileSource::loadIndexTo3BandTileTemplate(), ossimImageData::loadTile(), ossimImageData::loadTileFromBilTemplate(), ossimImageData::loadTileFromBipAlphaTemplate(), ossimImageData::loadTileFromBipTemplate(), ossimImageData::loadTileFromBsqTemplate(), main(), ossimTilingRect::next(), ossimImageData::nullTileAlphaTemplate(), ossimGeoidImage::offsetFromEllipsoidTemplate(), ossimTiffWriter::openTiff(), ossimKakaduJpipHandler::performRlevelSetup(), ossimGdBitmapFont::rasterizeNormal(), ossimGeneralRasterInfo::rawLines(), ossimImageRenderer::recursiveResample(), ossimFilterResampler::resampleBilinearTile(), ossimResampler::resampleTile(), ossimResampler::resampleTileNearestNeighbor(), ossimScaleFilter::runFilterTemplate(), ossimScaleFilter::runHorizontalFilterTemplate(), ossimScaleFilter::runVerticalFilterTemplate(), ossimQuadProjection::saveState(), ossimScaleFilter::scaleRect(), ossimGeneralRasterElevHandler::setFilename(), ossimH5GridModel::setGridNodes(), ossimImageData::setImageRectangle(), ossimImageData::setImageRectangleAndBands(), ossimFixedTileCache::setRect(), ossimImageRenderer::ossimRendererSubRectInfo::splitAll(), ossimRectanglePartitioner::splitRect(), ossimImageRenderer::ossimRendererSubRectInfo::splitVertical(), ossimImageRenderer::ossimRendererSubRectInfo::splitView(), toString(), ossimImageData::unloadTileToBipAlphaTemplate(), ossimImageData::unloadTileToBipTemplate(), ossimImageSourceSequencer::updateTileDimensions(), ossimOverviewSequencer::updateTileDimensions(), ossimGeneralRasterInfo::validLines(), ossimArcInfoGridWriter::writeBinaryAigBounds(), ossimNitf20Writer::writeBlockBandSeparate(), ossimNitfWriter::writeBlockBandSeparate(), ossimNitf20Writer::writeBlockBandSequential(), ossimNitfWriter::writeBlockBandSequential(), ossimERSFileWriter::writeFile(), ossimEnviHeaderFileWriter::writeFile(), ossimWriter::writeTiffTags(), and ossimTiffWriter::writeTiffTags().

488  {
490  if (h < 0)
491  {
492  h = -h;
493  }
494  return static_cast<ossim_uint32>( h + 1 );
495  }
unsigned int ossim_uint32
ossimIpt theLlCorner
Definition: ossimIrect.h:535
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossim_int32 y
Definition: ossimIpt.h:142
int ossim_int32

◆ insureMinimumSize()

bool ossimIrect::insureMinimumSize ( const ossimIpt width_height)

Guarantees that this rect will be at least w X h big.

If smaller than specified, the corresponding side will be stretched equally in + and - direction to meet required size. Returns TRUE if resizing occurred.

Definition at line 140 of file ossimIrect.cpp.

References height(), lr(), OSSIM_LEFT_HANDED, ossimIrect(), theLrCorner, theOrientMode, theUlCorner, ul(), width(), ossimIpt::x, and ossimIpt::y.

141 {
144  bool resized = false;
145 
146  int dx = width_height.x - width();
147  int dy = width_height.y - height();
148 
149  if (dx > 0)
150  {
151  dx = (int) ceil((double)dx/2.0);
152  ul.x -= dx;
153  lr.x += dx;
154  resized = true;
155  }
156 
157  if (dy > 0)
158  {
159  resized = true;
161  {
162  dy = (int) ceil((double)dy/2.0);
163  ul.y -= dy;
164  lr.y += dy;
165  }
166  else
167  {
168  dy = (int) ceil((double)dy/2.0);
169  ul.y += dy;
170  lr.y -= dy;
171  }
172  }
173 
174  if (resized)
175  *this = ossimIrect(ul, lr, theOrientMode);
176 
177  return resized;
178 }
ossim_uint32 height() const
Definition: ossimIrect.h:487
const ossimIpt & ul() const
Definition: ossimIrect.h:274
ossimIpt theLrCorner
Definition: ossimIrect.h:534
const ossimIpt & lr() const
Definition: ossimIrect.h:276
ossim_uint32 width() const
Definition: ossimIrect.h:500
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
ossim_int32 x
Definition: ossimIpt.h:141

◆ intersects()

bool ossimIrect::intersects ( const ossimIrect rect) const

Returns true if any portion of an input rectangle "rect" intersects "this" rectangle.

Definition at line 183 of file ossimIrect.cpp.

References hasNans(), ll(), lr(), ossim::max(), ossim::min(), OSSIM_LEFT_HANDED, theOrientMode, ul(), ur(), ossimIpt::x, and ossimIpt::y.

Referenced by ossimPixelFlipper::clipTile(), clipToRect(), ossimGeoAnnotationBitmap::draw(), ossimAnnotationFontObject::draw(), ossimMapCompositionSource::drawBorders(), ossimElevRemapper::elevRemap(), ossimAdrgTileSource::fillBuffer(), ossimGeoPdfReader::fillTile(), ossimCcfTileSource::fillUcharBuffer(), ossimCcfTileSource::fillUshortBuffer(), ossimNullPixelFlip::flipPixels(), ossimPixelFlipper::flipPixels(), ossimWatermarkFilter::getCenterRect(), ossimGeoPdfReader::getIntersectingEntries(), ossimImageCacheBase::getIntersectingEntries(), ossimRpfCacheTileSource::getIntersectingEntries(), ossimCibCadrgTileSource::getIntersectingEntries(), ossimWatermarkFilter::getLowerCenterRect(), ossimWatermarkFilter::getLowerLeftRect(), ossimWatermarkFilter::getLowerRightRect(), ossimImageCombiner::getNextTile(), ossimOrthoImageMosaic::getNumberOfOverlappingImages(), ossimImageCombiner::getNumberOfOverlappingImages(), ossimOrthoImageMosaic::getOverlappingImages(), ossimImageCombiner::getOverlappingImages(), ossimPolyCutter::getTile(), ossimRectangleCutFilter::getTile(), ossimElevImageSource::getTile(), ossimUsgsDemTileSource::getTile(), ossimTiledImagePatch::getTile(), ossimGdalTileSource::getTile(), ossimGpkgReader::getTile(), ossimCcfTileSource::getTile(), ossimDtedTileSource::getTile(), ossimWatermarkFilter::getTile(), ossimMG4LidarReader::getTile(), ossimMrSidReader::getTile(), ossimAdrgTileSource::getTile(), ossimImageCacheTileSource::getTile(), ossimKakaduJ2kReader::getTile(), ossimRangeDomeTileSource::getTile(), ossimKakaduJp2Reader::getTile(), ossimTiffTileSource::getTile(), ossimTiledImageHandler::getTile(), ossimRpfCacheTileSource::getTile(), ossimNitfTileSource::getTile(), ossimCibCadrgTileSource::getTile(), ossimKakaduJpipHandler::getTileAtRes(), ossimImageRenderer::getTileAtResLevel(), ossimWatermarkFilter::getUniformDenseRects(), ossimWatermarkFilter::getUniformSparceRects(), ossimWatermarkFilter::getUpperCenterRect(), ossimWatermarkFilter::getUpperLeftRect(), ossimWatermarkFilter::getUpperRightRect(), ossimGeoAnnotationBitmap::intersects(), ossimFixedTileCache::keepTilesWithinRect(), ossimImageData::loadBandTemplate(), ossimTiffTileSource::loadFromTile(), ossimImageData::loadShortBand(), ossimImageData::loadTile(), ossimImageData::loadTileFromBilTemplate(), ossimImageData::loadTileFromBipAlphaTemplate(), ossimImageData::loadTileFromBipTemplate(), ossimImageData::loadTileFromBsqTemplate(), ossimImageData::nullTileAlphaTemplate(), ossimTilingPoly::setRect(), ossimImageData::unloadBandTemplate(), ossimImageData::unloadBandToBsqTemplate(), ossimImageData::unloadTileToBilTemplate(), ossimImageData::unloadTileToBipAlphaTemplate(), ossimImageData::unloadTileToBipTemplate(), and ossimImageData::unloadTileToBsqTemplate().

184 {
185  if(rect.hasNans() || hasNans())
186  {
187  return false;
188  }
189  if (theOrientMode != rect.theOrientMode)
190  return false;
191 
192  ossim_int32 ulx = ossim::max(rect.ul().x,ul().x);
193  ossim_int32 lrx = ossim::min(rect.lr().x,lr().x);
194  ossim_int32 uly, lry;
195  bool rtn=false;
197  {
198  uly = ossim::max(rect.ul().y,ul().y);
199  lry = ossim::min(rect.lr().y,lr().y);
200  rtn = ((ulx <= lrx) && (uly <= lry));
201  }
202  else
203  {
204  uly = ossim::max(rect.ll().y,ll().y);
205  lry = ossim::min(rect.ur().y,ur().y);
206  rtn = ((ulx <= lrx) && (uly <= lry));
207  }
208 
209  return (rtn);
210 }
T max(T a, T b)
Definition: ossimCommon.h:236
const ossimIpt & ul() const
Definition: ossimIrect.h:274
const ossimIpt & ll() const
Definition: ossimIrect.h:277
const ossimIpt & lr() const
Definition: ossimIrect.h:276
T min(T a, T b)
Definition: ossimCommon.h:203
const ossimIpt & ur() const
Definition: ossimIrect.h:275
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
bool hasNans() const
Definition: ossimIrect.h:337
ossim_int32 x
Definition: ossimIpt.h:141
int ossim_int32

◆ isNan()

bool ossimIrect::isNan ( ) const
inline

Definition at line 342 of file ossimIrect.h.

Referenced by ossimDrect::operator=(), and ossimDrect::ossimDrect().

342  { return (theUlCorner.isNan() &&
343  theLlCorner.isNan() &&
344  theLrCorner.isNan() &&
345  theUrCorner.isNan());}
ossimIpt theUrCorner
Definition: ossimIrect.h:533
bool isNan() const
Definition: ossimIpt.h:62
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossimIpt theLlCorner
Definition: ossimIrect.h:535
ossimIpt theUlCorner
Definition: ossimIrect.h:532

◆ ll()

const ossimIpt& ossimIrect::ll ( ) const
inline

◆ loadState()

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

Definition at line 641 of file ossimIrect.cpp.

References ossimKeywordlist::find(), makeNan(), ossimIrect(), and toRect().

Referenced by ossimRectangleCutFilter::loadState(), and ossimImageHistogramSource::loadState().

643 {
644  makeNan();
645  const char* ulx = kwl.find(prefix, "ul_x");
646  const char* uly = kwl.find(prefix, "ul_y");
647  const char* lrx = kwl.find(prefix, "lr_x");
648  const char* lry = kwl.find(prefix, "lr_y");
649  const char* rect = kwl.find(prefix, "rect");
650 
651  if(ulx&&uly&&lrx&&lry)
652  {
653  if( (ossimString(ulx).trim().upcase() != "NAN") &&
654  (ossimString(uly).trim().upcase() != "NAN") &&
655  (ossimString(lrx).trim().upcase() != "NAN") &&
656  (ossimString(lry).trim().upcase() != "NAN"))
657  {
658  *this = ossimIrect(ossimString(ulx).toInt32(),
659  ossimString(uly).toInt32(),
660  ossimString(lrx).toInt32(),
661  ossimString(lry).toInt32());
662  }
663  }
664  else if(rect)
665  {
666  toRect(rect);
667  }
668 
669  return true;
670 }
const char * find(const char *key) const
void makeNan()
Definition: ossimIrect.h:329
bool toRect(const ossimString &rectString)
expected Format: form 1: ( 30, -90, 512, 512, [LH|RH] ) -x- -y- -w- -h- -Right or left handed- ...
Definition: ossimIrect.cpp:359

◆ lr()

const ossimIpt& ossimIrect::lr ( ) const
inline

Definition at line 276 of file ossimIrect.h.

Referenced by ossimMapCompositionSource::addMeterGridLabels(), ossimEdgeFilter::adjustRequestRect(), ossimPixelFlipper::clipTile(), clipToRect(), combine(), completely_within(), ossimMapCompositionSource::computeBorderRects(), ossimHlzTool::computeHLZ(), ossimPotraceTool::convertToBitmap(), ossimImageData::copyLineTemplate(), ossimDespeckleFilter::despeckle(), ossimEsriShapeFileFilter::drawAnnotations(), ATP::AtpAnnotatedImage::drawBox(), ossimElevRemapper::elevRemap(), ossimImageDataHelper::fill(), ossimUsgsDemTileSource::fillBuffer(), ossimAdrgTileSource::fillBuffer(), ossimDtedTileSource::fillBuffer(), ossimCcfTileSource::fillUcharBuffer(), ossimCcfTileSource::fillUshortBuffer(), ossimPixelFlipper::flipPixels(), ossimKmlSuperOverlayWriter::generateChildKml(), ossimIgenGenerator::generateGeoTiledSpecList(), ossimIgenGenerator::generatePixelTiledSpecList(), ossim_hdf5::getBilinearProjection(), ossimGdBitmapFont::getBoundingBox(), ossimMeanMedianFilter::getBoundingRect(), ossimMapCompositionSource::getBoundingRect(), ossimImageGeometry::getCrossesDateline(), ossimGdalOgrVectorAnnotation::getFeatures(), ossimGmlSupportData::getGeoBounds(), ossimImageElevationHandler::getHeightAboveMSL(), ossimGeoPdfReader::getIntersectingEntries(), ossimImageCacheBase::getIntersectingEntries(), ossimRpfCacheTileSource::getIntersectingEntries(), ossimCibCadrgTileSource::getIntersectingEntries(), ossimJpegTileSource::getNumberOfLines(), ossimJpegTileSource::getNumberOfSamples(), ossimImageToPlaneNormalFilter::getTile(), ossimErosionFilter::getTile(), ossimDespeckleFilter::getTile(), ossimDilationFilter::getTile(), ossim3x3ConvolutionFilter::getTile(), ATP::ossimCorrelationSource::getTile(), ossimLocalCorrelationFusion::getTile(), ossimKakaduJpipHandler::getTile(), ossimConvolutionSource::getTile(), ossimElevImageSource::getTile(), ossimScaleFilter::getTile(), ossimMeanMedianFilter::getTile(), ossimConvolutionFilter1D::getTile(), ossimTiledImagePatch::getTile(), ossimKMeansFilter::getTile(), ossimBitMaskTileSource::getTile(), ossimMrSidReader::getTile(), ossimKakaduJ2kReader::getTile(), ossimPointCloudImageHandler::getTile(), ossimKakaduJp2Reader::getTile(), ossimKakaduJpipHandler::getTileAtRes(), ossimImageRenderer::getTileAtResLevel(), ossimGdalTileSource::getTileBlockRead(), ossimGpkgReader::getTileIndexes(), ossim_hdf5::getValidBoundingRect(), ossimRectangleCutFilter::getValidImageVertices(), ossimImageSource::getValidImageVertices(), ossimH5GridModel::getWktFootprint(), if(), ossimGpkgNsgTileMatrixExtentRecord::init(), ATP::AtpGenerator::initialize(), ossimTilingRect::initializeBase(), ossimGpkgWriter::initializeRect(), insureMinimumSize(), intersects(), ossimPolygon::isRectWithin(), ATP::AtpGenerator::layoutSearchTileRects(), ossimTiffTileSource::loadFromRgbaU8aStrip(), ossimTiffTileSource::loadFromRgbaU8Strip(), ossimTiffTileSource::loadFromRgbaU8Tile(), ossimTiffTileSource::loadFromScanLine(), ossimTiffTileSource::loadFromTile(), ossimTiffTileSource::loadFromU16Strip(), ossimImageData::loadShortBand(), ossimNitfTileSource::loadTile(), ossimImageData::loadTileFromBilTemplate(), midPoint(), operator!=(), operator=(), ossimDrect::operator=(), ossimPolygon::operator=(), operator==(), ossimPolygon::ossimPolygon(), ossimPolyLine::ossimPolyLine(), ossimViewshedTool::paintReticle(), ossimPolygon::rectIntersects(), ossimScaleFilter::runHorizontalFilterTemplate(), ossimScaleFilter::runVerticalFilterTemplate(), ossimHdf5ImageDataset::scanForMinMax(), ossimHdf5ImageDataset::scanForValidImageRect(), ossimHdf5ImageHandler::setCurrentEntry(), ossimGeneralRasterElevHandler::setFilename(), ossimROIEvent::setRect(), ossimTilingPoly::setRect(), ossimImageRenderer::ossimRendererSubRectInfo::splitAll(), ossimImageRenderer::ossimRendererSubRectInfo::splitHorizontal(), ossimImageRenderer::ossimRendererSubRectInfo::splitVertical(), stretchToTileBoundary(), ossimImageData::unloadBandTemplate(), ossimImageData::unloadBandToBsqTemplate(), ossimImageData::unloadTileToBilTemplate(), ossimImageData::unloadTileToBipTemplate(), ossimImageData::unloadTileToBsqTemplate(), ossimGpkgWriter::writeGpkgNsgTileMatrixExtentTable(), ossimPdfWriter::writeJpegTile(), ossimPdfWriter::writeRawTile(), and ossimKakaduCompressor::writeTile().

276 { return theLrCorner; }
ossimIpt theLrCorner
Definition: ossimIrect.h:534

◆ makeNan()

void ossimIrect::makeNan ( )
inline

Definition at line 329 of file ossimIrect.h.

Referenced by ossimScaleFilter::allocate(), ossimGeneralRasterInfo::clear(), ossimChipProcTool::computeAdjustedViewFromGrect(), ossimMapCompositionSource::computeBorderRects(), ossimVpfAnnotationSource::computeBoundingRect(), ossimOrthoImageMosaic::computeBoundingRect(), ossimPolyCutter::computeBoundingRect(), ossimVpfAnnotationLibraryInfo::getBoundingProjectedRect(), ossimVpfAnnotationCoverageInfo::getBoundingProjectedRect(), ossimVpfAnnotationFeatureInfo::getBoundingProjectedRect(), ossimTrimFilter::getBoundingRect(), ossimFusionCombiner::getBoundingRect(), ossimImageCombiner::getBoundingRect(), ossimPolyCutter::getBoundingRect(), ossimAnnotationSource::getBoundingRect(), ossimImageRenderer::getBoundingRect(), ossimRLevelFilter::getBoundingRect(), ossimTopographicCorrectionFilter::getBoundingRect(), ossimImageSource::getBoundingRect(), ossimMapCompositionSource::getBoundingRect(), ossimImageGeometry::getBoundingRect(), ossimGdalTileSource::getImageRectangle(), ossimImageHandler::getImageRectangle(), ossimIgenGenerator::getInputBoundingRect(), ossimOverviewSequencer::getOutputImageRectangle(), ossimOrthoImageMosaic::getRelativeRect(), ossimMapCompositionSource::getViewingRect(), ossimIntensityAdjustmentFilter::initialize(), ossimScaleFilter::initialize(), ossimImageSourceSequencer::initialize(), ossimAtCorrGridRemapper::initialize(), ossimChipProcTool::initializeAOI(), ossimImageRenderer::initializeBoundingRects(), ossimNitfTileSource::initializeImageRect(), ossimQuadProjection::loadState(), loadState(), ossimKakaduJpipHandler::openStream(), operator=(), ossimAnnotationFontObject::ossimAnnotationFontObject(), ossimFixedTileCache::ossimFixedTileCache(), ossimGeneralRasterInfo::ossimGeneralRasterInfo(), ossimHdf5ImageDataset::ossimHdf5ImageDataset(), ossimHistogramWriter::ossimHistogramWriter(), ossimImageHistogramSource::ossimImageHistogramSource(), ossimImageSourceSequencer::ossimImageSourceSequencer(), ossimImageWriter::ossimImageWriter(), ossimIntensityAdjustmentFilter::ossimIntensityAdjustmentFilter(), ossimIrect(), ossimMemoryImageSource::ossimMemoryImageSource(), ossimMetadataFileWriter::ossimMetadataFileWriter(), ossimOverviewSequencer::ossimOverviewSequencer(), ossimQuadProjection::ossimQuadProjection(), ossimRectangleCutFilter::ossimRectangleCutFilter(), ossimScaleFilter::ossimScaleFilter(), ossimVertexExtractor::ossimVertexExtractor(), set_ll(), set_lr(), set_ul(), set_ur(), ossimImageSourceSequencer::setAreaOfInterest(), ossimGeoPdfReader::setCurrentEntry(), ossimMemoryImageSource::setImage(), ossimOverviewSequencer::setImageHandler(), ossimOverviewSequencer::setSourceLevel(), toRect(), and ossimEastingNorthingCutter::transformVertices().

330  {
335  }
void makeNan()
Definition: ossimIpt.h:56
ossimIpt theUrCorner
Definition: ossimIrect.h:533
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossimIpt theLlCorner
Definition: ossimIrect.h:535
ossimIpt theUlCorner
Definition: ossimIrect.h:532

◆ midPoint()

ossimIpt ossimIrect::midPoint ( ) const
inline

Definition at line 750 of file ossimIrect.h.

References hasNans(), ll(), lr(), OSSIM_INT_NAN, ul(), ur(), ossimIpt::x, x, ossimIpt::y, and y.

Referenced by ossimChipperUtil::addCrossHairAnnotation(), ossimMapCompositionSource::addTitle(), ossimBrightnessMatch::computeInputBrightness(), ossimQuadProjection::extrapolate(), ossimClosestToCenterCombiner::findIdx(), ossimImageGeometry::getCrossesDateline(), ossimChipperUtil::getIrect(), ossimQuadProjection::getMetersPerPixel(), ossimMapCompositionSource::getViewingRect(), ossimH5GridModel::initializeModelParams(), ossimCoarseGridModel::initializeModelParams(), main(), and ossimAnnotationFontObject::setCenterPosition().

751 {
752  if(hasNans())
753  {
755  }
756  double x = (ul().x + ur().x + ll().x + lr().x) * 0.25;
757  double y = (ul().y + ur().y + ll().y + lr().y) * 0.25;
758 
759  return ossimIpt(ossim::round<int>(x),
760  ossim::round<int>(y));
761 }
ossim_uint32 x
ossim_uint32 y
#define OSSIM_INT_NAN
const ossimIpt & ul() const
Definition: ossimIrect.h:274
const ossimIpt & ll() const
Definition: ossimIrect.h:277
const ossimIpt & lr() const
Definition: ossimIrect.h:276
const ossimIpt & ur() const
Definition: ossimIrect.h:275
ossim_int32 y
Definition: ossimIpt.h:142
bool hasNans() const
Definition: ossimIrect.h:337
ossim_int32 x
Definition: ossimIpt.h:141

◆ operator!=()

bool ossimIrect::operator!= ( const ossimIrect rect) const
inline

Definition at line 565 of file ossimIrect.h.

References ll(), lr(), theLlCorner, theLrCorner, theOrientMode, theUlCorner, theUrCorner, ul(), and ur().

566 {
567  return ( (theUlCorner != rect.ul()) ||
568  (theUrCorner != rect.ur()) ||
569  (theLrCorner != rect.lr()) ||
570  (theLlCorner != rect.ll()) ||
571  (theOrientMode != rect.theOrientMode));
572 }
ossimIpt theUrCorner
Definition: ossimIrect.h:533
const ossimIpt & ul() const
Definition: ossimIrect.h:274
const ossimIpt & ll() const
Definition: ossimIrect.h:277
ossimIpt theLrCorner
Definition: ossimIrect.h:534
const ossimIpt & lr() const
Definition: ossimIrect.h:276
ossimIpt theLlCorner
Definition: ossimIrect.h:535
const ossimIpt & ur() const
Definition: ossimIrect.h:275
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537

◆ operator*() [1/3]

ossimIrect ossimIrect::operator* ( ossim_int32  scalar) const
inline

Definition at line 149 of file ossimIrect.h.

150  {
151  return ossimIrect((theUlCorner.x*scalar),
152  (theUlCorner.y*scalar),
153  (theUlCorner.x*scalar+width()*scalar-1),
154  (theUlCorner.y*scalar+height()*scalar-1),
155  theOrientMode);
156  }
ossim_uint32 height() const
Definition: ossimIrect.h:487
ossim_uint32 width() const
Definition: ossimIrect.h:500
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
ossim_int32 x
Definition: ossimIpt.h:141

◆ operator*() [2/3]

ossimIrect ossimIrect::operator* ( double  scalar) const
inline

Definition at line 168 of file ossimIrect.h.

169  {
170  return ossimIrect((int)floor(theUlCorner.x*scalar),
171  (int)floor(theUlCorner.y*scalar),
172  (int)ceil(theUlCorner.x*scalar+width()*scalar-1),
173  (int)ceil(theUlCorner.y*scalar+height()*scalar-1),
174  theOrientMode);
175  }
ossim_uint32 height() const
Definition: ossimIrect.h:487
ossim_uint32 width() const
Definition: ossimIrect.h:500
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
ossim_int32 x
Definition: ossimIpt.h:141

◆ operator*() [3/3]

ossimIrect ossimIrect::operator* ( const ossimDpt scalar) const
inline

Definition at line 187 of file ossimIrect.h.

References ossimDpt::x, and ossimDpt::y.

188  {
189  return ossimIrect((int)floor(theUlCorner.x*scalar.x),
190  (int)floor(theUlCorner.y*scalar.y),
191  (int)ceil(theUlCorner.x*scalar.x+width()*scalar.x-1),
192  (int)ceil(theUlCorner.y*scalar.y+height()*scalar.y-1),
193  theOrientMode);
194  }
double y
Definition: ossimDpt.h:165
ossim_uint32 height() const
Definition: ossimIrect.h:487
ossim_uint32 width() const
Definition: ossimIrect.h:500
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
double x
Definition: ossimDpt.h:164
ossim_int32 x
Definition: ossimIpt.h:141

◆ operator*=() [1/3]

const ossimIrect& ossimIrect::operator*= ( ossim_int32  scalar)
inline

Definition at line 139 of file ossimIrect.h.

140  {
141  *this = ossimIrect((theUlCorner.x*scalar),
142  (theUlCorner.y*scalar),
143  (theUlCorner.x*scalar+width()*scalar-1),
144  (theUlCorner.y*scalar+height()*scalar-1),
145  theOrientMode);
146  return *this;
147  }
ossim_uint32 height() const
Definition: ossimIrect.h:487
ossim_uint32 width() const
Definition: ossimIrect.h:500
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
ossim_int32 x
Definition: ossimIpt.h:141

◆ operator*=() [2/3]

const ossimIrect& ossimIrect::operator*= ( double  scalar)
inline

Definition at line 158 of file ossimIrect.h.

159  {
160  *this = ossimIrect((int)floor(theUlCorner.x*scalar),
161  (int)floor(theUlCorner.y*scalar),
162  (int)ceil(theUlCorner.x*scalar+width()*scalar-1),
163  (int)ceil(theUlCorner.y*scalar+height()*scalar-1),
164  theOrientMode);
165  return *this;
166  }
ossim_uint32 height() const
Definition: ossimIrect.h:487
ossim_uint32 width() const
Definition: ossimIrect.h:500
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
ossim_int32 x
Definition: ossimIpt.h:141

◆ operator*=() [3/3]

const ossimIrect& ossimIrect::operator*= ( const ossimDpt scalar)
inline

Definition at line 177 of file ossimIrect.h.

References ossimDpt::x, and ossimDpt::y.

178  {
179  *this = ossimIrect((int)floor(theUlCorner.x*scalar.x),
180  (int)floor(theUlCorner.y*scalar.y),
181  (int)ceil(theUlCorner.x*scalar.x+width()*scalar.x-1),
182  (int)ceil(theUlCorner.y*scalar.y+height()*scalar.y-1),
183  theOrientMode);
184  return *this;
185  }
double y
Definition: ossimDpt.h:165
ossim_uint32 height() const
Definition: ossimIrect.h:487
ossim_uint32 width() const
Definition: ossimIrect.h:500
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
double x
Definition: ossimDpt.h:164
ossim_int32 x
Definition: ossimIpt.h:141

◆ operator+() [1/2]

ossimIrect ossimIrect::operator+ ( const ossimIpt shift) const
inline

Definition at line 215 of file ossimIrect.h.

References ossimIpt::x, and ossimIpt::y.

216  {
217  return ossimIrect(theUlCorner.x+shift.x,
218  theUlCorner.y+shift.y,
219  theLrCorner.x+shift.x,
220  theLrCorner.y+shift.y,
221  theOrientMode);
222  }
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
ossim_int32 x
Definition: ossimIpt.h:141

◆ operator+() [2/2]

ossimIrect ossimIrect::operator+ ( const ossimDpt shift) const
inline

Definition at line 254 of file ossimIrect.h.

References ossimDpt::x, and ossimDpt::y.

255  {
256  return ossimIrect((int)floor(theUlCorner.x+shift.x),
257  (int)floor(theUlCorner.y+shift.y),
258  (int)ceil(theUlCorner.x+shift.x+width()-1),
259  (int)ceil(theUlCorner.y+shift.y+height()-1),
260  theOrientMode);
261  }
double y
Definition: ossimDpt.h:165
ossim_uint32 height() const
Definition: ossimIrect.h:487
ossim_uint32 width() const
Definition: ossimIrect.h:500
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
double x
Definition: ossimDpt.h:164
ossim_int32 x
Definition: ossimIpt.h:141

◆ operator+=() [1/2]

const ossimIrect& ossimIrect::operator+= ( const ossimIpt shift)
inline

Definition at line 195 of file ossimIrect.h.

References ossimIpt::x, and ossimIpt::y.

196  {
197  *this = ossimIrect(theUlCorner.x+shift.x,
198  theUlCorner.y+shift.y,
199  theLrCorner.x+shift.x,
200  theLrCorner.y+shift.y,
201  theOrientMode);
202  return *this;
203  }
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
ossim_int32 x
Definition: ossimIpt.h:141

◆ operator+=() [2/2]

const ossimIrect& ossimIrect::operator+= ( const ossimDpt shift)
inline

Definition at line 234 of file ossimIrect.h.

References ossimDpt::x, and ossimDpt::y.

235  {
236  *this = ossimIrect((int)floor(theUlCorner.x+shift.x),
237  (int)floor(theUlCorner.y+shift.y),
238  (int)ceil(theUlCorner.x+shift.x+width()-1),
239  (int)ceil(theUlCorner.y+shift.y+height()-1),
240  theOrientMode);
241  return *this;
242  }
double y
Definition: ossimDpt.h:165
ossim_uint32 height() const
Definition: ossimIrect.h:487
ossim_uint32 width() const
Definition: ossimIrect.h:500
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
double x
Definition: ossimDpt.h:164
ossim_int32 x
Definition: ossimIpt.h:141

◆ operator-() [1/2]

ossimIrect ossimIrect::operator- ( const ossimIpt shift) const
inline

Definition at line 224 of file ossimIrect.h.

References ossimIpt::x, and ossimIpt::y.

225  {
226  return ossimIrect(theUlCorner.x-shift.x,
227  theUlCorner.y-shift.y,
228  theLrCorner.x-shift.x,
229  theLrCorner.y-shift.y,
230  theOrientMode);
231  }
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
ossim_int32 x
Definition: ossimIpt.h:141

◆ operator-() [2/2]

ossimIrect ossimIrect::operator- ( const ossimDpt shift) const
inline

Definition at line 263 of file ossimIrect.h.

References ossimDpt::x, and ossimDpt::y.

264  {
265  return ossimIrect((int)floor(theUlCorner.x-shift.x),
266  (int)floor(theUlCorner.y-shift.y),
267  (int)ceil(theUlCorner.x-shift.x+width()-1),
268  (int)ceil(theUlCorner.y-shift.y+height()-1),
269  theOrientMode);
270  return *this;
271  }
double y
Definition: ossimDpt.h:165
ossim_uint32 height() const
Definition: ossimIrect.h:487
ossim_uint32 width() const
Definition: ossimIrect.h:500
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
double x
Definition: ossimDpt.h:164
ossim_int32 x
Definition: ossimIpt.h:141

◆ operator-=() [1/2]

const ossimIrect& ossimIrect::operator-= ( const ossimIpt shift)
inline

Definition at line 205 of file ossimIrect.h.

References ossimIpt::x, and ossimIpt::y.

206  {
207  *this = ossimIrect(theUlCorner.x-shift.x,
208  theUlCorner.y-shift.y,
209  theLrCorner.x-shift.x,
210  theLrCorner.y-shift.y,
211  theOrientMode);
212  return *this;
213  }
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
ossim_int32 x
Definition: ossimIpt.h:141

◆ operator-=() [2/2]

const ossimIrect& ossimIrect::operator-= ( const ossimDpt shift)
inline

Definition at line 244 of file ossimIrect.h.

References ossimDpt::x, and ossimDpt::y.

245  {
246  *this = ossimIrect((int)floor(theUlCorner.x-shift.x),
247  (int)floor(theUlCorner.y-shift.y),
248  (int)ceil(theUlCorner.x-shift.x+width()-1),
249  (int)ceil(theUlCorner.y-shift.y+height()-1),
250  theOrientMode);
251  return *this;
252  }
double y
Definition: ossimDpt.h:165
ossim_uint32 height() const
Definition: ossimIrect.h:487
ossim_uint32 width() const
Definition: ossimIrect.h:500
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
double x
Definition: ossimDpt.h:164
ossim_int32 x
Definition: ossimIpt.h:141

◆ operator=() [1/2]

const ossimIrect & ossimIrect::operator= ( const ossimIrect rect)
inline

Definition at line 543 of file ossimIrect.h.

References hasNans(), ll(), lr(), makeNan(), theLlCorner, theLrCorner, theOrientMode, theUlCorner, theUrCorner, ul(), and ur().

544 {
545  if (this != &rect)
546  {
547  theUlCorner = rect.ul();
548  theUrCorner = rect.ur();
549  theLrCorner = rect.lr();
550  theLlCorner = rect.ll();
552 
553  if(rect.hasNans())
554  {
555  makeNan();
556  }
557  }
558 
559  return *this;
560 }
ossimIpt theUrCorner
Definition: ossimIrect.h:533
const ossimIpt & ul() const
Definition: ossimIrect.h:274
const ossimIpt & ll() const
Definition: ossimIrect.h:277
ossimIpt theLrCorner
Definition: ossimIrect.h:534
const ossimIpt & lr() const
Definition: ossimIrect.h:276
ossimIpt theLlCorner
Definition: ossimIrect.h:535
const ossimIpt & ur() const
Definition: ossimIrect.h:275
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
void makeNan()
Definition: ossimIrect.h:329
bool hasNans() const
Definition: ossimIrect.h:337

◆ operator=() [2/2]

const ossimIrect & ossimIrect::operator= ( const ossimDrect rect)

Definition at line 578 of file ossimIrect.cpp.

References ossimDrect::ll(), ossimDrect::lr(), ossimDrect::orientMode(), theLlCorner, theLrCorner, theOrientMode, theUlCorner, theUrCorner, ossimDrect::ul(), and ossimDrect::ur().

579 {
580  theUlCorner = rect.ul();
581  theUrCorner = rect.ur();
582  theLrCorner = rect.lr();
583  theLlCorner = rect.ll();
584  theOrientMode = rect.orientMode();
585 
586  return *this;
587 }
ossimIpt theUrCorner
Definition: ossimIrect.h:533
const ossimDpt & ul() const
Definition: ossimDrect.h:339
ossimCoordSysOrientMode orientMode() const
Definition: ossimDrect.h:414
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossimIpt theLlCorner
Definition: ossimIrect.h:535
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
const ossimDpt & ur() const
Definition: ossimDrect.h:340
const ossimDpt & ll() const
Definition: ossimDrect.h:342
const ossimDpt & lr() const
Definition: ossimDrect.h:341

◆ operator==()

bool ossimIrect::operator== ( const ossimIrect rect) const
inline

Definition at line 577 of file ossimIrect.h.

References ll(), lr(), theLlCorner, theLrCorner, theOrientMode, theUlCorner, theUrCorner, ul(), and ur().

578 {
579  return ( (theUlCorner == rect.ul()) &&
580  (theUrCorner == rect.ur()) &&
581  (theLrCorner == rect.lr()) &&
582  (theLlCorner == rect.ll()) &&
583  (theOrientMode == rect.theOrientMode) );
584 }
ossimIpt theUrCorner
Definition: ossimIrect.h:533
const ossimIpt & ul() const
Definition: ossimIrect.h:274
const ossimIpt & ll() const
Definition: ossimIrect.h:277
ossimIpt theLrCorner
Definition: ossimIrect.h:534
const ossimIpt & lr() const
Definition: ossimIrect.h:276
ossimIpt theLlCorner
Definition: ossimIrect.h:535
const ossimIpt & ur() const
Definition: ossimIrect.h:275
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537

◆ orientationMode()

ossimCoordSysOrientMode ossimIrect::orientationMode ( ) const
inline

Definition at line 483 of file ossimIrect.h.

483 {return theOrientMode;}
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537

◆ orientMode()

ossimCoordSysOrientMode ossimIrect::orientMode ( ) const
inline

Definition at line 351 of file ossimIrect.h.

Referenced by ossimDrect::operator=().

351 { return theOrientMode; }
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537

◆ pointWithin()

bool ossimIrect::pointWithin ( const ossimIpt pt) const
inline

Returns true if "pt" falls within rectangle. Fall on an edge is also considered to be within.

Definition at line 729 of file ossimIrect.h.

References hasNans(), ll(), OSSIM_LEFT_HANDED, theOrientMode, ul(), ur(), ossimIpt::x, x, ossimIpt::y, and y.

Referenced by RadialProcessor::doRadial(), ossimAtCorrGridRemapper::interpolate(), ossimAnnotationFontObject::isPointWithin(), ossimQuadProjection::lineSampleHeightToWorld(), ossimGeoidImage::offsetFromEllipsoidTemplate(), ossimViewshedTool::paintReticle(), and ossimPotraceTool::transformLineStrings().

730 {
731  if(hasNans())
732  {
733  return false;
734  }
736  return ((pt.x >= ul().x) &&
737  (pt.x <= ur().x) &&
738  (pt.y >= ul().y) &&
739  (pt.y <= ll().y));
740  else
741  return ((pt.x >= ul().x) &&
742  (pt.x <= ur().x) &&
743  (pt.y <= ul().y) &&
744  (pt.y >= ll().y));
745 }
ossim_uint32 x
ossim_uint32 y
const ossimIpt & ul() const
Definition: ossimIrect.h:274
const ossimIpt & ll() const
Definition: ossimIrect.h:277
const ossimIpt & ur() const
Definition: ossimIrect.h:275
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
bool hasNans() const
Definition: ossimIrect.h:337
ossim_int32 x
Definition: ossimIpt.h:141

◆ print()

void ossimIrect::print ( std::ostream &  os) const

Definition at line 483 of file ossimIrect.cpp.

References toString().

Referenced by operator<<().

484 {
485  os << toString();
486 }
ossimString toString() const
Definition: ossimIrect.cpp:332

◆ saveState()

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

Definition at line 589 of file ossimIrect.cpp.

References ossimKeywordlist::add(), hasNans(), theLrCorner, theUlCorner, toString(), ossimKeywordNames::TYPE_KW, ossimIpt::x, and ossimIpt::y.

Referenced by ossimRectangleCutFilter::saveState(), and ossimImageHistogramSource::saveState().

591 {
592  kwl.add(prefix,
594  "ossimIrect",
595  true);
596 
597  kwl.add(prefix, "rect", toString());
598  #if 0
599  if(hasNans())
600  {
601  kwl.add(prefix,
602  "ul_x",
603  "nan",
604  true);
605  kwl.add(prefix,
606  "ul_y",
607  "nan",
608  true);
609  kwl.add(prefix,
610  "lr_x",
611  "nan",
612  true);
613  kwl.add(prefix,
614  "lr_y",
615  "nan",
616  true);
617  }
618  else
619  {
620  kwl.add(prefix,
621  "ul_x",
622  theUlCorner.x,
623  true);
624  kwl.add(prefix,
625  "ul_y",
626  theUlCorner.y,
627  true);
628  kwl.add(prefix,
629  "lr_x",
630  theLrCorner.x,
631  true);
632  kwl.add(prefix,
633  "lr_y",
634  theLrCorner.y,
635  true);
636  }
637 #endif
638  return true;
639 }
static const char * TYPE_KW
ossimString toString() const
Definition: ossimIrect.cpp:332
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossim_int32 y
Definition: ossimIpt.h:142
bool hasNans() const
Definition: ossimIrect.h:337
ossim_int32 x
Definition: ossimIpt.h:141

◆ set_ll()

void ossimIrect::set_ll ( const ossimIpt pt)
inline

Sets the lower left corner to "pt". Adjusts the remaining corners accordingly.

Definition at line 640 of file ossimIrect.h.

References ossimIpt::hasNans(), makeNan(), theLlCorner, theLrCorner, theUlCorner, ossimIpt::x, and ossimIpt::y.

Referenced by ATP::AtpAnnotatedImage::annotateCorrelations(), ATP::AtpAnnotatedImage::annotateFeatureSearchTiles(), and ATP::AtpAnnotatedImage::annotateResiduals().

641 {
642  if(pt.hasNans())
643  {
644  makeNan();
645  }
646  else
647  {
648  theLlCorner = pt;
649  theUlCorner.x = pt.x;
650  theLrCorner.y = pt.y;
651  }
652 }
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossimIpt theLlCorner
Definition: ossimIrect.h:535
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossim_int32 y
Definition: ossimIpt.h:142
void makeNan()
Definition: ossimIrect.h:329
ossim_int32 x
Definition: ossimIpt.h:141
bool hasNans() const
Definition: ossimIpt.h:58

◆ set_llx()

void ossimIrect::set_llx ( ossim_int32  x)
inline

Sets the lower left x. Adjusts the remaining corners accordingly.

Definition at line 711 of file ossimIrect.h.

References theLlCorner, theUlCorner, ossimIpt::x, and x.

712 {
713  theLlCorner.x = x;
714  theUlCorner.x = x;
715 }
ossim_uint32 x
ossimIpt theLlCorner
Definition: ossimIrect.h:535
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossim_int32 x
Definition: ossimIpt.h:141

◆ set_lly()

void ossimIrect::set_lly ( ossim_int32  y)
inline

Sets the lower left y. Adjusts the remaining corners accordingly.

Definition at line 720 of file ossimIrect.h.

References theLlCorner, theLrCorner, ossimIpt::y, and y.

721 {
722  theLlCorner.y = y;
723  theLrCorner.y = y;
724 }
ossim_uint32 y
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossimIpt theLlCorner
Definition: ossimIrect.h:535
ossim_int32 y
Definition: ossimIpt.h:142

◆ set_lr()

void ossimIrect::set_lr ( const ossimIpt pt)
inline

◆ set_lrx()

void ossimIrect::set_lrx ( ossim_int32  x)
inline

Sets the lower right x. Adjusts the remaining corners accordingly.

Definition at line 693 of file ossimIrect.h.

References theLrCorner, theUrCorner, ossimIpt::x, and x.

Referenced by ossimJpegTileSource::fillTile(), ossimPngReader::fillTile(), ossimImageGeometry::getBoundingRect(), ossimImageSourceSequencer::getTileRect(), and ossimGeneralRasterInfo::ossimGeneralRasterInfo().

694 {
695  theLrCorner.x = x;
696  theUrCorner.x = x;
697 }
ossim_uint32 x
ossimIpt theUrCorner
Definition: ossimIrect.h:533
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossim_int32 x
Definition: ossimIpt.h:141

◆ set_lry()

void ossimIrect::set_lry ( ossim_int32  y)
inline

Sets the lower right y. Adjusts the remaining corners accordingly.

Definition at line 702 of file ossimIrect.h.

References theLlCorner, theLrCorner, ossimIpt::y, and y.

Referenced by ossimImageGeometry::getBoundingRect(), ossimImageSourceSequencer::getTileRect(), ossimTiffTileSource::loadFromScanLine(), and ossimGeneralRasterInfo::ossimGeneralRasterInfo().

703 {
704  theLrCorner.y = y;
705  theLlCorner.y = y;
706 }
ossim_uint32 y
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossimIpt theLlCorner
Definition: ossimIrect.h:535
ossim_int32 y
Definition: ossimIpt.h:142

◆ set_ul()

void ossimIrect::set_ul ( const ossimIpt pt)
inline

Sets the upper left corner to "pt". Adjusts the remaining corners accordingly.

Definition at line 589 of file ossimIrect.h.

References ossimIpt::hasNans(), makeNan(), theLlCorner, theUlCorner, theUrCorner, ossimIpt::x, and ossimIpt::y.

Referenced by ATP::AtpAnnotatedImage::annotateCorrelations(), ATP::AtpAnnotatedImage::annotateFeatureSearchTiles(), ATP::AtpAnnotatedImage::annotateResiduals(), ossimMeanMedianFilter::getBoundingRect(), ossimOverviewSequencer::getOutputTileRectangle(), ossimImageSourceSequencer::getTileRect(), ATP::AtpGenerator::initialize(), ossimSubImageTool::initialize(), and ossimHdf5ImageDataset::scanForValidImageRect().

590 {
591  if(pt.hasNans())
592  {
593  makeNan();
594  }
595  else
596  {
597  theUlCorner = pt;
598  theUrCorner.y = pt.y;
599  theLlCorner.x = pt.x;
600  }
601 }
ossimIpt theUrCorner
Definition: ossimIrect.h:533
ossimIpt theLlCorner
Definition: ossimIrect.h:535
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossim_int32 y
Definition: ossimIpt.h:142
void makeNan()
Definition: ossimIrect.h:329
ossim_int32 x
Definition: ossimIpt.h:141
bool hasNans() const
Definition: ossimIpt.h:58

◆ set_ulx()

void ossimIrect::set_ulx ( ossim_int32  x)
inline

Sets the upper left x. Adjusts the remaining corners accordingly.

Definition at line 657 of file ossimIrect.h.

References theLlCorner, theUlCorner, ossimIpt::x, and x.

Referenced by ossimQbTileFilesHandler::computeImageRects(), ossimJpegTileSource::fillTile(), ossimPngReader::fillTile(), and ossimImageGeometry::getBoundingRect().

658 {
659  theUlCorner.x = x;
660  theLlCorner.x = x;
661 }
ossim_uint32 x
ossimIpt theLlCorner
Definition: ossimIrect.h:535
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossim_int32 x
Definition: ossimIpt.h:141

◆ set_uly()

void ossimIrect::set_uly ( ossim_int32  y)
inline

Sets the upper left y. Adjusts the remaining corners accordingly.

Definition at line 666 of file ossimIrect.h.

References theUlCorner, theUrCorner, ossimIpt::y, and y.

Referenced by ossimQbTileFilesHandler::computeImageRects(), ossimImageGeometry::getBoundingRect(), and ossimTiffTileSource::loadFromScanLine().

667 {
668  theUlCorner.y = y;
669  theUrCorner.y = y;
670 }
ossimIpt theUrCorner
Definition: ossimIrect.h:533
ossim_uint32 y
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossim_int32 y
Definition: ossimIpt.h:142

◆ set_ur()

void ossimIrect::set_ur ( const ossimIpt pt)
inline

Sets the upper right corner to "pt". Adjusts the remaining corners accordingly.

Definition at line 606 of file ossimIrect.h.

References ossimIpt::hasNans(), makeNan(), theLrCorner, theUlCorner, theUrCorner, ossimIpt::x, and ossimIpt::y.

Referenced by ATP::AtpAnnotatedImage::annotateCorrelations(), ATP::AtpAnnotatedImage::annotateFeatureSearchTiles(), and ATP::AtpAnnotatedImage::annotateResiduals().

607 {
608  if(pt.hasNans())
609  {
610  makeNan();
611  }
612  else
613  {
614  theUrCorner = pt;
615  theUlCorner.y = pt.y;
616  theLrCorner.x = pt.x;
617  }
618 }
ossimIpt theUrCorner
Definition: ossimIrect.h:533
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossim_int32 y
Definition: ossimIpt.h:142
void makeNan()
Definition: ossimIrect.h:329
ossim_int32 x
Definition: ossimIpt.h:141
bool hasNans() const
Definition: ossimIpt.h:58

◆ set_urx()

void ossimIrect::set_urx ( ossim_int32  x)
inline

Sets the upper right x. Adjusts the remaining corners accordingly.

Definition at line 675 of file ossimIrect.h.

References theLrCorner, theUrCorner, ossimIpt::x, and x.

676 {
677  theUrCorner.x = x;
678  theLrCorner.x = x;
679 }
ossim_uint32 x
ossimIpt theUrCorner
Definition: ossimIrect.h:533
ossimIpt theLrCorner
Definition: ossimIrect.h:534
ossim_int32 x
Definition: ossimIpt.h:141

◆ set_ury()

void ossimIrect::set_ury ( ossim_int32  y)
inline

Sets the upper right y. Adjusts the remaining corners accordingly.

Definition at line 684 of file ossimIrect.h.

References theUlCorner, theUrCorner, ossimIpt::y, and y.

685 {
686  theUrCorner.y = y;
687  theUlCorner.y = y;
688 }
ossimIpt theUrCorner
Definition: ossimIrect.h:533
ossim_uint32 y
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossim_int32 y
Definition: ossimIpt.h:142

◆ setOrientMode()

void ossimIrect::setOrientMode ( ossimCoordSysOrientMode  mode)
inline

Definition at line 352 of file ossimIrect.h.

352 { theOrientMode = mode; }
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537

◆ size()

ossimIpt ossimIrect::size ( ) const
inline

◆ stretchToTileBoundary()

void ossimIrect::stretchToTileBoundary ( const ossimIpt tileWidthHeight)

Definition at line 212 of file ossimIrect.cpp.

References lr(), OSSIM_LEFT_HANDED, ossimIrect(), theLrCorner, theOrientMode, theUlCorner, ul(), ossimIpt::x, and ossimIpt::y.

Referenced by ossimImageHistogramSource::computeFastModeHistogram(), ossimCacheTileSource::fillTile(), ossimJpegTileSource::fillTile(), ossimPngReader::fillTile(), ossimIgenGenerator::generatePixelTiledSpecList(), ossimCacheTileSource::getCacheId(), ossimGpkgWriter::getExpandedAoi(), ossimKakaduJ2kReader::getTile(), ossimKakaduJp2Reader::getTile(), ossimKakaduJpipHandler::getTileAtRes(), ossimImageRenderer::getTileAtResLevel(), ossimGdalTileSource::getTileBlockRead(), ossimGpkgReader::getTileIndexes(), ossimKakaduJpipHandler::initializeRlevelCache(), ossimNitfTileSource::loadTile(), ossimKakaduJpipHandler::performRlevelSetup(), ossimFixedTileCache::setRect(), and ossimGdalTileSource::setRlevelCache().

213 {
214  ossimIpt ul;
215  ossimIpt lr;
216 
218  {
219  ul.x = theUlCorner.x;
220  if( (theUlCorner.x % tileWidthHeight.x) != 0)
221  {
222  ul.x = ((ul.x / tileWidthHeight.x))*tileWidthHeight.x;
223  if(ul.x > theUlCorner.x)
224  {
225  ul.x -= tileWidthHeight.x;
226  }
227  }
228  ul.y = theUlCorner.y;
229  if( (theUlCorner.y % tileWidthHeight.y) != 0)
230  {
231  ul.y = ((ul.y / tileWidthHeight.y))*tileWidthHeight.y;
232  if(ul.y > theUlCorner.y)
233  {
234  ul.y -= tileWidthHeight.y;
235  }
236  }
237  ossim_int32 w = (theLrCorner.x - ul.x) + 1;
238  ossim_int32 h = (theLrCorner.y - ul.y) + 1;
239 
240  ossim_int32 nw = (w / tileWidthHeight.x)*tileWidthHeight.x;
241  ossim_int32 nh = (h / tileWidthHeight.y)*tileWidthHeight.y;
242 
243  if(w%tileWidthHeight.x)
244  {
245  nw += tileWidthHeight.x;
246  }
247  if(h%tileWidthHeight.y)
248  {
249  nh += tileWidthHeight.y;
250  }
251 
252  lr.x = ul.x + (nw-1);
253  lr.y = ul.y + (nh-1);
254  }
255  else
256  {
257  ul.x = theUlCorner.x;
258  ul.y = theUlCorner.y;
259  if( (theUlCorner.x%tileWidthHeight.x)!= 0)
260  {
261  ul.x = ((ul.x/ tileWidthHeight.x))*tileWidthHeight.x;
262  if(ul.x > theUlCorner.x)
263  {
264  ul.x -= tileWidthHeight.x;
265  }
266  }
267  if( (theUlCorner.y%tileWidthHeight.y)!=0 )
268  {
269  ul.y = ((ul.y / tileWidthHeight.y))*tileWidthHeight.y;
270  if(ul.y < theUlCorner.y)
271  {
272  ul.y += tileWidthHeight.y;
273  }
274  }
275  ossim_int32 w = theLrCorner.x - ul.x;
276  if (w < 0)
277  {
278  w = -w;
279  }
280  w += 1;
281  ossim_int32 h = theLrCorner.y - ul.y;
282  if (h < 0)
283  {
284  h = -h;
285  }
286  h += 1;
287 
288  ossim_int32 nw = (w / tileWidthHeight.x)*tileWidthHeight.x;
289  ossim_int32 nh = (h / tileWidthHeight.y)*tileWidthHeight.y;
290 
291  if(w%tileWidthHeight.x)
292  {
293  nw += tileWidthHeight.x;
294  }
295  if(h%tileWidthHeight.y)
296  {
297  nh += tileWidthHeight.y;
298  }
299 
300  lr.x = ul.x + (nw-1);
301  lr.y = ul.y - (nh-1);
302  }
303 
304  *this = ossimIrect(ul, lr, theOrientMode);
305 }
const ossimIpt & ul() const
Definition: ossimIrect.h:274
ossimIpt theLrCorner
Definition: ossimIrect.h:534
const ossimIpt & lr() const
Definition: ossimIrect.h:276
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
ossim_int32 x
Definition: ossimIpt.h:141
int ossim_int32

◆ toRect()

bool ossimIrect::toRect ( const ossimString rectString)

expected Format: form 1: ( 30, -90, 512, 512, [LH|RH] ) -x- -y- -w- -h- -Right or left handed-

form 2: ( 30, -90, 512, 512) -x- -y- -w- -h-

NOTE: Form 2 assumes Left handed were x,y is origin upper left and y positive down.

This method starts by doing a "makeNan" on rect.

Parameters
rectStringString to initialize from.
Returns
true or false to indicate successful parsing.

Definition at line 359 of file ossimIrect.cpp.

References ossimString::downcase(), makeNan(), OSSIM_LEFT_HANDED, OSSIM_RIGHT_HANDED, ossimIrect(), ossim::skipws(), ossimString::split(), x, and y.

Referenced by ossimRectangleCutFilter::loadState(), loadState(), and ossimImageData::loadState().

360 {
361  bool result = false;
362  makeNan();
363 
364  std::istringstream in(rectString);
365  ossim::skipws(in);
366  char charString[2];
367  charString[1] = '\0';
368  ossimString interior;
369  if(in.peek() == '(')
370  {
371  in.ignore();
372  while((in.peek() != ')')&&
373  (in.peek() != '\n') &&
374  in.good())
375  {
376  charString[0] = in.get();
377  interior += charString;
378  }
379  if(in.peek() == ')')
380  {
381  result = true;
382  }
383  }
384  if(result)
385  {
386  std::vector<ossimString> splitArray;
387  interior.split(splitArray, ",");
388 
389  // assume left handed
390  if(splitArray.size() >= 4)
391  {
392  ossim_int64 x = splitArray[0].toInt64();
393  ossim_int64 y = splitArray[1].toInt64();
394  ossim_int64 w = splitArray[2].toInt64();
395  ossim_int64 h = splitArray[3].toInt64();
396  ossimString orientation = "lh";
397  if(splitArray.size() == 5)
398  {
399  orientation = splitArray[4].downcase();
400  }
401  if(orientation == "lh")
402  {
403  // origin upper left
404  *this = ossimIrect(x,y,x + (w-1), y+h-1, OSSIM_LEFT_HANDED);
405  }
406  else
407  {
408  // origin lower left
409  *this = ossimIrect(x,y+(h-1),x + (w-1), y, OSSIM_RIGHT_HANDED);
410  }
411 
412  }
413  else
414  {
415  result = false;
416  }
417 
418  }
419  return result;
420 }
ossim_uint32 x
ossim_uint32 y
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.
OSSIM_DLL std::istream & skipws(std::istream &in)
Definition: ossimCommon.cpp:38
static ossimString downcase(const ossimString &aString)
Definition: ossimString.cpp:48
void makeNan()
Definition: ossimIrect.h:329
long long ossim_int64
std::basic_istringstream< char > istringstream
Class for char input memory streams.
Definition: ossimIosFwd.h:32

◆ toString()

ossimString ossimIrect::toString ( ) const
Returns
ossimString representing ossimIrect.

Format: ( 30, -90, 512, 512, [LH|RH] ) -x- -y- -w- -h- -Right or left handed-

where: x and y are origins either upper left if LEFT HANDED (LH) or lower left if RIGHT HANDED (RH) w and h are width and height respectively The last value is LH or RH to indicate LeftHanded or RightHanded

Definition at line 332 of file ossimIrect.cpp.

References height(), ll(), OSSIM_LEFT_HANDED, theOrientMode, ossimString::toString(), ul(), width(), ossimIpt::x, and ossimIpt::y.

Referenced by ossimInfo::getImageRect(), print(), and saveState().

333 {
334  ossimString result="(";
335 
337  {
338  ossimIpt origin = ul();
339  result += (ossimString::toString(origin.x) + ",");
340  result += (ossimString::toString(origin.y) + ",");
341  result += (ossimString::toString(width()) + ",");
342  result += (ossimString::toString(height()) + ",");
343  result += "LH";
344  }
345  else
346  {
347  ossimIpt origin = ll();
348  result += (ossimString::toString(origin.x) + ",");
349  result += (ossimString::toString(origin.y) + ",");
350  result += (ossimString::toString(width()) + ",");
351  result += (ossimString::toString(height()) + ",");
352  result += "RH";
353  }
354 
355  result += ")";
356  return result;
357 }
ossim_uint32 height() const
Definition: ossimIrect.h:487
static ossimString toString(bool aValue)
Numeric to string methods.
const ossimIpt & ul() const
Definition: ossimIrect.h:274
const ossimIpt & ll() const
Definition: ossimIrect.h:277
ossim_uint32 width() const
Definition: ossimIrect.h:500
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
ossim_int32 x
Definition: ossimIpt.h:141

◆ ul()

const ossimIpt& ossimIrect::ul ( ) const
inline

Definition at line 274 of file ossimIrect.h.

Referenced by ossimMapCompositionSource::addGeographicBottomGridLabels(), ossimMapCompositionSource::addGeographicRightGridLabels(), ossimMapCompositionSource::addMeterGridLabels(), ossimEdgeFilter::adjustRequestRect(), ossimJpegTileSource::allocate(), ossimPngReader::allocate(), ossimPixelFlipper::clipTile(), clipToRect(), combine(), completely_within(), ossimMapCompositionSource::computeBorderRects(), ossimImageHistogramSource::computeFastModeHistogram(), ossimHlzTool::computeHLZ(), ossimFixedTileCache::computeId(), ossimLocalCorrelationFusion::computeRegression(), ossimGmlSupportData::configureGmljp2V2(), ossimImageData::copyLineTemplate(), ossim::copyRegionToTile(), ossim_hdf5::crossesDateline(), ossimDespeckleFilter::despeckle(), ossimDilationFilter::doDilation(), ossimErosionFilter::doErosion(), ossimGeoAnnotationBitmap::draw(), ossimAnnotationFontObject::draw(), ossimEsriShapeFileFilter::drawAnnotations(), ATP::AtpAnnotatedImage::drawBox(), ossimElevRemapper::elevRemap(), ossimSubImageTool::execute(), ossimImageDataHelper::fill(), ossimWatermarkFilter::fill(), ossimUsgsDemTileSource::fillBuffer(), ossimAdrgTileSource::fillBuffer(), ossimDtedTileSource::fillBuffer(), ossimRpfCacheTileSource::fillSubTileCadrg(), ossimCibCadrgTileSource::fillSubTileCadrg(), ossimRpfCacheTileSource::fillSubTileCib(), ossimCibCadrgTileSource::fillSubTileCib(), ossimCacheTileSource::fillTile(), ossimImageCacheTileSource::fillTile(), ossimGeoPdfReader::fillTile(), ossimTilePatch::fillTileTemplate(), ossimCcfTileSource::fillUcharBuffer(), ossimCcfTileSource::fillUshortBuffer(), ATP::ossimCorrelationSource::findFeatures(), ossimNullPixelFlip::flipPixels(), ossimPixelFlipper::flipPixels(), ossimKmlSuperOverlayWriter::generateChildKml(), ossimIgenGenerator::generateGeoTiledSpecList(), ossimIgenGenerator::generatePixelTiledSpecList(), ossim_hdf5::getBilinearProjection(), ossimMeanMedianFilter::getBoundingRect(), ossimMapCompositionSource::getBoundingRect(), ossimWatermarkFilter::getCenterRect(), ossimImageGeometry::getCrossesDateline(), ossim::getDims(), ossimGdalOgrVectorAnnotation::getFeatures(), ossimGmlSupportData::getGeoBounds(), ossimQbTileFilesHandler::getImageGeometry(), ossimTiledImageHandler::getImageRectangle(), ossimGeoPdfReader::getIntersectingEntries(), ossimImageCacheBase::getIntersectingEntries(), ossimRpfCacheTileSource::getIntersectingEntries(), ossimCibCadrgTileSource::getIntersectingEntries(), ossimWatermarkFilter::getLowerCenterRect(), ossimWatermarkFilter::getLowerLeftRect(), ossimWatermarkFilter::getLowerRightRect(), ossimVpfTileSource::getNumberOfLines(), ossimJpegTileSource::getNumberOfLines(), ossimOgrGdalTileSource::getNumberOfLines(), ossimVpfTileSource::getNumberOfSamples(), ossimJpegTileSource::getNumberOfSamples(), ossimOgrGdalTileSource::getNumberOfSamples(), ossimHdf5ImageDataset::getSubImageOffset(), ossimH5ImageDataset::getSubImageOffset(), ossimHsvToRgbSource::getTile(), ossimIntensityAdjustmentFilter::getTile(), ossimJpegYCbCrToRgbSource::getTile(), ossimRgbToJpegYCbCrSource::getTile(), ossimImageToPlaneNormalFilter::getTile(), ossimErosionFilter::getTile(), ossimDespeckleFilter::getTile(), ossimFftFilter::getTile(), ossimDilationFilter::getTile(), ossim3x3ConvolutionFilter::getTile(), ossimFeatherMosaic::getTile(), ossimHistoMatchRemapper::getTile(), ossimElevationMosaic::getTile(), ossimImageMosaic::getTile(), ATP::ossimCorrelationSource::getTile(), ossimBandMergeSource::getTile(), ossimMaxMosaic::getTile(), ossimGammaRemapper::getTile(), ossimAOD::getTile(), ossimClosestToCenterCombiner::getTile(), ossimRectangleCutFilter::getTile(), ossimLocalCorrelationFusion::getTile(), ossimKakaduJpipHandler::getTile(), ossimConvolutionSource::getTile(), ossimElevImageSource::getTile(), ossimScaleFilter::getTile(), ossimMeanMedianFilter::getTile(), ossimConvolutionFilter1D::getTile(), ossimSubImageTileSource::getTile(), ossimTiledImagePatch::getTile(), ossimGdalTileSource::getTile(), ossimKMeansFilter::getTile(), ossimTopographicCorrectionFilter::getTile(), ossimBitMaskTileSource::getTile(), ossimMG4LidarReader::getTile(), ossimMrSidReader::getTile(), ossimGridRemapSource::getTile(), ossimKakaduJ2kReader::getTile(), ossimPointCloudImageHandler::getTile(), ossimLasReader::getTile(), ossimKakaduJp2Reader::getTile(), ossimTiledImageHandler::getTile(), ossimMaskFilter::getTile(), ossimKakaduJpipHandler::getTileAtRes(), ossimImageRenderer::getTileAtResLevel(), ossimGdalTileSource::getTileBlockRead(), ossimH5ImageDataset::getTileBuf(), ossimHdf5ImageDataset::getTileBuf(), ossimGpkgReader::getTileIndexes(), ossimImageSourceSequencer::getTileOrigin(), ossimFixedTileCache::getTileOrigin(), ossimWatermarkFilter::getUniformDenseRects(), ossimWatermarkFilter::getUniformSparceRects(), ossimWatermarkFilter::getUpperCenterRect(), ossimWatermarkFilter::getUpperLeftRect(), ossimWatermarkFilter::getUpperRightRect(), ossim_hdf5::getValidBoundingRect(), ossimRectangleCutFilter::getValidImageVertices(), ossimImageSource::getValidImageVertices(), ossimGpkgNsgTileMatrixExtentRecord::init(), ATP::AtpGenerator::initialize(), ossimAtCorrGridRemapper::initialize(), ossimTilingRect::initializeBase(), ossimQuadProjection::initializeGrids(), ossimCoarseGridModel::initializeModelParams(), ossimGpkgWriter::initializeRect(), insureMinimumSize(), intersects(), ossimPolygon::isRectWithin(), ATP::AtpGenerator::layoutSearchTileRects(), ossimImageData::loadBandTemplate(), ossimTiffTileSource::loadFromRgbaU8aStrip(), ossimTiffTileSource::loadFromRgbaU8Strip(), ossimTiffTileSource::loadFromRgbaU8Tile(), ossimTiffTileSource::loadFromScanLine(), ossimTiffTileSource::loadFromTile(), ossimTiffTileSource::loadFromU16Strip(), ossimGdalTileSource::loadIndexTo3BandTileTemplate(), ossimImageData::loadShortBand(), ossimNitfTileSource::loadTile(), ossimImageData::loadTile(), ossimImageData::loadTileFromBilTemplate(), ossimImageData::loadTileFromBipAlphaTemplate(), ossimImageData::loadTileFromBipTemplate(), ossimImageData::loadTileFromBsqTemplate(), midPoint(), ossimImageData::nullTileAlphaTemplate(), ossimGeneralRasterInfo::offsetToFirstValidSample(), ATP::ossimCorrelationSource::OpenCVCorrelation(), operator!=(), operator=(), ossimDrect::operator=(), ossimPolygon::operator=(), operator==(), ossimAnnotationFontObject::ossimAnnotationFontObject(), ossimPolygon::ossimPolygon(), ossimPolyLine::ossimPolyLine(), ossimViewshedTool::paintReticle(), pointWithin(), ossimPolygon::rectIntersects(), ossimFilterResampler::resampleBilinearTile(), ossimResampler::resampleTile(), ossimResampler::resampleTileNearestNeighbor(), ossimScaleFilter::runFilterTemplate(), ossimScaleFilter::runHorizontalFilterTemplate(), ossimScaleFilter::runVerticalFilterTemplate(), ossimQuadProjection::saveState(), ossimScaleFilter::scaleRect(), ossimHdf5ImageDataset::scanForMinMax(), ossimHdf5ImageDataset::scanForValidImageRect(), ossimNitfTileSource::setBoundingRectangle(), ossimAnnotationFontObject::setCenterPosition(), ossimHdf5ImageHandler::setCurrentEntry(), ossimGeneralRasterElevHandler::setFilename(), ossimAnnotationFontObject::setGeometryInformation(), ossimH5GridModel::setGridNodes(), ossimAtCorrGridRemapper::setGridRect(), ossimImageDataHelper::setImageData(), ossimImageData::setImageRectangle(), ossimImageData::setImageRectangleAndBands(), ossimAnnotationFontObject::setPointSize(), ossimROIEvent::setRect(), ossimTilingPoly::setRect(), ossimAnnotationFontObject::setRotation(), ossimAnnotationFontObject::setScale(), ossimAnnotationFontObject::setShear(), ossimAnnotationFontObject::setUpperLeftPosition(), ossimImageRenderer::ossimRendererSubRectInfo::splitAll(), ossimImageRenderer::ossimRendererSubRectInfo::splitHorizontal(), ossimImageRenderer::ossimRendererSubRectInfo::splitVertical(), stretchToTileBoundary(), toString(), ossimImageData::unloadBandTemplate(), ossimImageData::unloadBandToBsqTemplate(), ossimImageData::unloadTileToBilTemplate(), ossimImageData::unloadTileToBipAlphaTemplate(), ossimImageData::unloadTileToBipTemplate(), ossimImageData::unloadTileToBsqTemplate(), ossimGpkgWriter::writeGpkgNsgTileMatrixExtentTable(), ossimGdalWriter::writeProjectionInfo(), ossimWriter::writeTiffTags(), and ossimKakaduCompressor::writeTile().

274 { return theUlCorner; }
ossimIpt theUlCorner
Definition: ossimIrect.h:532

◆ ur()

const ossimIpt& ossimIrect::ur ( ) const
inline

◆ width()

ossim_uint32 ossimIrect::width ( ) const
inline

Returns the width of a rectangle.

Definition at line 500 of file ossimIrect.h.

Referenced by ossimMapCompositionSource::addGeographicLeftGridLabels(), ossimMapCompositionSource::addGeographicRightGridLabels(), ossimMapCompositionSource::addMeterGridLabels(), ossimTableRemapper::allocate(), ossimAnnotationSource::allocate(), ossimJpegTileSource::allocate(), ossimHsiRemapper::allocate(), ossimPngReader::allocate(), ossimGdBitmapFont::allocateBuffer(), ossimGdalWriter::buildGdalOverviews(), ossimAnnotationFontObject::computeBoundingRect(), ossimImageHistogramSource::computeFastModeHistogram(), ossimHlzTool::computeHLZ(), ossimBrightnessMatch::computeInputBrightness(), ossim::computeLevels(), ossimLocalCorrelationFusion::computeRegression(), ossimNitfProjectionFactory::computeScaleInDecimalDegrees(), ossimNitfProjectionFactory::computeScaleInMeters(), ossimViewshedTool::computeViewshed(), ossimPotraceTool::convertToBitmap(), ossimConvolutionSource::convolve(), ossimPngReader::copyLines(), ossimPngReader::copyLinesWithAlpha(), ossimImageData::copyLineTemplate(), ossimIntensityAdjustmentFilter::createAndPopulateGrid(), ossimOpjCompressor::createOpjImage(), ossim_hdf5::crossesDateline(), ossimJpegCodec::decodeJpegToRgb(), ossimGeoAnnotationBitmap::draw(), ossimAnnotationFontObject::draw(), ossimElevRemapper::elevRemap(), ossimWatermarkFilter::fill(), ossimRpfCacheTileSource::fillSubTileCadrg(), ossimCibCadrgTileSource::fillSubTileCadrg(), ossimRpfCacheTileSource::fillSubTileCib(), ossimCibCadrgTileSource::fillSubTileCib(), ossimCacheTileSource::fillTile(), ossimImageCacheTileSource::fillTile(), ossimGeoPdfReader::fillTile(), ossimTilePatch::fillTileTemplate(), ossimNullPixelFlip::flipPixels(), ossimCacheTileSource::getCacheId(), ossimWatermarkFilter::getCenterRect(), ossimNitfCommon::getCompressionRate(), ossim::getDims(), ossimMrSidReader::getImageDimensions(), ossimMrSidReader::getImageTileWidth(), ossimKakaduJp2Reader::getImageTileWidth(), ossimGmlSupportData::getLimits(), ossimWatermarkFilter::getLowerCenterRect(), ossimWatermarkFilter::getLowerRightRect(), ossimGpkgWriter::getMatrixSize(), ossimGdalTileSource::getMaxSize(), ossimFusionCombiner::getNormIntensity(), ossimFusionCombiner::getNormTile(), ossimVideoImageSource::getNumberOfSamples(), ossimTiledImageHandler::getNumberOfSamples(), ossimHdf5ImageDataset::getNumberOfSamples(), ossimH5ImageDataset::getNumberOfSamples(), ossimPngReader::getNumberOfSamples(), ossimGpkgWriter::getNumberOfZoomLevels(), ossimOverviewSequencer::getOutputImageRectangle(), ossimRectanglePartitioner::getSize(), ossimHsvToRgbSource::getTile(), ossimRgbToJpegYCbCrSource::getTile(), ossimJpegYCbCrToRgbSource::getTile(), ossimDespeckleFilter::getTile(), ossimFftFilter::getTile(), ossimFeatherMosaic::getTile(), ossimImageMosaic::getTile(), ossimElevationMosaic::getTile(), ossimGammaRemapper::getTile(), ossimBandMergeSource::getTile(), ossimMaxMosaic::getTile(), ossimAOD::getTile(), ossimSFIMFusion::getTile(), ossimClosestToCenterCombiner::getTile(), ossimConvolutionSource::getTile(), ossimElevImageSource::getTile(), ossimHsiRemapper::getTile(), ossimMemoryImageSource::getTile(), ossimGdalTileSource::getTile(), ossimTopographicCorrectionFilter::getTile(), ossimBitMaskTileSource::getTile(), ossimMG4LidarReader::getTile(), ossimMrSidReader::getTile(), ossimPointCloudImageHandler::getTile(), ossimLasReader::getTile(), ossimTiffTileSource::getTile(), ossimEquationCombiner::getTile(), ossimKakaduJpipHandler::getTileAtRes(), ossimH5ImageDataset::getTileBuf(), ossimHdf5ImageDataset::getTileBuf(), ossimNitfTileSource::getTileWidth(), ossimWatermarkFilter::getUniformDenseRects(), ossimWatermarkFilter::getUniformSparceRects(), ossimWatermarkFilter::getUpperCenterRect(), ossimWatermarkFilter::getUpperRightRect(), ossim_hdf5::getValidBoundingRect(), ossimMapCompositionSource::getViewingRect(), ossimGdalDataset::init(), ossimTilingRect::initializeBase(), ossimQuadProjection::initializeGrids(), ossimH5GridModel::initializeModelParams(), ossimCoarseGridModel::initializeModelParams(), ossimImageHandler::initImageParameters(), ossimHlzTool::initProcessingChain(), ossimViewshedTool::initProcessingChain(), insureMinimumSize(), ossimAtCorrGridRemapper::interpolate(), ATP::AtpGenerator::layoutSearchTileRects(), ossimImageData::loadBandTemplate(), ossimGdalTileSource::loadIndexTo3BandTileTemplate(), ossimImageData::loadShortBand(), ossimImageData::loadTile(), ossimImageData::loadTileFromBilTemplate(), ossimImageData::loadTileFromBipAlphaTemplate(), ossimImageData::loadTileFromBipTemplate(), ossimImageData::loadTileFromBsqTemplate(), main(), ossimTilingRect::next(), ossimImageData::nullTileAlphaTemplate(), ossimGeoidImage::offsetFromEllipsoidTemplate(), ossimTiffWriter::openTiff(), ossimKakaduJpipHandler::performRlevelSetup(), ossimGdBitmapFont::rasterizeNormal(), ossimGeneralRasterInfo::rawSamples(), ossimImageRenderer::recursiveResample(), ossimFilterResampler::resampleBilinearTile(), ossimResampler::resampleTile(), ossimResampler::resampleTileNearestNeighbor(), ossimScaleFilter::runFilterTemplate(), ossimScaleFilter::runHorizontalFilterTemplate(), ossimScaleFilter::runVerticalFilterTemplate(), ossimQuadProjection::saveState(), ossimScaleFilter::scaleRect(), ossimHdf5ImageDataset::scanForMinMax(), ossimHdf5ImageDataset::scanForValidImageRect(), ossimGeneralRasterElevHandler::setFilename(), ossimH5GridModel::setGridNodes(), ossimImageData::setImageRectangle(), ossimImageData::setImageRectangleAndBands(), ossimFixedTileCache::setRect(), ossimImageRenderer::ossimRendererSubRectInfo::splitAll(), ossimImageRenderer::ossimRendererSubRectInfo::splitHorizontal(), ossimRectanglePartitioner::splitRect(), ossimImageRenderer::ossimRendererSubRectInfo::splitView(), toString(), ossimImageData::unloadTileToBilTemplate(), ossimImageData::unloadTileToBipAlphaTemplate(), ossimImageData::unloadTileToBipTemplate(), ossimImageSourceSequencer::updateTileDimensions(), ossimOverviewSequencer::updateTileDimensions(), ossimGeneralRasterInfo::validSamples(), ossimArcInfoGridWriter::writeBinaryAigBounds(), ossimNitf20Writer::writeBlockBandSeparate(), ossimNitfWriter::writeBlockBandSeparate(), ossimNitf20Writer::writeBlockBandSequential(), ossimNitfWriter::writeBlockBandSequential(), ossimERSFileWriter::writeFile(), ossimEnviHeaderFileWriter::writeFile(), ossimWriter::writeTiffTags(), and ossimTiffWriter::writeTiffTags().

501  {
503  if (w < 0)
504  {
505  w = -w;
506  }
507  return static_cast<ossim_uint32>( w + 1 );
508  }
ossimIpt theLrCorner
Definition: ossimIrect.h:534
unsigned int ossim_uint32
ossimIpt theLlCorner
Definition: ossimIrect.h:535
ossim_int32 x
Definition: ossimIpt.h:141
int ossim_int32

Friends And Related Function Documentation

◆ operator*

ossimIrect operator* ( double  scalar,
const ossimIrect rect 
)
friend

Definition at line 130 of file ossimIrect.h.

131  {
132  return ossimIrect((int)floor(rect.theUlCorner.x*scalar),
133  (int)floor(rect.theUlCorner.y*scalar),
134  (int)ceil(rect.theUlCorner.x*scalar+rect.width()*scalar-1),
135  (int)ceil(rect.theUlCorner.y*scalar+rect.height()*scalar-1),
136  rect.theOrientMode);
137  }
ossim_uint32 height() const
Definition: ossimIrect.h:487
ossim_uint32 width() const
Definition: ossimIrect.h:500
ossimIpt theUlCorner
Definition: ossimIrect.h:532
ossimCoordSysOrientMode theOrientMode
Definition: ossimIrect.h:537
ossim_int32 y
Definition: ossimIpt.h:142
ossim_int32 x
Definition: ossimIpt.h:141

◆ operator<<

OSSIMDLLEXPORT std::ostream& operator<< ( std::ostream &  os,
const ossimIrect rect 
)
friend

Definition at line 491 of file ossimIrect.cpp.

492 {
493  rect.print(os);
494 
495  return os;
496 }
void print(std::ostream &os) const
Definition: ossimIrect.cpp:483

Member Data Documentation

◆ theLlCorner

ossimIpt ossimIrect::theLlCorner
private

◆ theLrCorner

ossimIpt ossimIrect::theLrCorner
private

◆ theOrientMode

ossimCoordSysOrientMode ossimIrect::theOrientMode
private

◆ theUlCorner

ossimIpt ossimIrect::theUlCorner
private

◆ theUrCorner

ossimIpt ossimIrect::theUrCorner
private

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