OSSIM - Open Source Software Image Map
Version 1.9.0 (20180803)
|
#include <ossimQuadTreeWarp.h>
Public Member Functions | |
ossimQuadTreeWarp () | |
ossimQuadTreeWarp (const ossimDrect &boundingRect, const ossimDpt &ulShift=ossimDpt(0, 0), const ossimDpt &urShift=ossimDpt(0, 0), const ossimDpt &lrShift=ossimDpt(0, 0), const ossimDpt &llShift=ossimDpt(0, 0)) | |
ossimQuadTreeWarp (const ossimQuadTreeWarp &rhs) | |
virtual ossimObject * | dup () const |
virtual ossimDpt | getOrigin () const |
void | create (const ossimDrect &boundingRect, const ossimDpt &ulShift=ossimDpt(0, 0), const ossimDpt &urShift=ossimDpt(0, 0), const ossimDpt &lrShift=ossimDpt(0, 0), const ossimDpt &llShift=ossimDpt(0, 0)) |
virtual void | forward (const ossimDpt &pt, ossimDpt &result) const |
virtual void | forward (ossimDpt &pt) const |
virtual std::ostream & | print (std::ostream &out) const |
Generic print method. More... | |
virtual void | printVertices (std::ostream &out) const |
ossimQuadTreeWarpNode * | getRoot () |
const ossimQuadTreeWarpNode * | getRoot () const |
bool | isEmpty () const |
ossimQuadTreeWarpVertex * | findClosestVertex (ossimDpt &position) |
ossimQuadTreeWarpVertex * | findVertex (const ossimDpt &position) |
ossimQuadTreeWarpVertex * | getVertex (const ossimDpt &position) |
void | getShift (ossimDpt &result, const ossimDpt &pt) const |
void | pruneTree (ossimQuadTreeWarpNode *node) |
ossimQuadTreeWarpNode * | findNode (const ossimDpt &pt) |
const ossimQuadTreeWarpNode * | findNode (const ossimDpt &pt) const |
ossimDpt | getShift (const ossimDpt &pt) const |
void | clear () |
void | split (const ossimDpt &point, double splitHoriCoefficient=0.0, double splitVertCoefficient=0.0) |
void | split (ossimQuadTreeWarpNode *node, double splitHoriCoefficient=.5, double splitVertCoefficient=.5) |
const ossimQuadTreeWarpNode * | findNode (const ossimQuadTreeWarpNode *node, const ossimDpt &pt) const |
ossimQuadTreeWarpNode * | findNode (ossimQuadTreeWarpNode *node, const ossimDpt &pt) |
void | findAllNodes (std::vector< ossimQuadTreeWarpNode *> &result, const ossimDpt &pt) |
void | findAllNodes (std::vector< const ossimQuadTreeWarpNode *> &result, const ossimDpt &pt) const |
void | findAllNodes (std::vector< ossimQuadTreeWarpNode *> &result, ossimQuadTreeWarpNode *node, const ossimDpt &pt) |
void | findAllNodes (std::vector< const ossimQuadTreeWarpNode *> &result, ossimQuadTreeWarpNode *node, const ossimDpt &pt) const |
bool | isOnEdge (ossimQuadTreeWarpNode *node, const ossimDpt &point) const |
bool | isOnPoint (ossimQuadTreeWarpNode *node, const ossimDpt &point) const |
void | updateAllVericeLockFlags () |
const std::vector< ossimQuadTreeWarpVertex * > & | getVertices () const |
void | setWarpEnabledFlag (bool flag) |
void | setToIdentity () |
virtual bool | saveState (ossimKeywordlist &kwl, const char *prefix=0) const |
virtual bool | loadState (const ossimKeywordlist &kwl, const char *prefix=0) |
![]() | |
virtual void | inverse (const ossimDpt &input, ossimDpt &output) const |
virtual void | inverse (ossimDpt &modify_this) const |
virtual const ossim2dTo2dTransform & | operator= (const ossim2dTo2dTransform &rhs) |
void | setConvergenceThreshold (const double &new_threshold) |
void | setMaxIterations (int new_max_iters) |
void | setDxDy (const ossimDpt &dxdy) |
![]() | |
ossimObject () | |
virtual | ~ossimObject () |
virtual ossimString | getShortName () const |
virtual ossimString | getLongName () const |
virtual ossimString | getDescription () const |
virtual ossimString | getClassName () const |
virtual RTTItypeid | getType () const |
virtual bool | canCastTo (ossimObject *obj) const |
virtual bool | canCastTo (const RTTItypeid &id) const |
virtual bool | canCastTo (const ossimString &parentClassName) const |
virtual bool | isEqualTo (const ossimObject &obj, ossimCompareType compareType=OSSIM_COMPARE_FULL) const |
virtual void | accept (ossimVisitor &visitor) |
![]() | |
ossimReferenced () | |
ossimReferenced (const ossimReferenced &) | |
ossimReferenced & | operator= (const ossimReferenced &) |
void | ref () const |
increment the reference count by one, indicating that this object has another pointer which is referencing it. More... | |
void | unref () const |
decrement the reference count by one, indicating that a pointer to this object is referencing it. More... | |
void | unref_nodelete () const |
decrement the reference count by one, indicating that a pointer to this object is referencing it. More... | |
int | referenceCount () const |
Protected Attributes | |
bool | theWarpEnabledFlag |
ossimQuadTreeWarpNode * | theTree |
std::vector< ossimQuadTreeWarpVertex * > | theVertexList |
![]() | |
double | theConvergenceThreshold |
int | theMaxIterations |
ossimDpt | theDxDy |
Friends | |
std::ostream & | operator<< (std::ostream &out, const ossimQuadTreeWarp &rhs) |
Definition at line 107 of file ossimQuadTreeWarp.h.
ossimQuadTreeWarp::ossimQuadTreeWarp | ( | ) |
ossimQuadTreeWarp::ossimQuadTreeWarp | ( | const ossimDrect & | boundingRect, |
const ossimDpt & | ulShift = ossimDpt(0,0) , |
||
const ossimDpt & | urShift = ossimDpt(0,0) , |
||
const ossimDpt & | lrShift = ossimDpt(0,0) , |
||
const ossimDpt & | llShift = ossimDpt(0,0) |
||
) |
Definition at line 310 of file ossimQuadTreeWarp.cpp.
References create().
ossimQuadTreeWarp::ossimQuadTreeWarp | ( | const ossimQuadTreeWarp & | rhs | ) |
Definition at line 320 of file ossimQuadTreeWarp.cpp.
References loadState(), and saveState().
|
protectedvirtual |
Definition at line 337 of file ossimQuadTreeWarp.cpp.
References clear().
void ossimQuadTreeWarp::clear | ( | ) |
Definition at line 544 of file ossimQuadTreeWarp.cpp.
References recursiveDelete(), theTree, and theVertexList.
Referenced by create(), loadState(), and ~ossimQuadTreeWarp().
void ossimQuadTreeWarp::create | ( | const ossimDrect & | boundingRect, |
const ossimDpt & | ulShift = ossimDpt(0,0) , |
||
const ossimDpt & | urShift = ossimDpt(0,0) , |
||
const ossimDpt & | lrShift = ossimDpt(0,0) , |
||
const ossimDpt & | llShift = ossimDpt(0,0) |
||
) |
Definition at line 356 of file ossimQuadTreeWarp.cpp.
References ossimQuadTreeWarpVertex::addSharedNode(), clear(), ossimDrect::ll(), ossimDrect::lr(), ossimQuadTreeWarpNode::theLlVertex, ossimQuadTreeWarpNode::theLrVertex, theTree, ossimQuadTreeWarpNode::theUlVertex, ossimQuadTreeWarpNode::theUrVertex, theVertexList, ossimDrect::ul(), and ossimDrect::ur().
Referenced by ossimQuadTreeWarp().
|
virtual |
Reimplemented from ossimObject.
Definition at line 332 of file ossimQuadTreeWarp.cpp.
References ossimQuadTreeWarp().
void ossimQuadTreeWarp::findAllNodes | ( | std::vector< ossimQuadTreeWarpNode *> & | result, |
const ossimDpt & | pt | ||
) |
Definition at line 1018 of file ossimQuadTreeWarp.cpp.
References ossimDpt::hasNans(), isEmpty(), ossimDrect::pointWithin(), ossimQuadTreeWarpNode::theBoundingRect, and theTree.
Referenced by findAllNodes(), and updateLockFlag().
void ossimQuadTreeWarp::findAllNodes | ( | std::vector< const ossimQuadTreeWarpNode *> & | result, |
const ossimDpt & | pt | ||
) | const |
Definition at line 1033 of file ossimQuadTreeWarp.cpp.
References findAllNodes(), ossimDpt::hasNans(), isEmpty(), ossimDrect::pointWithin(), ossimQuadTreeWarpNode::theBoundingRect, and theTree.
void ossimQuadTreeWarp::findAllNodes | ( | std::vector< ossimQuadTreeWarpNode *> & | result, |
ossimQuadTreeWarpNode * | node, | ||
const ossimDpt & | pt | ||
) |
Definition at line 1078 of file ossimQuadTreeWarp.cpp.
References findAllNodes(), ossimQuadTreeWarpNode::isLeaf(), and ossimQuadTreeWarpNode::theChildren.
void ossimQuadTreeWarp::findAllNodes | ( | std::vector< const ossimQuadTreeWarpNode *> & | result, |
ossimQuadTreeWarpNode * | node, | ||
const ossimDpt & | pt | ||
) | const |
Definition at line 1102 of file ossimQuadTreeWarp.cpp.
References findAllNodes(), ossimQuadTreeWarpNode::isLeaf(), and ossimQuadTreeWarpNode::theChildren.
ossimQuadTreeWarpVertex * ossimQuadTreeWarp::findClosestVertex | ( | ossimDpt & | position | ) |
Definition at line 431 of file ossimQuadTreeWarp.cpp.
References DBL_EPSILON, ossimDpt::hasNans(), and theVertexList.
ossimQuadTreeWarpNode * ossimQuadTreeWarp::findNode | ( | const ossimDpt & | pt | ) |
Definition at line 951 of file ossimQuadTreeWarp.cpp.
References ossimDpt::hasNans(), isEmpty(), ossimDrect::pointWithin(), ossimQuadTreeWarpNode::theBoundingRect, and theTree.
Referenced by findNode(), getShift(), and split().
const ossimQuadTreeWarpNode * ossimQuadTreeWarp::findNode | ( | const ossimDpt & | pt | ) | const |
Definition at line 974 of file ossimQuadTreeWarp.cpp.
References findNode(), ossimDpt::hasNans(), isEmpty(), ossimDrect::pointWithin(), ossimQuadTreeWarpNode::theBoundingRect, and theTree.
const ossimQuadTreeWarpNode * ossimQuadTreeWarp::findNode | ( | const ossimQuadTreeWarpNode * | node, |
const ossimDpt & | pt | ||
) | const |
Definition at line 1048 of file ossimQuadTreeWarp.cpp.
References findNode(), ossimQuadTreeWarpNode::isLeaf(), and ossimQuadTreeWarpNode::theChildren.
ossimQuadTreeWarpNode * ossimQuadTreeWarp::findNode | ( | ossimQuadTreeWarpNode * | node, |
const ossimDpt & | pt | ||
) |
Definition at line 988 of file ossimQuadTreeWarp.cpp.
References findNode(), ossimQuadTreeWarpNode::isLeaf(), and ossimQuadTreeWarpNode::theChildren.
ossimQuadTreeWarpVertex * ossimQuadTreeWarp::findVertex | ( | const ossimDpt & | position | ) |
This method will go through the tree and try to locate the vertex. This is faster sine the tree is sorted. Use the getVertex to just search the internal shared vertex list.
Definition at line 481 of file ossimQuadTreeWarp.cpp.
References ossimQuadTreeWarpNode::hasValidVertices(), ossimQuadTreeWarpNode::isLeaf(), ossimDrect::pointWithin(), ossimQuadTreeWarpNode::theBoundingRect, ossimQuadTreeWarpNode::theChildren, ossimQuadTreeWarpNode::theLlVertex, ossimQuadTreeWarpNode::theLrVertex, ossimQuadTreeWarpVertex::thePosition, theTree, ossimQuadTreeWarpNode::theUlVertex, and ossimQuadTreeWarpNode::theUrVertex.
Will warp the passed in point and placed the warped value in result
Implements ossim2dTo2dTransform.
Definition at line 560 of file ossimQuadTreeWarp.cpp.
References getShift(), and theWarpEnabledFlag.
|
virtual |
Will warp the passed in point and overwrite it
Reimplemented from ossim2dTo2dTransform.
Definition at line 578 of file ossimQuadTreeWarp.cpp.
References getShift(), and theWarpEnabledFlag.
|
protected |
Definition at line 729 of file ossimQuadTreeWarp.cpp.
References ossimQuadTreeWarpVertex::addSharedNode(), getShift(), getVertex(), ossimDrect::ll(), ossimDrect::lr(), ossimNotify(), ossimNotifyLevel_FATAL, ossimQuadTreeWarpNode::theLlVertex, ossimQuadTreeWarpNode::theLrVertex, ossimQuadTreeWarpNode::theUlVertex, ossimQuadTreeWarpNode::theUrVertex, theVertexList, ossimDrect::ul(), and ossimDrect::ur().
Referenced by split().
|
virtual |
Used by the inverse iterator. This will give it a good initial value that is within the input transforms
Reimplemented from ossim2dTo2dTransform.
Definition at line 342 of file ossimQuadTreeWarp.cpp.
References ossimDrect::hasNans(), isEmpty(), ossimDrect::midPoint(), ossimQuadTreeWarpNode::theBoundingRect, and theTree.
ossimQuadTreeWarpNode * ossimQuadTreeWarp::getRoot | ( | ) |
const ossimQuadTreeWarpNode * ossimQuadTreeWarp::getRoot | ( | ) | const |
Will get the shift or delta value for the passed in pt.
Definition at line 591 of file ossimQuadTreeWarp.cpp.
References findNode().
Referenced by forward(), getNewQuads(), and getShift().
Will get the shift or delta value for the passed in pt.
Definition at line 965 of file ossimQuadTreeWarp.cpp.
References getShift().
|
protected |
Definition at line 860 of file ossimQuadTreeWarp.cpp.
References ossimQuadTreeWarpVertex::getDelta(), ossimQuadTreeWarpNode::hasValidVertices(), ossimQuadTreeWarpNode::isLeaf(), ossimDrect::ll(), ossimNotify(), ossimNotifyLevel_WARN, ossimQuadTreeWarpNode::theBoundingRect, ossimQuadTreeWarpNode::theLlVertex, ossimQuadTreeWarpNode::theLrVertex, ossimQuadTreeWarpNode::theUlVertex, ossimQuadTreeWarpNode::theUrVertex, ossimDrect::ul(), ossimDrect::ur(), ossimDpt::x, and ossimDpt::y.
ossimQuadTreeWarpVertex * ossimQuadTreeWarp::getVertex | ( | const ossimDpt & | position | ) |
Searches the shared vetex list. This will not go through the tree. this is needed for load states to perform correctly.
Definition at line 528 of file ossimQuadTreeWarp.cpp.
References theVertexList.
Referenced by getNewQuads(), pruneTree(), and recursiveLoad().
const std::vector< ossimQuadTreeWarpVertex * > & ossimQuadTreeWarp::getVertices | ( | ) | const |
Definition at line 1384 of file ossimQuadTreeWarp.cpp.
References theVertexList.
bool ossimQuadTreeWarp::isEmpty | ( | ) | const |
Definition at line 409 of file ossimQuadTreeWarp.cpp.
References theTree.
Referenced by findAllNodes(), findNode(), getOrigin(), and print().
bool ossimQuadTreeWarp::isOnEdge | ( | ossimQuadTreeWarpNode * | node, |
const ossimDpt & | point | ||
) | const |
Definition at line 1191 of file ossimQuadTreeWarp.cpp.
References ossimDrect::getBounds(), ossimDrect::pointWithin(), ossimQuadTreeWarpNode::theBoundingRect, ossimDpt::x, and ossimDpt::y.
Referenced by updateLockFlag().
bool ossimQuadTreeWarp::isOnPoint | ( | ossimQuadTreeWarpNode * | node, |
const ossimDpt & | point | ||
) | const |
Definition at line 1211 of file ossimQuadTreeWarp.cpp.
References ossimDrect::ll(), ossimDrect::lr(), ossimQuadTreeWarpNode::theBoundingRect, ossimDrect::ul(), and ossimDrect::ur().
|
virtual |
Method to the load (recreate) the state of the object from a keyword list. Return true if ok or false on error.
Reimplemented from ossim2dTo2dTransform.
Definition at line 1417 of file ossimQuadTreeWarp.cpp.
References ossimString::c_str(), clear(), ossimKeywordlist::getNumberOfSubstringKeys(), ossim2dTo2dTransform::loadState(), ossimQuadTreeWarpVertex::loadState(), ossimQuadTreeWarpNode::loadState(), ossimNotify(), ossimNotifyLevel_FATAL, recursiveLoad(), theTree, theVertexList, and ossimString::toString().
Referenced by ossimQuadTreeWarp().
|
virtual |
Generic print method.
Derived classes should re-implement as they see fit.
Reimplemented from ossim2dTo2dTransform.
Definition at line 414 of file ossimQuadTreeWarp.cpp.
References isEmpty(), printVertices(), recursivePrint(), and theTree.
Referenced by operator<<().
|
virtual |
Definition at line 391 of file ossimQuadTreeWarp.cpp.
References theVertexList.
Referenced by print().
|
protected |
Definition at line 1126 of file ossimQuadTreeWarp.cpp.
References theVertexList.
Referenced by pruneTree().
void ossimQuadTreeWarp::pruneTree | ( | ossimQuadTreeWarpNode * | node | ) |
The initial passed in node must not be a leaf. It will turn the passed in node into a leaf by recursively pruning its children.
Definition at line 904 of file ossimQuadTreeWarp.cpp.
References ossimQuadTreeWarpVertex::addSharedNode(), getVertex(), ossimQuadTreeWarpNode::isLeaf(), ossimDrect::ll(), ossimDrect::lr(), ossimNotify(), ossimNotifyLevel_WARN, pruneSharedVertices(), recursivePruneTree(), ossimQuadTreeWarpNode::theBoundingRect, ossimQuadTreeWarpNode::theLlVertex, ossimQuadTreeWarpNode::theLrVertex, ossimQuadTreeWarpNode::theUlVertex, ossimQuadTreeWarpNode::theUrVertex, ossimDrect::ul(), updateAllVericeLockFlags(), and ossimDrect::ur().
|
protected |
Definition at line 1174 of file ossimQuadTreeWarp.cpp.
References ossimQuadTreeWarpNode::isLeaf(), and ossimQuadTreeWarpNode::theChildren.
Referenced by clear().
|
protected |
Definition at line 1510 of file ossimQuadTreeWarp.cpp.
References ossimQuadTreeWarpVertex::addSharedNode(), ossimString::c_str(), getVertex(), ossimQuadTreeWarpNode::hasValidVertices(), ossimQuadTreeWarpNode::isLeaf(), ossimDrect::ll(), ossimQuadTreeWarpNode::loadState(), ossimDrect::lr(), ossimQuadTreeWarpNode::theBoundingRect, ossimQuadTreeWarpNode::theChildren, ossimQuadTreeWarpNode::theLlVertex, ossimQuadTreeWarpNode::theLrVertex, ossimQuadTreeWarpNode::theParent, ossimQuadTreeWarpNode::theUlVertex, ossimQuadTreeWarpNode::theUrVertex, ossimDrect::ul(), and ossimDrect::ur().
Referenced by loadState().
|
protected |
Definition at line 1157 of file ossimQuadTreeWarp.cpp.
References ossimQuadTreeWarpNode::isLeaf(), and ossimQuadTreeWarpNode::theChildren.
Referenced by print().
|
protected |
Definition at line 937 of file ossimQuadTreeWarp.cpp.
References ossimQuadTreeWarpNode::isLeaf(), and ossimQuadTreeWarpNode::theChildren.
Referenced by pruneTree().
|
protected |
Definition at line 1476 of file ossimQuadTreeWarp.cpp.
References ossimString::c_str(), ossimQuadTreeWarpNode::isLeaf(), ossimQuadTreeWarpNode::saveState(), ossimQuadTreeWarpNode::theChildren, and ossimString::toString().
Referenced by saveState().
|
protected |
Definition at line 1144 of file ossimQuadTreeWarp.cpp.
References theVertexList.
|
virtual |
Method to save the state of the object to a keyword list. Return true if ok or false on error.
Reimplemented from ossim2dTo2dTransform.
Definition at line 1402 of file ossimQuadTreeWarp.cpp.
References ossimString::c_str(), recursiveSave(), ossim2dTo2dTransform::saveState(), theTree, theVertexList, and ossimString::toString().
Referenced by ossimQuadTreeWarp().
void ossimQuadTreeWarp::setToIdentity | ( | ) |
Definition at line 1394 of file ossimQuadTreeWarp.cpp.
References theVertexList.
void ossimQuadTreeWarp::setWarpEnabledFlag | ( | bool | flag | ) |
void ossimQuadTreeWarp::split | ( | const ossimDpt & | point, |
double | splitHoriCoefficient = 0.0 , |
||
double | splitVertCoefficient = 0.0 |
||
) |
Definition at line 599 of file ossimQuadTreeWarp.cpp.
References findNode(), ossimDrect::height(), ossimQuadTreeWarpNode::theBoundingRect, ossimDrect::ul(), ossimDrect::width(), ossimDpt::x, and ossimDpt::y.
void ossimQuadTreeWarp::split | ( | ossimQuadTreeWarpNode * | node, |
double | splitHoriCoefficient = .5 , |
||
double | splitVertCoefficient = .5 |
||
) |
The passed in node is suppose to be a leaf node. it splits the leaf node horizontally and vertically by the passed in percentage. Use find node to find the leaf node of a given point
Definition at line 624 of file ossimQuadTreeWarp.cpp.
References getNewQuads(), ossimDrect::hasNans(), ossimQuadTreeWarpNode::isLeaf(), ossimDrect::lr(), ossimNotify(), ossimNotifyLevel_WARN, ossimQuadTreeWarpNode::removeVertex(), ossimQuadTreeWarpNode::theBoundingRect, ossimQuadTreeWarpNode::theChildren, ossimQuadTreeWarpNode::theLlVertex, ossimQuadTreeWarpNode::theLrVertex, ossimQuadTreeWarpNode::theUlVertex, ossimQuadTreeWarpNode::theUrVertex, ossimDrect::ul(), updateAllVericeLockFlags(), ossimDrect::ur(), ossimDpt::x, and ossimDpt::y.
void ossimQuadTreeWarp::updateAllVericeLockFlags | ( | ) |
Definition at line 1369 of file ossimQuadTreeWarp.cpp.
References theVertexList, and updateLockFlag().
Referenced by pruneTree(), and split().
|
protected |
Definition at line 1255 of file ossimQuadTreeWarp.cpp.
References ossimDpt::makeNan(), ossimQuadTreeWarpVertex::theDelta, ossimQuadTreeWarpVertex::theLockedFlag, ossimQuadTreeWarpVertex::thePosition, theVertexList, ossimDpt::x, and ossimDpt::y.
Referenced by updateLockFlag().
|
protected |
Definition at line 1222 of file ossimQuadTreeWarp.cpp.
References findAllNodes(), ossimQuadTreeWarpVertex::getPosition(), isOnEdge(), ossimQuadTreeWarpVertex::theLockedFlag, ossimQuadTreeWarpVertex::theSharedNodeList, theTree, and updateDelta().
Referenced by updateAllVericeLockFlags().
|
friend |
Definition at line 1645 of file ossimQuadTreeWarp.cpp.
|
protected |
Definition at line 252 of file ossimQuadTreeWarp.h.
Referenced by clear(), create(), findAllNodes(), findNode(), findVertex(), getOrigin(), getRoot(), isEmpty(), loadState(), print(), saveState(), and updateLockFlag().
|
protected |
Definition at line 253 of file ossimQuadTreeWarp.h.
Referenced by clear(), create(), findClosestVertex(), getNewQuads(), getVertex(), getVertices(), loadState(), printVertices(), pruneSharedVertices(), removeSharedVertex(), saveState(), setToIdentity(), updateAllVericeLockFlags(), and updateDelta().
|
protected |
Definition at line 251 of file ossimQuadTreeWarp.h.
Referenced by forward(), and setWarpEnabledFlag().