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.


[view class]
~IGArea
public:
virtual ~IGArea()
Destroys the geometry area of class IGArea.

Supported Platforms

Windows OS/2 AIX
Yes Yes Yes


[view class]
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.


[view class]
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


[view class]
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


[view class]
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


[view class]
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


[view class]
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


[view class]
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


[view class]
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


[view class]
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.


[view class]
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.


[view class]
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


[view class]
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.


[view class]
setToEmpty
public:
void setToEmpty()
Removes all basic geometries from this area.

Supported Platforms

Windows OS/2 AIX
Yes Yes Yes


[view class]
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.


[view class]
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


[view class]
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


[view class]
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


[view class]
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


[view class]
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


[view class]
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


[view class]
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


[view class]
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 >>=.


[view class]
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


[view class]
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


[view class]
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


[view class]
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.


[view class]
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


[view class]
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