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

#include <ossimQuadTreeWarp.h>

Public Member Functions

 ossimQuadTreeWarpNode ()
 
 ossimQuadTreeWarpNode (const ossimDrect &bounds, ossimQuadTreeWarpNode *parent=NULL, ossimQuadTreeWarpVertex *ulVertex=(ossimQuadTreeWarpVertex *) NULL, ossimQuadTreeWarpVertex *urVertex=(ossimQuadTreeWarpVertex *) NULL, ossimQuadTreeWarpVertex *lrVertex=(ossimQuadTreeWarpVertex *) NULL, ossimQuadTreeWarpVertex *llVertex=(ossimQuadTreeWarpVertex *) NULL)
 
 ~ossimQuadTreeWarpNode ()
 
bool hasValidVertices () const
 
void removeVertex (ossimQuadTreeWarpVertex *v)
 
void removeVertices ()
 
bool isLeaf () const
 
void clear ()
 
void removeChild (ossimQuadTreeWarpNode *node)
 
bool saveState (ossimKeywordlist &kwl, const char *prefix=0) const
 
bool loadState (const ossimKeywordlist &kwl, const char *prefix=0)
 

Public Attributes

ossimDrect theBoundingRect
 
ossimQuadTreeWarpVertextheUlVertex
 
ossimQuadTreeWarpVertextheUrVertex
 
ossimQuadTreeWarpVertextheLrVertex
 
ossimQuadTreeWarpVertextheLlVertex
 
ossimQuadTreeWarpNodetheParent
 
std::vector< ossimQuadTreeWarpNode * > theChildren
 

Friends

std::ostream & operator<< (std::ostream &out, const ossimQuadTreeWarpNode &rhs)
 

Detailed Description

Definition at line 63 of file ossimQuadTreeWarp.h.

Constructor & Destructor Documentation

◆ ossimQuadTreeWarpNode() [1/2]

ossimQuadTreeWarpNode::ossimQuadTreeWarpNode ( )

Definition at line 153 of file ossimQuadTreeWarp.cpp.

References ossimDrect::makeNan(), and theBoundingRect.

154  :
155  theUlVertex(NULL),
156  theUrVertex(NULL),
157  theLrVertex(NULL),
158  theLlVertex(NULL),
159  theParent(NULL)
160 {
162 }
void makeNan()
Definition: ossimDrect.h:388
ossimQuadTreeWarpNode * theParent
ossimQuadTreeWarpVertex * theLrVertex
ossimQuadTreeWarpVertex * theUlVertex
ossimQuadTreeWarpVertex * theLlVertex
ossimQuadTreeWarpVertex * theUrVertex

◆ ossimQuadTreeWarpNode() [2/2]

ossimQuadTreeWarpNode::ossimQuadTreeWarpNode ( const ossimDrect bounds,
ossimQuadTreeWarpNode parent = NULL,
ossimQuadTreeWarpVertex ulVertex = (ossimQuadTreeWarpVertex*)NULL,
ossimQuadTreeWarpVertex urVertex = (ossimQuadTreeWarpVertex*)NULL,
ossimQuadTreeWarpVertex lrVertex = (ossimQuadTreeWarpVertex*)NULL,
ossimQuadTreeWarpVertex llVertex = (ossimQuadTreeWarpVertex*)NULL 
)

Definition at line 164 of file ossimQuadTreeWarp.cpp.

171  :
172  theBoundingRect(bounds),
173  theUlVertex(ulVertex),
174  theUrVertex(urVertex),
175  theLrVertex(lrVertex),
176  theLlVertex(llVertex),
177  theParent(parent)
178 {
179 }
ossimQuadTreeWarpNode * theParent
ossimQuadTreeWarpVertex * theLrVertex
ossimQuadTreeWarpVertex * theUlVertex
ossimQuadTreeWarpVertex * theLlVertex
ossimQuadTreeWarpVertex * theUrVertex

◆ ~ossimQuadTreeWarpNode()

ossimQuadTreeWarpNode::~ossimQuadTreeWarpNode ( )

Definition at line 181 of file ossimQuadTreeWarp.cpp.

References removeVertices(), theLlVertex, theLrVertex, theUlVertex, and theUrVertex.

182 {
183  removeVertices();
184 
185  theUlVertex = NULL;
186  theUrVertex = NULL;
187  theLrVertex = NULL;
188  theLlVertex = NULL;
189 
190 }
ossimQuadTreeWarpVertex * theLrVertex
ossimQuadTreeWarpVertex * theUlVertex
ossimQuadTreeWarpVertex * theLlVertex
ossimQuadTreeWarpVertex * theUrVertex

Member Function Documentation

◆ clear()

void ossimQuadTreeWarpNode::clear ( )

Definition at line 235 of file ossimQuadTreeWarp.cpp.

References ossimDrect::makeNan(), removeVertex(), theBoundingRect, theChildren, theLlVertex, theLrVertex, theParent, theUlVertex, and theUrVertex.

236 {
238  theChildren.clear();
239  theParent = NULL;
244 }
void makeNan()
Definition: ossimDrect.h:388
ossimQuadTreeWarpNode * theParent
ossimQuadTreeWarpVertex * theLrVertex
std::vector< ossimQuadTreeWarpNode * > theChildren
void removeVertex(ossimQuadTreeWarpVertex *v)
ossimQuadTreeWarpVertex * theUlVertex
ossimQuadTreeWarpVertex * theLlVertex
ossimQuadTreeWarpVertex * theUrVertex

◆ hasValidVertices()

bool ossimQuadTreeWarpNode::hasValidVertices ( ) const

Definition at line 192 of file ossimQuadTreeWarp.cpp.

References theLlVertex, theLrVertex, theUlVertex, and theUrVertex.

Referenced by ossimQuadTreeWarp::findVertex(), ossimQuadTreeWarp::getShift(), and ossimQuadTreeWarp::recursiveLoad().

193 {
195 }
ossimQuadTreeWarpVertex * theLrVertex
ossimQuadTreeWarpVertex * theUlVertex
ossimQuadTreeWarpVertex * theLlVertex
ossimQuadTreeWarpVertex * theUrVertex

◆ isLeaf()

bool ossimQuadTreeWarpNode::isLeaf ( ) const

◆ loadState()

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

Definition at line 284 of file ossimQuadTreeWarp.cpp.

References ossimKeywordlist::find(), ossimKeywordNames::LR_X_KW, ossimKeywordNames::LR_Y_KW, theBoundingRect, ossimKeywordNames::UL_X_KW, and ossimKeywordNames::UL_Y_KW.

Referenced by ossimQuadTreeWarp::loadState(), and ossimQuadTreeWarp::recursiveLoad().

286 {
287  const char* ul_x = kwl.find(prefix, ossimKeywordNames::UL_X_KW);
288  const char* ul_y = kwl.find(prefix, ossimKeywordNames::UL_Y_KW);
289  const char* lr_x = kwl.find(prefix, ossimKeywordNames::LR_X_KW);
290  const char* lr_y = kwl.find(prefix, ossimKeywordNames::LR_Y_KW);
291 
292  if(ul_x&&ul_y&&lr_x&&lr_y)
293  {
294  theBoundingRect = ossimDrect(ossimString(ul_x).toDouble(),
295  ossimString(ul_y).toDouble(),
296  ossimString(lr_x).toDouble(),
297  ossimString(lr_y).toDouble());
298  return true;
299  }
300 
301  return false;
302 }
static const char * LR_X_KW
const char * find(const char *key) const
static const char * LR_Y_KW
static const char * UL_X_KW
static const char * UL_Y_KW

◆ removeChild()

void ossimQuadTreeWarpNode::removeChild ( ossimQuadTreeWarpNode node)

Definition at line 246 of file ossimQuadTreeWarp.cpp.

References theChildren.

247 {
248  std::vector<ossimQuadTreeWarpNode*>::iterator iter = theChildren.begin();
249 
250  while(iter != theChildren.end())
251  {
252  if(*iter == node)
253  {
254  theChildren.erase(iter);
255  return;
256  }
257  ++iter;
258  }
259 }
std::vector< ossimQuadTreeWarpNode * > theChildren

◆ removeVertex()

void ossimQuadTreeWarpNode::removeVertex ( ossimQuadTreeWarpVertex v)

Definition at line 197 of file ossimQuadTreeWarp.cpp.

References ossimQuadTreeWarpVertex::removeNode(), theLlVertex, theLrVertex, theUlVertex, and theUrVertex.

Referenced by clear(), ossimQuadTreeWarpVertex::removeNode(), removeVertices(), and ossimQuadTreeWarp::split().

198 {
199  if(!v) return;
200 
201  if(theUlVertex == v)
202  {
203  theUlVertex = NULL;
204  v->removeNode(this);
205  }
206  if(theUrVertex == v)
207  {
208  theUrVertex = NULL;
209  v->removeNode(this);
210  }
211  if(theLrVertex == v)
212  {
213  theLrVertex = NULL;
214  v->removeNode(this);
215  }
216  if(theLlVertex == v)
217  {
218  theLlVertex = NULL;
219  v->removeNode(this);
220  }
221 }
void removeNode(ossimQuadTreeWarpNode *node)
ossimQuadTreeWarpVertex * theLrVertex
ossimQuadTreeWarpVertex * theUlVertex
ossimQuadTreeWarpVertex * theLlVertex
ossimQuadTreeWarpVertex * theUrVertex

◆ removeVertices()

void ossimQuadTreeWarpNode::removeVertices ( )

Definition at line 222 of file ossimQuadTreeWarp.cpp.

References removeVertex(), theLlVertex, theLrVertex, theUlVertex, and theUrVertex.

Referenced by ~ossimQuadTreeWarpNode().

223 {
228 }
ossimQuadTreeWarpVertex * theLrVertex
void removeVertex(ossimQuadTreeWarpVertex *v)
ossimQuadTreeWarpVertex * theUlVertex
ossimQuadTreeWarpVertex * theLlVertex
ossimQuadTreeWarpVertex * theUrVertex

◆ saveState()

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

Definition at line 261 of file ossimQuadTreeWarp.cpp.

References ossimKeywordlist::add(), ossimDrect::lr(), ossimKeywordNames::LR_X_KW, ossimKeywordNames::LR_Y_KW, theBoundingRect, ossimDrect::ul(), ossimKeywordNames::UL_X_KW, ossimKeywordNames::UL_Y_KW, ossimDpt::x, and ossimDpt::y.

Referenced by ossimQuadTreeWarp::recursiveSave().

263 {
264  kwl.add(prefix,
266  theBoundingRect.ul().x,
267  true);
268  kwl.add(prefix,
270  theBoundingRect.ul().y,
271  true);
272  kwl.add(prefix,
274  theBoundingRect.lr().x,
275  true);
276  kwl.add(prefix,
278  theBoundingRect.lr().y,
279  true);
280 
281  return true;
282 }
static const char * LR_X_KW
const ossimDpt & ul() const
Definition: ossimDrect.h:339
double y
Definition: ossimDpt.h:165
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
static const char * LR_Y_KW
static const char * UL_X_KW
static const char * UL_Y_KW
double x
Definition: ossimDpt.h:164
const ossimDpt & lr() const
Definition: ossimDrect.h:341

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  out,
const ossimQuadTreeWarpNode rhs 
)
friend

Definition at line 1620 of file ossimQuadTreeWarp.cpp.

1622 {
1623  out << "Bounding rect: " << rhs.theBoundingRect << std::endl;
1624 
1625  if(rhs.theUlVertex)
1626  {
1627  out << "ulVertex:\n" << *rhs.theUlVertex<< std::endl;
1628  }
1629  if(rhs.theUrVertex)
1630  {
1631  out << "urVertex:\n" << *rhs.theUrVertex<< std::endl;
1632  }
1633  if(rhs.theLrVertex)
1634  {
1635  out << "lrVertex:\n" << *rhs.theLrVertex<< std::endl;
1636  }
1637  if(rhs.theLlVertex)
1638  {
1639  out << "llVertex:\n" << *rhs.theLlVertex;
1640  }
1641 
1642  return out;
1643 }
ossimQuadTreeWarpVertex * theLrVertex
ossimQuadTreeWarpVertex * theUlVertex
ossimQuadTreeWarpVertex * theLlVertex
ossimQuadTreeWarpVertex * theUrVertex

Member Data Documentation

◆ theBoundingRect

ossimDrect ossimQuadTreeWarpNode::theBoundingRect

◆ theChildren

std::vector<ossimQuadTreeWarpNode*> ossimQuadTreeWarpNode::theChildren

◆ theLlVertex

ossimQuadTreeWarpVertex* ossimQuadTreeWarpNode::theLlVertex

◆ theLrVertex

ossimQuadTreeWarpVertex* ossimQuadTreeWarpNode::theLrVertex

◆ theParent

ossimQuadTreeWarpNode* ossimQuadTreeWarpNode::theParent

Definition at line 102 of file ossimQuadTreeWarp.h.

Referenced by clear(), and ossimQuadTreeWarp::recursiveLoad().

◆ theUlVertex

ossimQuadTreeWarpVertex* ossimQuadTreeWarpNode::theUlVertex

◆ theUrVertex

ossimQuadTreeWarpVertex* ossimQuadTreeWarpNode::theUrVertex

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