import sys
import typing


def primitive_nurbs_surface_circle_add(
        radius: float = 1.0,
        view_align: bool = False,
        enter_editmode: bool = False,
        location: float = (0.0, 0.0, 0.0),
        rotation: float = (0.0, 0.0, 0.0),
        layers: bool = (False, False, False, False, False, False, False, False,
                        False, False, False, False, False, False, False, False,
                        False, False, False, False)):
    '''Construct a Nurbs surface Circle 

    :param radius: Radius 
    :type radius: float
    :param view_align: Align to View, Align the new object to the view 
    :type view_align: bool
    :param enter_editmode: Enter Editmode, Enter editmode when adding this object 
    :type enter_editmode: bool
    :param location: Location, Location for the newly added object 
    :type location: float
    :param rotation: Rotation, Rotation for the newly added object 
    :type rotation: float
    :param layers: Layer 
    :type layers: bool
    '''

    pass


def primitive_nurbs_surface_curve_add(
        radius: float = 1.0,
        view_align: bool = False,
        enter_editmode: bool = False,
        location: float = (0.0, 0.0, 0.0),
        rotation: float = (0.0, 0.0, 0.0),
        layers: bool = (False, False, False, False, False, False, False, False,
                        False, False, False, False, False, False, False, False,
                        False, False, False, False)):
    '''Construct a Nurbs surface Curve 

    :param radius: Radius 
    :type radius: float
    :param view_align: Align to View, Align the new object to the view 
    :type view_align: bool
    :param enter_editmode: Enter Editmode, Enter editmode when adding this object 
    :type enter_editmode: bool
    :param location: Location, Location for the newly added object 
    :type location: float
    :param rotation: Rotation, Rotation for the newly added object 
    :type rotation: float
    :param layers: Layer 
    :type layers: bool
    '''

    pass


def primitive_nurbs_surface_cylinder_add(
        radius: float = 1.0,
        view_align: bool = False,
        enter_editmode: bool = False,
        location: float = (0.0, 0.0, 0.0),
        rotation: float = (0.0, 0.0, 0.0),
        layers: bool = (False, False, False, False, False, False, False, False,
                        False, False, False, False, False, False, False, False,
                        False, False, False, False)):
    '''Construct a Nurbs surface Cylinder 

    :param radius: Radius 
    :type radius: float
    :param view_align: Align to View, Align the new object to the view 
    :type view_align: bool
    :param enter_editmode: Enter Editmode, Enter editmode when adding this object 
    :type enter_editmode: bool
    :param location: Location, Location for the newly added object 
    :type location: float
    :param rotation: Rotation, Rotation for the newly added object 
    :type rotation: float
    :param layers: Layer 
    :type layers: bool
    '''

    pass


def primitive_nurbs_surface_sphere_add(
        radius: float = 1.0,
        view_align: bool = False,
        enter_editmode: bool = False,
        location: float = (0.0, 0.0, 0.0),
        rotation: float = (0.0, 0.0, 0.0),
        layers: bool = (False, False, False, False, False, False, False, False,
                        False, False, False, False, False, False, False, False,
                        False, False, False, False)):
    '''Construct a Nurbs surface Sphere 

    :param radius: Radius 
    :type radius: float
    :param view_align: Align to View, Align the new object to the view 
    :type view_align: bool
    :param enter_editmode: Enter Editmode, Enter editmode when adding this object 
    :type enter_editmode: bool
    :param location: Location, Location for the newly added object 
    :type location: float
    :param rotation: Rotation, Rotation for the newly added object 
    :type rotation: float
    :param layers: Layer 
    :type layers: bool
    '''

    pass


def primitive_nurbs_surface_surface_add(
        radius: float = 1.0,
        view_align: bool = False,
        enter_editmode: bool = False,
        location: float = (0.0, 0.0, 0.0),
        rotation: float = (0.0, 0.0, 0.0),
        layers: bool = (False, False, False, False, False, False, False, False,
                        False, False, False, False, False, False, False, False,
                        False, False, False, False)):
    '''Construct a Nurbs surface Patch 

    :param radius: Radius 
    :type radius: float
    :param view_align: Align to View, Align the new object to the view 
    :type view_align: bool
    :param enter_editmode: Enter Editmode, Enter editmode when adding this object 
    :type enter_editmode: bool
    :param location: Location, Location for the newly added object 
    :type location: float
    :param rotation: Rotation, Rotation for the newly added object 
    :type rotation: float
    :param layers: Layer 
    :type layers: bool
    '''

    pass


def primitive_nurbs_surface_torus_add(
        radius: float = 1.0,
        view_align: bool = False,
        enter_editmode: bool = False,
        location: float = (0.0, 0.0, 0.0),
        rotation: float = (0.0, 0.0, 0.0),
        layers: bool = (False, False, False, False, False, False, False, False,
                        False, False, False, False, False, False, False, False,
                        False, False, False, False)):
    '''Construct a Nurbs surface Torus 

    :param radius: Radius 
    :type radius: float
    :param view_align: Align to View, Align the new object to the view 
    :type view_align: bool
    :param enter_editmode: Enter Editmode, Enter editmode when adding this object 
    :type enter_editmode: bool
    :param location: Location, Location for the newly added object 
    :type location: float
    :param rotation: Rotation, Rotation for the newly added object 
    :type rotation: float
    :param layers: Layer 
    :type layers: bool
    '''

    pass
