from Base.Metadata import export from Base.Vector import Vector from Conic import Conic from Point import Point from typing import overload @export( PythonName="Part.Circle", Twin="GeomCircle", TwinPointer="GeomCircle", Include="Mod/Part/App/Geometry.h", FatherInclude="Mod/Part/App/ConicPy.h", FatherNamespace="Part", Constructor=True, ) class Circle(Conic): """ Describes a circle in 3D space To create a circle there are several ways: Part.Circle() Creates a default circle with center (0,0,0) and radius 1 Part.Circle(Circle) Creates a copy of the given circle Part.Circle(Circle, Distance) Creates a circle parallel to given circle at a certain distance Part.Circle(Center,Normal,Radius) Creates a circle defined by center, normal direction and radius Part.Circle(Point1,Point2,Point3) Creates a circle defined by three non-linear points """ Radius: float = 0.0 """The radius of the circle.""" @overload def __init__(self) -> None: ... @overload def __init__(self, circle: "Circle") -> None: ... @overload def __init__(self, circle: "Circle", distance: float) -> None: ... @overload def __init__(self, center: Point, normal: Vector, radius: float) -> None: ... @overload def __init__(self, point1: Point, point2: Point, point3: Point) -> None: ...