#include <volume.hpp>

Inheritance diagram for NRLib::Volume:
Inheritance graph

Public Member Functions

 Volume ()
 
 Volume (double x_min, double y_min, double z_min, double lx, double ly, double lz, double angle)
 
 Volume (double x_min, double y_min, double lx, double ly, const Surface< double > &top, const Surface< double > &bot, double angle)
 Constructor with surfaces. More...
 
 Volume (const Volume &volume)
 
virtual ~Volume ()
 
Volumeoperator= (const Volume &rhs)
 
void SetDimensions (double x_min, double y_min, double lx, double ly)
 
void SetAngle (double angle)
 
void SetTolerance (double tolerance)
 
double GetTolerance ()
 
double GetXMin () const
 
double GetYMin () const
 
double GetZMin (size_t nx, size_t ny) const
 Get extreme values of z for volume, with nx, ny resolution. More...
 
double GetZMax (size_t nx, size_t ny) const
 
double GetLX () const
 
double GetLY () const
 
double GetAngle () const
 
double GetLZ () const
 Maximum height of grid. More...
 
void GetXYFromRelative (double rel_x, double rel_y, double &x, double &y) const
 rel_x and rel_y in [0,1]. More...
 
double GetTopZMin (size_t nx, size_t ny) const
 Get z-range for top and bottom surfaces, with nx, ny resolution. More...
 
double GetTopZMax (size_t nx, size_t ny) const
 
double GetBotZMin (size_t nx, size_t ny) const
 
double GetBotZMax (size_t nx, size_t ny) const
 
void SetSurfaces (const Surface< double > &top_surf, const Surface< double > &bot_surf, bool skip_check=true)
 Set surfaces. More...
 
const Surface< double > & GetTopSurface () const
 
const Surface< double > & GetBotSurface () const
 
Surface< double > & GetTopSurface ()
 
Surface< double > & GetBotSurface ()
 
int IsInside (double x, double y) const
 
bool IsInside (double x, double y, double z) const
 
int IsInsideTolerance (double x, double y) const
 
bool IsInsideZTolerance (double x, double y, double z, double tolerance) const
 
void FindCenter (double &x, double &y, double &z) const
 
bool CheckSurface (const Surface< double > &surface) const
 Checks if surface covers the whole volume. More...
 

Protected Member Functions

void WriteVolumeToFile (std::ofstream &file, const std::string &filename, bool remove_path=true) const
 Reader and writer on storm-format. More...
 
void ReadVolumeFromFile (std::ifstream &file, int line, const std::string &path)
 
void GlobalToLocalCoord (double global_x, double global_y, double &local_x, double &local_y) const
 The local coorinates are (0,0) in (x_min, y_min), and have the same orientation as the volume. More...
 
void LocalToGlobalCoord (double local_x, double local_y, double &global_x, double &global_y) const
 

Constructor & Destructor Documentation

◆ Volume() [1/4]

NRLib::Volume::Volume ( )

◆ Volume() [2/4]

NRLib::Volume::Volume ( double  x_min,
double  y_min,
double  z_min,
double  lx,
double  ly,
double  lz,
double  angle 
)

◆ Volume() [3/4]

NRLib::Volume::Volume ( double  x_min,
double  y_min,
double  lx,
double  ly,
const Surface< double > &  top,
const Surface< double > &  bot,
double  angle 
)

Constructor with surfaces.

◆ Volume() [4/4]

NRLib::Volume::Volume ( const Volume volume)

◆ ~Volume()

virtual NRLib::Volume::~Volume ( )
virtual

Member Function Documentation

◆ CheckSurface()

bool NRLib::Volume::CheckSurface ( const Surface< double > &  surface) const

Checks if surface covers the whole volume.

◆ FindCenter()

void NRLib::Volume::FindCenter ( double &  x,
double &  y,
double &  z 
) const

◆ GetAngle()

double NRLib::Volume::GetAngle ( ) const
inline

◆ GetBotSurface() [1/2]

Surface< double > & NRLib::Volume::GetBotSurface ( )
inline

◆ GetBotSurface() [2/2]

const Surface< double > & NRLib::Volume::GetBotSurface ( ) const
inline

◆ GetBotZMax()

double NRLib::Volume::GetBotZMax ( size_t  nx,
size_t  ny 
) const

◆ GetBotZMin()

double NRLib::Volume::GetBotZMin ( size_t  nx,
size_t  ny 
) const

◆ GetLX()

double NRLib::Volume::GetLX ( ) const
inline

◆ GetLY()

double NRLib::Volume::GetLY ( ) const
inline

◆ GetLZ()

double NRLib::Volume::GetLZ ( ) const
inline

Maximum height of grid.

◆ GetTolerance()

double NRLib::Volume::GetTolerance ( )
inline

◆ GetTopSurface() [1/2]

Surface< double > & NRLib::Volume::GetTopSurface ( )
inline

◆ GetTopSurface() [2/2]

const Surface< double > & NRLib::Volume::GetTopSurface ( ) const
inline

◆ GetTopZMax()

double NRLib::Volume::GetTopZMax ( size_t  nx,
size_t  ny 
) const

◆ GetTopZMin()

double NRLib::Volume::GetTopZMin ( size_t  nx,
size_t  ny 
) const

Get z-range for top and bottom surfaces, with nx, ny resolution.

◆ GetXMin()

double NRLib::Volume::GetXMin ( ) const
inline

◆ GetXYFromRelative()

void NRLib::Volume::GetXYFromRelative ( double  rel_x,
double  rel_y,
double &  x,
double &  y 
) const
inline

rel_x and rel_y in [0,1].

References LocalToGlobalCoord(), and exprtk::details::x().

◆ GetYMin()

double NRLib::Volume::GetYMin ( ) const
inline

◆ GetZMax()

double NRLib::Volume::GetZMax ( size_t  nx,
size_t  ny 
) const

◆ GetZMin()

double NRLib::Volume::GetZMin ( size_t  nx,
size_t  ny 
) const

Get extreme values of z for volume, with nx, ny resolution.

Referenced by NRLib::StormContGrid::GetZMin().

◆ GlobalToLocalCoord()

void NRLib::Volume::GlobalToLocalCoord ( double  global_x,
double  global_y,
double &  local_x,
double &  local_y 
) const
protected

The local coorinates are (0,0) in (x_min, y_min), and have the same orientation as the volume.

◆ IsInside() [1/2]

int NRLib::Volume::IsInside ( double  x,
double  y 
) const

◆ IsInside() [2/2]

bool NRLib::Volume::IsInside ( double  x,
double  y,
double  z 
) const

◆ IsInsideTolerance()

int NRLib::Volume::IsInsideTolerance ( double  x,
double  y 
) const

◆ IsInsideZTolerance()

bool NRLib::Volume::IsInsideZTolerance ( double  x,
double  y,
double  z,
double  tolerance 
) const

◆ LocalToGlobalCoord()

void NRLib::Volume::LocalToGlobalCoord ( double  local_x,
double  local_y,
double &  global_x,
double &  global_y 
) const
protected

Referenced by GetXYFromRelative().

◆ operator=()

Volume & NRLib::Volume::operator= ( const Volume rhs)

◆ ReadVolumeFromFile()

void NRLib::Volume::ReadVolumeFromFile ( std::ifstream &  file,
int  line,
const std::string path 
)
protected

◆ SetAngle()

void NRLib::Volume::SetAngle ( double  angle)

◆ SetDimensions()

void NRLib::Volume::SetDimensions ( double  x_min,
double  y_min,
double  lx,
double  ly 
)

◆ SetSurfaces()

void NRLib::Volume::SetSurfaces ( const Surface< double > &  top_surf,
const Surface< double > &  bot_surf,
bool  skip_check = true 
)

Set surfaces.

◆ SetTolerance()

void NRLib::Volume::SetTolerance ( double  tolerance)
inline

◆ WriteVolumeToFile()

void NRLib::Volume::WriteVolumeToFile ( std::ofstream &  file,
const std::string filename,
bool  remove_path = true 
) const
protected

Reader and writer on storm-format.


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