IGArea
- IGArea provides a device-independent specification of an arbitrarily-shaped area.
IGArea defines an object that performs certain binary CAG (Constructive Area
Geometry) operations on other area-defining geometries, such as IGRect2D, IGEllipse2D, and
IGPolygon2D. These CAG operations are Add (union), Subtract, Intersection, and Exclusive OR.
For instance, an IGArea can be made up of the area of a rectangle minus the area of an ellipse.
IGArea - Member Functions and Data by Group
Constructors & Destructor
Use the functions in this group to construct or destroy objects of class IGArea.
- ~IGArea
public:
virtual ~IGArea()
- Destroys the geometry area of class IGArea.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
- IGArea
- Creates an area geometry.
Overload 1
- Creates an area geometry from a rectangle.
public:
IGArea(const IGRect2D& g)
- Use this constructor to create an area geometry from the given rectangle.
- g
- A constant reference to the rectangle from which the area is to be constructed.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
Overload 2
- Default constructor, which does nothing.
public:
IGArea()
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
Overload 3
- Creates an area geometry from the given ellipse.
public:
IGArea(const IGEllipse2D& g)
- Use this constructor to create an area geometry from the specified ellipse.
- g
- A constant reference to the ellipse from which the area is to be constructed.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
Overload 4
- Creates an area geometry from the specified area.
public:
IGArea(const IGArea& g)
- Use this constructor to create an area geometry that is copied from the given one.
- g
- A constant reference to the area geometry from which the new one is copied.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
Overload 5
- Creates an area geometry from a loop.
public:
IGArea(const IGLoop2D& g)
- Use this constructor to create an area geometry from the given 2D loop.
- g
- A constant reference to the loop from which the area is to be constructed.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
Overload 6
- Creates an area geometry from a polygon.
public:
IGArea(const IGPolygon2D& g)
- Use this constructor to create an area geometry from the specified polygon.
- g
- A constant reference to the polygon from which the area is to be constructed.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
Acting on the Current Area Geometry Using the Given One
Use the functions in this group to modify the shape defined by the current geometry area with the given
IGArea geometry area. For example, these functions allow you to add the given shape to or subtract it from the
current one, intersect the current shape with the given one, set the shape to the combined shape of the two minus
their intersection, and so forth.
- add
public:
void add(const IGArea&)
- Adds the shape of the specified IGArea to the current shape. Addition is achieved through union.
- IGArea
- A constant reference to the shape to be added to the current area.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
- exclusiveOr
public:
void exclusiveOr(const IGArea&)
- Sets the shape to the combined area of the current shape and the specified IGArea's shape, minus their intersection.
- IGArea
- A constant reference to the area to be exclusive OR'd with this one.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
- intersect
public:
void intersect(const IGArea&)
- Sets the shape to the intersection of the current shape with the specified IGArea's shape.
- IGArea
- A constant reference to the area to be intersected with this one.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
- operator *=
public:
IGArea& operator *=(const IGArea&)
- Intersects the current shape with the specified IGArea's shape.
- IGArea
- A constant reference to the area to be intersected with this one.
- Return
- A const reference to the left-hand side object.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
- operator +=
public:
IGArea& operator +=(const IGArea&)
- Adds the shape of the specified area to this one. Addition is achieved through union.
- IGArea
- A constant reference to the shape to be added to the current area.
- Return
- A const reference to the left-hand side object.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
- operator -=
public:
IGArea& operator -=(const IGArea&)
- Subtracts the shape of the specified IGArea from the current shape.
- IGArea
- A constant reference to the shape to be subtracted from the current area.
- Return
- A const reference to the left-hand side object.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
- operator ^=
public:
IGArea& operator ^=(const IGArea&)
- Sets the shape to the combined area of the current shape and the specified IGArea's shape, minus their intersection.
- IGArea
- A constant reference to the area to be exclusive OR'd with this one.
- Return
- A const reference to the left-hand side object.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
- subtract
public:
void subtract(const IGArea&)
- Subtracts the shape of the specified IGArea from the current shape.
- IGArea
- A constant reference to the shape to be subtracted from the current area.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
Assignment Operator
Use the function in this group to perform assignment operations.
- operator =
public:
IGArea& operator =(const IGArea&)
- Assignment operator.
- IGArea
- A constant reference to the area to be copied.
- Return
- A non-const reference to the left-hand side object.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
Creating an Empty or Infinitely Large Area Geometry
Use the functions in this group to create an empty area geometry or one that is infinitely large.
- emptyArea
public:
static const IGArea& emptyArea()
- Creates a new empty area geometry.
- Return
- The new, empty area geometry.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
- infiniteArea
public:
static const IGArea& infiniteArea()
- Creates a new area geometry that is infinitely large.
- Return
- The new, infinitely large area geometry.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
Modifying an Area Geometry
Use the functions in this group to remove the area's geometry or to transform the area using a given matrix.
- setToEmpty
public:
void setToEmpty()
- Removes all basic geometries from this area.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
- transformBy
public:
void transformBy(const IGrafMatrix&)
- Transforms the entire area using the specified matrix.
- IGrafMatrix
- A constant reference to the matrix used to transform the area.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
Obtaining Information About the Area Geometry
Use the functions in this group to obtain information about an area, such as the object's time stamp,
the rectangle
that completely encloses the area, whether the area
contains a given point, a given rectangle, any geometries, whether the area is rectangular,
comprised completely of horizontal and vertical edges, comprised of a single basic geometry, and so forth.
- bounds
public:
IGRect2D bounds() const
- Returns the rectangle that completely encloses the area.
- Return
- The bounding rectangle for the area.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
- contains
Overload 1
- Tests whether the area geometry contains the given point.
public:
bool contains(const IGPoint2D&) const
- IGPoint2D
- A constant reference to the point to test for within the area geometry.
- Return
- True if the point lies completely within the area geometry.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
Overload 2
- Tests whether the area geometry contains the given rectangle.
public:
bool contains(const IGRect2D&) const
- IGRect2D
- A constant reference to the rectangle to test for within the area geometry.
- Return
- True if the rectangle lies completely within the area geometry.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
- intersects
public:
bool intersects(const IGRect2D&) const
- Tests whether the area geometry intersects the given rectangle.
- IGRect2D
- A constant reference to the rectangle to test for intersection.
- Return
- True if the area geometry intersects the given rectangle.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
- isEmpty
public:
bool isEmpty() const
- Tests whether this area contains any geometries.
- Return
- True if this area contains no basic geometries.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
- isRectangular
public:
bool isRectangular() const
- Tests whether the area is rectangular in shape.
- Return
- True if the area is rectangular in shape.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
- isRectilinear
public:
bool isRectilinear() const
- Tests whether the area is comprised completely of horizontal and vertical edges.
- Return
- True if the area is comprised completely of horizontal and vertical edges.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
- isSingular
public:
bool isSingular() const
- Tests whether the area is comprised of a single basic geometry.
- Return
- True if the area is comprised of a single basic geometry.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
- timeStamp
public:
unsigned long timeStamp() const
- Returns the object's time stamp.
- Return
- The object's time stamp.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
Streaming an Object In and Out
Use the functions and operators in this group to stream an area geometry object in and out. The functions are
readFromStream and writeToStream. The operators are operator <<= and operator >>=.
- operator <<=
public:
IDataStream& operator <<=(IDataStream&)
- Operator that streams the area geometry in using the given polymorphic stream.
- IDataStream
- A reference to the stream used to stream in the area geometry.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
- operator >>=
public:
IDataStream& operator >>=(IDataStream&) const
- Operator that streams the area geometry out using the given polymorphic stream.
- IDataStream
- A reference to the stream used to stream out the area geometry.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
- readFromStream
public:
void readFromStream(IDataStream& toWhere)
- Streams the area geometry in using the polymorphic streaming specified by fromWhere.
- fromWhere
- A reference to the stream used to stream in the area geometry.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
- writeToStream
public:
void writeToStream(IDataStream& toWhere) const
- Streams out the area geometry object out using the given stream defined for polymorphic streaming.
- toWhere
- A reference to the stream used to stream out the area geometry.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
Testing Two Area Geometries for Equality or Inequality
Use the functions in this group to test two area geometries for equality or inequality.
- operator !=
public:
bool operator !=(const IGArea&) const
- Tests whether the two objects differ.
- IGArea
- A constant reference to the area geometry to be compared to this one.
- Return
- True if the two area geometries are not equal.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
- operator ==
public:
bool operator ==(const IGArea&) const
- Tests whether the two objects are equal.
- IGArea
- A constant reference to the area geometry to be compared to this one.
- Return
- True if the two area geometries are equal.
- Supported Platforms
| Windows |
OS/2 |
AIX |
| Yes |
Yes |
Yes |
IGArea - Associated Globals
operator *
IGArea operator *(const IGArea&, const IGArea&)
- Sets the shape to the combined area of the current shape and the specified IGArea's shape, minus their intersection.
operator +
IGArea operator +(const IGArea&, const IGArea&)
- The addition operator for IGArea. Addition is achieved through union.
operator -
IGArea operator -(const IGArea&, const IGArea&)
- Subtraction operator that sets the shape to the intersection of the current shape with the specified IGArea's shape.
operator ^
IGArea operator ^(const IGArea&, const IGArea&)
- Sets the shape to the combined area of two IGArea's shape, minus their intersection.
IGArea - Inherited Member Functions and Data
Inherited Public Functions
Inherited Public Data
Inherited Protected Functions
Inherited Protected Data