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

#include <ossimWarpProjection.h>

Inheritance diagram for ossimWarpProjection:
ossimProjection ossimObject ossimErrorStatusInterface ossimReferenced

Public Member Functions

 ossimWarpProjection ()
 
 ossimWarpProjection (ossimProjection *client)
 
 ossimWarpProjection (const ossimKeywordlist &geom_kwl, const char *prefix=0)
 
 ~ossimWarpProjection ()
 
virtual void worldToLineSample (const ossimGpt &worldPoint, ossimDpt &lineSampPt) const
 
virtual void lineSampleToWorld (const ossimDpt &lineSampPt, ossimGpt &worldPt) const
 
virtual void lineSampleHeightToWorld (const ossimDpt &lineSampPt, const double &hgtEllipsoid, ossimGpt &worldPt) const
 
virtual std::ostream & print (std::ostream &out) const
 
virtual bool saveState (ossimKeywordlist &kwl, const char *prefix=0) const
 
virtual bool loadState (const ossimKeywordlist &kwl, const char *prefix=0)
 
virtual ossimObjectdup () const
 
virtual ossimGpt origin () const
 
virtual bool operator== (const ossimProjection &) const
 
virtual ossimDpt getMetersPerPixel () const
 
virtual ossim2dTo2dTransformgetWarpTransform ()
 
virtual ossim2dTo2dTransformgetAffineTransform ()
 
virtual ossimProjectiongetClientProjection ()
 
virtual void setNewWarpTransform (ossim2dTo2dTransform *warp)
 
virtual void setNewAffineTransform (ossim2dTo2dTransform *affine)
 
virtual bool isAffectedByElevation () const
 Implementation of pure virtual ossimProjection::isAffectedByElevation method. More...
 
- Public Member Functions inherited from ossimProjection
 ossimProjection ()
 
virtual ~ossimProjection ()
 
virtual ossimDpt forward (const ossimGpt &wp) const
 
virtual ossimGpt inverse (const ossimDpt &pp) const
 
virtual void getRoundTripError (const ossimDpt &imagePoint, ossimDpt &errorResult) const
 
virtual void getRoundTripError (const ossimGpt &groundPoint, ossimDpt &errorResult) const
 
virtual void getGroundClipPoints (ossimGeoPolygon &gpts) const
 
virtual bool isEqualTo (const ossimObject &obj, ossimCompareType compareType=OSSIM_COMPARE_FULL) const
 
virtual bool operator!= (const ossimProjection &projection) const
 
- Public Member Functions inherited from ossimObject
 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 void accept (ossimVisitor &visitor)
 
- Public Member Functions inherited from ossimReferenced
 ossimReferenced ()
 
 ossimReferenced (const ossimReferenced &)
 
ossimReferencedoperator= (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
 
- Public Member Functions inherited from ossimErrorStatusInterface
 ossimErrorStatusInterface ()
 
virtual ~ossimErrorStatusInterface ()
 
virtual ossimErrorCode getErrorStatus () const
 
virtual ossimString getErrorStatusString () const
 
virtual void setErrorStatus (ossimErrorCode error_status) const
 
virtual void setErrorStatus () const
 
virtual void clearErrorStatus () const
 
bool hasError () const
 

Protected Attributes

ossimRefPtr< ossimProjectiontheClientProjection
 
ossimRefPtr< ossim2dTo2dTransformtheWarpTransform
 
ossimRefPtr< ossim2dTo2dTransformtheAffineTransform
 
- Protected Attributes inherited from ossimErrorStatusInterface
ossimErrorCode theErrorStatus
 

Friends

std::ostream & operator<< (std::ostream &os, const ossimWarpProjection &m)
 

Additional Inherited Members

- Protected Member Functions inherited from ossimReferenced
virtual ~ossimReferenced ()
 

Detailed Description


CLASS: ossimWarpProjection

Definition at line 27 of file ossimWarpProjection.h.

Constructor & Destructor Documentation

◆ ossimWarpProjection() [1/3]

ossimWarpProjection::ossimWarpProjection ( )

Default Contructor:

Definition at line 37 of file ossimWarpProjection.cpp.

References theAffineTransform, and theWarpTransform.

Referenced by dup().

38  :
41  theWarpTransform (0),
43 {
46 }
ossimRefPtr< ossim2dTo2dTransform > theWarpTransform
ossimRefPtr< ossim2dTo2dTransform > theAffineTransform
ossimRefPtr< ossimProjection > theClientProjection

◆ ossimWarpProjection() [2/3]

ossimWarpProjection::ossimWarpProjection ( ossimProjection client)

Primary constructor accepting pointer to the underlying client projection.

Definition at line 54 of file ossimWarpProjection.cpp.

References theAffineTransform, and theWarpTransform.

55  :
57  theClientProjection (client),
58  theWarpTransform (0),
60 {
63 }
ossimRefPtr< ossim2dTo2dTransform > theWarpTransform
ossimRefPtr< ossim2dTo2dTransform > theAffineTransform
ossimRefPtr< ossimProjection > theClientProjection

◆ ossimWarpProjection() [3/3]

ossimWarpProjection::ossimWarpProjection ( const ossimKeywordlist geom_kwl,
const char *  prefix = 0 
)

Constructor accepts OSSIM keywordlist geometry file.

Definition at line 68 of file ossimWarpProjection.cpp.

References ossimErrorStatusInterface::getErrorStatus(), ossimProjectionFactoryRegistry::instance(), ossim2dTo2dTransform::loadState(), ossimErrorCodes::OSSIM_ERROR, ossimErrorStatusInterface::setErrorStatus(), theAffineTransform, theClientProjection, and theWarpTransform.

70  :
73  theWarpTransform (0),
75 {
77  createProjection(geom_kwl, prefix);
78 
80  bool rtn_stat = theWarpTransform->loadState(geom_kwl, prefix);
81 
83  rtn_stat &= theAffineTransform->loadState(geom_kwl, prefix);
84 
85  if ((!theClientProjection) ||
87  (!rtn_stat))
89 }
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
static const ossimErrorCode OSSIM_ERROR
ossimRefPtr< ossim2dTo2dTransform > theWarpTransform
static ossimProjectionFactoryRegistry * instance()
virtual ossimErrorCode getErrorStatus() const
ossimRefPtr< ossim2dTo2dTransform > theAffineTransform
ossimRefPtr< ossimProjection > theClientProjection

◆ ~ossimWarpProjection()

ossimWarpProjection::~ossimWarpProjection ( )

Definition at line 94 of file ossimWarpProjection.cpp.

References theAffineTransform, theClientProjection, and theWarpTransform.

95 {
97  theWarpTransform = 0;
99 }
ossimRefPtr< ossim2dTo2dTransform > theWarpTransform
ossimRefPtr< ossim2dTo2dTransform > theAffineTransform
ossimRefPtr< ossimProjection > theClientProjection

Member Function Documentation

◆ dup()

ossimObject * ossimWarpProjection::dup ( ) const
virtual

Returns pointer to a new instance, copy of this.

Implements ossimProjection.

Definition at line 270 of file ossimWarpProjection.cpp.

References ossimWarpProjection(), and saveState().

271 {
272  ossimKeywordlist kwl;
273  saveState(kwl);
274  return new ossimWarpProjection(kwl);
275 }
Represents serializable keyword/value map.
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const

◆ getAffineTransform()

virtual ossim2dTo2dTransform* ossimWarpProjection::getAffineTransform ( )
inlinevirtual

Definition at line 107 of file ossimWarpProjection.h.

108  {
109  return theAffineTransform.get();
110  }
ossimRefPtr< ossim2dTo2dTransform > theAffineTransform

◆ getClientProjection()

virtual ossimProjection* ossimWarpProjection::getClientProjection ( )
inlinevirtual

Definition at line 111 of file ossimWarpProjection.h.

112  {
113  return theClientProjection.get();
114  }
ossimRefPtr< ossimProjection > theClientProjection

◆ getMetersPerPixel()

ossimDpt ossimWarpProjection::getMetersPerPixel ( ) const
virtual

ACCESS METHODS:

Implements ossimProjection.

Definition at line 290 of file ossimWarpProjection.cpp.

References ossimProjection::getMetersPerPixel(), ossim::nan(), theClientProjection, and ossimRefPtr< T >::valid().

291 {
294  return ossimDpt(ossim::nan(), ossim::nan());
295 }
bool valid() const
Definition: ossimRefPtr.h:75
double nan()
Method to return ieee floating point double precision NAN.
Definition: ossimCommon.h:135
virtual ossimDpt getMetersPerPixel() const =0
ossimRefPtr< ossimProjection > theClientProjection

◆ getWarpTransform()

virtual ossim2dTo2dTransform* ossimWarpProjection::getWarpTransform ( )
inlinevirtual

Definition at line 103 of file ossimWarpProjection.h.

104  {
105  return theWarpTransform.get();
106  }
ossimRefPtr< ossim2dTo2dTransform > theWarpTransform

◆ isAffectedByElevation()

bool ossimWarpProjection::isAffectedByElevation ( ) const
inlinevirtual

Implementation of pure virtual ossimProjection::isAffectedByElevation method.

Returns
based on theClientProjection->isAffectedByElevation(). If theClientProjection is null this returns true just to be safe.

Implements ossimProjection.

Definition at line 138 of file ossimWarpProjection.h.

References ossimProjection::isAffectedByElevation(), theClientProjection, and ossimRefPtr< T >::valid().

139 {
140  return ( theClientProjection.valid() ?
142  false );
143 }
bool valid() const
Definition: ossimRefPtr.h:75
virtual bool isAffectedByElevation() const =0
Pure virtual method to query if projection is affected by elevation.
ossimRefPtr< ossimProjection > theClientProjection

◆ lineSampleHeightToWorld()

void ossimWarpProjection::lineSampleHeightToWorld ( const ossimDpt lineSampPt,
const double &  hgtEllipsoid,
ossimGpt worldPt 
) const
virtual

Performs the inverse projection from line, sample to ground, bypassing reference to elevation surface:

Implements ossimProjection.

Definition at line 149 of file ossimWarpProjection.cpp.

152 {
153  if (traceExec()) ossimNotify(ossimNotifyLevel_DEBUG) << "DEBUG ossimWarpProjection::lineSampleHeightToWorld: Entering..." << std::endl;
154 
156  {
157  ossimDpt adjustedPt;
158  theAffineTransform->forward(lineSampPt, adjustedPt);
159  theWarpTransform->forward(adjustedPt);
160  theClientProjection->lineSampleHeightToWorld(adjustedPt, hgt, worldPt);
161  }
162  else
163  {
164  worldPt.makeNan();
165  }
166 
167  if (traceExec()) ossimNotify(ossimNotifyLevel_DEBUG) << "DEBUG ossimWarpProjection::lineSampleHeightToWorld: Returning..." << std::endl;
168 }
virtual void forward(const ossimDpt &input, ossimDpt &output) const =0
bool valid() const
Definition: ossimRefPtr.h:75
void makeNan()
Definition: ossimGpt.h:130
ossimRefPtr< ossim2dTo2dTransform > theWarpTransform
virtual void lineSampleHeightToWorld(const ossimDpt &lineSampPt, const double &heightAboveEllipsoid, ossimGpt &worldPt) const =0
ossimRefPtr< ossim2dTo2dTransform > theAffineTransform
ossimRefPtr< ossimProjection > theClientProjection
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ lineSampleToWorld()

void ossimWarpProjection::lineSampleToWorld ( const ossimDpt lineSampPt,
ossimGpt worldPt 
) const
virtual

METHOD: lineSampleToWorld() Performs the inverse projection from line, sample to ground (world):

Implements ossimProjection.

Definition at line 126 of file ossimWarpProjection.cpp.

128 {
129  if (traceExec()) ossimNotify(ossimNotifyLevel_DEBUG) << "DEBUG ossimWarpProjection::lineSampleToWorld: Entering..." << std::endl;
130 
132  {
133  ossimDpt adjustedPt;
134  theWarpTransform->forward(adjustedPt);
135  theAffineTransform->forward(lineSampPt, adjustedPt);
136  theClientProjection->lineSampleToWorld(adjustedPt, worldPt);
137  }
138  else
139  {
140  worldPt.makeNan();
141  }
142 
143  if (traceExec()) ossimNotify(ossimNotifyLevel_DEBUG) << "DEBUG ossimWarpProjection::lineSampleToWorld: Returning..." << std::endl;
144 }
virtual void forward(const ossimDpt &input, ossimDpt &output) const =0
bool valid() const
Definition: ossimRefPtr.h:75
void makeNan()
Definition: ossimGpt.h:130
ossimRefPtr< ossim2dTo2dTransform > theWarpTransform
virtual void lineSampleToWorld(const ossimDpt &lineSampPt, ossimGpt &worldPt) const =0
ossimRefPtr< ossim2dTo2dTransform > theAffineTransform
ossimRefPtr< ossimProjection > theClientProjection
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ loadState()

bool ossimWarpProjection::loadState ( const ossimKeywordlist kwl,
const char *  prefix = 0 
)
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 ossimProjection.

Definition at line 223 of file ossimWarpProjection.cpp.

225 {
226  if (traceExec()) ossimNotify(ossimNotifyLevel_DEBUG) << "DEBUG ossimWarpProjection::loadState: entering..." << std::endl;
227 
228 // bool good_load;
229 // int err_stat;
230  // bool result = true;
231 
232  ossimString projPrefix = ossimString(prefix) + PROJECTION_PREFIX;
233  ossimString affinePrefix = ossimString(prefix) + AFFINE_PREFIX;
234  ossimString quadwarpPrefix = ossimString(prefix) + QUADWARP_PREFIX;
235 
237 
238  if (!theWarpTransform)
240 
241  if (!theAffineTransform)
243 
245 
246  if ( theClientProjection.valid() )
247  {
248  theWarpTransform->loadState(kwl, quadwarpPrefix.c_str());
249  theAffineTransform->loadState(kwl, affinePrefix.c_str());
250  }
251 
252 #if 0 /* set but not used warning... */
254  {
255  result = false;
256  }
257  else
258  {
259  theWarpTransform->loadState(kwl, quadwarpPrefix.c_str());
260  theAffineTransform->loadState(kwl, affinePrefix.c_str());
261  }
262 #endif
263 
264  return ossimProjection::loadState(kwl, prefix);
265 }
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
bool valid() const
Definition: ossimRefPtr.h:75
ossimRefPtr< ossim2dTo2dTransform > theWarpTransform
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
ossimProjection * createProjection(const ossimFilename &filename, ossim_uint32 entryIdx) const
static ossimProjectionFactoryRegistry * instance()
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
ossimRefPtr< ossim2dTo2dTransform > theAffineTransform
ossimRefPtr< ossimProjection > theClientProjection
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ operator==()

virtual bool ossimWarpProjection::operator== ( const ossimProjection ) const
inlinevirtual

Compares this instance with arg projection. NOT IMPLEMENTED.

Implements ossimProjection.

Definition at line 98 of file ossimWarpProjection.h.

99  { return false; }

◆ origin()

ossimGpt ossimWarpProjection::origin ( ) const
virtual

Returns projection's ground point origin. That is the GP corresponding to line=0, sample=0.

Implements ossimProjection.

Definition at line 280 of file ossimWarpProjection.cpp.

References ossimProjection::origin(), theClientProjection, and ossimRefPtr< T >::valid().

281 {
283  return theClientProjection->origin();
284  return ossimGpt(0.0, 0.0, 0.0);
285 }
bool valid() const
Definition: ossimRefPtr.h:75
virtual ossimGpt origin() const =0
ossimRefPtr< ossimProjection > theClientProjection

◆ print()

std::ostream & ossimWarpProjection::print ( std::ostream &  out) const
virtual

Extends base-class implementation. Dumps contents of object to ostream.

Reimplemented from ossimProjection.

Definition at line 173 of file ossimWarpProjection.cpp.

References ossimProjection::print(), theAffineTransform, theClientProjection, theWarpTransform, and ossimRefPtr< T >::valid().

Referenced by operator<<().

174 {
176  {
177  out <<
178  "ossimWarpProjection:\n"
179  << " Member theClientProjection: ";
181 
182  out << " Member theAffineTransform: " << *theAffineTransform << "\n"
183  << " Member theWarpTransform: " << *theWarpTransform << std::endl;
184  }
185  else
186  {
187  out << "ossimWarpProjection -- Not inititialized." << std::endl;
188  }
189  return out;
190 }
bool valid() const
Definition: ossimRefPtr.h:75
virtual std::ostream & print(std::ostream &out) const
Outputs theErrorStatus as an ossimErrorCode and an ossimString.
ossimRefPtr< ossim2dTo2dTransform > theWarpTransform
ossimRefPtr< ossim2dTo2dTransform > theAffineTransform
ossimRefPtr< ossimProjection > theClientProjection

◆ saveState()

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

Fulfills ossimObject base-class pure virtuals. Loads and saves geometry KWL files. Returns true if successful.

Reimplemented from ossimProjection.

Definition at line 200 of file ossimWarpProjection.cpp.

Referenced by dup().

202 {
203  if (traceExec()) ossimNotify(ossimNotifyLevel_DEBUG) << "DEBUG ossimWarpProjection::saveState: entering..." << std::endl;
204 
205  ossimString projPrefix = ossimString(prefix) + PROJECTION_PREFIX;
206  ossimString affinePrefix = ossimString(prefix) + AFFINE_PREFIX;
207  ossimString quadwarpPrefix = ossimString(prefix) + QUADWARP_PREFIX;
208 
210  {
211  theClientProjection->saveState(kwl, projPrefix.c_str());
212  theAffineTransform->saveState(kwl, affinePrefix.c_str());
213  theWarpTransform->saveState(kwl, quadwarpPrefix.c_str());
214  }
215 
216  if (traceExec()) ossimNotify(ossimNotifyLevel_DEBUG) << "DEBUG ossimWarpProjection::saveState: returning..." << std::endl;
217  return ossimProjection::saveState(kwl, prefix);
218 }
bool valid() const
Definition: ossimRefPtr.h:75
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
ossimRefPtr< ossim2dTo2dTransform > theWarpTransform
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
ossimRefPtr< ossim2dTo2dTransform > theAffineTransform
ossimRefPtr< ossimProjection > theClientProjection
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ setNewAffineTransform()

void ossimWarpProjection::setNewAffineTransform ( ossim2dTo2dTransform affine)
virtual

Definition at line 306 of file ossimWarpProjection.cpp.

References theAffineTransform.

307 {
308  if(affine)
309  {
310  theAffineTransform = affine;
311  }
312 }
ossimRefPtr< ossim2dTo2dTransform > theAffineTransform

◆ setNewWarpTransform()

void ossimWarpProjection::setNewWarpTransform ( ossim2dTo2dTransform warp)
virtual

Definition at line 298 of file ossimWarpProjection.cpp.

References theWarpTransform.

299 {
300  if(warp)
301  {
302  theWarpTransform = warp;
303  }
304 }
ossimRefPtr< ossim2dTo2dTransform > theWarpTransform

◆ worldToLineSample()

void ossimWarpProjection::worldToLineSample ( const ossimGpt worldPoint,
ossimDpt lineSampPt 
) const
virtual

METHOD: worldToLineSample() Performs the forward projection from ground point to line, sample.

Implements ossimProjection.

Definition at line 104 of file ossimWarpProjection.cpp.

106 {
107  if (traceExec()) ossimNotify(ossimNotifyLevel_DEBUG) << "DEBUG ossimWarpProjection::worldToLineSample: Entering..." << std::endl;
108 
110  {
111  theClientProjection->worldToLineSample(worldPoint, lineSampPt);
112  theAffineTransform->inverse(lineSampPt);
113  theWarpTransform->inverse(lineSampPt);
114  }
115  else
116  {
117  lineSampPt.makeNan();
118  }
119 
120  if (traceExec()) ossimNotify(ossimNotifyLevel_DEBUG) << "DEBUG ossimWarpProjection::worldToLineSample: Returning..." << std::endl;
121 }
bool valid() const
Definition: ossimRefPtr.h:75
ossimRefPtr< ossim2dTo2dTransform > theWarpTransform
virtual void inverse(const ossimDpt &input, ossimDpt &output) const
ossimRefPtr< ossim2dTo2dTransform > theAffineTransform
ossimRefPtr< ossimProjection > theClientProjection
virtual void worldToLineSample(const ossimGpt &worldPoint, ossimDpt &lineSampPt) const =0
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
void makeNan()
Definition: ossimDpt.h:65

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
const ossimWarpProjection m 
)
friend

Definition at line 192 of file ossimWarpProjection.cpp.

193 {
194  return m.print(os);
195 }
virtual std::ostream & print(std::ostream &out) const

Member Data Documentation

◆ theAffineTransform

ossimRefPtr<ossim2dTo2dTransform> ossimWarpProjection::theAffineTransform
protected

◆ theClientProjection

ossimRefPtr<ossimProjection> ossimWarpProjection::theClientProjection
protected

◆ theWarpTransform

ossimRefPtr<ossim2dTo2dTransform> ossimWarpProjection::theWarpTransform
protected

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