import sys
import typing


def primitive_nurbs_surface_circle_add(radius: float = 1.0,
                                       enter_editmode: bool = False,
                                       align: typing.Union[int, str] = 'WORLD',
                                       location: float = (0.0, 0.0, 0.0),
                                       rotation: float = (0.0, 0.0, 0.0)):
    '''Construct a Nurbs surface Circle 

    :param radius: Radius 
    :type radius: float
    :param enter_editmode: Enter Editmode, Enter editmode when adding this object 
    :type enter_editmode: bool
    :param align: Align, The alignment of the new objectWORLD World, Align the new object to the world.VIEW View, Align the new object to the view.CURSOR 3D Cursor, Use the 3D cursor orientation for the new object. 
    :type align: typing.Union[int, str]
    :param location: Location, Location for the newly added object 
    :type location: float
    :param rotation: Rotation, Rotation for the newly added object 
    :type rotation: float
    '''

    pass


def primitive_nurbs_surface_curve_add(radius: float = 1.0,
                                      enter_editmode: bool = False,
                                      align: typing.Union[int, str] = 'WORLD',
                                      location: float = (0.0, 0.0, 0.0),
                                      rotation: float = (0.0, 0.0, 0.0)):
    '''Construct a Nurbs surface Curve 

    :param radius: Radius 
    :type radius: float
    :param enter_editmode: Enter Editmode, Enter editmode when adding this object 
    :type enter_editmode: bool
    :param align: Align, The alignment of the new objectWORLD World, Align the new object to the world.VIEW View, Align the new object to the view.CURSOR 3D Cursor, Use the 3D cursor orientation for the new object. 
    :type align: typing.Union[int, str]
    :param location: Location, Location for the newly added object 
    :type location: float
    :param rotation: Rotation, Rotation for the newly added object 
    :type rotation: float
    '''

    pass


def primitive_nurbs_surface_cylinder_add(
        radius: float = 1.0,
        enter_editmode: bool = False,
        align: typing.Union[int, str] = 'WORLD',
        location: float = (0.0, 0.0, 0.0),
        rotation: float = (0.0, 0.0, 0.0)):
    '''Construct a Nurbs surface Cylinder 

    :param radius: Radius 
    :type radius: float
    :param enter_editmode: Enter Editmode, Enter editmode when adding this object 
    :type enter_editmode: bool
    :param align: Align, The alignment of the new objectWORLD World, Align the new object to the world.VIEW View, Align the new object to the view.CURSOR 3D Cursor, Use the 3D cursor orientation for the new object. 
    :type align: typing.Union[int, str]
    :param location: Location, Location for the newly added object 
    :type location: float
    :param rotation: Rotation, Rotation for the newly added object 
    :type rotation: float
    '''

    pass


def primitive_nurbs_surface_sphere_add(radius: float = 1.0,
                                       enter_editmode: bool = False,
                                       align: typing.Union[int, str] = 'WORLD',
                                       location: float = (0.0, 0.0, 0.0),
                                       rotation: float = (0.0, 0.0, 0.0)):
    '''Construct a Nurbs surface Sphere 

    :param radius: Radius 
    :type radius: float
    :param enter_editmode: Enter Editmode, Enter editmode when adding this object 
    :type enter_editmode: bool
    :param align: Align, The alignment of the new objectWORLD World, Align the new object to the world.VIEW View, Align the new object to the view.CURSOR 3D Cursor, Use the 3D cursor orientation for the new object. 
    :type align: typing.Union[int, str]
    :param location: Location, Location for the newly added object 
    :type location: float
    :param rotation: Rotation, Rotation for the newly added object 
    :type rotation: float
    '''

    pass


def primitive_nurbs_surface_surface_add(
        radius: float = 1.0,
        enter_editmode: bool = False,
        align: typing.Union[int, str] = 'WORLD',
        location: float = (0.0, 0.0, 0.0),
        rotation: float = (0.0, 0.0, 0.0)):
    '''Construct a Nurbs surface Patch 

    :param radius: Radius 
    :type radius: float
    :param enter_editmode: Enter Editmode, Enter editmode when adding this object 
    :type enter_editmode: bool
    :param align: Align, The alignment of the new objectWORLD World, Align the new object to the world.VIEW View, Align the new object to the view.CURSOR 3D Cursor, Use the 3D cursor orientation for the new object. 
    :type align: typing.Union[int, str]
    :param location: Location, Location for the newly added object 
    :type location: float
    :param rotation: Rotation, Rotation for the newly added object 
    :type rotation: float
    '''

    pass


def primitive_nurbs_surface_torus_add(radius: float = 1.0,
                                      enter_editmode: bool = False,
                                      align: typing.Union[int, str] = 'WORLD',
                                      location: float = (0.0, 0.0, 0.0),
                                      rotation: float = (0.0, 0.0, 0.0)):
    '''Construct a Nurbs surface Torus 

    :param radius: Radius 
    :type radius: float
    :param enter_editmode: Enter Editmode, Enter editmode when adding this object 
    :type enter_editmode: bool
    :param align: Align, The alignment of the new objectWORLD World, Align the new object to the world.VIEW View, Align the new object to the view.CURSOR 3D Cursor, Use the 3D cursor orientation for the new object. 
    :type align: typing.Union[int, str]
    :param location: Location, Location for the newly added object 
    :type location: float
    :param rotation: Rotation, Rotation for the newly added object 
    :type rotation: float
    '''

    pass
