ClosedCurveCubicSegment#

class lumopt2.parametrization.closed_curve.ClosedCurveCubicSegment(start_vertex_idx: int, end_vertex_idx: int, fixed_start_tangent: ndarray | None = None, fixed_end_tangent: ndarray | None = None, n_vertices_lumerical_polygon: int = 50)#

A cubic Bezier curve segment.

Parameters:
start_vertex_idxint

Index of the starting vertex (1-based).

end_vertex_idxint

Index of the ending vertex (1-based).

fixed_start_tangentOptional[np.ndarray], optional

Fixed tangent vector at start vertex (default: None).

fixed_end_tangentOptional[np.ndarray], optional

Fixed tangent vector at end vertex (default: None).

n_vertices_lumerical_polygonint, optional

Number of discrete points (default: 50).

Methods

ClosedCurveCubicSegment.evaluate(vertices, ...)

Evaluate cubic Bezier curve (possibly subdivided with control points).

ClosedCurveCubicSegment.get_control_points(...)

Get the intermediate control point positions for visualization.

ClosedCurveCubicSegment.get_num_params()

Get number of optimization parameters for this segment.

ClosedCurveCubicSegment.set_parametric(...)

Make this segment parametric for optimization.