## Segment

**Summary**

Stores a set of double values that represents a line
segment.

**Fields**

X1 |
The X coordinate of the Start Point of the segment |

X2 |
The Z coordinate of the Start Point of the segment |

Y1 |
The Y coordinate of the Start Point of the segment |

Y2 |
The Y coordinate of the End Point of the segment |

**Methods**

ClosestPointOn |
This retrieves the shortest path, but only returns the point that represents the closest point to this segment that is located on the segment specified. |

ClosestPointTo |
This function has 2 overloads. |

Constructor |
This function has 6 overloads. |

Copy |
Returns a new instance of the Topology2D.Segment class with the same values as this object. |

Crosses |
Checks to see if two segments cross. This will not return true if the endpoints touch, or the lines overlap. Specifically the middle portions of the lines have to contact each other without involving any of the endpoints. |

DistanceTo |
This function has 3 overloads. |

Intersection |
Returns the point where two segments intersect, if any exists. |

IntersectsWith |
This function has 3 overloads. |

IsCompletelyWithin |
Returns true if the entire segment is within the polygon, without touching or crossing any of the edges. |

IsIdenticalTo |
Checks the points of the segemnts to see if they are the same, but is unconcerned with direction. |

IsParallelTo |
Returns true if the line segments are parallel |

IsPerpendicularTo |
Returns true if the line segments are perpendicular |

IsWithinADistanceOf |
This function has 3 overloads. |

LocationByX |
Given a segment, we try fix the value of one coordinate to solve for the other two. |

LocationByY |
Given a segment, we try fix the value of one coordinate to solve for the other two. |

SharesALineSegmentWith |
Since these are already segments, we just determine if the intersection is a valid line segment. If the segments intersect as a point, or don't intersect, this will return false. |

ShortestPathTo |
This function has 2 overloads. |

Touches |
Checks to see if two segments touch. This is true if a vertex from one segment intersects with the other segment. Does not return true if only the line areas touch one another. |

TouchesTheBoundaryOf |
This function has 2 overloads. |

ToVector |
Creates a new vector from this segment where the StartPoint becomes the beginning of the vector and the end point is the tip of the vector. |