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

#include <ossimDrect.h>

Public Types

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

Public Member Functions

 ossimDrect ()
 
 ossimDrect (const ossimDpt &ul_corner, const ossimDpt &lr_corner, ossimCoordSysOrientMode mode=OSSIM_LEFT_HANDED)
 
 ossimDrect (const double &ul_corner_x, const double &ul_corner_y, const double &lr_corner_x, const double &lr_corner_y, ossimCoordSysOrientMode mode=OSSIM_LEFT_HANDED)
 
 ossimDrect (const ossimDrect &rect)
 
 ossimDrect (const ossimIrect &rect)
 
 ossimDrect (const std::vector< ossimDpt > &points, ossimCoordSysOrientMode mode=OSSIM_LEFT_HANDED)
 
 ossimDrect (const ossimDpt &p1, const ossimDpt &p2, const ossimDpt &p3, const ossimDpt &p4, ossimCoordSysOrientMode mode=OSSIM_LEFT_HANDED)
 
 ossimDrect (const ossimPolygon &polygon, ossimCoordSysOrientMode mode=OSSIM_LEFT_HANDED)
 
 ~ossimDrect ()
 destructor More...
 
 ossimDrect (const ossimDpt &center, const double &size_x, const double &size_y, ossimCoordSysOrientMode mode=OSSIM_LEFT_HANDED)
 Constructs an Drect surrounding the specified point, and of specified size. More...
 
const ossimDrectoperator= (const ossimDrect &rect)
 
const ossimDrectoperator= (const ossimIrect &rect)
 
bool operator!= (const ossimDrect &rect) const
 
bool operator== (const ossimDrect &rect) const
 
const ossimDrectoperator*= (double scalar)
 
ossimDrect operator* (double scalar) const
 
const ossimDrectoperator*= (const ossimDpt &scalar)
 
ossimDrect operator* (const ossimDpt &scalar) const
 
const ossimDrectoperator+= (const ossimDpt &shift)
 
const ossimDrectoperator-= (const ossimDpt &shift)
 
ossimDrect operator+ (const ossimDpt &shift) const
 
ossimDrect operator- (const ossimDpt &shift) const
 
const ossimDptul () const
 
const ossimDptur () const
 
const ossimDptlr () const
 
const ossimDptll () const
 
const ossimDrectchangeOrientationMode (ossimCoordSysOrientMode mode)
 
void getBounds (double &minx, double &miny, double &maxx, double &maxy) const
 
void makeNan ()
 
bool hasNans () const
 
bool isNan () const
 
double area () const
 
ossimCoordSysOrientMode orientMode () const
 
void setOrientMode (ossimCoordSysOrientMode mode)
 
void set_ul (const ossimDpt &pt)
 
void set_ur (const ossimDpt &pt)
 
void set_lr (const ossimDpt &pt)
 
void set_ll (const ossimDpt &pt)
 
void set_ulx (ossim_float64 x)
 
void set_uly (ossim_float64 y)
 
void set_urx (ossim_float64 x)
 
void set_ury (ossim_float64 y)
 
void set_lrx (ossim_float64 x)
 
void set_lry (ossim_float64 y)
 
void set_llx (ossim_float64 x)
 
void set_lly (ossim_float64 y)
 
void initBoundingRect (const std::vector< ossimDpt > &points)
 
bool pointWithin (const ossimDpt &pt, double epsilon=0.0) const
 
bool pointWithin (const ossimFpt &pt, double epsilon=0.0) const
 
bool intersects (const ossimDrect &rect) const
 
bool completely_within (const ossimDrect &rect) const
 
ossimCoordSysOrientMode orientationMode () const
 
ossim_float64 height () const
 
ossim_float64 width () const
 
ossimDpt size () const
 
void stretchOut ()
 
void stretchToTileBoundary (const ossimDpt &widthHeight)
 
const ossimDrectexpand (const ossimDpt &padding)
 
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...
 
bool saveState (ossimKeywordlist &kwl, const char *prefix=0) const
 
bool loadState (const ossimKeywordlist &kwl, const char *prefix=0)
 
void splitToQuad (ossimDrect &ulRect, ossimDrect &urRect, ossimDrect &lrRect, ossimDrect &llRect)
 
ossimDpt findClosestEdgePointTo (const ossimDpt &arg_point) const
 
ossimDrect clipToRect (const ossimDrect &rect) const
 
ossimDpt midPoint () const
 
void print (std::ostream &os) const
 
ossimDrect combine (const ossimDrect &rect) const
 
bool clip (ossimDpt &p1, ossimDpt &p2) const
 

Static Public Member Functions

static long getCode (const ossimDpt &aPoint, const ossimDrect &clipRect)
 

Private Types

enum  ossimCohenSutherlandClipCodes {
  NONE = 0, LEFT = 1, RIGHT = 2, BOTTOM = 4,
  TOP = 8
}
 

Private Attributes

ossimDpt theUlCorner
 
ossimDpt theUrCorner
 
ossimDpt theLrCorner
 
ossimDpt theLlCorner
 
ossimCoordSysOrientMode theOrientMode
 

Friends

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

Detailed Description

Definition at line 53 of file ossimDrect.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
UPPER_LEFT 
LOWER_LEFT 
LOWER_RIGHT 
UPPER_RIGHT 

Definition at line 56 of file ossimDrect.h.

◆ ossimCohenSutherlandClipCodes

Enumerator
NONE 
LEFT 
RIGHT 
BOTTOM 
TOP 

Definition at line 605 of file ossimDrect.h.

606  {
607  NONE = 0,
608  LEFT = 1,
609  RIGHT = 2,
610  BOTTOM = 4,
611  TOP = 8
612  };

Constructor & Destructor Documentation

◆ ossimDrect() [1/9]

ossimDrect::ossimDrect ( )
inline

Definition at line 64 of file ossimDrect.h.

Referenced by clipToRect(), combine(), ossimDrect(), splitToQuad(), stretchToTileBoundary(), and toRect().

65  :
66  theUlCorner(0.0, 0.0),
67  theUrCorner(0.0, 0.0),
68  theLrCorner(0.0, 0.0),
69  theLlCorner(0.0, 0.0),
71  {}
ossimDpt theLlCorner
Definition: ossimDrect.h:620
ossimDpt theUrCorner
Definition: ossimDrect.h:618
ossimDpt theLrCorner
Definition: ossimDrect.h:619
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617

◆ ossimDrect() [2/9]

ossimDrect::ossimDrect ( const ossimDpt ul_corner,
const ossimDpt lr_corner,
ossimCoordSysOrientMode  mode = OSSIM_LEFT_HANDED 
)
inline

Definition at line 73 of file ossimDrect.h.

76  :
77  theUlCorner(ul_corner),
78  theUrCorner(lr_corner.x, ul_corner.y),
79  theLrCorner(lr_corner),
80  theLlCorner(ul_corner.x, lr_corner.y),
81  theOrientMode(mode)
82  {
83  }
ossimDpt theLlCorner
Definition: ossimDrect.h:620
double y
Definition: ossimDpt.h:165
ossimDpt theUrCorner
Definition: ossimDrect.h:618
ossimDpt theLrCorner
Definition: ossimDrect.h:619
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164

◆ ossimDrect() [3/9]

ossimDrect::ossimDrect ( const double &  ul_corner_x,
const double &  ul_corner_y,
const double &  lr_corner_x,
const double &  lr_corner_y,
ossimCoordSysOrientMode  mode = OSSIM_LEFT_HANDED 
)
inline

Definition at line 85 of file ossimDrect.h.

90  :
91  theUlCorner(ul_corner_x, ul_corner_y),
92  theUrCorner(lr_corner_x, ul_corner_y),
93  theLrCorner(lr_corner_x, lr_corner_y),
94  theLlCorner(ul_corner_x, lr_corner_y),
95  theOrientMode(mode)
96  {}
ossimDpt theLlCorner
Definition: ossimDrect.h:620
ossimDpt theUrCorner
Definition: ossimDrect.h:618
ossimDpt theLrCorner
Definition: ossimDrect.h:619
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617

◆ ossimDrect() [4/9]

ossimDrect::ossimDrect ( const ossimDrect rect)
inline

Definition at line 98 of file ossimDrect.h.

99  :
100  theUlCorner(rect.ul()),
101  theUrCorner(rect.ur()),
102  theLrCorner(rect.lr()),
103  theLlCorner(rect.ll()),
104  theOrientMode(rect.orientMode())
105  {}
ossimDpt theLlCorner
Definition: ossimDrect.h:620
const ossimDpt & ul() const
Definition: ossimDrect.h:339
ossimDpt theUrCorner
Definition: ossimDrect.h:618
ossimCoordSysOrientMode orientMode() const
Definition: ossimDrect.h:414
ossimDpt theLrCorner
Definition: ossimDrect.h:619
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617
const ossimDpt & ur() const
Definition: ossimDrect.h:340
const ossimDpt & ll() const
Definition: ossimDrect.h:342
const ossimDpt & lr() const
Definition: ossimDrect.h:341

◆ ossimDrect() [5/9]

ossimDrect::ossimDrect ( const ossimIrect rect)

Definition at line 92 of file ossimDrect.cpp.

References ossimIrect::isNan(), and makeNan().

93  :
94  theUlCorner(rect.ul()),
95  theUrCorner(rect.ur()),
96  theLrCorner(rect.lr()),
97  theLlCorner(rect.ll()),
99 {
100  if(rect.isNan())
101  {
102  makeNan();
103  }
104 }
void makeNan()
Definition: ossimDrect.h:388
ossimDpt theLlCorner
Definition: ossimDrect.h:620
ossimDpt theUrCorner
Definition: ossimDrect.h:618
const ossimIpt & ul() const
Definition: ossimIrect.h:274
const ossimIpt & ll() const
Definition: ossimIrect.h:277
ossimCoordSysOrientMode orientMode() const
Definition: ossimIrect.h:351
bool isNan() const
Definition: ossimIrect.h:342
const ossimIpt & lr() const
Definition: ossimIrect.h:276
ossimDpt theLrCorner
Definition: ossimDrect.h:619
const ossimIpt & ur() const
Definition: ossimIrect.h:275
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617

◆ ossimDrect() [6/9]

ossimDrect::ossimDrect ( const std::vector< ossimDpt > &  points,
ossimCoordSysOrientMode  mode = OSSIM_LEFT_HANDED 
)

Must compute a bounding rect given a collection of points or polygon:

Definition at line 132 of file ossimDrect.cpp.

References makeNan(), max, min, OSSIM_LEFT_HANDED, ossimDrect(), theOrientMode, x, and y.

134  :
135  theOrientMode (mode)
136 {
137  if(points.size())
138  {
139  unsigned long index;
140  double minx, miny;
141  double maxx, maxy;
142 
143  minx = points[0].x;
144  miny = points[0].y;
145  maxx = points[0].x;
146  maxy = points[0].y;
147 
148  // find the bounds
149  for(index = 1; index < points.size();index++)
150  {
151 
152  minx = std::min(minx, points[index].x);
153  miny = std::min(miny, points[index].y);
154  maxx = std::max(maxx, points[index].x);
155  maxy = std::max(maxy, points[index].y);
156 
157  }
159  {
160  *this = ossimDrect(minx, miny, maxx, maxy, mode);
161  }
162  else
163  {
164  *this = ossimDrect(minx,maxy, maxx, miny, mode);
165  }
166  }
167  else
168  {
169  makeNan();
170  }
171 }
void makeNan()
Definition: ossimDrect.h:388
ossim_uint32 x
ossim_uint32 y
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
#define max(a, b)
Definition: auxiliary.h:76
#define min(a, b)
Definition: auxiliary.h:75

◆ ossimDrect() [7/9]

ossimDrect::ossimDrect ( const ossimDpt p1,
const ossimDpt p2,
const ossimDpt p3,
const ossimDpt p4,
ossimCoordSysOrientMode  mode = OSSIM_LEFT_HANDED 
)

Definition at line 172 of file ossimDrect.cpp.

References ossimDpt::hasNans(), makeNan(), max, min, OSSIM_LEFT_HANDED, ossimDrect(), ossimDpt::x, and ossimDpt::y.

177 : theOrientMode(mode)
178 {
179  if(p1.hasNans()||p2.hasNans()||p3.hasNans()||p4.hasNans())
180  {
181  makeNan();
182  }
183  else
184  {
185  double minx, miny;
186  double maxx, maxy;
187 
188  minx = std::min( p1.x, std::min(p2.x, std::min(p3.x, p4.x)));
189  miny = std::min( p1.y, std::min(p2.y, std::min(p3.y, p4.y)));
190  maxx = std::max( p1.x, std::max(p2.x, std::max(p3.x, p4.x)));
191  maxy = std::max( p1.y, std::max(p2.y, std::max(p3.y, p4.y)));
192 
193  if(mode == OSSIM_LEFT_HANDED)
194  {
195  *this = ossimDrect(minx, miny, maxx, maxy, mode);
196  }
197  else
198  {
199  *this = ossimDrect(minx,maxy, maxx, miny, mode);
200  }
201  }
202 }
void makeNan()
Definition: ossimDrect.h:388
double y
Definition: ossimDpt.h:165
bool hasNans() const
Definition: ossimDpt.h:67
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
#define max(a, b)
Definition: auxiliary.h:76
double x
Definition: ossimDpt.h:164
#define min(a, b)
Definition: auxiliary.h:75

◆ ossimDrect() [8/9]

ossimDrect::ossimDrect ( const ossimPolygon polygon,
ossimCoordSysOrientMode  mode = OSSIM_LEFT_HANDED 
)

Definition at line 111 of file ossimDrect.cpp.

References initBoundingRect(), and ossimPolygon::vertex().

113  :
114  theOrientMode (mode)
115 {
116  std::vector<ossimDpt> vertices;
117  ossimDpt point;
118  int index = 0;
119  while (polygon.vertex(index, point))
120  {
121  vertices.push_back(point);
122  index++;
123  }
124 
125  initBoundingRect(vertices);
126 }
void initBoundingRect(const std::vector< ossimDpt > &points)
Definition: ossimDrect.cpp:233
bool vertex(int index, ossimDpt &tbd_vertex) const
METHOD: vertex(index) Returns the ossimDpt vertex given the index.
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622

◆ ~ossimDrect()

ossimDrect::~ossimDrect ( )

destructor

Definition at line 229 of file ossimDrect.cpp.

230 {
231 }

◆ ossimDrect() [9/9]

ossimDrect::ossimDrect ( const ossimDpt center,
const double &  size_x,
const double &  size_y,
ossimCoordSysOrientMode  mode = OSSIM_LEFT_HANDED 
)

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

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

Definition at line 208 of file ossimDrect.cpp.

References OSSIM_LEFT_HANDED, ossimDrect(), ossimDpt::x, and ossimDpt::y.

212 : theOrientMode(mode)
213 {
214  double dx = fabs(size_x);
215  double dy = fabs(size_y);
216 
217  double minx = center.x - dx/2.0;
218  double maxx = minx + dx;
219 
220  double miny = center.y - dy/2.0;
221  double maxy = miny + dy;
222 
223  if(mode == OSSIM_LEFT_HANDED)
224  *this = ossimDrect(minx, miny, maxx, maxy, mode);
225  else
226  *this = ossimDrect(minx,maxy, maxx, miny, mode);
227 }
double y
Definition: ossimDpt.h:165
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
double x
Definition: ossimDpt.h:164

Member Function Documentation

◆ area()

double ossimDrect::area ( ) const
inline

Definition at line 406 of file ossimDrect.h.

407  {
408  return width()*height();
409  }
ossim_float64 width() const
Definition: ossimDrect.h:522
ossim_float64 height() const
Definition: ossimDrect.h:517

◆ changeOrientationMode()

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

Definition at line 344 of file ossimDrect.h.

References OSSIM_LEFT_HANDED, and OSSIM_RIGHT_HANDED.

345  {
346  // if we are already in the orientation then return
347  //
348  if(mode == theOrientMode) return *this;
349  if(mode == OSSIM_LEFT_HANDED)
350  {
351  // we must be right handed so change to left handed
352  *this = ossimDrect(theUlCorner.x,
353  theLlCorner.y,
354  theLrCorner.x,
355  theUlCorner.y,
357  }
358  else
359  {
360  // we must be left handed so change to RIGHT handed
361  *this = ossimDrect(theUlCorner.x,
362  theLlCorner.y,
363  theLrCorner.x,
364  theUlCorner.y,
366  }
367  theOrientMode = mode;
368 
369  return *this;
370  }
ossimDpt theLlCorner
Definition: ossimDrect.h:620
double y
Definition: ossimDpt.h:165
ossimDpt theLrCorner
Definition: ossimDrect.h:619
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164

◆ clip()

bool ossimDrect::clip ( ossimDpt p1,
ossimDpt p2 
) const

Definition at line 653 of file ossimDrect.cpp.

References height(), ossimDpt::isNan(), theUlCorner, width(), ossimDpt::x, and ossimDpt::y.

Referenced by ossimMapCompositionSource::addGeographicBottomGridLabels(), ossimMapCompositionSource::addGeographicGridLines(), ossimMapCompositionSource::addGeographicLeftGridLabels(), ossimMapCompositionSource::addGeographicRightGridLabels(), ossimMapCompositionSource::addMeterGridLabels(), ossimMapCompositionSource::addMeterGridLines(), ossimPolyLine::clipToRect(), ossimAnnotationLineObject::getNewClippedObject(), ossimAnnotationPolyObject::intersects(), ossimAnnotationLineObject::intersects(), and ossimPolyLine::isWithin().

654 {
655  if(p1.isNan() || p2.isNan())
656  {
657  return false;
658  }
659  ossimDpt shift(-theUlCorner.x,
660  -theUlCorner.y);
661 
662  ossimDpt tempShiftP1 = p1+shift;
663  ossimDpt tempShiftP2 = p2+shift;
664  double maxW = width()-1;
665  double maxH = height()-1;
666  if (clip_1d (&tempShiftP1.x, &tempShiftP1.y,
667  &tempShiftP2.x, &tempShiftP2.y,
668  maxW) == 0)
669  {
670  return false;
671  }
672  if(clip_1d (&tempShiftP1.y,
673  &tempShiftP1.x,
674  &tempShiftP2.y,
675  &tempShiftP2.x, maxH) == 0)
676  {
677  return false;
678  }
679  p1 = tempShiftP1-shift;
680  p2 = tempShiftP2-shift;
681  return true;
682 }
ossim_float64 width() const
Definition: ossimDrect.h:522
double y
Definition: ossimDpt.h:165
bool isNan() const
Definition: ossimDpt.h:72
ossim_float64 height() const
Definition: ossimDrect.h:517
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164

◆ clipToRect()

ossimDrect ossimDrect::clipToRect ( const ossimDrect rect) const

Definition at line 769 of file ossimDrect.cpp.

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

Referenced by ossimMapCompositionSource::addGeographicBottomGridLabels(), ossimMapCompositionSource::addGeographicLeftGridLabels(), ossimMapCompositionSource::addGeographicRightGridLabels(), and ossimMapCompositionSource::addMeterGridLabels().

770 {
771  ossimDrect result;
772  result.makeNan();
773  if(rect.hasNans() || hasNans())
774  {
775  return result;
776  }
777 
778  if (theOrientMode != rect.theOrientMode)
779  return (*this);
780 
781  double x0 = ossim::max(rect.ul().x, ul().x);
782  double x1 = ossim::min(rect.lr().x, lr().x);
783  double y0, y1;
784 
786  {
787  y0 = ossim::max(rect.ul().y, ul().y);
788  y1 = ossim::min(rect.lr().y, lr().y);
789 
790  if( (x1 < x0) || (y1 < y0) )
791  {
792  return result;
793  }
794  else
795  {
796  result = ossimDrect(x0, y0, x1, y1, theOrientMode);
797  }
798  }
799  else
800  {
801  y0 = ossim::max(rect.ll().y,ll().y);
802  y1 = ossim::min(rect.ur().y,ur().y);
803  if( (x1 < x0) || (y1 < y0) )
804  {
805  return result;
806  }
807  else
808  {
809  result = ossimDrect(x0, y1, x1, y0, theOrientMode);
810  }
811  }
812  return result;
813 }
void makeNan()
Definition: ossimDrect.h:388
T max(T a, T b)
Definition: ossimCommon.h:236
const ossimDpt & ul() const
Definition: ossimDrect.h:339
double y
Definition: ossimDpt.h:165
bool hasNans() const
Definition: ossimDrect.h:396
T min(T a, T b)
Definition: ossimCommon.h:203
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
const ossimDpt & ur() const
Definition: ossimDrect.h:340
double x
Definition: ossimDpt.h:164
const ossimDpt & ll() const
Definition: ossimDrect.h:342
const ossimDpt & lr() const
Definition: ossimDrect.h:341

◆ combine()

ossimDrect ossimDrect::combine ( const ossimDrect rect) const
inline

Definition at line 826 of file ossimDrect.h.

References hasNans(), lr(), makeNan(), OSSIM_LEFT_HANDED, ossimDrect(), theOrientMode, ul(), ossimDpt::x, and ossimDpt::y.

Referenced by ossimGeoAnnotationSource::computeBoundingRect(), ossimAnnotationMultiPolyLineObject::computeBoundingRect(), ossimAnnotationMultiEllipseObject::computeBoundingRect(), ossimGdalOgrVectorAnnotation::computeBoundingRect(), ossimAnnotationMultiLineObject::computeBoundingRect(), ossimAnnotationMultiPolyObject::computeBoundingRect(), ossimAnnotationSource::computeBoundingRect(), ossimEsriShapeFileFilter::computeBoundingRect(), and ossimNitfFileHeaderV2_0::initializeDisplayLevels().

827 {
828  if(rect.hasNans() || hasNans())
829  {
830  ossimDrect result;
831 
832  result.makeNan();
833 
834  return result;
835  }
836  if (theOrientMode != rect.theOrientMode)
837  return(*this);
838 
839  ossimDpt ulCombine;
840  ossimDpt lrCombine;
841 
843  {
844  ulCombine.x = ((ul().x <= rect.ul().x)?ul().x:rect.ul().x);
845  ulCombine.y = ((ul().y <= rect.ul().y)?ul().y:rect.ul().y);
846  lrCombine.x = ((lr().x >= rect.lr().x)?lr().x:rect.lr().x);
847  lrCombine.y = ((lr().y >= rect.lr().y)?lr().y:rect.lr().y);
848  }
849  else
850  {
851  ulCombine.x = ((ul().x <= rect.ul().x)?ul().x:rect.ul().x);
852  ulCombine.y = ((ul().y >= rect.ul().y)?ul().y:rect.ul().y);
853  lrCombine.x = ((lr().x >= rect.lr().x)?lr().x:rect.lr().x);
854  lrCombine.y = ((lr().y <= rect.lr().y)?lr().y:rect.lr().y);
855  }
856 
857  return ossimDrect(ulCombine, lrCombine, theOrientMode);
858 }
void makeNan()
Definition: ossimDrect.h:388
const ossimDpt & ul() const
Definition: ossimDrect.h:339
double y
Definition: ossimDpt.h:165
bool hasNans() const
Definition: ossimDrect.h:396
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
double x
Definition: ossimDpt.h:164
const ossimDpt & lr() const
Definition: ossimDrect.h:341

◆ completely_within()

bool ossimDrect::completely_within ( const ossimDrect rect) const

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

Definition at line 321 of file ossimDrect.cpp.

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

Referenced by ossimOgrGdalLayerNode::getIdList().

322 {
323  if(hasNans() || rect.hasNans())
324  {
325  return false;
326  }
327  if (theOrientMode != rect.theOrientMode)
328  return false;
329 
330  /* --------------
331  | 1 |
332  | ---------- |
333  | | | |
334  | | | |
335  | | 2 | |
336  | | | |
337  | | | |
338  | ---------- |
339  | |
340  -------------- */
341 
342  bool rtn = true;
343  if ((theUlCorner.x > rect.ur().x)||
344  (theUlCorner.x < rect.ul().x))
345  rtn = false;
346 
347  else if ((theLrCorner.x > rect.lr().x)||
348  (theLrCorner.x < rect.ll().x))
349  rtn = false;
350 
351  else if (theOrientMode == OSSIM_LEFT_HANDED)
352  {
353  if ((theUlCorner.y < rect.ul().y)||
354  (theUlCorner.y > rect.lr().y))
355  rtn = false;
356 
357  else if ((theLrCorner.y > rect.lr().y)||
358  (theLrCorner.y < rect.ul().y))
359  rtn = false;
360  }
361 
362  else
363  {
364  if ( (theUlCorner.y > rect.ul().y)||
365  (theUlCorner.y < rect.lr().y))
366  rtn = false;
367 
368  else if ((theLrCorner.y < rect.lr().y)||
369  (theLrCorner.y > rect.ul().y))
370  rtn = false;
371  }
372 
373  return rtn;
374 }
const ossimDpt & ul() const
Definition: ossimDrect.h:339
double y
Definition: ossimDpt.h:165
bool hasNans() const
Definition: ossimDrect.h:396
ossimDpt theLrCorner
Definition: ossimDrect.h:619
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617
const ossimDpt & ur() const
Definition: ossimDrect.h:340
double x
Definition: ossimDpt.h:164
const ossimDpt & ll() const
Definition: ossimDrect.h:342
const ossimDpt & lr() const
Definition: ossimDrect.h:341

◆ expand()

const ossimDrect & ossimDrect::expand ( const ossimDpt padding)

Definition at line 493 of file ossimDrect.cpp.

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

Referenced by ossimInfo::getImageBounds(), ossimImageGeometry::getImageEdgePoints(), and ossimInfo::getImg2grd().

494 {
495  theUlCorner.x -= padding.x;
496  theUrCorner.x += padding.x;
497  theLrCorner.x += padding.x;
498  theLlCorner.x -= padding.x;
500  {
501  theUlCorner.y -= padding.y;
502  theUrCorner.y -= padding.y;
503  theLrCorner.y += padding.y;
504  theLlCorner.y += padding.y;
505  }
506  else
507  {
508  theUlCorner.y += padding.y;
509  theUrCorner.y += padding.y;
510  theLrCorner.y -= padding.y;
511  theLlCorner.y -= padding.y;
512  }
513 
514  return *this;
515 }
ossimDpt theLlCorner
Definition: ossimDrect.h:620
double y
Definition: ossimDpt.h:165
ossimDpt theUrCorner
Definition: ossimDrect.h:618
ossimDpt theLrCorner
Definition: ossimDrect.h:619
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164

◆ findClosestEdgePointTo()

ossimDpt ossimDrect::findClosestEdgePointTo ( const ossimDpt arg_point) const

Finds the point on the rect boundary that is closest to the arg_point. Closest is defined as the minimum perpendicular distance.

Definition at line 837 of file ossimDrect.cpp.

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

838 {
839  double dXleft = theUlCorner.x - arg_point.x;
840  double dXright = theLrCorner.x - arg_point.x;
841  double dYupper = theUlCorner.y - arg_point.y;
842  double dYlower = theLrCorner.y - arg_point.y;
843 
844  ossimDpt edge_point (theLrCorner);
845 
846  if (dXleft*dXright < 0.0)
847  edge_point.x = arg_point.x;
848  else if (fabs(dXleft) < fabs(dXright))
849  edge_point.x = theUlCorner.x;
850 
851  if (dYupper*dYlower < 0.0)
852  edge_point.y = arg_point.y;
853  else if (fabs(dYupper) < fabs(dYlower))
854  edge_point.y = theUlCorner.y;
855 
856  return edge_point;
857 }
double y
Definition: ossimDpt.h:165
ossimDpt theLrCorner
Definition: ossimDrect.h:619
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164

◆ getBounds()

void ossimDrect::getBounds ( double &  minx,
double &  miny,
double &  maxx,
double &  maxy 
) const
inline

Definition at line 372 of file ossimDrect.h.

References OSSIM_LEFT_HANDED.

Referenced by ossimQuadTreeWarp::isOnEdge().

374  {
375  minx = theUlCorner.x;
376  maxx = theUrCorner.x;
378  {
379  miny = theUlCorner.y;
380  maxy = theLrCorner.y;
381  }
382  else
383  {
384  maxy = theUlCorner.y;
385  miny = theLrCorner.y;
386  }
387  }
double y
Definition: ossimDpt.h:165
ossimDpt theUrCorner
Definition: ossimDrect.h:618
ossimDpt theLrCorner
Definition: ossimDrect.h:619
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164

◆ getCode()

long ossimDrect::getCode ( const ossimDpt aPoint,
const ossimDrect clipRect 
)
static

Definition at line 687 of file ossimDrect.cpp.

References BOTTOM, LEFT, lr(), NONE, OSSIM_LEFT_HANDED, RIGHT, theOrientMode, TOP, ul(), ossimDpt::x, and ossimDpt::y.

689 {
690  long result=NONE; // initialize to inside rect
691 
692  if( (aPoint.x > clipRect.lr().x) )
693  result |= RIGHT;
694  else if( (aPoint.x < clipRect.ul().x) )
695  result |= LEFT;
696 
697  if (clipRect.theOrientMode == OSSIM_LEFT_HANDED)
698  {
699  if( (aPoint.y < clipRect.ul().y) )
700  result |= TOP;
701  else if( (aPoint.y > clipRect.lr().y) )
702  result |= BOTTOM;
703  }
704  else
705  {
706  if( (aPoint.y > clipRect.ul().y) )
707  result |= TOP;
708  else if( (aPoint.y < clipRect.lr().y) )
709  result |= BOTTOM;
710  }
711 
712  return result;
713 }
const ossimDpt & ul() const
Definition: ossimDrect.h:339
double y
Definition: ossimDpt.h:165
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
double x
Definition: ossimDpt.h:164
const ossimDpt & lr() const
Definition: ossimDrect.h:341

◆ hasNans()

bool ossimDrect::hasNans ( ) const
inline

Definition at line 396 of file ossimDrect.h.

Referenced by ossimMapCompositionSource::addGeographicBottomGridLabels(), ossimMapCompositionSource::addGeographicGridLines(), ossimMapCompositionSource::addGeographicLeftGridLabels(), ossimMapCompositionSource::addGeographicRightGridLabels(), ossimCoarseGridModel::buildGrid(), ossimImageGeometry::calculatePolyBounds(), clipToRect(), combine(), completely_within(), ossimAnnotationMultiPolyLineObject::computeBoundingRect(), ossimAnnotationMultiEllipseObject::computeBoundingRect(), ossimGdalOgrVectorAnnotation::computeBoundingRect(), ossimAnnotationMultiLineObject::computeBoundingRect(), ossimAnnotationMultiPolyObject::computeBoundingRect(), ossimAnnotationSource::computeBoundingRect(), ossimEsriShapeFileFilter::computeBoundingRect(), ossimSensorModel::computeGsd(), ossimAnnotationMultiPolyLineObject::draw(), ossimAnnotationMultiPolyObject::draw(), ossimAnnotationPolyObject::draw(), ossimAnnotationSource::getBoundingRect(), ossimInfo::getCenterGround(), ossimInfo::getCenterImage(), ossimInfo::getImageBounds(), ossimImageGeometry::getImageEdgePoints(), ossimImageViewProjectionTransform::getImageToViewBounds(), ossimInfo::getImg2grd(), ossimOgrVectorTileSource::getNumberOfLines(), ossimOgrVectorTileSource::getNumberOfSamples(), ossimQuadTreeWarp::getOrigin(), ossimXmpInfo::getProjection(), ossimImageViewTransform::getScaleChangeImageToView(), ossimImageViewTransform::getScaleChangeViewToImage(), ossimGpkgNsgTileMatrixExtentRecord::init(), ossimImageSourceSequencer::initialize(), ossimIgen::initializeChain(), ossimIgen::initThumbnailProjection(), ossimAnnotationMultiPolyLineObject::intersects(), ossimAnnotationMultiPolyObject::intersects(), ossimAnnotationPolyObject::intersects(), intersects(), ossimAnnotationMultiEllipseObject::isPointWithin(), ossimIpodSensor::loadState(), ossimSkyBoxLearSensor::loadState(), ossimImageGeometry::northUpAngle(), ossimRpcModel::setImageOffset(), ossimQuadTreeWarp::split(), and ossimImageGeometry::upIsUpAngle().

396  { return (theUlCorner.hasNans() ||
397  theLlCorner.hasNans() ||
398  theLrCorner.hasNans() ||
399  theUrCorner.hasNans());}
ossimDpt theLlCorner
Definition: ossimDrect.h:620
ossimDpt theUrCorner
Definition: ossimDrect.h:618
bool hasNans() const
Definition: ossimDpt.h:67
ossimDpt theLrCorner
Definition: ossimDrect.h:619
ossimDpt theUlCorner
Definition: ossimDrect.h:617

◆ height()

ossim_float64 ossimDrect::height ( ) const
inline

Returns the height of a rectangle.

Definition at line 517 of file ossimDrect.h.

Referenced by ossimMapCompositionSource::addMeterGridLabels(), ATP::AtpAnnotatedImage::AtpAnnotatedImage(), ossimCoarseGridModel::buildGrid(), clip(), ossimGeographicAnnotationGrid::computeBoundingRect(), ossimAnnotationMultiPolyLineObject::computeBoundingRect(), ossimAnnotationMultiPolyObject::computeBoundingRect(), ossimSensorModel::computeGsd(), ossimGeographicAnnotationGrid::draw(), ossimImageRenderer::fillTile(), ossimQuickbirdRpcModel::finishConstruction(), ossimplugins::ossimSpot6Model::finishConstruction(), ossimplugins::ossimPleiadesModel::finishConstruction(), ossimInfo::getImageGeometryInfo(), ossimInfo::getImageInfo(), ossimKmlSuperOverlayReader::getNumberOfLines(), ossimOgrVectorTileSource::getNumberOfLines(), ossimImageViewTransform::getScaleChangeImageToView(), ossimImageViewTransform::getScaleChangeViewToImage(), ossimImageRenderer::ossimRendererSubRectInfo::getSplitFlags(), ossimImageRenderer::initializeBoundingRects(), ossimNitfFileHeaderV2_0::initializeDisplayLevels(), ossimMapProjectionInfo::initializeMembers(), ossimImageViewProjectionTransform::initializeViewSize(), ossimIgen::initThumbnailProjection(), ossimSonomaSensor::loadState(), ossimTiledImageHash::ossimTiledImageHash(), ossimTileHash::ossimTileHash(), ossimAnnotationGdBitmapFont::setCenterTextPosition(), ossimRpcSolver::solve(), ossimRpcSolver::solveCoefficients(), ossimQuadTreeWarp::split(), ossimImageRenderer::ossimRendererSubRectInfo::tooBig(), toString(), ossimImageRenderer::ossimRendererSubRectInfo::transformViewToImage(), ossimIpodSensor::updateModel(), ossimSkyBoxLearSensor::updateModel(), and ossimSonomaSensor::updateModel().

517 { return fabs(theLlCorner.y - theUlCorner.y) + 1.0; }
ossimDpt theLlCorner
Definition: ossimDrect.h:620
double y
Definition: ossimDpt.h:165
ossimDpt theUlCorner
Definition: ossimDrect.h:617

◆ initBoundingRect()

void ossimDrect::initBoundingRect ( const std::vector< ossimDpt > &  points)

METHOD: initBoundingRect(points) Initializes this rect to the bounding rect containing all points in the collection passed in.

Definition at line 233 of file ossimDrect.cpp.

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

Referenced by ossimDrect().

234 {
235  unsigned long index;
236 
237  // initialize everyone to the first point
238  if(points.size() > 0)
239  {
240  theUlCorner.x = points[0].x;
241  theUlCorner.y = points[0].y;
244  }
245 
246  // find the bounds
247  for(index = 1; index < points.size();index++)
248  {
249  // find left most
250  if(points[index].x < theUlCorner.x)
251  theUlCorner.x = points[index].x;
252 
253  // find right most
254  else if(points[index].x > theLrCorner.x)
255  theLrCorner.x = points[index].x;
256 
258  {
259  //find top most
260  if(points[index].y < theUlCorner.y)
261  theUlCorner.y = points[index].y;
262 
263  // find bottom most
264  else if(points[index].y > theLrCorner.y)
265  theLrCorner.y = points[index].y;
266  }
267 
268  else // right handed coord system
269  {
270  if(points[index].y > theUlCorner.y)
271  theUlCorner.y = points[index].y;
272 
273  // find bottom most
274  else if(points[index].y < theLrCorner.y)
275  theLrCorner.y = points[index].y;
276  }
277  }
278 
279  // now set the other points for the rect.
284 }
ossim_uint32 x
ossimDpt theLlCorner
Definition: ossimDrect.h:620
ossim_uint32 y
double y
Definition: ossimDpt.h:165
ossimDpt theUrCorner
Definition: ossimDrect.h:618
ossimDpt theLrCorner
Definition: ossimDrect.h:619
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164

◆ intersects()

bool ossimDrect::intersects ( const ossimDrect rect) const

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

Definition at line 289 of file ossimDrect.cpp.

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

Referenced by ossimMapCompositionSource::addGeographicBottomGridLabels(), ossimMapCompositionSource::addGeographicLeftGridLabels(), ossimMapCompositionSource::addGeographicRightGridLabels(), ossimMapCompositionSource::addMeterGridLabels(), ossimAnnotationEllipseObject::draw(), ossimAnnotationMultiPolyLineObject::draw(), ossimAnnotationPolyObject::draw(), ossimAnnotationMultiEllipseObject::draw(), ossimAnnotationMultiPolyObject::draw(), ossimAnnotationGdBitmapFont::draw(), ossimAnnotationMultiLineObject::draw(), ossimAnnotationMultiPolyObject::getNewClippedObject(), ossimAnnotationPolyObject::getNewClippedObject(), ossimAnnotationEllipseObject::intersects(), ossimAnnotationMultiPolyLineObject::intersects(), ossimAnnotationMultiEllipseObject::intersects(), ossimAnnotationMultiPolyObject::intersects(), ossimAnnotationPolyObject::intersects(), ossimAnnotationGdBitmapFont::intersects(), ossimOgrVectorLayerNode::intersects(), ossimAnnotationFontObject::intersects(), ossimOgrGdalFeatureNode::intersects(), and ossimOgrGdalLayerNode::intersects().

290 {
291  if(rect.hasNans() || hasNans())
292  {
293  return false;
294  }
295  if (theOrientMode != rect.theOrientMode)
296  return false;
297 
298  ossim_float64 ulx = ossim::max(rect.ul().x,ul().x);
299  ossim_float64 lrx = ossim::min(rect.lr().x,lr().x);
300  ossim_float64 uly, lry;
301  bool rtn=false;
303  {
304  uly = ossim::max(rect.ul().y,ul().y);
305  lry = ossim::min(rect.lr().y,lr().y);
306  rtn = ((ulx <= lrx) && (uly <= lry));
307  }
308  else
309  {
310  uly = ossim::max(rect.ll().y,ll().y);
311  lry = ossim::min(rect.ur().y,ur().y);
312  rtn = ((ulx <= lrx) && (uly <= lry));
313  }
314 
315  return (rtn);
316 }
T max(T a, T b)
Definition: ossimCommon.h:236
const ossimDpt & ul() const
Definition: ossimDrect.h:339
double y
Definition: ossimDpt.h:165
double ossim_float64
bool hasNans() const
Definition: ossimDrect.h:396
T min(T a, T b)
Definition: ossimCommon.h:203
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
const ossimDpt & ur() const
Definition: ossimDrect.h:340
double x
Definition: ossimDpt.h:164
const ossimDpt & ll() const
Definition: ossimDrect.h:342
const ossimDpt & lr() const
Definition: ossimDrect.h:341

◆ isNan()

bool ossimDrect::isNan ( ) const
inline

Definition at line 401 of file ossimDrect.h.

Referenced by ossimGeoAnnotationMultiPolyObject::getBoundingRect().

401  { return (theUlCorner.hasNans() &&
402  theLlCorner.hasNans() &&
403  theLrCorner.hasNans() &&
404  theUrCorner.hasNans());}
ossimDpt theLlCorner
Definition: ossimDrect.h:620
ossimDpt theUrCorner
Definition: ossimDrect.h:618
bool hasNans() const
Definition: ossimDpt.h:67
ossimDpt theLrCorner
Definition: ossimDrect.h:619
ossimDpt theUlCorner
Definition: ossimDrect.h:617

◆ ll()

const ossimDpt& ossimDrect::ll ( ) const
inline

Definition at line 342 of file ossimDrect.h.

Referenced by ossimMapCompositionSource::addGeographicBottomGridLabels(), ossimMapCompositionSource::addGeographicGridLines(), ossimMapCompositionSource::addGeographicGridReseaux(), ossimMapCompositionSource::addGeographicLeftGridLabels(), ossimMapCompositionSource::addGeographicRightGridLabels(), ossimMapCompositionSource::addMeterGridLabels(), ossimMapCompositionSource::addMeterGridLines(), ossimMapCompositionSource::addMeterGridReseaux(), ossimPolygon::clipToRect(), clipToRect(), completely_within(), ossimGeoPdfReader::computeBoundingRect(), ossimQuadTreeWarp::create(), ossimQuickbirdRpcModel::finishConstruction(), ossimplugins::ossimPleiadesModel::finishConstruction(), ossimplugins::ossimSpot6Model::finishConstruction(), ossimIgenGenerator::generateGeoTiledSpecList(), ossimIgenGenerator::generatePixelTiledSpecList(), ossimInfo::getImageBounds(), ossimImageGeometry::getImageEdgePoints(), ossimInfo::getImageGeometryInfo(), ossimImageViewProjectionTransform::getImageToViewBounds(), ossimImageViewTransform::getImageToViewBounds(), ossimPolygon::getMinimumBoundingRect(), ossimQuadTreeWarp::getNewQuads(), ossimXmpInfo::getProjection(), ossimImageViewTransform::getScaleChangeImageToView(), ossimImageViewTransform::getScaleChangeViewToImage(), ossimQuadTreeWarp::getShift(), ossimImageViewProjectionTransform::getViewSegments(), ossimImageViewTransform::getViewToImageBounds(), ossimGpkgNsgTileMatrixExtentRecord::init(), ossimMapProjectionInfo::initializeMembers(), intersects(), ossimQuadTreeWarp::isOnPoint(), ossimImageRenderer::ossimRendererSubRectInfo::isViewEqual(), ossimImageGeometry::localToWorld(), midPoint(), ossimplugins::ossimRadarSatModel::open(), ossimplugins::ossimRadarSat2RPCModel::open(), ossimplugins::ossimRadarSat2Model::open(), ossimIrect::operator=(), ossimPolygon::operator=(), ossimPolygon::ossimPolygon(), ossimPolyLine::ossimPolyLine(), ossimAnnotationSource::pickObjects(), pointWithin(), ossimQuadTreeWarp::pruneTree(), ossimQuadTreeWarp::recursiveLoad(), ossimNadconNasDatum::shift(), splitToQuad(), toString(), ossimApplanixUtmModel::updateModel(), ossimSpectraboticsRedEdgeModel::updateModel(), ossimApplanixEcefModel::updateModel(), ossimIpodSensor::updateModel(), ossimSkyBoxLearSensor::updateModel(), and ossimSonomaSensor::updateModel().

342 { return theLlCorner; }
ossimDpt theLlCorner
Definition: ossimDrect.h:620

◆ loadState()

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

Definition at line 618 of file ossimDrect.cpp.

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

620 {
621  const char* rect = kwl.find(prefix, "rect");
622  makeNan();
623 
624  if(rect)
625  {
626  toRect(rect);
627  }
628 
629  return true;
630 }
void makeNan()
Definition: ossimDrect.h:388
const char * find(const char *key) const
bool toRect(const ossimString &rectString)
expected Format: form 1: ( 30, -90, 512, 512, [LH|RH] ) -x- -y- -w- -h- -Right or left handed- ...
Definition: ossimDrect.cpp:543

◆ lr()

const ossimDpt& ossimDrect::lr ( ) const
inline

Definition at line 341 of file ossimDrect.h.

Referenced by ossimMapCompositionSource::addGeographicBottomGridLabels(), ossimMapCompositionSource::addGeographicGridLines(), ossimMapCompositionSource::addGeographicGridReseaux(), ossimMapCompositionSource::addGeographicLeftGridLabels(), ossimMapCompositionSource::addGeographicRightGridLabels(), ossimMapCompositionSource::addMeterGridLabels(), ossimMapCompositionSource::addMeterGridLines(), ossimMapCompositionSource::addMeterGridReseaux(), ossimTiling::clampGeographic(), ossimPolygon::clipToRect(), clipToRect(), combine(), completely_within(), ossimGeographicAnnotationGrid::computeBoundingRect(), ossimGeoPdfReader::computeBoundingRect(), ossimQuadTreeWarp::create(), ossimAnnotationMultiPolyLineObject::draw(), ossimAnnotationMultiPolyObject::draw(), ossimAnnotationPolyObject::draw(), ossimAnnotationLineObject::draw(), ossimAnnotationMultiLineObject::draw(), ossimEsriShapeFileFilter::drawAnnotations(), ossimImageRenderer::fillTile(), ossimQuickbirdRpcModel::finishConstruction(), ossimplugins::ossimSpot6Model::finishConstruction(), ossimplugins::ossimPleiadesModel::finishConstruction(), ossimIgenGenerator::generatePixelTiledSpecList(), ossimChipProcTool::getChip(), getCode(), ossimInfo::getImageBounds(), ossimImageGeometry::getImageEdgePoints(), ossimInfo::getImageGeometryInfo(), ossimInfo::getImageInfo(), ossimImageViewProjectionTransform::getImageToViewBounds(), ossimImageViewTransform::getImageToViewBounds(), ossimPolygon::getMinimumBoundingRect(), ossimAnnotationMultiPolyObject::getNewClippedObject(), ossimAnnotationMultiLineObject::getNewClippedObject(), ossimQuadTreeWarp::getNewQuads(), ossimXmpInfo::getProjection(), ossimImageViewTransform::getScaleChangeImageToView(), ossimImageViewTransform::getScaleChangeViewToImage(), ossimImageViewProjectionTransform::getViewSegments(), ossimImageViewTransform::getViewToImageBounds(), ossimMapProjectionInfo::initializeMembers(), ossimIgen::initThumbnailProjection(), intersects(), ossimQuadTreeWarp::isOnPoint(), ossimImageRenderer::ossimRendererSubRectInfo::isViewEqual(), ossimImageGeometry::localToWorld(), midPoint(), ossimImageGeometry::northUpAngle(), ossimplugins::ossimRadarSatModel::open(), ossimplugins::ossimRadarSat2RPCModel::open(), ossimplugins::ossimRadarSat2Model::open(), ossimTileHash::operator()(), ossimIrect::operator=(), ossimPolygon::operator=(), ossimPolygon::ossimPolygon(), ossimPolyLine::ossimPolyLine(), ossimAnnotationSource::pickObjects(), ossimQuadTreeWarp::pruneTree(), ossimQuadTreeWarp::recursiveLoad(), ossimResampler::resampleTile(), ossimQuadTreeWarpNode::saveState(), ossimTilePatch::setRect(), ossimQuadTreeWarp::split(), splitToQuad(), stretchToTileBoundary(), ossimApplanixUtmModel::updateModel(), ossimSpectraboticsRedEdgeModel::updateModel(), ossimApplanixEcefModel::updateModel(), ossimIpodSensor::updateModel(), ossimSkyBoxLearSensor::updateModel(), ossimSonomaSensor::updateModel(), ossimGpkgWriter::writeGpkgContentsTable(), and ossimGpkgWriter::writeGpkgTileMatrixSetTable().

341 { return theLrCorner; }
ossimDpt theLrCorner
Definition: ossimDrect.h:619

◆ makeNan()

void ossimDrect::makeNan ( )
inline

Definition at line 388 of file ossimDrect.h.

Referenced by ossimQuadTreeWarpNode::clear(), clipToRect(), combine(), ossimGeoAnnotationSource::computeBoundingRect(), ossimAnnotationMultiPolyLineObject::computeBoundingRect(), ossimAnnotationMultiEllipseObject::computeBoundingRect(), ossimGeoAnnotationMultiPolyLineObject::computeBoundingRect(), ossimGeoAnnotationMultiPolyObject::computeBoundingRect(), ossimGdalOgrVectorAnnotation::computeBoundingRect(), ossimAnnotationMultiLineObject::computeBoundingRect(), ossimAnnotationMultiPolyObject::computeBoundingRect(), ossimAnnotationSource::computeBoundingRect(), ossimEsriShapeFileFilter::computeBoundingRect(), ossimFgdcXmlDoc::getBoundingBox(), ossimGeoAnnotationEllipseObject::getBoundingRect(), ossimShapeObject::getBoundingRect(), ossimGeoAnnotationPolyObject::getBoundingRect(), ossimSubImageTileSource::getBoundingRect(), ossimPolyArea2d::getBoundingRect(), ossimImageSourceSequencer::getBoundingRect(), ossimImageChain::getBoundingRect(), ossimImageGeometry::getBoundingRect(), ossimGdalOgrVectorAnnotation::initializeBoundingRec(), loadState(), ossimKmlSuperOverlayReader::open(), operator=(), ossimDrect(), ossimEsriShapeFileFilter::ossimEsriShapeFileFilter(), ossimGdalOgrVectorAnnotation::ossimGdalOgrVectorAnnotation(), ossimGeoAnnotationMultiPolyLineObject::ossimGeoAnnotationMultiPolyLineObject(), ossimGeoAnnotationMultiPolyObject::ossimGeoAnnotationMultiPolyObject(), ossimIgen::ossimIgen(), ossimNadconGridDatum::ossimNadconGridDatum(), ossimQuadTreeWarpNode::ossimQuadTreeWarpNode(), and ossimOgrVectorTileSource::setCurrentEntry().

389  {
394  }
ossimDpt theLlCorner
Definition: ossimDrect.h:620
ossimDpt theUrCorner
Definition: ossimDrect.h:618
ossimDpt theLrCorner
Definition: ossimDrect.h:619
ossimDpt theUlCorner
Definition: ossimDrect.h:617
void makeNan()
Definition: ossimDpt.h:65

◆ midPoint()

ossimDpt ossimDrect::midPoint ( ) const
inline

Definition at line 817 of file ossimDrect.h.

References ll(), lr(), ul(), ur(), x, and y.

Referenced by ossimCoarseGridModel::buildGrid(), ossimImageGeometry::calculatePolyBounds(), ossimSensorModel::computeGsd(), ossimQuickbirdRpcModel::finishConstruction(), ossimplugins::ossimSpot6Model::finishConstruction(), ossimplugins::ossimPleiadesModel::finishConstruction(), ossimInfo::getCenterGround(), ossimInfo::getCenterImage(), ossimQuadTreeWarp::getOrigin(), ossimImageViewProjectionTransform::getViewSegments(), ossimIpodSensor::loadState(), ossimSkyBoxLearSensor::loadState(), ossimSonomaSensor::loadState(), ossimImageGeometry::northUpAngle(), ossimApplanixEcefModel::ossimApplanixEcefModel(), ossimSpectraboticsRedEdgeModel::ossimSpectraboticsRedEdgeModel(), ossimApplanixUtmModel::setImageRect(), ossimSpectraboticsRedEdgeModel::setImageRect(), ossimApplanixEcefModel::setImageRect(), ossimSensorModel::setImageRect(), ossimRpcSolver::solveCoefficients(), splitToQuad(), and ossimImageGeometry::upIsUpAngle().

818 {
819  return ossimDpt( (ul().x + ur().x + ll().x + lr().x)*.25,
820  (ul().y + ur().y + ll().y + lr().y)*.25);
821 }
ossim_uint32 x
ossim_uint32 y
const ossimDpt & ul() const
Definition: ossimDrect.h:339
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 ossimDrect::operator!= ( const ossimDrect rect) const
inline

Definition at line 645 of file ossimDrect.h.

References theLlCorner, theLrCorner, theOrientMode, theUlCorner, and theUrCorner.

646 {
647  return ( (theUlCorner != rect.theUlCorner) ||
648  (theUrCorner != rect.theUrCorner) ||
649  (theLrCorner != rect.theLrCorner) ||
650  (theLlCorner != rect.theLlCorner) ||
651  (theOrientMode != rect.theOrientMode));
652 }
ossimDpt theLlCorner
Definition: ossimDrect.h:620
ossimDpt theUrCorner
Definition: ossimDrect.h:618
ossimDpt theLrCorner
Definition: ossimDrect.h:619
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617

◆ operator*() [1/2]

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

Definition at line 182 of file ossimDrect.h.

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

183  {
184  ossimDpt ul((theUlCorner.x*scalar),
185  (theUlCorner.y*scalar));
186 
188  {
189  return ossimDrect(ul.x,
190  ul.y,
191  (ul.x+width()*scalar-1),
192  (ul.y+height()*scalar-1),
193  theOrientMode);
194  }
195 
196  return ossimDrect(ul.x,
197  ul.y,
198  (ul.x+width()*scalar-1),
199  ul.y-(height()*scalar-1),
200  theOrientMode);
201  }
ossim_float64 width() const
Definition: ossimDrect.h:522
const ossimDpt & ul() const
Definition: ossimDrect.h:339
double y
Definition: ossimDpt.h:165
ossim_float64 height() const
Definition: ossimDrect.h:517
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164

◆ operator*() [2/2]

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

Definition at line 226 of file ossimDrect.h.

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

227  {
228  ossimDpt ul((theUlCorner.x*scalar.x),
229  (theUlCorner.y*scalar.y));
230 
232  {
233  return ossimDrect(ul.x,
234  ul.y,
235  (ul.x+width()*scalar.x-1),
236  (ul.y+height()*scalar.y-1),
237  theOrientMode);
238  }
239  return ossimDrect(ul.x,
240  ul.y,
241  (ul.x+width()*scalar.x-1),
242  (ul.y-(height()*scalar.y-1)),
243  theOrientMode);
244  }
ossim_float64 width() const
Definition: ossimDrect.h:522
const ossimDpt & ul() const
Definition: ossimDrect.h:339
double y
Definition: ossimDpt.h:165
ossim_float64 height() const
Definition: ossimDrect.h:517
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164

◆ operator*=() [1/2]

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

Definition at line 157 of file ossimDrect.h.

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

158  {
159  ossimDpt ul(theUlCorner.x*scalar,
160  theUlCorner.y*scalar);
161 
163  {
164  *this = ossimDrect(ul.x,
165  ul.y,
166  (ul.x+width()*scalar-1),
167  (ul.y+height()*scalar-1),
168  theOrientMode);
169  }
170  else
171  {
172  *this = ossimDrect(ul.x,
173  ul.y,
174  (ul.x+width()*scalar-1),
175  (ul.y-(height()*scalar-1)),
176  theOrientMode);
177 
178  }
179  return *this;
180  }
ossim_float64 width() const
Definition: ossimDrect.h:522
const ossimDpt & ul() const
Definition: ossimDrect.h:339
double y
Definition: ossimDpt.h:165
ossim_float64 height() const
Definition: ossimDrect.h:517
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164

◆ operator*=() [2/2]

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

Definition at line 202 of file ossimDrect.h.

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

203  {
204  ossimDpt ul((theUlCorner.x*scalar.x),
205  (theUlCorner.y*scalar.y));
206 
208  {
209  *this = ossimDrect(ul.x,
210  ul.y,
211  (ul.x+width()*scalar.x - 1),
212  (ul.y+height()*scalar.y - 1),
213  theOrientMode);
214  }
215  else
216  {
217  *this = ossimDrect(ul.x,
218  ul.y,
219  (ul.x+width()*scalar.x - 1),
220  (ul.y-(height()*scalar.y - 1)),
221  theOrientMode);
222  }
223  return *this;
224  }
ossim_float64 width() const
Definition: ossimDrect.h:522
const ossimDpt & ul() const
Definition: ossimDrect.h:339
double y
Definition: ossimDpt.h:165
ossim_float64 height() const
Definition: ossimDrect.h:517
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164

◆ operator+()

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

Definition at line 293 of file ossimDrect.h.

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

294  {
295  ossimDpt ul((theUlCorner.x+shift.x),
296  (theUlCorner.y+shift.y));
297 
299  {
300  return ossimDrect(ul.x,
301  ul.y,
302  ul.x+width()-1,
303  ul.y+height()-1,
304  theOrientMode);
305  }
306  else
307  {
308  return ossimDrect(ul.x,
309  ul.y,
310  ul.x+width()-1,
311  ul.y-(height()-1),
312  theOrientMode);
313  }
314  }
ossim_float64 width() const
Definition: ossimDrect.h:522
const ossimDpt & ul() const
Definition: ossimDrect.h:339
double y
Definition: ossimDpt.h:165
ossim_float64 height() const
Definition: ossimDrect.h:517
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164

◆ operator+=()

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

Definition at line 245 of file ossimDrect.h.

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

246  {
247  ossimDpt ul((theUlCorner.x+shift.x),
248  (theUlCorner.y+shift.y));
249 
251  {
252  *this = ossimDrect(ul.x,
253  ul.y,
254  ul.x+width()-1,
255  ul.y+height()-1,
256  theOrientMode);
257  }
258  else
259  {
260  *this = ossimDrect(ul.x,
261  ul.y,
262  ul.x+width()-1,
263  ul.y-(height()-1),
264  theOrientMode);
265  }
266  return *this;
267  }
ossim_float64 width() const
Definition: ossimDrect.h:522
const ossimDpt & ul() const
Definition: ossimDrect.h:339
double y
Definition: ossimDpt.h:165
ossim_float64 height() const
Definition: ossimDrect.h:517
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164

◆ operator-()

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

Definition at line 316 of file ossimDrect.h.

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

317  {
318  ossimIpt ul(ossim::round<int>(theUlCorner.x-shift.x),
319  ossim::round<int>(theUlCorner.y-shift.y));
320 
322  {
323  return ossimDrect(ul.x,
324  ul.y,
325  ul.x+width()-1,
326  ul.y+height()-1,
327  theOrientMode);
328  }
329  else
330  {
331  return ossimDrect(ul.x,
332  ul.y,
333  ul.x+width()-1,
334  ul.y-(height()-1),
335  theOrientMode);
336  }
337  }
ossim_float64 width() const
Definition: ossimDrect.h:522
const ossimDpt & ul() const
Definition: ossimDrect.h:339
double y
Definition: ossimDpt.h:165
ossim_float64 height() const
Definition: ossimDrect.h:517
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164

◆ operator-=()

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

Definition at line 269 of file ossimDrect.h.

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

270  {
271  ossimDpt ul((theUlCorner.x-shift.x),
272  (theUlCorner.y-shift.y));
273 
275  {
276  *this = ossimDrect(ul.x,
277  ul.y,
278  ul.x+width()-1,
279  ul.y+height()-1,
280  theOrientMode);
281  }
282  else
283  {
284  *this = ossimDrect(ul.x,
285  ul.y,
286  ul.x+width()-1,
287  ul.y-(height()-1),
288  theOrientMode);
289  }
290  return *this;
291  }
ossim_float64 width() const
Definition: ossimDrect.h:522
const ossimDpt & ul() const
Definition: ossimDrect.h:339
double y
Definition: ossimDpt.h:165
ossim_float64 height() const
Definition: ossimDrect.h:517
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164

◆ operator=() [1/2]

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

Definition at line 628 of file ossimDrect.h.

References theLlCorner, theLrCorner, theOrientMode, theUlCorner, and theUrCorner.

629 {
630  if (this != &rect)
631  {
632  theUlCorner = rect.theUlCorner;
633  theUrCorner = rect.theUrCorner;
634  theLrCorner = rect.theLrCorner;
635  theLlCorner = rect.theLlCorner;
637  }
638 
639  return *this;
640 }
ossimDpt theLlCorner
Definition: ossimDrect.h:620
ossimDpt theUrCorner
Definition: ossimDrect.h:618
ossimDpt theLrCorner
Definition: ossimDrect.h:619
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617

◆ operator=() [2/2]

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

Definition at line 815 of file ossimDrect.cpp.

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

816 {
817  if(rect.isNan())
818  {
819  makeNan();
820  }
821  else
822  {
823  theUlCorner = rect.ul();
824  theUrCorner = rect.ur();
825  theLrCorner = rect.lr();
826  theLlCorner = rect.ll();
827  theOrientMode = rect.orientMode();
828  }
829 
830  return *this;
831 }
void makeNan()
Definition: ossimDrect.h:388
ossimDpt theLlCorner
Definition: ossimDrect.h:620
ossimDpt theUrCorner
Definition: ossimDrect.h:618
const ossimIpt & ul() const
Definition: ossimIrect.h:274
const ossimIpt & ll() const
Definition: ossimIrect.h:277
ossimCoordSysOrientMode orientMode() const
Definition: ossimIrect.h:351
bool isNan() const
Definition: ossimIrect.h:342
const ossimIpt & lr() const
Definition: ossimIrect.h:276
ossimDpt theLrCorner
Definition: ossimDrect.h:619
const ossimIpt & ur() const
Definition: ossimIrect.h:275
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617

◆ operator==()

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

Definition at line 657 of file ossimDrect.h.

References theLlCorner, theLrCorner, theOrientMode, theUlCorner, and theUrCorner.

658 {
659  return ( (theUlCorner == rect.theUlCorner) &&
660  (theUrCorner == rect.theUrCorner) &&
661  (theLrCorner == rect.theLrCorner) &&
662  (theLlCorner == rect.theLlCorner) &&
663  (theOrientMode == rect.theOrientMode));
664 }
ossimDpt theLlCorner
Definition: ossimDrect.h:620
ossimDpt theUrCorner
Definition: ossimDrect.h:618
ossimDpt theLrCorner
Definition: ossimDrect.h:619
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617

◆ orientationMode()

ossimCoordSysOrientMode ossimDrect::orientationMode ( ) const
inline

Definition at line 513 of file ossimDrect.h.

513 {return theOrientMode;}
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622

◆ orientMode()

ossimCoordSysOrientMode ossimDrect::orientMode ( ) const
inline

Definition at line 414 of file ossimDrect.h.

Referenced by ossimTiling::clampGeographic(), ossimTiling::getOrigin(), and ossimIrect::operator=().

414 { return theOrientMode; }
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622

◆ pointWithin() [1/2]

bool ossimDrect::pointWithin ( const ossimDpt pt,
double  epsilon = 0.0 
) const
inline

Returns true if "pt" falls within rectangle. Fall on an edge is also considered to be within. The edge is expanded by epsilon value so any value within epsilon is inside

Definition at line 781 of file ossimDrect.h.

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

Referenced by ossimMapCompositionSource::addGeographicGridReseaux(), ossimMapCompositionSource::addMeterGridLabels(), ossimMapCompositionSource::addMeterGridReseaux(), ossimNadconGridDatum::checkGrid(), ossimPolyLine::clipToRect(), ossimQuadTreeWarp::findAllNodes(), ossimQuadTreeWarp::findNode(), ossimQuadTreeWarp::findVertex(), ossimImageElevationHandler::getHeightAboveMSL(), ossimGeneralRasterElevHandler::getHeightAboveMSLFileTemplate(), ossimGeneralRasterElevHandler::getHeightAboveMSLMemoryTemplate(), ossimImageElevationHandler::getPostValue(), ossimLasReader::getTile(), ossimQuadTreeWarp::isOnEdge(), ossimAnnotationMultiPolyLineObject::isPointWithin(), ossimAnnotationEllipseObject::isPointWithin(), ossimAnnotationMultiEllipseObject::isPointWithin(), ossimAnnotationLineObject::isPointWithin(), ossimAnnotationPolyObject::isPointWithin(), ossimLine::isPointWithin(), ossimAnnotationGdBitmapFont::isPointWithin(), ossimPolyLine::isWithin(), ossimSpot5Model::lineSampleHeightToWorld(), ossimImageElevationHandler::pointHasCoverage(), and ossimGeneralRasterElevHandler::pointHasCoverage().

782 {
784  {
785  return ((pt.x >= (ul().x-epsilon)) &&
786  (pt.x <= (ur().x+epsilon)) &&
787  (pt.y >= (ul().y-epsilon)) &&
788  (pt.y <= (ll().y+epsilon)));
789  }
790  return ((pt.x >= (ul().x-epsilon)) &&
791  (pt.x <= (ur().x+epsilon)) &&
792  (pt.y <= (ul().y+epsilon)) &&
793  (pt.y >= (ll().y-epsilon)));
794 }
ossim_uint32 x
ossim_uint32 y
const ossimDpt & ul() const
Definition: ossimDrect.h:339
double y
Definition: ossimDpt.h:165
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
const ossimDpt & ur() const
Definition: ossimDrect.h:340
double x
Definition: ossimDpt.h:164
const ossimDpt & ll() const
Definition: ossimDrect.h:342

◆ pointWithin() [2/2]

bool ossimDrect::pointWithin ( const ossimFpt pt,
double  epsilon = 0.0 
) const
inline

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

Definition at line 799 of file ossimDrect.h.

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

800 {
802  {
803  return ((pt.x >= (ul().x-epsilon)) &&
804  (pt.x <= (ur().x+epsilon)) &&
805  (pt.y >= (ul().y-epsilon)) &&
806  (pt.y <= (ll().y+epsilon)));
807  }
808  return ((pt.x >= (ul().x-epsilon)) &&
809  (pt.x <= (ur().x+epsilon)) &&
810  (pt.y <= (ul().y+epsilon)) &&
811  (pt.y >= (ll().y-epsilon)));
812 }
ossim_uint32 x
ossim_uint32 y
const ossimDpt & ul() const
Definition: ossimDrect.h:339
ossim_float32 x
Definition: ossimFpt.h:70
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
const ossimDpt & ur() const
Definition: ossimDrect.h:340
const ossimDpt & ll() const
Definition: ossimDrect.h:342
ossim_float32 y
Definition: ossimFpt.h:71

◆ print()

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

Definition at line 635 of file ossimDrect.cpp.

References toString().

Referenced by operator<<().

636 {
637  os << toString();
638 }
ossimString toString() const
Definition: ossimDrect.cpp:516

◆ saveState()

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

Definition at line 605 of file ossimDrect.cpp.

References ossimKeywordlist::add(), toString(), and ossimKeywordNames::TYPE_KW.

607 {
608  kwl.add(prefix,
610  "ossimDrect",
611  true);
612 
613  kwl.add(prefix, "rect", toString());
614 
615  return true;
616 }
static const char * TYPE_KW
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
ossimString toString() const
Definition: ossimDrect.cpp:516

◆ set_ll()

void ossimDrect::set_ll ( const ossimDpt pt)
inline

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

Definition at line 699 of file ossimDrect.h.

References theLlCorner, theLrCorner, theUlCorner, ossimDpt::x, and ossimDpt::y.

700 {
701  theLlCorner = pt;
702  theUlCorner.x = pt.x;
703  theLrCorner.y = pt.y;
704 }
ossimDpt theLlCorner
Definition: ossimDrect.h:620
double y
Definition: ossimDpt.h:165
ossimDpt theLrCorner
Definition: ossimDrect.h:619
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164

◆ set_llx()

void ossimDrect::set_llx ( ossim_float64  x)
inline

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

Definition at line 763 of file ossimDrect.h.

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

764 {
765  theLlCorner.x = x;
766  theUlCorner.x = x;
767 }
ossim_uint32 x
ossimDpt theLlCorner
Definition: ossimDrect.h:620
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164

◆ set_lly()

void ossimDrect::set_lly ( ossim_float64  y)
inline

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

Definition at line 772 of file ossimDrect.h.

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

773 {
774  theLlCorner.y = y;
775  theLrCorner.y = y;
776 }
ossimDpt theLlCorner
Definition: ossimDrect.h:620
ossim_uint32 y
double y
Definition: ossimDpt.h:165
ossimDpt theLrCorner
Definition: ossimDrect.h:619

◆ set_lr()

void ossimDrect::set_lr ( const ossimDpt pt)
inline

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

Definition at line 689 of file ossimDrect.h.

References theLlCorner, theLrCorner, theUrCorner, ossimDpt::x, and ossimDpt::y.

690 {
691  theLrCorner = pt;
692  theUrCorner.x = pt.x;
693  theLlCorner.y = pt.y;
694 }
ossimDpt theLlCorner
Definition: ossimDrect.h:620
double y
Definition: ossimDpt.h:165
ossimDpt theUrCorner
Definition: ossimDrect.h:618
ossimDpt theLrCorner
Definition: ossimDrect.h:619
double x
Definition: ossimDpt.h:164

◆ set_lrx()

void ossimDrect::set_lrx ( ossim_float64  x)
inline

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

Definition at line 745 of file ossimDrect.h.

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

Referenced by ossimImageGeometry::getBoundingRect(), and stretchOut().

746 {
747  theLrCorner.x = x;
748  theUrCorner.x = x;
749 }
ossim_uint32 x
ossimDpt theUrCorner
Definition: ossimDrect.h:618
ossimDpt theLrCorner
Definition: ossimDrect.h:619
double x
Definition: ossimDpt.h:164

◆ set_lry()

void ossimDrect::set_lry ( ossim_float64  y)
inline

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

Definition at line 754 of file ossimDrect.h.

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

Referenced by ossimImageGeometry::getBoundingRect(), and stretchOut().

755 {
756  theLrCorner.y = y;
757  theLlCorner.y = y;
758 }
ossimDpt theLlCorner
Definition: ossimDrect.h:620
ossim_uint32 y
double y
Definition: ossimDpt.h:165
ossimDpt theLrCorner
Definition: ossimDrect.h:619

◆ set_ul()

void ossimDrect::set_ul ( const ossimDpt pt)
inline

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

Definition at line 669 of file ossimDrect.h.

References theLlCorner, theUlCorner, theUrCorner, ossimDpt::x, and ossimDpt::y.

670 {
671  theUlCorner = pt;
672  theUrCorner.y = pt.y;
673  theLlCorner.x = pt.x;
674 }
ossimDpt theLlCorner
Definition: ossimDrect.h:620
double y
Definition: ossimDpt.h:165
ossimDpt theUrCorner
Definition: ossimDrect.h:618
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164

◆ set_ulx()

void ossimDrect::set_ulx ( ossim_float64  x)
inline

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

Definition at line 709 of file ossimDrect.h.

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

Referenced by ossimImageGeometry::getBoundingRect(), and stretchOut().

710 {
711  theUlCorner.x = x;
712  theLlCorner.x = x;
713 }
ossim_uint32 x
ossimDpt theLlCorner
Definition: ossimDrect.h:620
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164

◆ set_uly()

void ossimDrect::set_uly ( ossim_float64  y)
inline

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

Definition at line 718 of file ossimDrect.h.

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

Referenced by ossimImageGeometry::getBoundingRect(), and stretchOut().

719 {
720  theUlCorner.y = y;
721  theUrCorner.y = y;
722 }
ossim_uint32 y
double y
Definition: ossimDpt.h:165
ossimDpt theUrCorner
Definition: ossimDrect.h:618
ossimDpt theUlCorner
Definition: ossimDrect.h:617

◆ set_ur()

void ossimDrect::set_ur ( const ossimDpt pt)
inline

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

Definition at line 679 of file ossimDrect.h.

References theLrCorner, theUlCorner, theUrCorner, ossimDpt::x, and ossimDpt::y.

680 {
681  theUrCorner = pt;
682  theUlCorner.y = pt.y;
683  theLrCorner.x = pt.x;
684 }
double y
Definition: ossimDpt.h:165
ossimDpt theUrCorner
Definition: ossimDrect.h:618
ossimDpt theLrCorner
Definition: ossimDrect.h:619
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164

◆ set_urx()

void ossimDrect::set_urx ( ossim_float64  x)
inline

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

Definition at line 727 of file ossimDrect.h.

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

728 {
729  theUrCorner.x = x;
730  theLrCorner.x = x;
731 }
ossim_uint32 x
ossimDpt theUrCorner
Definition: ossimDrect.h:618
ossimDpt theLrCorner
Definition: ossimDrect.h:619
double x
Definition: ossimDpt.h:164

◆ set_ury()

void ossimDrect::set_ury ( ossim_float64  y)
inline

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

Definition at line 736 of file ossimDrect.h.

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

737 {
738  theUrCorner.y = y;
739  theUlCorner.y = y;
740 }
ossim_uint32 y
double y
Definition: ossimDpt.h:165
ossimDpt theUrCorner
Definition: ossimDrect.h:618
ossimDpt theUlCorner
Definition: ossimDrect.h:617

◆ setOrientMode()

void ossimDrect::setOrientMode ( ossimCoordSysOrientMode  mode)
inline

Definition at line 415 of file ossimDrect.h.

415 { theOrientMode = mode; }
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622

◆ size()

ossimDpt ossimDrect::size ( ) const
inline

Definition at line 524 of file ossimDrect.h.

Referenced by ossimIgen::initializeChain(), and ossimSensorModel::setImageRect().

524 { return ossimDpt(width(), height()); }
ossim_float64 width() const
Definition: ossimDrect.h:522
ossim_float64 height() const
Definition: ossimDrect.h:517

◆ splitToQuad()

void ossimDrect::splitToQuad ( ossimDrect ulRect,
ossimDrect urRect,
ossimDrect lrRect,
ossimDrect llRect 
)

Will subdivide this rect into four partitions.

Definition at line 716 of file ossimDrect.cpp.

References ll(), lr(), midPoint(), OSSIM_LEFT_HANDED, ossimDrect(), theOrientMode, ul(), ur(), ossimIpt::x, ossimDpt::x, ossimIpt::y, and ossimDpt::y.

720 {
721  ossimDpt ulPt = this->ul();
722  ossimDpt urPt = this->ur();
723  ossimDpt lrPt = this->lr();
724  ossimDpt llPt = this->ll();
725  ossimIpt midPt = this->midPoint();
726 
727  ulRect = ossimDrect(ulPt.x,
728  ulPt.y,
729  midPt.x,
730  midPt.y,
731  theOrientMode);
732 
733  urRect = ossimDrect(midPt.x,
734  ulPt.y,
735  urPt.x,
736  midPt.y,
737  theOrientMode);
738 
740  {
741  lrRect = ossimDrect(midPt.x,
742  midPt.y,
743  lrPt.x,
744  theOrientMode);
745  llRect = ossimDrect(ulPt.x,
746  midPt.y,
747  midPt.x,
748  llPt.y,
749  theOrientMode);
750  }
751  else
752  {
753  lrRect = ossimDrect(midPt.x,
754  midPt.y,
755  lrPt.x,
756  theOrientMode);
757  llRect = ossimDrect(ulPt.x,
758  midPt.y,
759  midPt.x,
760  llPt.y,
761  theOrientMode);
762  }
763 
764 }
const ossimDpt & ul() const
Definition: ossimDrect.h:339
double y
Definition: ossimDpt.h:165
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt midPoint() const
Definition: ossimDrect.h:817
ossim_int32 y
Definition: ossimIpt.h:142
const ossimDpt & ur() const
Definition: ossimDrect.h:340
double x
Definition: ossimDpt.h:164
ossim_int32 x
Definition: ossimIpt.h:141
const ossimDpt & ll() const
Definition: ossimDrect.h:342
const ossimDpt & lr() const
Definition: ossimDrect.h:341

◆ stretchOut()

void ossimDrect::stretchOut ( )

Stretches this rectangle out to integer boundaries.

Definition at line 379 of file ossimDrect.cpp.

References OSSIM_LEFT_HANDED, set_lrx(), set_lry(), set_ulx(), set_uly(), theLrCorner, theOrientMode, theUlCorner, ossimDpt::x, and ossimDpt::y.

Referenced by ossimGdalOgrVectorAnnotation::computeBoundingRect(), ossimImageSourceSequencer::initialize(), and ossimIgen::initializeChain().

380 {
381  set_ulx(floor(theUlCorner.x));
382  set_lrx(ceil(theLrCorner.x));
383 
385  {
386  set_uly(floor(theUlCorner.y));
387  set_lry(ceil(theLrCorner.y));
388  }
389  else
390  {
391  set_uly(ceil(theUlCorner.y));
392  set_lry(floor(theLrCorner.y));
393  }
394 }
void set_uly(ossim_float64 y)
Definition: ossimDrect.h:718
void set_ulx(ossim_float64 x)
Definition: ossimDrect.h:709
double y
Definition: ossimDpt.h:165
void set_lry(ossim_float64 y)
Definition: ossimDrect.h:754
ossimDpt theLrCorner
Definition: ossimDrect.h:619
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164
void set_lrx(ossim_float64 x)
Definition: ossimDrect.h:745

◆ stretchToTileBoundary()

void ossimDrect::stretchToTileBoundary ( const ossimDpt widthHeight)

Will stretch the rect to the passed in tiled boundary.

Definition at line 396 of file ossimDrect.cpp.

References ossim::almostEqual(), lr(), OSSIM_LEFT_HANDED, ossimDrect(), theLrCorner, theOrientMode, theUlCorner, ul(), ossimDpt::x, and ossimDpt::y.

Referenced by ossimIgenGenerator::generateGeoTiledSpecList().

397 {
398  ossimDpt ul;
399  ossimDpt lr;
400  ossim_int32 evenDivision=0;
401 
403  {
404  ul.x = theUlCorner.x;
405  if( fmod(theUlCorner.x, widthHeight.x) != 0)
406  {
407  ul.x = ((long)(ul.x / widthHeight.x))*widthHeight.x;
408  if(ul.x > theUlCorner.x)
409  {
410  ul.x -= widthHeight.x;
411  }
412  }
413  ul.y = theUlCorner.y;
414  if( fmod(theUlCorner.y, widthHeight.y) != 0)
415  {
416  ul.y = ((long)(ul.y / widthHeight.y))*widthHeight.y;
417  if(ul.y > theUlCorner.y)
418  {
419  ul.y -= widthHeight.y;
420  }
421  }
422 
423  evenDivision = fmod(theLrCorner.x, widthHeight.x) == 0;
424  lr.x = theLrCorner.x;
425  if(!evenDivision)
426  {
427  lr.x = ((long)((lr.x)/widthHeight.x)) * widthHeight.x;
428  if(lr.x < theLrCorner.x)
429  {
430  lr.x += widthHeight.x;
431  }
432  }
433 
434  evenDivision = fmod(theLrCorner.y, widthHeight.y) == 0;
435  lr.y = theLrCorner.y;
436  if(!evenDivision)
437  {
438  lr.y = ((long)(lr.y/widthHeight.y)) * widthHeight.y;
439  if(lr.y < theLrCorner.y)
440  {
441  lr.y += widthHeight.y;
442  }
443  }
444  }
445  else
446  {
447  ul.x = theUlCorner.x;
448  ul.y = theUlCorner.y;
449  if( !ossim::almostEqual(fmod(theUlCorner.x, widthHeight.x), 0.0))
450  {
451  ul.x = ((long)(ul.x/ widthHeight.x))*widthHeight.x;
452  if(ul.x > theUlCorner.x)
453  {
454  ul.x -= widthHeight.x;
455  }
456  }
457  if( !ossim::almostEqual((double)fmod(theUlCorner.y, widthHeight.y), 0.0) )
458  {
459  ul.y = ((long)(ul.y / widthHeight.y))*widthHeight.y;
460  if(ul.y < theUlCorner.y)
461  {
462  ul.y += widthHeight.y;
463  }
464  }
465 
466  evenDivision = ossim::almostEqual( fmod(theLrCorner.x, widthHeight.x), 0.0);
467  lr.x = theLrCorner.x;
468  if(!evenDivision)
469  {
470  lr.x = ((long)(lr.x/widthHeight.x)) * widthHeight.x;
471  if(lr.x < theLrCorner.x)
472  {
473  lr.x += widthHeight.x;
474  }
475  }
476 
477  evenDivision = ossim::almostEqual(fmod(theLrCorner.y, widthHeight.y), 0.0);
478  lr.y = theLrCorner.y;
479  if(!evenDivision)
480  {
481  lr.y = ((long)(lr.y/widthHeight.y)) * widthHeight.y;
482 
483  if(lr.y > theLrCorner.y)
484  {
485  lr.y -= widthHeight.y;
486  }
487  }
488  }
489 
490  *this = ossimDrect(ul, lr, theOrientMode);
491 }
bool almostEqual(T x, T y, T tolerance=FLT_EPSILON)
Definition: ossimCommon.h:53
const ossimDpt & ul() const
Definition: ossimDrect.h:339
double y
Definition: ossimDpt.h:165
ossimDpt theLrCorner
Definition: ossimDrect.h:619
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164
const ossimDpt & lr() const
Definition: ossimDrect.h:341
int ossim_int32

◆ toRect()

bool ossimDrect::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 543 of file ossimDrect.cpp.

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

Referenced by loadState().

544 {
545  bool result = false;
546 
547 
548  std::istringstream in(rectString);
549  ossim::skipws(in);
550  char charString[2];
551  charString[1] = '\0';
552  ossimString interior;
553  if(in.peek() == '(')
554  {
555  in.ignore();
556  while((in.peek() != ')')&&
557  (in.peek() != '\n') &&
558  in.good())
559  {
560  charString[0] = in.get();
561  interior += charString;
562  }
563  if(in.peek() == ')')
564  {
565  result = true;
566  }
567  }
568  if(result)
569  {
570  std::vector<ossimString> splitArray;
571  interior.split(splitArray, ",");
572 
573  // assume left handed
574  if(splitArray.size() >= 4)
575  {
576  ossim_float64 x = splitArray[0].toDouble();
577  ossim_float64 y = splitArray[1].toDouble();
578  ossim_float64 w = splitArray[2].toDouble();
579  ossim_float64 h = splitArray[3].toDouble();
580  ossimString orientation = "lh";
581  if(splitArray.size() == 5)
582  {
583  orientation = splitArray[4].downcase();
584  }
585  if(orientation == "lh")
586  {
587  // origin upper left
588  *this = ossimDrect(x,y,x + (w-1), y+h-1, OSSIM_LEFT_HANDED);
589  }
590  else
591  {
592  // origin lower left so construct and make an upper left
593  *this = ossimDrect(x,y+(h-1),x + (w-1), y, OSSIM_RIGHT_HANDED);
594  }
595  }
596  else
597  {
598  result = false;
599  }
600 
601  }
602  return result;
603 }
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.
double ossim_float64
OSSIM_DLL std::istream & skipws(std::istream &in)
Definition: ossimCommon.cpp:38
static ossimString downcase(const ossimString &aString)
Definition: ossimString.cpp:48
std::basic_istringstream< char > istringstream
Class for char input memory streams.
Definition: ossimIosFwd.h:32

◆ toString()

ossimString ossimDrect::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 516 of file ossimDrect.cpp.

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

Referenced by print(), and saveState().

517 {
518  ossimString result="(";
519 
521  {
522  ossimDpt origin = ul();
523  result += (ossimString::toString(origin.x,20) + ",");
524  result += (ossimString::toString(origin.y,20) + ",");
525  result += (ossimString::toString(width(),20) + ",");
526  result += (ossimString::toString(height(),20) + ",");
527  result += "LH";
528  }
529  else
530  {
531  ossimDpt origin = ll();
532  result += (ossimString::toString(origin.x,20) + ",");
533  result += (ossimString::toString(origin.y,20) + ",");
534  result += (ossimString::toString(width(),20) + ",");
535  result += (ossimString::toString(height(),20) + ",");
536  result += "RH";
537  }
538 
539  result += ")";
540  return result;
541 }
ossim_float64 width() const
Definition: ossimDrect.h:522
const ossimDpt & ul() const
Definition: ossimDrect.h:339
double y
Definition: ossimDpt.h:165
static ossimString toString(bool aValue)
Numeric to string methods.
ossim_float64 height() const
Definition: ossimDrect.h:517
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
double x
Definition: ossimDpt.h:164
const ossimDpt & ll() const
Definition: ossimDrect.h:342

◆ ul()

const ossimDpt& ossimDrect::ul ( ) const
inline

Definition at line 339 of file ossimDrect.h.

Referenced by ossimMapCompositionSource::addGeographicBottomGridLabels(), ossimMapCompositionSource::addGeographicGridLines(), ossimMapCompositionSource::addGeographicGridReseaux(), ossimMapCompositionSource::addGeographicLeftGridLabels(), ossimMapCompositionSource::addGeographicRightGridLabels(), ossimMapCompositionSource::addMeterGridLabels(), ossimMapCompositionSource::addMeterGridLines(), ossimMapCompositionSource::addMeterGridReseaux(), ossimCoarseGridModel::buildGrid(), ossimTiling::clampGeographic(), ossimPolygon::clipToRect(), clipToRect(), combine(), completely_within(), ossimGeographicAnnotationGrid::computeBoundingRect(), ossimAnnotationMultiPolyLineObject::computeBoundingRect(), ossimAnnotationMultiPolyObject::computeBoundingRect(), ossimGeoPdfReader::computeBoundingRect(), ossimQuadTreeWarp::create(), ossimAnnotationMultiPolyLineObject::draw(), ossimAnnotationPolyObject::draw(), ossimAnnotationMultiPolyObject::draw(), ossimAnnotationLineObject::draw(), ossimAnnotationMultiLineObject::draw(), ossimEsriShapeFileFilter::drawAnnotations(), ossimImageRenderer::fillTile(), ossimQuickbirdRpcModel::finishConstruction(), ossimplugins::ossimPleiadesModel::finishConstruction(), ossimplugins::ossimSpot6Model::finishConstruction(), ossimIgenGenerator::generateGeoTiledSpecList(), ossimIgenGenerator::generatePixelTiledSpecList(), ossimChipProcTool::getChip(), getCode(), ossimInfo::getImageBounds(), ossimImageGeometry::getImageEdgePoints(), ossimInfo::getImageGeometryInfo(), ossimInfo::getImageInfo(), ossimImageViewProjectionTransform::getImageToViewBounds(), ossimImageViewTransform::getImageToViewBounds(), ossimPolygon::getMinimumBoundingRect(), ossimAnnotationMultiPolyObject::getNewClippedObject(), ossimAnnotationMultiLineObject::getNewClippedObject(), ossimQuadTreeWarp::getNewQuads(), ossimOgrVectorTileSource::getNumberOfLines(), ossimOgrVectorTileSource::getNumberOfSamples(), ossimTiling::getOrigin(), ossimFgdcXmlDoc::getProjection(), ossimXmpInfo::getProjection(), ossimImageViewTransform::getScaleChangeImageToView(), ossimImageViewTransform::getScaleChangeViewToImage(), ossimQuadTreeWarp::getShift(), ossimIgenGenerator::getTileId(), ossimImageViewProjectionTransform::getViewSegments(), ossimImageViewTransform::getViewToImageBounds(), ossimMapProjectionInfo::initializeMembers(), ossimIgen::initThumbnailProjection(), intersects(), ossimQuadTreeWarp::isOnPoint(), ossimImageRenderer::ossimRendererSubRectInfo::isViewEqual(), ossimImageGeometry::localToWorld(), midPoint(), ossimImageGeometry::northUpAngle(), ossimplugins::ossimRadarSatModel::open(), ossimplugins::ossimRadarSat2RPCModel::open(), ossimplugins::ossimRadarSat2Model::open(), ossimTiledImageHash::operator()(), ossimTileHash::operator()(), ossimIrect::operator=(), ossimPolygon::operator=(), ossimPolygon::ossimPolygon(), ossimPolyLine::ossimPolyLine(), ossimAnnotationSource::pickObjects(), pointWithin(), ossimQuadTreeWarp::pruneTree(), ossimQuadTreeWarp::recursiveLoad(), ossimResampler::resampleTile(), ossimQuadTreeWarpNode::saveState(), ossimGpkgWriter::setProjectionTie(), ossimTilePatch::setRect(), ossimNadconNasDatum::shift(), ossimRpcSolver::solve(), ossimQuadTreeWarp::split(), splitToQuad(), stretchToTileBoundary(), toString(), ossimApplanixUtmModel::updateModel(), ossimSpectraboticsRedEdgeModel::updateModel(), ossimApplanixEcefModel::updateModel(), ossimIpodSensor::updateModel(), ossimSkyBoxLearSensor::updateModel(), ossimSonomaSensor::updateModel(), ossimGpkgWriter::writeGpkgContentsTable(), and ossimGpkgWriter::writeGpkgTileMatrixSetTable().

339 { return theUlCorner; }
ossimDpt theUlCorner
Definition: ossimDrect.h:617

◆ ur()

const ossimDpt& ossimDrect::ur ( ) const
inline

Definition at line 340 of file ossimDrect.h.

Referenced by ossimMapCompositionSource::addGeographicBottomGridLabels(), ossimMapCompositionSource::addGeographicGridLines(), ossimMapCompositionSource::addGeographicGridReseaux(), ossimMapCompositionSource::addGeographicLeftGridLabels(), ossimMapCompositionSource::addGeographicRightGridLabels(), ossimMapCompositionSource::addMeterGridLabels(), ossimMapCompositionSource::addMeterGridLines(), ossimMapCompositionSource::addMeterGridReseaux(), ossimPolygon::clipToRect(), clipToRect(), completely_within(), ossimGeoPdfReader::computeBoundingRect(), ossimQuadTreeWarp::create(), ossimQuickbirdRpcModel::finishConstruction(), ossimplugins::ossimPleiadesModel::finishConstruction(), ossimplugins::ossimSpot6Model::finishConstruction(), ossimIgenGenerator::generateGeoTiledSpecList(), ossimIgenGenerator::generatePixelTiledSpecList(), ossimInfo::getImageBounds(), ossimImageGeometry::getImageEdgePoints(), ossimInfo::getImageGeometryInfo(), ossimImageViewProjectionTransform::getImageToViewBounds(), ossimImageViewTransform::getImageToViewBounds(), ossimPolygon::getMinimumBoundingRect(), ossimQuadTreeWarp::getNewQuads(), ossimXmpInfo::getProjection(), ossimImageViewTransform::getScaleChangeImageToView(), ossimImageViewTransform::getScaleChangeViewToImage(), ossimQuadTreeWarp::getShift(), ossimImageViewProjectionTransform::getViewSegments(), ossimImageViewTransform::getViewToImageBounds(), ossimGpkgNsgTileMatrixExtentRecord::init(), ossimMapProjectionInfo::initializeMembers(), intersects(), ossimQuadTreeWarp::isOnPoint(), ossimImageRenderer::ossimRendererSubRectInfo::isViewEqual(), ossimImageGeometry::localToWorld(), midPoint(), ossimplugins::ossimRadarSatModel::open(), ossimplugins::ossimRadarSat2RPCModel::open(), ossimplugins::ossimRadarSat2Model::open(), ossimIrect::operator=(), ossimPolygon::operator=(), ossimPolygon::ossimPolygon(), ossimPolyLine::ossimPolyLine(), ossimAnnotationSource::pickObjects(), pointWithin(), ossimQuadTreeWarp::pruneTree(), ossimQuadTreeWarp::recursiveLoad(), ossimNadconNasDatum::shift(), ossimQuadTreeWarp::split(), splitToQuad(), ossimApplanixUtmModel::updateModel(), ossimSpectraboticsRedEdgeModel::updateModel(), ossimApplanixEcefModel::updateModel(), ossimIpodSensor::updateModel(), ossimSkyBoxLearSensor::updateModel(), and ossimSonomaSensor::updateModel().

340 { return theUrCorner; }
ossimDpt theUrCorner
Definition: ossimDrect.h:618

◆ width()

ossim_float64 ossimDrect::width ( ) const
inline

Returns the width of a rectangle.

Definition at line 522 of file ossimDrect.h.

Referenced by ossimChipperUtil::addCrossHairAnnotation(), ossimMapCompositionSource::addMeterGridLabels(), ATP::AtpAnnotatedImage::AtpAnnotatedImage(), ossimCoarseGridModel::buildGrid(), clip(), ossimGeographicAnnotationGrid::computeBoundingRect(), ossimAnnotationMultiPolyLineObject::computeBoundingRect(), ossimAnnotationMultiPolyObject::computeBoundingRect(), ossimSensorModel::computeGsd(), ossimGeographicAnnotationGrid::draw(), ossimImageRenderer::fillTile(), ossimQuickbirdRpcModel::finishConstruction(), ossimplugins::ossimSpot6Model::finishConstruction(), ossimplugins::ossimPleiadesModel::finishConstruction(), ossimInfo::getImageGeometryInfo(), ossimInfo::getImageInfo(), ossimKmlSuperOverlayReader::getNumberOfSamples(), ossimOgrVectorTileSource::getNumberOfSamples(), ossimImageViewTransform::getScaleChangeImageToView(), ossimImageViewTransform::getScaleChangeViewToImage(), ossimImageRenderer::ossimRendererSubRectInfo::getSplitFlags(), ossimIgenGenerator::getTileId(), ossimImageRenderer::initializeBoundingRects(), ossimNitfFileHeaderV2_0::initializeDisplayLevels(), ossimMapProjectionInfo::initializeMembers(), ossimImageViewProjectionTransform::initializeViewSize(), ossimIgen::initThumbnailProjection(), ossimSonomaSensor::loadState(), ossimImageElevationHandler::open(), ossimTiledImageHash::ossimTiledImageHash(), ossimTileHash::ossimTileHash(), ossimAnnotationGdBitmapFont::setCenterTextPosition(), ossimRpcSolver::solve(), ossimRpcSolver::solveCoefficients(), ossimQuadTreeWarp::split(), ossimImageRenderer::ossimRendererSubRectInfo::tooBig(), toString(), ossimImageRenderer::ossimRendererSubRectInfo::transformViewToImage(), ossimIpodSensor::updateModel(), ossimSkyBoxLearSensor::updateModel(), and ossimSonomaSensor::updateModel().

522 { return fabs(theLrCorner.x - theLlCorner.x) + 1.0; }
ossimDpt theLlCorner
Definition: ossimDrect.h:620
ossimDpt theLrCorner
Definition: ossimDrect.h:619
double x
Definition: ossimDpt.h:164

Friends And Related Function Documentation

◆ operator*

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

Definition at line 136 of file ossimDrect.h.

137  {
138  ossimDpt ul(rect.theUlCorner.x*scalar,
139  rect.theUlCorner.y*scalar);
140 
141  if(rect.theOrientMode == OSSIM_LEFT_HANDED)
142  {
143  return ossimDrect(ul.x,
144  ul.y,
145  ul.x+rect.width()*scalar-1,
146  ul.y+rect.height()*scalar-1,
147  rect.theOrientMode);
148  }
149  return ossimDrect(ul.x,
150  ul.y,
151  ul.x+rect.width()*scalar-1,
152  ul.y-(rect.height()*scalar-1),
153  rect.theOrientMode);
154 
155  }
ossim_float64 width() const
Definition: ossimDrect.h:522
const ossimDpt & ul() const
Definition: ossimDrect.h:339
double y
Definition: ossimDpt.h:165
ossim_float64 height() const
Definition: ossimDrect.h:517
ossimCoordSysOrientMode theOrientMode
Definition: ossimDrect.h:622
ossimDpt theUlCorner
Definition: ossimDrect.h:617
double x
Definition: ossimDpt.h:164

◆ operator<<

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

Definition at line 643 of file ossimDrect.cpp.

644 {
645  rect.print(os);
646 
647  return os;
648 }
void print(std::ostream &os) const
Definition: ossimDrect.cpp:635

Member Data Documentation

◆ theLlCorner

ossimDpt ossimDrect::theLlCorner
private

◆ theLrCorner

ossimDpt ossimDrect::theLrCorner
private

◆ theOrientMode

ossimCoordSysOrientMode ossimDrect::theOrientMode
private

◆ theUlCorner

ossimDpt ossimDrect::theUlCorner
private

◆ theUrCorner

ossimDpt ossimDrect::theUrCorner
private

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