### IGRPoint2D

  IGRPoint2D provides a homogeneous (rational) point or vector on the 2-D coordinate plane. The IGRPoint2D class defines basic two-dimensional points with rational(homogeneous) coordinates. IGRPoint2D objects are used primarily by IGCurve2D to provide an exact representation of conic curves with splines and for matrix operations requiring a homogeneous coordinate. You can directly convert an IGPoint2D to an IGRPoint2D via the constructor that takes an IGPoint2D parameter; in this case, a w value of 1.0 is assumed. However, to convert an IGRPoint2D object to an IGPoint2D one, you must perform an explicit divW or dropW operation. Note that arithmetic operations are deliberatly not provided for IGRPoint2D instances because their correct interpretation is highly application specific.

  Do not derive your own classes from this class.

### IGRPoint2D - Member Functions and Data by Group

### Constructors & Destructor

Use the functions in this group to construct and destroy objects of class IGPoint2D.

~IGRPoint2D

      public:
      ~IGRPoint2D()

  Destroys the two-dimensional points object of class IGRPoint2D.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

IGRPoint2D
  Constructs an object of class IGRPoint2D that defines a homogeneous point or vector on the 2-D coordinate plane.

  Overload 1
  Copy constructor.

      public:
      IGRPoint2D(const IGRPoint2D&)

  Use this constructor to create an IGRPoint2D object that is copied from the given one.

  IGRPoint2D
    A constant reference to the IGRPoint2D to be copied.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 2

      public:
      IGRPoint2D( GCoordinate x,
                  GCoordinate y,
                  GCoordinate w = 1.0 )

  Use this constructor to create an IGRPoint2D object that uses the given coordinates, with fW=1.0 as the default.

  x
    The new x-coordinate
  y
    The new y-coordinate
  w
    The new w-coordinate

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 3
  Creates an IGRPoint2D whose x and y coordinates equal those of thegiven IGPoint, and whose w coordinate is 1.0.

      public:
      IGRPoint2D(const IGPoint2D& p)

  Use this constructor to create an IGRPoint2D whose x and y coordinates equal to those of the given IGPoint object , and whose w coordinate is 1.0.

  IGPoint2D
    A constant reference to the IGPoint2D point whose x and y coordinates are copied to the current IGPoint2D.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 4
  Default constructor.

      public:
      IGRPoint2D()

  Use the default constructor to create an IGRPoint2D object with default values of fX=0.0 and fY=0.0 and fW=0.0

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Assignment Operator

Use the function in this group to perform assigment operations.

operator =

      public:
      IGRPoint2D& operator =(const IGRPoint2D& Src)

  Assignment operator.

  Src
    The point to be copied.

Return
  A mutable (non-constant) reference to the left-hand object.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Creating Two-Dimensional Point Objects

Use the functions in this group to create objects of class IGPoint2D based on the manipulated coordinate values.

divW

      public:
      IGPoint2D divW() const

  Divides the coordinates by w to create an IGPoint2D object.

Return
  The new IGPoint2D, whose x- and y-coordinates are those of this IGRPoint2D, divided by w.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

dropW

      public:
      IGPoint2D dropW() const

  Creates an IGPoint2D by ignoring the w coordinate.

Return
  The new IGPoint2D, whose x- and y-coordinates are equal to those of this IGRPoint2D.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Data Types

These data types are define for coordinate values.

fW
  w-,coordinates

      public:
      GCoordinate fW

  The W coordinate value.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

fX
  x-,coordinates

      public:
      GCoordinate fX

  The X coordinate value.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

fY
  y-,coordinates

      public:
      GCoordinate fY

  The Y coordinate value.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Obtaining Information About Two-Dimensional Points

Use the functions in this group to obtain the x, y, or w coordinates of a point defined by an object of class IGRPoint2D.

operator []

  Overload 1
  Returns the x, y, or w coordinate of a const IGRPoint2D.

      public:
      const GCoordinate& operator [](unsigned long index) const

  index
    0 for the x-coordinate, 1 for the y-coordinate, 2 for the w-coordinate.

Return
  The specified coordinate.

Exception

  | Calls a parameter assert if the index is not 0, 1, or 2.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 2
  Returns the x, y, or w coordinate, depending on the index.

      public:
      GCoordinate& operator [](unsigned long index)

  index
    0 for the x-coordinate, 1 for the y-coordinate, 2 for the w-coordinate.

Return
  The specified coordinate.

Exception

  | Calls a parameter assert if the index is not 0, 1, or 2.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Streaming the Object In and Out

Use the functions and operators in this group to stream objects in and out.

operator <<=

      public:
      IDataStream& operator <<=(IDataStream&)

  Operator that streams in the homogeneous (rational) point or vector object using the given polymorphic stream.

  IDataStream
    The stream used to stream in the object.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

operator >>=

      public:
      IDataStream& operator >>=(IDataStream&) const

  Operator that streams out the homogeneous (rational) point or vector object using the given polymorphic stream.

  IDataStream
    The stream used to stream out the object.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

readFromStream

      public:
      void readFromStream(IDataStream& toWhere)

  Streams in the homogeneous (rational) point or vector object using the polymorphic stream specified by fromWhere.

  fromWhere
    The stream used to stream in the object.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

writeToStream

      public:
      void writeToStream(IDataStream& toWhere) const

  Streams out the homogeneous (rational) point or vector object using the polymorphic stream specified by toWhere.

  toWhere
    The stream used to stream out the object.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Testing for Equality and Inequality

Use the functions in this group to test two IGRPoint2D objects for equality or inequality.

operator !=

      public:
      bool operator !=(const IGRPoint2D& Src) const

  Tests whether the point's coordinates differ from those of the argument.

  Src
    The point to be compared with.

Return
  TRUE, if any of Src's coordinates do not match the corresponding coordinate of this one.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

operator ==

      public:
      bool operator ==(const IGRPoint2D& Src) const

  Tests whether the point's coordinates equal those of the argument.

  Src
    The point to be compared with.

Return
  TRUE, if fX, fY, and fW are identical to Src's x-, y-, and w-coordinates, respectively.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### IGRPoint2D - Inherited Member Functions and Data

#### Inherited Public Functions

  - None

#### Inherited Public Data

  - None

#### Inherited Protected Functions

  - None

#### Inherited Protected Data

  - None