LSST Applications g0f08755f38+9c285cab97,g1635faa6d4+13f3999e92,g1653933729+a8ce1bb630,g1a0ca8cf93+bf6eb00ceb,g28da252d5a+0829b12dee,g29321ee8c0+5700dc9eac,g2bbee38e9b+9634bc57db,g2bc492864f+9634bc57db,g2cdde0e794+c2c89b37c4,g3156d2b45e+41e33cbcdc,g347aa1857d+9634bc57db,g35bb328faa+a8ce1bb630,g3a166c0a6a+9634bc57db,g3e281a1b8c+9f2c4e2fc3,g414038480c+077ccc18e7,g41af890bb2+fde0dd39b6,g5fbc88fb19+17cd334064,g781aacb6e4+a8ce1bb630,g80478fca09+55a9465950,g82479be7b0+d730eedb7d,g858d7b2824+9c285cab97,g9125e01d80+a8ce1bb630,g9726552aa6+10f999ec6a,ga5288a1d22+2a84bb7594,gacf8899fa4+c69c5206e8,gae0086650b+a8ce1bb630,gb58c049af0+d64f4d3760,gc28159a63d+9634bc57db,gcf0d15dbbd+4b7d09cae4,gda3e153d99+9c285cab97,gda6a2b7d83+4b7d09cae4,gdaeeff99f8+1711a396fd,ge2409df99d+5e831397f4,ge79ae78c31+9634bc57db,gf0baf85859+147a0692ba,gf3967379c6+41c94011de,gf3fb38a9a8+8f07a9901b,gfb92a5be7c+9c285cab97,w.2024.46
LSST Data Management Base Package
|
CompoundRegion is an intermediate base class for spherical regions that are comprised of a point-set operation on other nested regions. More...
#include <CompoundRegion.h>
Public Member Functions | |
CompoundRegion (Region const &first, Region const &second) | |
Construct by copying or taking ownership of operands. | |
CompoundRegion (std::array< std::unique_ptr< Region >, 2 > operands) noexcept | |
CompoundRegion (CompoundRegion const &) | |
CompoundRegion (CompoundRegion &&) noexcept=default | |
CompoundRegion & | operator= (CompoundRegion const &)=delete |
CompoundRegion & | operator= (CompoundRegion &&)=delete |
Region const & | getOperand (std::size_t n) const |
virtual Relationship | relate (Region const &r) const =0 |
Relationship | relate (Box const &b) const override |
Relationship | relate (Circle const &c) const override |
Relationship | relate (ConvexPolygon const &p) const override |
Relationship | relate (Ellipse const &e) const override |
virtual std::unique_ptr< Region > | clone () const =0 |
clone returns a deep copy of this region. | |
virtual Box | getBoundingBox () const =0 |
getBoundingBox returns a bounding-box for this region. | |
virtual Box3d | getBoundingBox3d () const =0 |
getBoundingBox3d returns a 3-dimensional bounding-box for this region. | |
virtual Circle | getBoundingCircle () const =0 |
getBoundingCircle returns a bounding-circle for this region. | |
virtual bool | contains (UnitVector3d const &) const =0 |
contains tests whether the given unit vector is inside this region. | |
bool | contains (double x, double y, double z) const |
contains tests whether the unit vector defined by the given (not necessarily normalized) coordinates is inside this region. | |
bool | contains (double lon, double lat) const |
contains tests whether the unit vector defined by the given longitude and latitude coordinates (in radians) is inside this region. | |
virtual std::vector< std::uint8_t > | encode () const =0 |
encode serializes this region into an opaque byte string. | |
Static Public Member Functions | |
static std::vector< std::unique_ptr< Region > > | getRegions (Region const ®ion) |
getRegions returns a vector of Region. | |
static std::unique_ptr< CompoundRegion > | decode (std::vector< std::uint8_t > const &s) |
static std::unique_ptr< CompoundRegion > | decode (std::uint8_t const *buffer, size_t n) |
Protected Member Functions | |
std::vector< std::uint8_t > | _encode (std::uint8_t tc) const |
Static Protected Member Functions | |
static std::array< std::unique_ptr< Region >, 2 > | _decode (std::uint8_t tc, std::uint8_t const *buffer, std::size_t nBytes) |
CompoundRegion is an intermediate base class for spherical regions that are comprised of a point-set operation on other nested regions.
Definition at line 55 of file CompoundRegion.h.
Construct by copying or taking ownership of operands.
Definition at line 77 of file CompoundRegion.cc.
|
explicitnoexcept |
Definition at line 80 of file CompoundRegion.cc.
lsst::sphgeom::CompoundRegion::CompoundRegion | ( | CompoundRegion const & | other | ) |
Definition at line 84 of file CompoundRegion.cc.
|
defaultnoexcept |
|
staticprotected |
Definition at line 104 of file CompoundRegion.cc.
|
protected |
Definition at line 92 of file CompoundRegion.cc.
|
pure virtualinherited |
clone
returns a deep copy of this region.
Implemented in lsst::sphgeom::Box, lsst::sphgeom::Circle, lsst::sphgeom::UnionRegion, lsst::sphgeom::IntersectionRegion, lsst::sphgeom::ConvexPolygon, and lsst::sphgeom::Ellipse.
|
inherited |
contains
tests whether the unit vector defined by the given longitude and latitude coordinates (in radians) is inside this region.
Definition at line 51 of file Region.cc.
|
inherited |
|
pure virtualinherited |
contains
tests whether the given unit vector is inside this region.
Implemented in lsst::sphgeom::Box, lsst::sphgeom::Circle, lsst::sphgeom::UnionRegion, lsst::sphgeom::IntersectionRegion, lsst::sphgeom::ConvexPolygon, lsst::sphgeom::Ellipse, lsst::sphgeom::Box, lsst::sphgeom::Circle, lsst::sphgeom::UnionRegion, lsst::sphgeom::IntersectionRegion, lsst::sphgeom::ConvexPolygon, and lsst::sphgeom::Ellipse.
|
static |
decode
deserializes a CompoundRegion from a byte string produced by encode.
Definition at line 127 of file CompoundRegion.cc.
|
inlinestatic |
decode
deserializes a CompoundRegion from a byte string produced by encode.
Definition at line 86 of file CompoundRegion.h.
|
pure virtualinherited |
encode
serializes this region into an opaque byte string.
Byte strings emitted by encode can be deserialized with decode.
Implemented in lsst::sphgeom::Box, lsst::sphgeom::Circle, lsst::sphgeom::UnionRegion, lsst::sphgeom::IntersectionRegion, lsst::sphgeom::ConvexPolygon, and lsst::sphgeom::Ellipse.
|
pure virtualinherited |
getBoundingBox
returns a bounding-box for this region.
Implemented in lsst::sphgeom::Box, lsst::sphgeom::Circle, lsst::sphgeom::UnionRegion, lsst::sphgeom::IntersectionRegion, lsst::sphgeom::ConvexPolygon, and lsst::sphgeom::Ellipse.
|
pure virtualinherited |
getBoundingBox3d
returns a 3-dimensional bounding-box for this region.
Implemented in lsst::sphgeom::Box, lsst::sphgeom::Circle, lsst::sphgeom::UnionRegion, lsst::sphgeom::IntersectionRegion, lsst::sphgeom::ConvexPolygon, and lsst::sphgeom::Ellipse.
|
pure virtualinherited |
getBoundingCircle
returns a bounding-circle for this region.
Implemented in lsst::sphgeom::Box, lsst::sphgeom::Circle, lsst::sphgeom::UnionRegion, lsst::sphgeom::IntersectionRegion, lsst::sphgeom::ConvexPolygon, and lsst::sphgeom::Ellipse.
|
inline |
Definition at line 72 of file CompoundRegion.h.
|
staticinherited |
getRegions
returns a vector of Region.
Definition at line 76 of file Region.cc.
|
delete |
|
delete |
|
overridevirtual |
relate
computes the spatial relationships between this region A and another region B. The return value S is a bitset with the following properties:
S & DISJOINT
is set only if A and B do not have any points in common.S & CONTAINS
is set only if A contains all points in B.S & WITHIN
is set only if B contains all points in A.Said another way: if the CONTAINS, WITHIN or DISJOINT bit is set, then the corresponding spatial relationship between the two regions holds conclusively. If it is not set, the relationship may or may not hold.
These semantics allow for conservative relationship computations. In particular, a Region may choose to implement relate
by replacing itself and/or the argument with a simplified bounding region.
Implements lsst::sphgeom::Region.
Definition at line 87 of file CompoundRegion.cc.
|
overridevirtual |
relate
computes the spatial relationships between this region A and another region B. The return value S is a bitset with the following properties:
S & DISJOINT
is set only if A and B do not have any points in common.S & CONTAINS
is set only if A contains all points in B.S & WITHIN
is set only if B contains all points in A.Said another way: if the CONTAINS, WITHIN or DISJOINT bit is set, then the corresponding spatial relationship between the two regions holds conclusively. If it is not set, the relationship may or may not hold.
These semantics allow for conservative relationship computations. In particular, a Region may choose to implement relate
by replacing itself and/or the argument with a simplified bounding region.
Implements lsst::sphgeom::Region.
Definition at line 88 of file CompoundRegion.cc.
|
overridevirtual |
relate
computes the spatial relationships between this region A and another region B. The return value S is a bitset with the following properties:
S & DISJOINT
is set only if A and B do not have any points in common.S & CONTAINS
is set only if A contains all points in B.S & WITHIN
is set only if B contains all points in A.Said another way: if the CONTAINS, WITHIN or DISJOINT bit is set, then the corresponding spatial relationship between the two regions holds conclusively. If it is not set, the relationship may or may not hold.
These semantics allow for conservative relationship computations. In particular, a Region may choose to implement relate
by replacing itself and/or the argument with a simplified bounding region.
Implements lsst::sphgeom::Region.
Definition at line 89 of file CompoundRegion.cc.
|
overridevirtual |
relate
computes the spatial relationships between this region A and another region B. The return value S is a bitset with the following properties:
S & DISJOINT
is set only if A and B do not have any points in common.S & CONTAINS
is set only if A contains all points in B.S & WITHIN
is set only if B contains all points in A.Said another way: if the CONTAINS, WITHIN or DISJOINT bit is set, then the corresponding spatial relationship between the two regions holds conclusively. If it is not set, the relationship may or may not hold.
These semantics allow for conservative relationship computations. In particular, a Region may choose to implement relate
by replacing itself and/or the argument with a simplified bounding region.
Implements lsst::sphgeom::Region.
Definition at line 90 of file CompoundRegion.cc.
|
pure virtual |
relate
computes the spatial relationships between this region A and another region B. The return value S is a bitset with the following properties:
S & DISJOINT
is set only if A and B do not have any points in common.S & CONTAINS
is set only if A contains all points in B.S & WITHIN
is set only if B contains all points in A.Said another way: if the CONTAINS, WITHIN or DISJOINT bit is set, then the corresponding spatial relationship between the two regions holds conclusively. If it is not set, the relationship may or may not hold.
These semantics allow for conservative relationship computations. In particular, a Region may choose to implement relate
by replacing itself and/or the argument with a simplified bounding region.
Implements lsst::sphgeom::Region.
Implemented in lsst::sphgeom::UnionRegion, and lsst::sphgeom::IntersectionRegion.