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

#include <ossimEcefVector.h>

Public Member Functions

 ossimEcefVector ()
 
 ossimEcefVector (const ossimEcefVector &copy_this)
 
 ossimEcefVector (const NEWMAT::ColumnVector &assign_this)
 
 ossimEcefVector (const ossimEcefPoint &from, const ossimEcefPoint &to)
 
 ossimEcefVector (const ossimGpt &from, const ossimGpt &to)
 
 ossimEcefVector (const double &x, const double &y, const double &z)
 
 ossimEcefVector (const ossimColumnVector3d &assign_this)
 
void makeNan ()
 
bool hasNans () const
 
bool isNan () const
 
ossimEcefVector operator- () const
 
ossimEcefVector operator+ (const ossimEcefVector &) const
 
ossimEcefVector operator- (const ossimEcefVector &) const
 
ossimEcefPoint operator+ (const ossimEcefPoint &) const
 
ossimEcefVector operator* (const double &) const
 
ossimEcefVector operator/ (const double &) const
 
bool operator== (const ossimEcefVector &) const
 
bool operator!= (const ossimEcefVector &) const
 
const ossimEcefVectoroperator= (const ossimEcefVector &)
 
double dot (const ossimEcefVector &) const
 
double angleTo (const ossimEcefVector &) const
 
ossimEcefVector cross (const ossimEcefVector &) const
 
ossimEcefVector unitVector () const
 
double magnitude () const
 
double norm2 () const
 
double length () const
 
double normalize ()
 
double x () const
 
double & x ()
 
double y () const
 
double & y ()
 
double z () const
 
double & z ()
 
double & operator[] (int idx)
 
const double & operator[] (int idx) const
 
const ossimColumnVector3ddata () const
 
ossimColumnVector3ddata ()
 
ossimString toString (ossim_uint32 precision=15) const
 To string method. More...
 
void toPoint (const std::string &s)
 Initializes this point from string. More...
 
NEWMAT::ColumnVector toVector () const
 Converts this point to a 3D column vector. More...
 
void print (ostream &os=ossimNotify(ossimNotifyLevel_INFO)) const
 

Protected Attributes

ossimColumnVector3d theData
 

Friends

ostream & operator<< (ostream &os, const ossimEcefVector &instance)
 

Detailed Description

Definition at line 37 of file ossimEcefVector.h.

Constructor & Destructor Documentation

◆ ossimEcefVector() [1/7]

ossimEcefVector::ossimEcefVector ( )
inline

CONSTRUCTORS:

Definition at line 43 of file ossimEcefVector.h.

Referenced by cross(), operator*(), operator+(), operator-(), operator/(), and unitVector().

44  : theData(0,0,0) {}
ossimColumnVector3d theData

◆ ossimEcefVector() [2/7]

ossimEcefVector::ossimEcefVector ( const ossimEcefVector copy_this)
inline

Definition at line 46 of file ossimEcefVector.h.

47  : theData (copy_this.theData) {}
ossimColumnVector3d theData

◆ ossimEcefVector() [3/7]

ossimEcefVector::ossimEcefVector ( const NEWMAT::ColumnVector &  assign_this)
inline

Definition at line 49 of file ossimEcefVector.h.

50  : theData (assign_this) {}
ossimColumnVector3d theData

◆ ossimEcefVector() [4/7]

ossimEcefVector::ossimEcefVector ( const ossimEcefPoint from,
const ossimEcefPoint to 
)
inline

Definition at line 52 of file ossimEcefVector.h.

54  : theData (to.data() - from.data()) {}
const ossimColumnVector3d & data() const
ossimColumnVector3d theData

◆ ossimEcefVector() [5/7]

ossimEcefVector::ossimEcefVector ( const ossimGpt from,
const ossimGpt to 
)
inline

Definition at line 56 of file ossimEcefVector.h.

58  : theData ((ossimEcefPoint(to) - ossimEcefPoint(from)).data()) {}
ossimColumnVector3d theData
const ossimColumnVector3d & data() const

◆ ossimEcefVector() [6/7]

ossimEcefVector::ossimEcefVector ( const double &  x,
const double &  y,
const double &  z 
)
inline

Definition at line 60 of file ossimEcefVector.h.

63  : theData(x, y, z) {}
double z() const
ossimColumnVector3d theData
double x() const
double y() const

◆ ossimEcefVector() [7/7]

ossimEcefVector::ossimEcefVector ( const ossimColumnVector3d assign_this)
inline

Definition at line 65 of file ossimEcefVector.h.

66  : theData(assign_this) {}
ossimColumnVector3d theData

Member Function Documentation

◆ angleTo()

double ossimEcefVector::angleTo ( const ossimEcefVector v) const
inline

Definition at line 271 of file ossimEcefVector.h.

References ossim::acosd(), ossimColumnVector3d::dot(), ossimColumnVector3d::magnitude(), and theData.

272 {
273  double mag_product = theData.magnitude() * v.theData.magnitude();
274  return ossim::acosd(theData.dot(v.theData)/mag_product);
275 }
double dot(const ossimColumnVector3d &rhs) const
ossimColumnVector3d theData
double acosd(double x)
Definition: ossimCommon.h:264

◆ cross()

ossimEcefVector ossimEcefVector::cross ( const ossimEcefVector v) const
inline

Definition at line 281 of file ossimEcefVector.h.

References ossimColumnVector3d::cross(), ossimEcefVector(), and theData.

Referenced by ossimSarModel::getForwardDeriv(), ossimSarModel::projEllipsoidToOP(), ossimApplanixUtmModel::updateModel(), and ossimSarModel::updateModel().

282 {
284 }
ossimColumnVector3d cross(const ossimColumnVector3d &rhs) const
ossimColumnVector3d theData

◆ data() [1/2]

const ossimColumnVector3d& ossimEcefVector::data ( ) const
inline

◆ data() [2/2]

ossimColumnVector3d& ossimEcefVector::data ( )
inline

Definition at line 128 of file ossimEcefVector.h.

128 { return theData; }
ossimColumnVector3d theData

◆ dot()

double ossimEcefVector::dot ( const ossimEcefVector v) const
inline

Vector-related functions: (all inlined below)

Definition at line 262 of file ossimEcefVector.h.

References ossimColumnVector3d::dot(), and theData.

Referenced by ossimSarModel::computeImageFromOP(), ossimSarModel::getForwardDeriv(), ossimSarModel::projEllipsoidToOP(), ossimSarModel::projOPtoSurface(), and ossimEcefRay::reflectRay().

263 {
264  return theData.dot(v.theData);
265 }
double dot(const ossimColumnVector3d &rhs) const
ossimColumnVector3d theData

◆ hasNans()

bool ossimEcefVector::hasNans ( ) const
inline

Definition at line 76 of file ossimEcefVector.h.

References ossim::isnan().

77  {
78  return ( ossim::isnan(theData[0]) ||
79  ossim::isnan(theData[1]) ||
80  ossim::isnan(theData[2]) );
81  }
ossimColumnVector3d theData
bool isnan(const float &v)
isnan Test for floating point Not A Number (NAN) value.
Definition: ossimCommon.h:91

◆ isNan()

bool ossimEcefVector::isNan ( ) const
inline

Definition at line 83 of file ossimEcefVector.h.

References ossim::isnan().

84  {
85  return ( ossim::isnan(theData[0]) &&
86  ossim::isnan(theData[1]) &&
87  ossim::isnan(theData[2]) );
88  }
ossimColumnVector3d theData
bool isnan(const float &v)
isnan Test for floating point Not A Number (NAN) value.
Definition: ossimCommon.h:91

◆ length()

double ossimEcefVector::length ( ) const
inline

Definition at line 314 of file ossimEcefVector.h.

References ossimColumnVector3d::magnitude(), and theData.

Referenced by ossimSarModel::projEllipsoidToOP().

315 {
316  return theData.magnitude();
317 }
ossimColumnVector3d theData

◆ magnitude()

double ossimEcefVector::magnitude ( ) const
inline

◆ makeNan()

void ossimEcefVector::makeNan ( )
inline

Definition at line 69 of file ossimEcefVector.h.

References ossim::nan().

70  {
71  theData[0] = ossim::nan();
72  theData[1] = ossim::nan();
73  theData[2] = ossim::nan();
74  }
double nan()
Method to return ieee floating point double precision NAN.
Definition: ossimCommon.h:135
ossimColumnVector3d theData

◆ norm2()

double ossimEcefVector::norm2 ( ) const
inline

Definition at line 306 of file ossimEcefVector.h.

References ossimColumnVector3d::norm2(), and theData.

307 {
308  return theData.norm2();
309 }
ossimColumnVector3d theData
double norm2() const
speedup

◆ normalize()

double ossimEcefVector::normalize ( )
inline

Definition at line 323 of file ossimEcefVector.h.

References ossimColumnVector3d::magnitude(), and theData.

Referenced by ossimSonomaSensor::imagingRay(), ossimEcefRay::ossimEcefRay(), ossimApplanixUtmModel::updateModel(), ossimSonomaSensor::updateModel(), and ossimSarModel::updateModel().

324 {
325  double result = theData.magnitude();
326  if(result > 1e-15)
327  {
328  theData /= result;
329  }
330 
331  return result;
332 }
ossimColumnVector3d theData

◆ operator!=()

bool ossimEcefVector::operator!= ( const ossimEcefVector v) const
inline

Definition at line 243 of file ossimEcefVector.h.

References theData.

244 {
245  return (theData != v.theData);
246 }
ossimColumnVector3d theData

◆ operator*()

ossimEcefVector ossimEcefVector::operator* ( const double &  scalar) const
inline

Definition at line 219 of file ossimEcefVector.h.

References ossimEcefVector(), and theData.

220 {
221  return ossimEcefVector(theData*scalar);
222 }
ossimColumnVector3d theData

◆ operator+() [1/2]

ossimEcefVector ossimEcefVector::operator+ ( const ossimEcefVector v) const
inline

Definition at line 193 of file ossimEcefVector.h.

References ossimEcefVector(), and theData.

194 {
195  return ossimEcefVector(theData + v.theData);
196 }
ossimColumnVector3d theData

◆ operator+() [2/2]

ossimEcefPoint ossimEcefVector::operator+ ( const ossimEcefPoint p) const
inline

Definition at line 211 of file ossimEcefVector.h.

References ossimEcefPoint::data(), and theData.

212 {
213  return ossimEcefPoint(theData + p.data());
214 }
const ossimColumnVector3d & data() const
ossimColumnVector3d theData

◆ operator-() [1/2]

ossimEcefVector ossimEcefVector::operator- ( ) const
inline

OPERATORS: (all inlined below)

Definition at line 184 of file ossimEcefVector.h.

References ossimEcefVector(), and theData.

185 {
186  return ossimEcefVector(-theData);
187 }
ossimColumnVector3d theData

◆ operator-() [2/2]

ossimEcefVector ossimEcefVector::operator- ( const ossimEcefVector v) const
inline

Definition at line 202 of file ossimEcefVector.h.

References ossimEcefVector(), and theData.

203 {
204  return ossimEcefVector(theData - v.theData);
205 }
ossimColumnVector3d theData

◆ operator/()

ossimEcefVector ossimEcefVector::operator/ ( const double &  scalar) const
inline

Definition at line 227 of file ossimEcefVector.h.

References ossimEcefVector(), and theData.

228 {
229  return ossimEcefVector(theData/scalar);
230 }
ossimColumnVector3d theData

◆ operator=()

const ossimEcefVector & ossimEcefVector::operator= ( const ossimEcefVector v)
inline

Definition at line 252 of file ossimEcefVector.h.

References theData.

253 {
254  theData = v.theData;
255  return *this;
256 }
ossimColumnVector3d theData

◆ operator==()

bool ossimEcefVector::operator== ( const ossimEcefVector v) const
inline

Definition at line 235 of file ossimEcefVector.h.

References theData.

236 {
237  return (theData == v.theData);
238 }
ossimColumnVector3d theData

◆ operator[]() [1/2]

double& ossimEcefVector::operator[] ( int  idx)
inline

Definition at line 124 of file ossimEcefVector.h.

124 {return theData[idx];}
ossimColumnVector3d theData

◆ operator[]() [2/2]

const double& ossimEcefVector::operator[] ( int  idx) const
inline

Definition at line 125 of file ossimEcefVector.h.

125 {return theData[idx];}
ossimColumnVector3d theData

◆ print()

void ossimEcefVector::print ( ostream &  os = ossimNotify(ossimNotifyLevel_INFO)) const
inline

Debug Dump:

Definition at line 168 of file ossimEcefVector.h.

169  { os << "(ossimEcefVector) " << theData; }
ossimColumnVector3d theData

◆ toPoint()

void ossimEcefVector::toPoint ( const std::string &  s)

Initializes this point from string.

Expected format:

( 0.0000000, 0.0000000, 0.00000000 ) --—x-— --—y-— ---—z-—

Parameters
sString to initialize from.

Definition at line 29 of file ossimEcefVector.cpp.

References theData, and ossimColumnVector3d::toPoint().

30 {
31  theData.toPoint(s);
32 }
ossimColumnVector3d theData
void toPoint(const std::string &s)
Initializes this point from string.

◆ toString()

ossimString ossimEcefVector::toString ( ossim_uint32  precision = 15) const

To string method.

Parameters
precisionOutput floating point precision.
Returns
ossimString representing point.

Output format: ( 0.0000000, 0.0000000, 0.00000000 ) --—x-— --—y-— ---—z-—

Definition at line 24 of file ossimEcefVector.cpp.

References theData, and ossimColumnVector3d::toString().

25 {
26  return theData.toString(precision);
27 }
ossimColumnVector3d theData
ossimString toString(ossim_uint32 precision=15) const
To string method.

◆ toVector()

NEWMAT::ColumnVector ossimEcefVector::toVector ( ) const
inline

Converts this point to a 3D column vector.

Definition at line 156 of file ossimEcefVector.h.

157  {
158  NEWMAT::ColumnVector v (3);
159  v(0) = theData[0];
160  v(1) = theData[1];
161  v(2) = theData[2];
162  return v;
163  }
ossimColumnVector3d theData

◆ unitVector()

ossimEcefVector ossimEcefVector::unitVector ( ) const
inline

◆ x() [1/2]

double ossimEcefVector::x ( ) const
inline

COMPONENT ACCESS METHODS:

Definition at line 118 of file ossimEcefVector.h.

Referenced by ossimSarModel::getForwardDeriv(), ossimEllipsoid::gradient(), and ossimApplanixUtmModel::saveState().

118 { return theData[0]; }
ossimColumnVector3d theData

◆ x() [2/2]

double& ossimEcefVector::x ( )
inline

Definition at line 119 of file ossimEcefVector.h.

119 { return theData[0]; }
ossimColumnVector3d theData

◆ y() [1/2]

double ossimEcefVector::y ( ) const
inline

Definition at line 120 of file ossimEcefVector.h.

Referenced by ossimSarModel::getForwardDeriv(), ossimEllipsoid::gradient(), and ossimApplanixUtmModel::saveState().

120 { return theData[1]; }
ossimColumnVector3d theData

◆ y() [2/2]

double& ossimEcefVector::y ( )
inline

Definition at line 121 of file ossimEcefVector.h.

121 { return theData[1]; }
ossimColumnVector3d theData

◆ z() [1/2]

double ossimEcefVector::z ( ) const
inline

Definition at line 122 of file ossimEcefVector.h.

Referenced by ossimSarModel::getForwardDeriv(), ossimEllipsoid::gradient(), and ossimApplanixUtmModel::saveState().

122 { return theData[2]; }
ossimColumnVector3d theData

◆ z() [2/2]

double& ossimEcefVector::z ( )
inline

Definition at line 123 of file ossimEcefVector.h.

123 { return theData[2]; }
ossimColumnVector3d theData

Friends And Related Function Documentation

◆ operator<<

ostream& operator<< ( ostream &  os,
const ossimEcefVector instance 
)
friend

Definition at line 171 of file ossimEcefVector.h.

172  { instance.print(os); return os; }
void print(ostream &os=ossimNotify(ossimNotifyLevel_INFO)) const

Member Data Documentation

◆ theData

ossimColumnVector3d ossimEcefVector::theData
protected

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