Expand description
Engine free functions - standalone utility functions for the sweep-line algorithm
Direct port from clipper.engine.cpp Copyright (c) Angus Johnson 2010-2025
Functions§
- area_
outpt - Calculate area of an OutPt circular list Direct port from clipper.engine.cpp line 366
- area_
triangle - Calculate area of a triangle formed by three points Direct port from clipper.engine.cpp line 380
- build_
path64_ from_ outpt - Build a Path64 from OutPt circular list Direct port from clipper.engine.cpp BuildPath64 (line 2891)
- build_
path_ d_ from_ outpt - Build a PathD from OutPt circular list Direct port from clipper.engine.cpp BuildPathD (line 3055)
- edges_
adjacent_ in_ ael - Check if intersect node edges are adjacent in AEL Direct port from clipper.engine.cpp EdgesAdjacentInAEL (line 468)
- extract_
from_ sel - Extract an active from the SEL (sorted edge list) Direct port from clipper.engine.cpp ExtractFromSEL
- fix_
outrec_ pts - Fix all OutPt outrec references in an OutRec Direct port from clipper.engine.cpp FixOutRecPts (line 2158)
- get_
clean_ path - Build a Path64 from an OutRec Direct port from clipper.engine.cpp GetCleanPath equivalent
- get_
curr_ y_ maxima_ vertex - Get current Y maxima vertex for closed paths Direct port from clipper.engine.cpp line 243
- get_
curr_ y_ maxima_ vertex_ open - Get current Y maxima vertex for open paths Direct port from clipper.engine.cpp line 226
- get_dx
- Calculate slope dx for an edge defined by two points Direct port from clipper.engine.cpp line 116
- get_
last_ op - Get the last output point for a hot edge Direct port from clipper.engine.cpp GetLastOp (line 2496)
- get_
maxima_ pair - Get the maxima pair for an active edge Direct port from clipper.engine.cpp line 254
- get_
poly_ type - Get the polytype of an active edge Direct port from clipper.engine.cpp line 162
- get_
real_ outrec - Get the real (non-disposed) OutRec by following owner chain Direct port from clipper.engine.cpp GetRealOutRec (line 412)
- insert1_
before2_ in_ sel - Insert tmp before left in SEL Direct port from clipper.engine.cpp Insert1Before2InSEL
- intersect_
list_ sort - Sort comparator for IntersectNodes Direct port from clipper.engine.cpp line 322
- is_
heading_ left_ horz - Check if a horizontal edge is heading left Direct port from clipper.engine.cpp line 149
- is_
heading_ right_ horz - Check if a horizontal edge is heading right Direct port from clipper.engine.cpp line 143
- is_
horizontal_ active - Check if an active edge is horizontal Direct port from clipper.engine.cpp line 137
- is_
hot_ edge - Check if an active edge is “hot” (has an output record) Direct port from clipper.engine.cpp line 67
- is_
invalid_ path - Check if an OutPt path is invalid (single point or None) Direct port from clipper.engine.cpp line 105
- is_
joined - Check if an edge is joined Direct port from clipper.engine.cpp IsJoined (line 473)
- is_
maxima_ active - Check if an active edge is at a local maximum Direct port from clipper.engine.cpp line 221
- is_
maxima_ vertex - Check if a vertex is a local maximum Direct port from clipper.engine.cpp line 215
- is_odd
- Check if a value is odd Direct port from clipper.engine.cpp line 61
- is_
open_ active - Check if an active edge is part of an open path Direct port from clipper.engine.cpp line 73
- is_
open_ end_ active - Check if an active edge’s vertex_top is an open end Direct port from clipper.engine.cpp line 87
- is_
open_ end_ vertex - Check if a vertex is an open end Direct port from clipper.engine.cpp line 79
- is_
same_ poly_ type - Check if two active edges are the same polytype Direct port from clipper.engine.cpp line 167
- is_
valid_ ael_ order - Check if the AEL ordering is valid between two active edges Direct port from clipper.engine.cpp IsValidAelOrder (line 1119)
- is_
valid_ closed_ path - Check if a closed path is valid Direct port from clipper.engine.cpp IsValidClosedPath (line 449)
- is_
valid_ owner - Check if an owner is valid (not circular) Direct port from clipper.engine.cpp IsValidOwner (line 418)
- is_
very_ small_ triangle - Check if an OutPt triangle is very small Direct port from clipper.engine.cpp IsVerySmallTriangle (line 441)
- move_
splits - Move splits from one OutRec to another Direct port from clipper.engine.cpp MoveSplits (line 2269)
- next_
vertex - Get next vertex for an active edge (depends on winding direction) Direct port from clipper.engine.cpp line 177
- outrec_
is_ ascending - Check if the hot edge is ascending (front edge of its outrec) Direct port from clipper.engine.cpp OutrecIsAscending (line 455)
- path2_
contains_ path1 - Check if path1 is contained within path2 using Path64 vectors
Direct port from clipper.h line 717 - template Path2ContainsPath1
precondition: paths must not intersect, except for transient micro intersections - path2_
contains_ path1_ outpt - Check if path1 (as OutPt list) is contained within path2 (as OutPt list) Direct port from clipper.engine.cpp Path2ContainsPath1 (line 576)
- point_
count - Count points in an OutPt circular list Direct port from clipper.engine.cpp line 266
- point_
in_ op_ polygon - Point in polygon test for OutPt-based polygons Direct port from clipper.engine.cpp PointInOpPolygon (line 488)
- prev_
prev_ vertex - Get the vertex two steps back (useful for alternate edge top) Direct port from clipper.engine.cpp line 187
- pts_
really_ close - Check if two points are really close (within 2 units) Direct port from clipper.engine.cpp PtsReallyClose (line 436)
- reverse_
out_ pts - Reverse the direction of an OutPt circular list Direct port from clipper.engine.cpp line 388
- set_dx
- Set dx for an active edge from its bot/top points Direct port from clipper.engine.cpp line 172
- set_
owner - Set the owner of an OutRec Direct port from clipper.engine.cpp SetOwner (line 478)
- swap_
front_ back_ sides - Swap front and back sides of an OutRec Direct port from clipper.engine.cpp SwapFrontBackSides (line 460)
- top_x
- Get the x coordinate of an active edge at a given y Direct port from clipper.engine.cpp line 127
- uncouple_
outrec - Uncouple an OutRec from its edges Direct port from clipper.engine.cpp UncoupleOutRec (line 425)
- update_
outrec_ owner - Update all OutPt outrec references in an OutRec Direct port from clipper.engine.cpp UpdateOutrecOwner (line 1684)