lsst.astshim  22.0.0+01bcf6a671
Public Member Functions | Public Attributes | List of all members
ast::MapBox Class Reference

#include <MapBox.h>

Public Member Functions

 MapBox (Mapping const &map, std::vector< double > const &lbnd, std::vector< double > const &ubnd, int minOutCoord=1, int maxOutCoord=0)
 
 MapBox (MapBox const &)=default
 
 MapBox (MapBox &&)=default
 
MapBoxoperator= (MapBox const &)=default
 
MapBoxoperator= (MapBox &&)=default
 

Public Attributes

std::vector< double > lbndIn
 Lower bound of the input box. More...
 
std::vector< double > ubndIn
 
int minOutCoord
 Minimum output coordinate axis for which to compute an output bounding box, starting from 1. More...
 
int maxOutCoord
 Maximum output coordinate axis for which to compute an output bounding box, starting from 1. More...
 
std::vector< double > lbndOut
 Lower bound of the output box. More...
 
std::vector< double > ubndOut
 Upper bound of the output box. More...
 
Array2D xl
 2-d array of [out coord, an input point at which the lower bound occurred] More...
 
Array2D xu
 2-d array of [out coord, an input point at which the upper bound occurred] More...
 

Detailed Description

Object to compute the bounding box which just encloses another box after it has been transformed by a mapping.

Warning
The points in xl and xu are not predictable if more than one input value gives the same output boundary value.

Constructor & Destructor Documentation

◆ MapBox() [1/3]

ast::MapBox::MapBox ( Mapping const &  map,
std::vector< double > const &  lbnd,
std::vector< double > const &  ubnd,
int  minOutCoord = 1,
int  maxOutCoord = 0 
)
explicit

Find a bounding box for a Mapping.

Find the "bounding box" which just encloses another box after it has been transformed by a mapping. A typical use might be to calculate the size which an image would have after being transformed by this mapping.

Parameters
[in]mapMapping for which to find the output bounding box.
[in]lbndLower bound of the input box.
[in]ubndUpper bound of the input box. Note that it is permissible for the lower bound to exceed the corresponding upper bound, as the values will simply be swapped before use.
[in]minOutCoordMinimum output coordinate axis for which to compute an output bounding box, starting from 1
[in]maxOutCoordMaximum output coordinate axis for which to compute an output bounding box, starting from 1, or 0 for all remaining output coordinate axes (in which case the field of the same name will be set to the number of outputs)
Returns
A MapBox containing the computed outputs and a copy of the inputs.
Exceptions
std::invalid_argumentif minOutCoord is not in the range [1, getNOut()] or maxOutCoord is neither 0 nor in the range [minOutCoord, getNOut()].
std::runtime_errorif the required output bounds cannot be found. Typically, this might occur if all the input points which the function considers turn out to be invalid (see above). The number of points considered before generating such an error is quite large, however, so this is unlikely to occur by accident unless valid points are restricted to a very small subset of the input coordinate space.

Notes

  • Any input points which are transformed by the Mapping to give output coordinates containing the value AST__BAD are regarded as invalid and are ignored, They will make no contribution to determining the output bounds, even although the nominated output coordinate might still have a valid value at such points.

◆ MapBox() [2/3]

ast::MapBox::MapBox ( MapBox const &  )
default

◆ MapBox() [3/3]

ast::MapBox::MapBox ( MapBox &&  )
default

Member Function Documentation

◆ operator=() [1/2]

MapBox& ast::MapBox::operator= ( MapBox &&  )
default

◆ operator=() [2/2]

MapBox& ast::MapBox::operator= ( MapBox const &  )
default

Member Data Documentation

◆ lbndIn

std::vector<double> ast::MapBox::lbndIn

Lower bound of the input box.

◆ lbndOut

std::vector<double> ast::MapBox::lbndOut

Lower bound of the output box.

◆ maxOutCoord

int ast::MapBox::maxOutCoord

Maximum output coordinate axis for which to compute an output bounding box, starting from 1.

◆ minOutCoord

int ast::MapBox::minOutCoord

Minimum output coordinate axis for which to compute an output bounding box, starting from 1.

◆ ubndIn

std::vector<double> ast::MapBox::ubndIn

Upper bound of the input box.

◆ ubndOut

std::vector<double> ast::MapBox::ubndOut

Upper bound of the output box.

◆ xl

Array2D ast::MapBox::xl

2-d array of [out coord, an input point at which the lower bound occurred]

◆ xu

Array2D ast::MapBox::xu

2-d array of [out coord, an input point at which the upper bound occurred]


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