LSST Applications g070148d5b3+33e5256705,g0d53e28543+25c8b88941,g0da5cf3356+2dd1178308,g1081da9e2a+62d12e78cb,g17e5ecfddb+7e422d6136,g1c76d35bf8+ede3a706f7,g295839609d+225697d880,g2e2c1a68ba+cc1f6f037e,g2ffcdf413f+853cd4dcde,g38293774b4+62d12e78cb,g3b44f30a73+d953f1ac34,g48ccf36440+885b902d19,g4b2f1765b6+7dedbde6d2,g5320a0a9f6+0c5d6105b6,g56b687f8c9+ede3a706f7,g5c4744a4d9+ef6ac23297,g5ffd174ac0+0c5d6105b6,g6075d09f38+66af417445,g667d525e37+2ced63db88,g670421136f+2ced63db88,g71f27ac40c+2ced63db88,g774830318a+463cbe8d1f,g7876bc68e5+1d137996f1,g7985c39107+62d12e78cb,g7fdac2220c+0fd8241c05,g96f01af41f+368e6903a7,g9ca82378b8+2ced63db88,g9d27549199+ef6ac23297,gabe93b2c52+e3573e3735,gb065e2a02a+3dfbe639da,gbc3249ced9+0c5d6105b6,gbec6a3398f+0c5d6105b6,gc9534b9d65+35b9f25267,gd01420fc67+0c5d6105b6,geee7ff78d7+a14128c129,gf63283c776+ede3a706f7,gfed783d017+0c5d6105b6,w.2022.47
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
ast::MapBox Class Reference

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

#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)
 Find a bounding box for a Mapping. More...
 
 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
 Upper bound of the input box. More...
 
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.

Definition at line 42 of file MapBox.h.

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.

Definition at line 34 of file MapBox.cc.

36 : lbndIn(lbnd),
37 ubndIn(ubnd),
39 maxOutCoord(maxOutCoord), // if 0 then _compute will set it to # of outputs
40 lbndOut(),
41 ubndOut(),
42 xl(),
43 xu() {
44 _compute(map, lbnd, ubnd, minOutCoord, maxOutCoord);
45}
std::vector< double > ubndIn
Upper bound of the input box.
Definition: MapBox.h:93
int minOutCoord
Minimum output coordinate axis for which to compute an output bounding box, starting from 1.
Definition: MapBox.h:95
std::vector< double > lbndIn
Lower bound of the input box.
Definition: MapBox.h:92
Array2D xu
2-d array of [out coord, an input point at which the upper bound occurred]
Definition: MapBox.h:101
std::vector< double > ubndOut
Upper bound of the output box.
Definition: MapBox.h:99
int maxOutCoord
Maximum output coordinate axis for which to compute an output bounding box, starting from 1.
Definition: MapBox.h:97
Array2D xl
2-d array of [out coord, an input point at which the lower bound occurred]
Definition: MapBox.h:100
std::vector< double > lbndOut
Lower bound of the output box.
Definition: MapBox.h:98

◆ 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.

Definition at line 92 of file MapBox.h.

◆ lbndOut

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

Lower bound of the output box.

Definition at line 98 of file MapBox.h.

◆ maxOutCoord

int ast::MapBox::maxOutCoord

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

Definition at line 97 of file MapBox.h.

◆ minOutCoord

int ast::MapBox::minOutCoord

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

Definition at line 95 of file MapBox.h.

◆ ubndIn

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

Upper bound of the input box.

Definition at line 93 of file MapBox.h.

◆ ubndOut

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

Upper bound of the output box.

Definition at line 99 of file MapBox.h.

◆ xl

Array2D ast::MapBox::xl

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

Definition at line 100 of file MapBox.h.

◆ xu

Array2D ast::MapBox::xu

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

Definition at line 101 of file MapBox.h.


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