Segment2 is represented by a 4 coordinates array
[x1:Number, y1:Number, x2:Number, y2:Number] normalized so x1 < x2
- create (x1: Number, y1: Number, x2: Number, y2: Number): Segment2
- normalize (out: Segment2, seg2: Segment2): Segment2
- clone (seg2: Segment2): Segment2
- copy (out: Segment2, seg2: Segment2): Segment2
- translate (out: Segment2, seg2: Segment2, vec2: Vec2): Segment2
- length (seg2: Segment2): Number
- sqrLength (seg2: Segment2): Number
- midPoint (out_vec2: Vec2, seg2: Segment2): Vec2
- slope (seg2: Segment2): Number
- angle (seg2: Segment2): Number
- cross (seg2: Segment2, vec2: Vec2): Number
- isCollinear (seg2: Segment2, vec2: Vec2): Boolean
-
isParallel (seg2: Segment2, seg2_2: Segment2): Boolean
todo: do it!
- isVec2Inside (seg2: Segment2, vec2: Vec2): Boolean
- isAbove (seg2: Segment2, vec2: Vec2, cached_seg2_min_angle: Number): Boolean
- leftNormal (out_vec2: Vec2, seg2: Segment2): Vec2
- rightNormal (out_vec2: Vec2, seg2: Segment2): Vec2
- closestPoint (out_vec2: Vec2, seg2: Segment2, vec2: Vec2): Vec2
-
$closestPoint (out_vec2: Vec2, x1: Number, y1: Number, x2: Number, y2: Number, x3: Number, y3: Number): Vec2
todo: optimize, "inline the if/else"
- $collinear (x1: Number, y1: Number, x2: Number, y2: Number, x3: Number, y3: Number): Boolean
- $inside (x1: Number, x2: Number, y1: Number, y2: Number, x3: Number, y3: Number): Boolean
-
lengthSq (seg2: Segment2)
see: sqrLength
-
contains (seg2: Segment2, vec2: Vec2)
see: isVec2Inside