27 # define MAX(x,y) ((x)>(y)?(x):(y)) 28 # define MIN(x,y) ((x)>(y)?(y):(x)) 33 theUlCorner(rect.ul()),
34 theUrCorner(rect.ur()),
35 theLrCorner(rect.lr()),
36 theLlCorner(rect.ll()),
37 theOrientMode(rect.orientMode())
54 for(index = 1; index < points.size();index++)
64 *
this =
ossimIrect(minx, miny, maxx, maxy, mode);
68 *
this =
ossimIrect(minx,maxy, maxx, miny, mode);
100 *
this =
ossimIrect(minx, miny, maxx, maxy, mode);
104 *
this =
ossimIrect(minx,maxy, maxx, miny, mode);
120 : theOrientMode (mode)
129 *
this =
ossimIrect(minx, miny, maxx, maxy, mode);
131 *
this =
ossimIrect(minx,maxy, maxx, miny, mode);
144 bool resized =
false;
146 int dx = width_height.
x -
width();
147 int dy = width_height.
y -
height();
151 dx = (int) ceil((
double)dx/2.0);
162 dy = (int) ceil((
double)dy/2.0);
168 dy = (int) ceil((
double)dy/2.0);
200 rtn = ((ulx <= lrx) && (uly <= lry));
206 rtn = ((ulx <= lrx) && (uly <= lry));
222 ul.
x = ((
ul.
x / tileWidthHeight.
x))*tileWidthHeight.
x;
225 ul.
x -= tileWidthHeight.
x;
231 ul.
y = ((
ul.
y / tileWidthHeight.
y))*tileWidthHeight.
y;
234 ul.
y -= tileWidthHeight.
y;
243 if(w%tileWidthHeight.
x)
245 nw += tileWidthHeight.
x;
247 if(h%tileWidthHeight.
y)
249 nh += tileWidthHeight.
y;
261 ul.
x = ((
ul.
x/ tileWidthHeight.
x))*tileWidthHeight.
x;
264 ul.
x -= tileWidthHeight.
x;
269 ul.
y = ((
ul.
y / tileWidthHeight.
y))*tileWidthHeight.
y;
272 ul.
y += tileWidthHeight.
y;
291 if(w%tileWidthHeight.
x)
293 nw += tileWidthHeight.
x;
295 if(h%tileWidthHeight.
y)
297 nh += tileWidthHeight.
y;
367 charString[1] =
'\0';
372 while((in.peek() !=
')')&&
373 (in.peek() !=
'\n') &&
376 charString[0] = in.get();
377 interior += charString;
386 std::vector<ossimString> splitArray;
387 interior.
split(splitArray,
",");
390 if(splitArray.size() >= 4)
397 if(splitArray.size() == 5)
399 orientation = splitArray[4].
downcase();
401 if(orientation ==
"lh")
523 if( (x1 < x0) || (y1 < y0) )
533 if((x1 < x0) || (y1 < y0))
590 const char* prefix)
const 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");
651 if(ulx&&uly&&lrx&&lry)
681 center_point.
x = d / 4.0;
684 center_point.
y = d / 4.0;
void print(std::ostream &os) const
bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
std::ostream & operator<<(std::ostream &os, const ossimIrect &rect)
Represents serializable keyword/value map.
const char * find(const char *key) const
const ossimDpt & ul() const
ossim_uint32 height() const
static ossimString toString(bool aValue)
Numeric to string methods.
const ossimIpt & ul() const
void split(std::vector< ossimString > &result, const ossimString &separatorList, bool skipBlankFields=false) const
Splits this string into a vector of strings (fields) using the delimiter list specified.
bool intersects(const ossimIrect &rect) const
const ossimIpt & ll() const
static const char * TYPE_KW
const ossimIrect & expand(const ossimIpt &padding)
ossimCoordSysOrientMode orientMode() const
bool insureMinimumSize(const ossimIpt &width_height)
Guarantees that this rect will be at least w X h big.
bool completely_within(const ossimIrect &rect) const
ossimString toString() const
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
OSSIM_DLL std::istream & skipws(std::istream &in)
bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
unsigned int ossim_uint32
const ossimIrect & operator=(const ossimIrect &rect)
const ossimIpt & lr() const
static ossimString downcase(const ossimString &aString)
ossim_uint32 width() const
ossimIrect clipToRect(const ossimIrect &rect) const
const ossimIpt & ur() const
ossimCoordSysOrientMode theOrientMode
const ossimDpt & ur() const
bool toRect(const ossimString &rectString)
expected Format: form 1: ( 30, -90, 512, 512, [LH|RH] ) -x- -y- -w- -h- -Right or left handed- ...
void stretchToTileBoundary(const ossimIpt &tileWidthHeight)
const ossimDpt & ll() const
std::basic_istringstream< char > istringstream
Class for char input memory streams.
const ossimDpt & lr() const
ossimIrect combine(const ossimIrect &rect) const
void getCenter(ossimDpt ¢er_point) const
std::basic_ostream< char > ostream
Base class for char output streams.