30#ifndef LSST_SPHGEOM_REGION_H_
31#define LSST_SPHGEOM_REGION_H_
94 virtual std::unique_ptr<Region>
clone()
const = 0;
113 bool contains(
double x,
double y,
double z)
const;
117 bool contains(
double lon,
double lat)
const;
158 virtual std::vector<std::uint8_t>
encode()
const = 0;
162 static std::unique_ptr<Region>
decode(std::vector<std::uint8_t>
const & s) {
163 return decode(s.data(), s.size());
166 static std::unique_ptr<Region>
decode(std::uint8_t
const * buffer,
size_t n);
180 static std::unique_ptr<Region>
decodeBase64(std::string_view
const & s);
198 static std::vector<std::unique_ptr<Region>>
getRegions(
Region const ®ion);
209 if ((r & DISJOINT) == DISJOINT) {
212 if ((r & (WITHIN | CONTAINS)).any()) {
213 return TriState(
true);
This file provides a type alias for describing set relationships.
This file declares a class for representing tri-state values.
Definition ConvexPolygon.h:65
static std::unique_ptr< Region > decodeBase64(std::string const &s)
Definition Region.h:176
virtual Circle getBoundingCircle() const =0
getBoundingCircle returns a bounding-circle for this region.
virtual Relationship relate(Region const &) const =0
virtual std::vector< std::uint8_t > encode() const =0
virtual Box getBoundingBox() const =0
getBoundingBox returns a bounding-box for this region.
static std::vector< std::unique_ptr< Region > > getRegions(Region const ®ion)
getRegions returns a vector of Region.
Definition Region.cc:145
virtual bool contains(UnitVector3d const &) const =0
contains tests whether the given unit vector is inside this region.
virtual std::unique_ptr< Region > clone() const =0
clone returns a deep copy of this region.
static std::unique_ptr< Region > decode(std::vector< std::uint8_t > const &s)
Definition Region.h:162
virtual TriState overlaps(Region const &other) const =0
Definition Region.cc:59
virtual bool isEmpty() const =0
isEmpty returns true when a region does not contain any points.
static TriState decodeOverlapsBase64(std::string const &s)
Definition Region.h:190
virtual Box3d getBoundingBox3d() const =0
getBoundingBox3d returns a 3-dimensional bounding-box for this region.
Definition UnitVector3d.h:62
std::bitset< 3 > Relationship
Relationship describes how two sets are related.
Definition Relationship.h:42