Mask
Description
A Mask consists out of a arbitrary number of polygons and can be used to mask parts of an image.
Public Interface
- Mask()
- Mask(const Mask& m)
- Mask(const geom::Polygon2& p,bool invert=false)
- AddPolygon(const geom::Polygon2& p,bool invert=false)
- void Invert()
- bool IsInside(const geom::Vec2& v) const
- bool IsOutside(const geom::Vec2& v) const
- unsigned int GetPolygonCount() const
- geom::Polygon2 GetPolygon(unsigned int n) const
- void SetNode(unsigned int npol,unsigned int nnode,const geom::Vec2& n)
- void Expand(double val)
- Mask operator+(const geom::Polygon2& p) const
- Mask operator+(const Mask& m) const
- Mask operator!() const
- Mask operator+( const geom::Vec2& v) const
- Mask operator*(double d) const
Constructor
- Mask()
- Mask(const Mask& m)
- Mask(const geom::Polygon2& p,bool invert=false)
void AddPolygon(const geom::Polygon2& p,bool invert=false)
Adds a polygon to the mask.
void Invert()
Inverts the mask.
bool IsInside(const geom::Vec2& v) const
Checks if a point is inside the mask.
bool IsOutside(const geom::Vec2& v) const
Checks if a point is outside the mask.
unsigned int GetPolygonCount() const
Gets the number of polygons in the mask.
geom::Polygon2 GetPolygon(unsigned int n) const
Gets polygon Nr. n.
void SetNode(unsigned int npol,unsigned int nnode,const geom::Vec2& n)
Modifies a node within a polygon of the mask.
void Expand(double val)
Expands the mask by val units.
Operators
- Mask operator+(const geom::Polygon2& p) const
- Mask operator+(const Mask& m) const
- Mask operator!() const
- Mask operator+( const geom::Vec2& v) const
- Mask operator*(double d) const
The basic arithmetic operators can be used to add a polygon to a mask to merge two masks to invert a mask or to shift a mask (add a Vec2 to every node).
C++
#include <iplt/mask.hh> using namespace iplt; using namespace geom; int main() { Polygon2 p; p.AddNode(Vec2(1,2)); p.AddNode(Vec2(10,2)); p.AddNode(Vec2(10,20)); p.AddNode(Vec2(5,25)); p.AddNode(Vec2(1,20)); // generates mask with polygon p as parameter Mask m(p); Polygon2 p2; p2.AddNode(Vec2(15,2)); p2.AddNode(Vec2(20,2)); p2.AddNode(Vec2(20,20)); // generates a new mask containing both polygons Mask m2=m+p2; //inverts mask; m2.invert(); return 0; }
Python
from iplt import * p=Polygon2(); p.AddNode(Vec2(1,2)) p.AddNode(Vec2(10,2)) p.AddNode(Vec2(10,20)) p.AddNode(Vec2(5,25)) p.AddNode(Vec2(1,20)) # generates mask with polygon p as parameter m=Mask(p); p2=Polygon2(); p2.AddNode(Vec2(15,2)) p2.AddNode(Vec2(20,2)) p2.AddNode(Vec2(20,20)) # generates a new mask containing both polygons m2=m+p2; #inverts mask; m2.invert()
back to Core Classes
