LSSTApplications
10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
|
#include <Polygon.h>
Public Types | |
typedef Box2D | Box |
typedef Point2D | Point |
Public Member Functions | |
void | swap (Polygon &other) |
Swap two polygons. More... | |
size_t | getNumEdges () const |
Box | getBBox () const |
Return bounding box. More... | |
Point | calculateCenter () const |
double | calculateArea () const |
double | calculatePerimeter () const |
std::vector< Point > | getVertices () const |
std::vector< std::pair< Point, Point > > | getEdges () const |
bool | operator== (Polygon const &other) const |
bool | operator!= (Polygon const &other) const |
bool | contains (Point const &point) const |
Returns whether the polygon contains the point. More... | |
boost::shared_ptr< Polygon > | simplify (double const distance) const |
boost::shared_ptr< Polygon > | convexHull () const |
Produce a polygon from the convex hull. More... | |
Polygon (Box const &box) | |
Constructors. More... | |
Polygon (Box const &box, boost::shared_ptr< XYTransform const > const &transform) | |
Constructors. More... | |
Polygon (Box const &box, AffineTransform const &transform) | |
Constructors. More... | |
Polygon (std::vector< Point > const &vertices) | |
Constructors. More... | |
std::vector< Point > ::const_iterator | begin () const |
std::vector< Point > ::const_iterator | end () const |
bool | overlaps (Polygon const &other) const |
bool | overlaps (Box const &box) const |
boost::shared_ptr< Polygon > | intersectionSingle (Polygon const &other) const |
boost::shared_ptr< Polygon > | intersectionSingle (Box const &box) const |
std::vector< boost::shared_ptr < Polygon > > | intersection (Polygon const &other) const |
std::vector< boost::shared_ptr < Polygon > > | intersection (Box const &box) const |
boost::shared_ptr< Polygon > | unionSingle (Polygon const &other) const |
boost::shared_ptr< Polygon > | unionSingle (Box const &box) const |
std::vector< boost::shared_ptr < Polygon > > | union_ (Polygon const &other) const |
std::vector< boost::shared_ptr < Polygon > > | union_ (Box const &box) const |
std::vector< boost::shared_ptr < Polygon > > | symDifference (Polygon const &other) const |
Return the symmetric difference of two polygons. More... | |
std::vector< boost::shared_ptr < Polygon > > | symDifference (Box const &box) const |
Return the symmetric difference of two polygons. More... | |
std::vector< boost::shared_ptr < Polygon > > | operator& (Polygon const &rhs) const |
Operators for syntactic sugar. More... | |
std::vector< boost::shared_ptr < Polygon > > | operator& (Box const &rhs) const |
Operators for syntactic sugar. More... | |
std::vector< boost::shared_ptr < Polygon > > | operator| (Polygon const &rhs) const |
Operators for syntactic sugar. More... | |
std::vector< boost::shared_ptr < Polygon > > | operator| (Box const &rhs) const |
Operators for syntactic sugar. More... | |
std::vector< boost::shared_ptr < Polygon > > | operator^ (Polygon const &rhs) const |
Operators for syntactic sugar. More... | |
std::vector< boost::shared_ptr < Polygon > > | operator^ (Box const &rhs) const |
Operators for syntactic sugar. More... | |
boost::shared_ptr< Polygon > | transform (boost::shared_ptr< XYTransform const > const &transform) const |
boost::shared_ptr< Polygon > | transform (AffineTransform const &transform) const |
boost::shared_ptr< Polygon > | subSample (size_t num) const |
boost::shared_ptr< Polygon > | subSample (double maxLength) const |
boost::shared_ptr < afw::image::Image< float > > | createImage (Box2I const &bbox) const |
boost::shared_ptr < afw::image::Image< float > > | createImage (Extent2I const &extent) const |
Public Member Functions inherited from lsst::afw::table::io::Persistable | |
void | writeFits (std::string const &fileName, std::string const &mode="w") const |
Write the object to a regular FITS file. More... | |
void | writeFits (fits::MemFileManager &manager, std::string const &mode="w") const |
Write the object to a FITS image in memory. More... | |
void | writeFits (fits::Fits &fitsfile) const |
Write the object to an already-open FITS object. More... | |
virtual | ~Persistable () |
boost::shared_ptr< Impl > | _impl |
Whether Polygon is persistable which is always true. More... | |
virtual bool | isPersistable () const |
Whether Polygon is persistable which is always true. More... | |
virtual std::string | getPersistenceName () const |
Whether Polygon is persistable which is always true. More... | |
virtual void | write (OutputArchiveHandle &handle) const |
Whether Polygon is persistable which is always true. More... | |
Polygon (boost::shared_ptr< Impl > impl) | |
Whether Polygon is persistable which is always true. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from lsst::afw::table::io::PersistableFacade< Polygon > | |
static boost::shared_ptr< Polygon > | readFits (fits::Fits &fitsfile) |
Read an object from an already open FITS object. More... | |
static boost::shared_ptr< Polygon > | readFits (std::string const &fileName, int hdu=0) |
Read an object from a regular FITS file. More... | |
static boost::shared_ptr< Polygon > | readFits (fits::MemFileManager &manager, int hdu=0) |
Read an object from a FITS file in memory. More... | |
Protected Types inherited from lsst::afw::table::io::Persistable | |
typedef io::OutputArchiveHandle | OutputArchiveHandle |
Protected Member Functions inherited from lsst::afw::table::io::Persistable | |
virtual std::string | getPythonModule () const |
Return the fully-qualified Python module that should be imported to guarantee that its factory is registered. More... | |
Persistable () | |
Persistable (Persistable const &other) | |
void | operator= (Persistable const &other) |
Cartesian polygons
Polygons are defined by a set of vertices
|
explicit |
Constructors.
lsst::afw::geom::polygon::Polygon::Polygon | ( | Box const & | box, |
boost::shared_ptr< XYTransform const > const & | transform | ||
) |
Constructors.
box | Box to convert to polygon |
transform | Transform from original to target frame |
lsst::afw::geom::polygon::Polygon::Polygon | ( | Box const & | box, |
AffineTransform const & | transform | ||
) |
Constructors.
box | Box to convert to polygon |
transform | Transform from original to target frame |
|
explicit |
Constructors.
|
inlineprivate |
Whether Polygon is persistable which is always true.
Definition at line 239 of file Polygon.h.
std::vector<Point>::const_iterator lsst::afw::geom::polygon::Polygon::begin | ( | ) | const |
Iterator for vertices
Iterates only over the "open" polygon vertices (i.e., same number as returned by "getNumEdges").
double lsst::afw::geom::polygon::Polygon::calculateArea | ( | ) | const |
Point lsst::afw::geom::polygon::Polygon::calculateCenter | ( | ) | const |
double lsst::afw::geom::polygon::Polygon::calculatePerimeter | ( | ) | const |
bool lsst::afw::geom::polygon::Polygon::contains | ( | Point const & | point | ) | const |
Returns whether the polygon contains the point.
boost::shared_ptr< Polygon > lsst::afw::geom::polygon::Polygon::convexHull | ( | ) | const |
Produce a polygon from the convex hull.
boost::shared_ptr< afw::image::Image<float> > lsst::afw::geom::polygon::Polygon::createImage | ( | Box2I const & | bbox | ) | const |
Create image of polygon
Pixels entirely contained within the polygon receive value unity, pixels entirely outside the polygon receive value zero, and pixels on the border receive a value equal to the fraction of the pixel within the polygon.
Note that the center of the lower-left pixel is 0,0.
|
inline |
Create image of polygon
Pixels entirely contained within the polygon receive value unity, pixels entirely outside the polygon receive value zero, and pixels on the border receive a value equal to the fraction of the pixel within the polygon.
Note that the center of the lower-left pixel is 0,0.
Definition at line 219 of file Polygon.h.
std::vector<Point>::const_iterator lsst::afw::geom::polygon::Polygon::end | ( | ) | const |
Iterator for vertices
Iterates only over the "open" polygon vertices (i.e., same number as returned by "getNumEdges").
Box lsst::afw::geom::polygon::Polygon::getBBox | ( | ) | const |
Return bounding box.
Get vector of edges
Returns edges, as pairs of vertices.
size_t lsst::afw::geom::polygon::Polygon::getNumEdges | ( | ) | const |
Return number of edges
Identical with the number of points
|
protectedvirtual |
Whether Polygon is persistable which is always true.
Reimplemented from lsst::afw::table::io::Persistable.
std::vector<Point> lsst::afw::geom::polygon::Polygon::getVertices | ( | ) | const |
Get vector of vertices
Note that the "closed" polygon vertices are returned, so the first and last vertex are identical and there is one more vertex than otherwise expected.
std::vector<boost::shared_ptr< Polygon > > lsst::afw::geom::polygon::Polygon::intersection | ( | Polygon const & | other | ) | const |
Returns the intersection of two polygons
Handles the full range of possibilities.
std::vector<boost::shared_ptr< Polygon > > lsst::afw::geom::polygon::Polygon::intersection | ( | Box const & | box | ) | const |
Returns the intersection of two polygons
Handles the full range of possibilities.
boost::shared_ptr< Polygon > lsst::afw::geom::polygon::Polygon::intersectionSingle | ( | Polygon const & | other | ) | const |
Returns the intersection of two polygons
Does not handle non-convex polygons (which might have multiple independent intersections), and is provided as a convenience for when the polygons are known to be convex (e.g., image borders) and overlapping.
boost::shared_ptr< Polygon > lsst::afw::geom::polygon::Polygon::intersectionSingle | ( | Box const & | box | ) | const |
Returns the intersection of two polygons
Does not handle non-convex polygons (which might have multiple independent intersections), and is provided as a convenience for when the polygons are known to be convex (e.g., image borders) and overlapping.
|
inlinevirtual |
Whether Polygon is persistable which is always true.
Reimplemented from lsst::afw::table::io::Persistable.
|
inline |
|
inline |
|
inline |
bool lsst::afw::geom::polygon::Polygon::operator== | ( | Polygon const & | other | ) | const |
|
inline |
|
inline |
|
inline |
|
inline |
bool lsst::afw::geom::polygon::Polygon::overlaps | ( | Polygon const & | other | ) | const |
Returns whether the polygons overlap each other
Note that there may be no intersection if the polygons only share a boundary.
bool lsst::afw::geom::polygon::Polygon::overlaps | ( | Box const & | box | ) | const |
Returns whether the polygons overlap each other
Note that there may be no intersection if the polygons only share a boundary.
boost::shared_ptr< Polygon > lsst::afw::geom::polygon::Polygon::simplify | ( | double const | distance | ) | const |
Return a simplified polygon
Removes unnecessary points (using the Douglas-Peucker algorithm).
boost::shared_ptr< Polygon > lsst::afw::geom::polygon::Polygon::subSample | ( | size_t | num | ) | const |
Sub-sample each edge
This should provide greater fidelity when transforming with a non-linear transform.
boost::shared_ptr< Polygon > lsst::afw::geom::polygon::Polygon::subSample | ( | double | maxLength | ) | const |
Sub-sample each edge
This should provide greater fidelity when transforming with a non-linear transform.
|
inline |
Swap two polygons.
Definition at line 74 of file Polygon.h.
std::vector<boost::shared_ptr< Polygon > > lsst::afw::geom::polygon::Polygon::symDifference | ( | Polygon const & | other | ) | const |
Return the symmetric difference of two polygons.
std::vector<boost::shared_ptr< Polygon > > lsst::afw::geom::polygon::Polygon::symDifference | ( | Box const & | box | ) | const |
Return the symmetric difference of two polygons.
boost::shared_ptr< Polygon > lsst::afw::geom::polygon::Polygon::transform | ( | boost::shared_ptr< XYTransform const > const & | transform | ) | const |
Transform the polygon
The transformation is only applied to the vertices. If the transformation is non-linear, the edges will not reflect that, but simply join the vertices. Greater fidelity might be achieved by using "subSample" before transforming.
transform | Transform from original to target frame |
boost::shared_ptr< Polygon > lsst::afw::geom::polygon::Polygon::transform | ( | AffineTransform const & | transform | ) | const |
Transform the polygon
The transformation is only applied to the vertices. If the transformation is non-linear, the edges will not reflect that, but simply join the vertices. Greater fidelity might be achieved by using "subSample" before transforming.
transform | Transform from original to target frame |
std::vector<boost::shared_ptr< Polygon > > lsst::afw::geom::polygon::Polygon::union_ | ( | Polygon const & | other | ) | const |
Returns the union of two polygons
Handles the full range of possibilities.
Note the trailing underscore in C++, due to "union" being a reserved word.
std::vector<boost::shared_ptr< Polygon > > lsst::afw::geom::polygon::Polygon::union_ | ( | Box const & | box | ) | const |
Returns the union of two polygons
Handles the full range of possibilities.
Note the trailing underscore in C++, due to "union" being a reserved word.
boost::shared_ptr< Polygon > lsst::afw::geom::polygon::Polygon::unionSingle | ( | Polygon const & | other | ) | const |
Returns the union of two polygons
Does not handle non-overlapping polygons, the union of which would be disjoint.
boost::shared_ptr< Polygon > lsst::afw::geom::polygon::Polygon::unionSingle | ( | Box const & | box | ) | const |
Returns the union of two polygons
Does not handle non-overlapping polygons, the union of which would be disjoint.
|
protectedvirtual |
Whether Polygon is persistable which is always true.
Reimplemented from lsst::afw::table::io::Persistable.
|
private |