bezier.hazmat package
The bezier.hazmat subpackage is a “hazardous materials” layer.
The modules contained here provide low-level functionality for the public
API of the bezier package. They are not subject to any API stability
guarantees. Understanding these low-level details is not required to be an
everyday user of bezier, but documenting them will allow examples and
narrative for those interested on learning more.
In many cases, the code is a pure-Python implementation of functions provided in the binary extension speedup.
Submodules
- bezier.hazmat.algebraic_intersection module
- bezier.hazmat.clipping module
- bezier.hazmat.curve_helpers module
make_subdivision_matrices()subdivide_nodes()evaluate_multi()evaluate_multi_vs()evaluate_multi_de_casteljau()evaluate_multi_barycentric()vec_size()compute_length()elevate_nodes()de_casteljau_one_round()specialize_curve()evaluate_hodograph()get_curvature()newton_refine()locate_point()reduce_pseudo_inverse()projection_error()maybe_reduce()full_reduce()discrete_turning_angle()
- bezier.hazmat.geometric_intersection module
bbox_intersect()linearization_error()segment_intersection()parallel_lines_parameters()line_line_collide()convex_hull_collide()from_linearized()add_intersection()endpoint_check()tangent_bbox_intersection()bbox_line_intersect()intersect_one_round()prune_candidates()make_same_degree()coincident_parameters()check_lines()all_intersections()BoxIntersectionTypeSubdividedCurveLinearizationself_intersections()
- bezier.hazmat.helpers module
- bezier.hazmat.intersection_helpers module
ZERO_THRESHOLDMAX_NEWTON_ITERATIONSNEWTON_ERROR_RATIOnewton_refine()NewtonSimpleRootNewtonDoubleRootnewton_iterate()full_newton_nonzero()full_newton()IntersectionClassificationIntersectionClassification.FIRSTIntersectionClassification.SECONDIntersectionClassification.OPPOSEDIntersectionClassification.TANGENT_FIRSTIntersectionClassification.TANGENT_SECONDIntersectionClassification.IGNORED_CORNERIntersectionClassification.TANGENT_BOTHIntersectionClassification.COINCIDENTIntersectionClassification.COINCIDENT_UNUSED
IntersectionIntersectionStrategy
- bezier.hazmat.triangle_helpers module
polynomial_sign()two_by_two_det()quadratic_jacobian_polynomial()cubic_jacobian_polynomial()de_casteljau_one_round()make_transform()reduced_to_matrix()specialize_triangle()subdivide_nodes()jacobian_s()jacobian_t()jacobian_both()jacobian_det()classify_tangent_intersection()ignored_edge_corner()ignored_double_corner()ignored_corner()classify_intersection()handle_ends()to_front()get_next_first()get_next_second()get_next_coincident()is_first()is_second()get_next()ends_to_curve()no_intersections()tangent_only_intersections()basic_interior_combine()combine_intersections()evaluate_barycentric()evaluate_barycentric_multi()evaluate_cartesian_multi()compute_edge_nodes()shoelace_for_area()compute_area()
- bezier.hazmat.triangle_intersection module
newton_refine_solve()newton_refine()update_locate_candidates()mean_centroid()locate_point()same_intersection()verify_duplicates()verify_edge_segments()add_edge_end_unused()check_unused()add_intersection()classify_coincident()should_use()triangle_intersections()generic_intersect()geometric_intersect()algebraic_intersect()