Skip to content

Files

Latest commit

 

History

History
85 lines (54 loc) · 2.53 KB

segment2.markdown

File metadata and controls

85 lines (54 loc) · 2.53 KB

Segment2

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