LSST Applications g063fba187b+cac8b7c890,g0f08755f38+6aee506743,g1653933729+a8ce1bb630,g168dd56ebc+a8ce1bb630,g1a2382251a+b4475c5878,g1dcb35cd9c+8f9bc1652e,g20f6ffc8e0+6aee506743,g217e2c1bcf+73dee94bd0,g28da252d5a+1f19c529b9,g2bbee38e9b+3f2625acfc,g2bc492864f+3f2625acfc,g3156d2b45e+6e55a43351,g32e5bea42b+1bb94961c2,g347aa1857d+3f2625acfc,g35bb328faa+a8ce1bb630,g3a166c0a6a+3f2625acfc,g3e281a1b8c+c5dd892a6c,g3e8969e208+a8ce1bb630,g414038480c+5927e1bc1e,g41af890bb2+8a9e676b2a,g7af13505b9+809c143d88,g80478fca09+6ef8b1810f,g82479be7b0+f568feb641,g858d7b2824+6aee506743,g89c8672015+f4add4ffd5,g9125e01d80+a8ce1bb630,ga5288a1d22+2903d499ea,gb58c049af0+d64f4d3760,gc28159a63d+3f2625acfc,gcab2d0539d+b12535109e,gcf0d15dbbd+46a3f46ba9,gda6a2b7d83+46a3f46ba9,gdaeeff99f8+1711a396fd,ge79ae78c31+3f2625acfc,gef2f8181fd+0a71e47438,gf0baf85859+c1f95f4921,gfa517265be+6aee506743,gfa999e8aa5+17cd334064,w.2024.51
LSST Data Management Base Package
Loading...
Searching...
No Matches
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 }

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 }

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

◆ 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:429
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: