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()
BoxIntersectionType
SubdividedCurve
Linearization
self_intersections()
- bezier.hazmat.helpers module
- bezier.hazmat.intersection_helpers module
ZERO_THRESHOLD
MAX_NEWTON_ITERATIONS
NEWTON_ERROR_RATIO
newton_refine()
NewtonSimpleRoot
NewtonDoubleRoot
newton_iterate()
full_newton_nonzero()
full_newton()
IntersectionClassification
IntersectionClassification.FIRST
IntersectionClassification.SECOND
IntersectionClassification.OPPOSED
IntersectionClassification.TANGENT_FIRST
IntersectionClassification.TANGENT_SECOND
IntersectionClassification.IGNORED_CORNER
IntersectionClassification.TANGENT_BOTH
IntersectionClassification.COINCIDENT
IntersectionClassification.COINCIDENT_UNUSED
Intersection
IntersectionStrategy
- 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()