LSST Applications  21.0.0+04719a4bac,21.0.0-1-ga51b5d4+f5e6047307,21.0.0-11-g2b59f77+a9c1acf22d,21.0.0-11-ga42c5b2+86977b0b17,21.0.0-12-gf4ce030+76814010d2,21.0.0-13-g1721dae+760e7a6536,21.0.0-13-g3a573fe+768d78a30a,21.0.0-15-g5a7caf0+f21cbc5713,21.0.0-16-g0fb55c1+b60e2d390c,21.0.0-19-g4cded4ca+71a93a33c0,21.0.0-2-g103fe59+bb20972958,21.0.0-2-g45278ab+04719a4bac,21.0.0-2-g5242d73+3ad5d60fb1,21.0.0-2-g7f82c8f+8babb168e8,21.0.0-2-g8f08a60+06509c8b61,21.0.0-2-g8faa9b5+616205b9df,21.0.0-2-ga326454+8babb168e8,21.0.0-2-gde069b7+5e4aea9c2f,21.0.0-2-gecfae73+1d3a86e577,21.0.0-2-gfc62afb+3ad5d60fb1,21.0.0-25-g1d57be3cd+e73869a214,21.0.0-3-g357aad2+ed88757d29,21.0.0-3-g4a4ce7f+3ad5d60fb1,21.0.0-3-g4be5c26+3ad5d60fb1,21.0.0-3-g65f322c+e0b24896a3,21.0.0-3-g7d9da8d+616205b9df,21.0.0-3-ge02ed75+a9c1acf22d,21.0.0-4-g591bb35+a9c1acf22d,21.0.0-4-g65b4814+b60e2d390c,21.0.0-4-gccdca77+0de219a2bc,21.0.0-4-ge8a399c+6c55c39e83,21.0.0-5-gd00fb1e+05fce91b99,21.0.0-6-gc675373+3ad5d60fb1,21.0.0-64-g1122c245+4fb2b8f86e,21.0.0-7-g04766d7+cd19d05db2,21.0.0-7-gdf92d54+04719a4bac,21.0.0-8-g5674e7b+d1bd76f71f,master-gac4afde19b+a9c1acf22d,w.2021.13
LSST Data Management Base Package
Public Types | Public Member Functions | List of all members
RelativeSpanIterator Class Reference

This is a convenience class used in symmetrizeFootprint, wrapping the idea of iterating through a SpanList either forward or backward, and looking at dx,dy coordinates relative to a center cx,cy coordinate. More...

Public Types

using SpanSet = afwGeom::SpanSet
 

Public Member Functions

 RelativeSpanIterator ()
 
 RelativeSpanIterator (SpanSet::const_iterator const &real, SpanSet const &arr, int cx, int cy, bool forward=true)
 
bool operator== (const SpanSet::const_iterator &other)
 
bool operator!= (const SpanSet::const_iterator &other)
 
bool operator<= (const SpanSet::const_iterator &other)
 
bool operator< (const SpanSet::const_iterator &other)
 
bool operator>= (const SpanSet::const_iterator &other)
 
bool operator> (const SpanSet::const_iterator &other)
 
bool operator== (RelativeSpanIterator &other)
 
bool operator!= (RelativeSpanIterator &other)
 
RelativeSpanIterator operator++ ()
 
RelativeSpanIterator operator++ (int dummy)
 
bool notDone ()
 
int dxlo ()
 
int dxhi ()
 
int dy ()
 
int x0 ()
 
int x1 ()
 
int y ()
 

Detailed Description

This is a convenience class used in symmetrizeFootprint, wrapping the idea of iterating through a SpanList either forward or backward, and looking at dx,dy coordinates relative to a center cx,cy coordinate.

This makes the symmetrizeFootprint code much tidier and more symmetric-looking; the operations on the forward and backward iterators are mostly the same.

Definition at line 818 of file BaselineUtils.cc.

Member Typedef Documentation

◆ SpanSet

Definition at line 820 of file BaselineUtils.cc.

Constructor & Destructor Documentation

◆ RelativeSpanIterator() [1/2]

RelativeSpanIterator::RelativeSpanIterator ( )
inline

Definition at line 822 of file BaselineUtils.cc.

822 {}

◆ RelativeSpanIterator() [2/2]

RelativeSpanIterator::RelativeSpanIterator ( SpanSet::const_iterator const &  real,
SpanSet const &  arr,
int  cx,
int  cy,
bool  forward = true 
)
inline

Definition at line 824 of file BaselineUtils.cc.

827  : _real(real), _cx(cx), _cy(cy), _forward(forward)
828  {
829  if (_forward) {
830  _end = arr.end();
831  } else {
832  _end = arr.begin();
833  }
834  }
T real(const T &x)
Definition: Integrate.h:199

Member Function Documentation

◆ dxhi()

int RelativeSpanIterator::dxhi ( )
inline

Definition at line 893 of file BaselineUtils.cc.

893  {
894  if (_forward) {
895  return _real->getX1() - _cx;
896  } else {
897  return _cx - _real->getX0();
898  }
899  }

◆ dxlo()

int RelativeSpanIterator::dxlo ( )
inline

Definition at line 886 of file BaselineUtils.cc.

886  {
887  if (_forward) {
888  return _real->getX0() - _cx;
889  } else {
890  return _cx - _real->getX1();
891  }
892  }

◆ dy()

int RelativeSpanIterator::dy ( )
inline

Definition at line 900 of file BaselineUtils.cc.

900  {
901  return std::abs(_real->getY() - _cy);
902  }
Angle abs(Angle const &a)
Definition: Angle.h:106

◆ notDone()

bool RelativeSpanIterator::notDone ( )
inline

Definition at line 878 of file BaselineUtils.cc.

878  {
879  if (_forward) {
880  return _real < _end;
881  } else {
882  return _real >= _end;
883  }
884  }

◆ operator!=() [1/2]

bool RelativeSpanIterator::operator!= ( const SpanSet::const_iterator other)
inline

Definition at line 839 of file BaselineUtils.cc.

839  {
840  return _real != other;
841  }
ItemVariant const * other
Definition: Schema.cc:56

◆ operator!=() [2/2]

bool RelativeSpanIterator::operator!= ( RelativeSpanIterator other)
inline

Definition at line 860 of file BaselineUtils.cc.

860  {
861  return !(*this == other);
862  }

◆ operator++() [1/2]

RelativeSpanIterator RelativeSpanIterator::operator++ ( )
inline

Definition at line 864 of file BaselineUtils.cc.

864  {
865  if (_forward) {
866  _real++;
867  } else {
868  _real--;
869  }
870  return *this;
871  }

◆ operator++() [2/2]

RelativeSpanIterator RelativeSpanIterator::operator++ ( int  dummy)
inline

Definition at line 872 of file BaselineUtils.cc.

872  {
874  ++(*this);
875  return result;
876  }
py::object result
Definition: _schema.cc:430
This is a convenience class used in symmetrizeFootprint, wrapping the idea of iterating through a Spa...

◆ operator<()

bool RelativeSpanIterator::operator< ( const SpanSet::const_iterator other)
inline

Definition at line 845 of file BaselineUtils.cc.

845  {
846  return _real < other;
847  }

◆ operator<=()

bool RelativeSpanIterator::operator<= ( const SpanSet::const_iterator other)
inline

Definition at line 842 of file BaselineUtils.cc.

842  {
843  return _real <= other;
844  }

◆ operator==() [1/2]

bool RelativeSpanIterator::operator== ( const SpanSet::const_iterator other)
inline

Definition at line 836 of file BaselineUtils.cc.

836  {
837  return _real == other;
838  }

◆ operator==() [2/2]

bool RelativeSpanIterator::operator== ( RelativeSpanIterator other)
inline

Definition at line 855 of file BaselineUtils.cc.

855  {
856  return (_real == other._real) &&
857  (_cx == other._cx) && (_cy == other._cy) &&
858  (_forward == other._forward);
859  }

◆ operator>()

bool RelativeSpanIterator::operator> ( const SpanSet::const_iterator other)
inline

Definition at line 851 of file BaselineUtils.cc.

851  {
852  return _real > other;
853  }

◆ operator>=()

bool RelativeSpanIterator::operator>= ( const SpanSet::const_iterator other)
inline

Definition at line 848 of file BaselineUtils.cc.

848  {
849  return _real >= other;
850  }

◆ x0()

int RelativeSpanIterator::x0 ( )
inline

Definition at line 903 of file BaselineUtils.cc.

903  {
904  return _real->getX0();
905  }

◆ x1()

int RelativeSpanIterator::x1 ( )
inline

Definition at line 906 of file BaselineUtils.cc.

906  {
907  return _real->getX1();
908  }

◆ y()

int RelativeSpanIterator::y ( )
inline

Definition at line 909 of file BaselineUtils.cc.

909  {
910  return _real->getY();
911  }

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