Class Polygon¶
Defined in File Polygon.h
Inheritance Relationships¶
Base Types¶
public lsst::afw::table::io::PersistableFacade< Polygon >
(Template Class PersistableFacade)public Storable
Class Documentation¶
-
class
Polygon
: public lsst::afw::table::io::PersistableFacade<Polygon>, public Storable¶ Cartesian polygons
Polygons are defined by a set of vertices
Unnamed Group
Unnamed Group
Unnamed Group
-
std::shared_ptr<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.
Unnamed Group
Unnamed Group
Unnamed Group
Unnamed Group
Unnamed Group
Unnamed Group
-
std::shared_ptr<Polygon>
transform
(TransformPoint2ToPoint2 const &transform) const¶ - Parameters
transform
: Transform from original to target frame
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.
Unnamed Group
Unnamed Group
-
std::shared_ptr<afw::image::Image<float>>
createImage
(lsst::geom::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.
Public Functions
-
~Polygon
()¶
-
Polygon
(Box const &box, TransformPoint2ToPoint2 const &transform)¶ Construct a 4-sided Polygon from a transformed box
The resulting polygon has 4 vertices: transform.applyForward(bbox.getCorners())
- Parameters
[in] box
: Initial box[in] transform
: Coordinate transform
-
Polygon
(Box const &box, lsst::geom::AffineTransform const &transform)¶ Construct a 4-sided Polygon from a transformed box
The resulting polygon has 4 vertices: the corners of the box transformed by
transform
- Parameters
[in] box
: Initial box[in] transform
: Coordinate transform
-
size_t
getNumEdges
() const¶ Return number of edges
Identical with the number of points
-
double
calculateArea
() const¶
-
double
calculatePerimeter
() const¶
-
std::vector<Point>
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<std::pair<Point, Point>>
getEdges
() const¶ Get vector of edges
Returns edges, as pairs of vertices.
-
std::size_t
hash_value
() const¶ Return a hash of this object.
-
std::shared_ptr<Polygon>
simplify
(double const distance) const¶ Return a simplified polygon
Removes unnecessary points (using the Douglas-Peucker algorithm).
-
std::shared_ptr<typehandling::Storable>
cloneStorable
() const¶ Create a new Polygon that is a copy of this one.
-
std::string
toString
() const¶ Create a string representation of this object.
-
bool
equals
(typehandling::Storable const &other) const¶ Compare this object to another Storable.
- Return
*this == other
ifother
is a Polygon; otherwisefalse
.
-
std::shared_ptr<Polygon>