simulation.utils.road.sections.bezier_curve module

Quadratic- and CubicBezierCurves.

Summary

Classes:

BezierCurve

CubicBezier

Cubic bezier curve, defined by three control points.

QuadBezier

Quadratic bezier curve, defined by two control points.

Functions:

add_quad_bezier_points

Reference

_read_point(p: Union[simulation.utils.geometry.point.Point, Sequence[float]]) → numpy.ndarray[source]

Get numpy array from point or coordinate sequence.

_compute_cubic_bezier(t, p0, p1, p2, p3)[source]
add_quad_bezier_points(p0, p1, p2, p3)[source]
class BezierCurve(id: int = 0, transform: simulation.utils.geometry.transform.Transform = None, is_start: bool = False, left_line_marking: str = 'solid', middle_line_marking: str = 'dashed', right_line_marking: str = 'solid', obstacles: List[simulation.utils.road.sections.obstacle.StaticObstacle] = <factory>, traffic_signs: List[simulation.utils.road.sections.traffic_sign.TrafficSign] = <factory>, surface_markings: List[simulation.utils.road.sections.surface_marking.SurfaceMarking] = <factory>, p1: Union[ForwardRef('Point'), Sequence[float]] = None, p2: Union[ForwardRef('Point'), Sequence[float]] = None)[source]

Bases: simulation.utils.road.sections.road_section.RoadSection

p1: Union[Point, Sequence[float]] = None

Control point 1.

p2: Union[Point, Sequence[float]] = None

Control point 2.

class QuadBezier(id: int = 0, transform: Optional[simulation.utils.geometry.transform.Transform] = None, is_start: bool = False, left_line_marking: str = 'solid', middle_line_marking: str = 'dashed', right_line_marking: str = 'solid', obstacles: List[simulation.utils.road.sections.obstacle.StaticObstacle] = <factory>, traffic_signs: List[simulation.utils.road.sections.traffic_sign.TrafficSign] = <factory>, surface_markings: List[simulation.utils.road.sections.surface_marking.SurfaceMarking] = <factory>, p1: Optional[Union[simulation.utils.geometry.point.Point, Sequence[float]]] = None, p2: Optional[Union[simulation.utils.geometry.point.Point, Sequence[float]]] = None)[source]

Bases: simulation.utils.road.sections.bezier_curve.BezierCurve

Quadratic bezier curve, defined by two control points.

Parameters
  • p1 (Union[Point, Sequence[float]]) – Control point 1. Y-Value has to be zero in order to match the gradient of the last section at the start.

  • p2 (Union[Point, Sequence[float]]) – Control point 2.

TYPE = 3
property middle_line

Middle line of the road section.

Type

Line

class CubicBezier(id: int = 0, transform: Optional[simulation.utils.geometry.transform.Transform] = None, is_start: bool = False, left_line_marking: str = 'solid', middle_line_marking: str = 'dashed', right_line_marking: str = 'solid', obstacles: List[simulation.utils.road.sections.obstacle.StaticObstacle] = <factory>, traffic_signs: List[simulation.utils.road.sections.traffic_sign.TrafficSign] = <factory>, surface_markings: List[simulation.utils.road.sections.surface_marking.SurfaceMarking] = <factory>, p1: Optional[Union[simulation.utils.geometry.point.Point, Sequence[float]]] = None, p2: Optional[Union[simulation.utils.geometry.point.Point, Sequence[float]]] = None, p3: Optional[Union[simulation.utils.geometry.point.Point, Sequence[float]]] = None)[source]

Bases: simulation.utils.road.sections.bezier_curve.BezierCurve

Cubic bezier curve, defined by three control points.

Parameters
  • p1 (Union[Point, Sequence[float]]) – Control point 1.

  • p2 (Union[Point, Sequence[float]]) – Control point 2.

  • p3 (Union[Point, Sequence[float]]) – Control point 3.

TYPE = 4
p3: Union[simulation.utils.geometry.point.Point, Sequence[float]] = None

Control point 3.

property middle_line

Middle line of the road section.

Type

Line