A module for running the Sweep-Line algorithm. More...
Functions | |
| def | check_for_common_point |
| def | checkForIntersect |
| def | couplesGenerator |
| def | ExplicitSweepLines |
| def | frange |
| def | lineSegmentsGenerator |
| def | Magnitude |
| def | scrubPoint |
| def | SweepLine |
Variables | |
| tuple | GLOBAL_X_UNIT = Point3D(1, 0, 0) |
| tuple | GLOBAL_Y_UNIT = Point3D(0, 1, 0) |
A module for running the Sweep-Line algorithm.
Modified for use laying out grid patterns of rebar inside polygons in the XY plane.
| def concrete.SweepLine.check_for_common_point | ( | args | ) |
check_for_common_point(args)
| def concrete.SweepLine.checkForIntersect | ( | args | ) |
Make sure rebar line intersects with base line @param sweep_line rebar line @param compareLine base line
| def concrete.SweepLine.couplesGenerator | ( | args | ) |
couplesGenerator(args)
| def concrete.SweepLine.ExplicitSweepLines | ( | args | ) |
A sweepline algorithm that allows the caller to provide explicit line to be checked for intersection. @param poly_list a Polygon.PolyList object @param sweepLines an iterable (not a dict) of LineSegment objects @param cover the cover for the concrete object @param flip add consideration for overlap violating cover @return a list of SmartRebarLayout objects
| def concrete.SweepLine.frange | ( | args | ) |
frange(args)
| def concrete.SweepLine.lineSegmentsGenerator | ( | args | ) |
lineSegmentsGenerator(args)
| def concrete.SweepLine.Magnitude | ( | arg1 | ) |
Magnitude == Length
C++ signature :
double Magnitude(Point3D) | def concrete.SweepLine.scrubPoint | ( | args | ) |
clean up extremely small values by setting them to 0 e.g. P3D(7.2345e-17, 0., 1200) becomes P3D(0., 0., 1200)
| def concrete.SweepLine.SweepLine | ( | args | ) |
The Sweep-Line algorithm
@param poly_list List of intersections of the concrete polyhedron
with the grid plane
@param poly_xform the xform associated with poly_list
@param distanceBetweenRebar The distance between rebar
@param sweep_length The distance needed to cover the whole
polyhedron when traversing the sweep_line_path
@param sweep_path A unit vector indicating the path the sweep
line should take
@param sweep_dir A unit vector indicating the angle of the
rebar
@param cover The distance from the edge of the polyhedron for the rebar
@return a list of LineSegments representing rebar segments
@note this function expects the line segments to be instances of the
LineSegment class. See plugins/ConcretePad/LineSegment.py
| tuple concrete.SweepLine.GLOBAL_X_UNIT = Point3D(1, 0, 0) |
| tuple concrete.SweepLine.GLOBAL_Y_UNIT = Point3D(0, 1, 0) |
1.8.1.2