SDS2 Parametric API
 All Classes Namespaces Functions Variables Pages
Functions | Variables
concrete.SweepLine Namespace Reference

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)

Detailed Description

A module for running the Sweep-Line algorithm.

Modified for use laying out grid patterns of rebar inside polygons in the XY plane.

Function Documentation

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
 @param single_piece a boolean that indicates that the rebar piece
                     will be going around a corner and neds to be a single
                     piece. this means that the cover will not be respected 
                     at the corner so that the layouts can be merged after.
 
 @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)
Returns
Instance of type float
     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 Proxie.Layout3D objects representing rebar segments
 
 @note this function expects the line segments to be instances of the
       LineSegment class. See plugins/ConcretePad/LineSegment.py

Variable Documentation

tuple concrete.SweepLine.GLOBAL_X_UNIT = Point3D(1, 0, 0)
tuple concrete.SweepLine.GLOBAL_Y_UNIT = Point3D(0, 1, 0)