### IGLine2D

  IGLine2D provides a line segment defined by two end points. Line segments have an implied direction that move from the starting point to the end point.

### IGLine2D - Member Functions and Data by Group

### Constructors & Destructor

Use these functions to construct or destroy objects of class IGLine2D.

~IGLine2D

      public:
      virtual ~IGLine2D()

  Destroys the IGLine2D object.

Supported Platforms

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

IGLine2D
  Constructs a line segment.

  Overload 1
  Default constructor. The start and end points are initialized to IGPoint2D::kOrigin.

      public:
      IGLine2D()

  Use this constructor to create a line segment whose start and end points are initialized to IGPoint2D::kOrigin.

Supported Platforms

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

  Overload 2
  Constructor that takes two IGPoint2D objects as arguments.

      public:
      IGLine2D(IGPoint2D startPt, IGPoint2D endPt)

  Use this constructor to create a 2D line segment object that uses the given values as its start and endpoints.

  startPt
    The starting point of the IGLine2D.
  endPt
    The end point of the IGLine2D.

Supported Platforms

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

  Overload 3
  Copy constructor.

      public:
      IGLine2D(const IGLine2D&)

  Use this constructor to create a 2D line segment object that is copied from the given one.

  const IGLine2D&
    The IGLine to be copied.

Supported Platforms

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

### Assignment Operator

Use the operators in this group to perform simple or compound assignment operations.

operator =
  Assignment operator.

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

  Assigns the given IGLine2D.

  Src
    The line whose value is copied.

Return
  A non-const reference to the left-hand side object.

Supported Platforms

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

### Modifying the Line

Use the functions in this group to transform the line or match a parametric position on the IGLine2D to a specified point.

dragPosition

      public:
      void dragPosition(GParametric u, const IGPoint2D& toPoint)

  Moves the IGLine2D so that the parametric position on the IGLine2D, specified by u, matches the point, specified by toPoint.

  u
    The parametric position on the IGLine2D.
  toPoint
    The point to match.

Supported Platforms

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

transformBy

      public:
      void transformBy(const IGrafMatrix& transform)

  Transforms the IGLine2D by the specified transformation.

  transform
    The transformation matrix to be applied to the IGLine2D.

Supported Platforms

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

### Setting and Getting a Line's Start and End Points

Use the functions in this group to set or get a line's start point, its end point, or both.

endPoint

      public:
      IGPoint2D endPoint() const

  Returns the end point of the IGLine2D.

Return
  An IGPoint2D representing the end point of the IGLine2D.

Supported Platforms

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

points

      public:
      void points(IGPoint2D& startPt, IGPoint2D& endPt) const

  Returns, in its arguments, both end points of the IGLine2D.

  startPt
    The starting point.
  endPt
    The end point.

Supported Platforms

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

setEndPoint

      public:
      void setEndPoint(const IGPoint2D& point)

  Sets the end point of the IGLine2D.

  point
    The new end point.

Supported Platforms

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

setStartPoint

      public:
      void setStartPoint(const IGPoint2D& point)

  Sets the starting point of the IGLine2D.

  point
    The new starting point.

Supported Platforms

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

startPoint

      public:
      IGPoint2D startPoint() const

  Returns the starting point of the IGLine2D.

Return
  An IGPoint2D representing the starting point of the IGLine2D.

Supported Platforms

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

### Streaming the Object In and Out

Use the functions and operators in this group to read the object from the data stream and write it to it.

operator <<=

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

  Operator for streaming the object out to the polymorphic streaming specified by IDataStream.

  IDataStream
    A reference to the data stream to be used.

Supported Platforms

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

operator >>=

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

  Operator for streaming the object in using the polymorphic streaming specified by IDataStream.

  IDataStream
    A reference to the data stream.

Supported Platforms

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

readFromStream

      public:
      void readFromStream(IDataStream& toWhere)

  Streams in the line object using the polymorphic streaming specified by fromWhere.

Return
  fromWhere The stream used to stream in the line object.

Supported Platforms

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

writeToStream

      public:
      void writeToStream(IDataStream& toWhere) const

  Streams the object out to the polymorphic streaming specified by toWhere.

  toWhere
    The stream for streaming out this image object.

Supported Platforms

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

### Testing Aspects of the Line

Use the functions in this group to identify points on a line or determine if the line intersects a given rectangle.

bounds
  Returns the IGLine2D's bounding box.

      public:
      IGRect2D bounds() const

  The bounding box is the smallest IGRect2D that encloses the line.

Return
  An IGRect2D that bounds the line.

Supported Platforms

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

evaluate
  Returns a point corresponding to the given parameter.

      public:
      IGPoint2D evaluate(GParametric u) const

  This function evaluates and returns the point. If the value is outside the range, the function returns an extrapolated point.

  u
    0 corresponds to the starting point, 1 to the end point.

Return
  An IGPoint2D corresponding to the specified parameter.

Supported Platforms

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

intersects

      public:
      bool intersects(const IGRect2D& g) const

  Returns true if the IGLine2D intersects the specified rectangle.

  g
    The rectangle to be tested.

Return
  True if the IGLine2D intersects the rectangle.

Supported Platforms

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

nearestParametric
  Finds the parametric value corresponding to the point on the IGLine2D that is nearest to the specified point.

      public:
      GParametric nearestParametric(const IGPoint2D& test) const

  This function returns a value that is clamped between 0 and 1.

  test
    The point whose parametric value is to be found.

Return
  A GParametric that best matches the specified point.

Supported Platforms

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

### Testing for Equality or Inequality

Use these functions for equality or inequality testing.

operator !=

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

  Tests two IGLine2D objects for inequality.

  Src
    The line to be compared to the current line.

Return
  True if the starting or end points of both lines are not equal.

Supported Platforms

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

operator ==

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

  Tests two IGLine2D objects for equality.

  Src
    The line to be compared to this line.

Return
  True if the starting and end points of both lines are equal.

Supported Platforms

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

### IGLine2D - Inherited Member Functions and Data

#### Inherited Public Functions

  - None

#### Inherited Public Data

  - None

#### Inherited Protected Functions

  - None

#### Inherited Protected Data

  - None