"""
This type stub file was generated by pyright.
"""

from .vtk3DWidget import vtk3DWidget

class vtkPolyDataSourceWidget(vtk3DWidget):
    """
    vtkPolyDataSourceWidget - abstract PolyDataSource-based 3D widget
    
    Superclass: vtk3DWidget
    
    This abstract class serves as parent to 3D widgets that have simple
    vtkPolyDataSource instances defining their geometry.
    
    In addition to what is offered by the vtk3DWidget parent, this class
    makes it possible to manipulate the underlying polydatasource and to
    PlaceWidget() according to that, instead of having to make use of
    SetInput() or SetProp3D().
    
    Implementors of child classes HAVE to implement their
    PlaceWidget(bounds) to check for the existence of Input and Prop3D
    FIRST.  If these don't exist, place according to the underlying
    PolyDataSource.  Child classes also have to imprement
    UpdatePlacement(), which updates the widget according to the geometry
    of the underlying PolyDataSource.
    
    @sa
    vtk3DWidget vtkLineWidget vtkPlaneWidget vtkSphereWidget
    """
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Given a the name of a base class of this class type, return the
        distance of inheritance between this class type and the named
        class (how many generations of inheritance are there between this
        class and the named class). If the named class is not in this
        class's inheritance tree, return a negative value. Valid
        responses will always be nonnegative. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Given a the name of a base class of this class type, return the
        distance of inheritance between this class type and the named
        class (how many generations of inheritance are there between this
        class and the named class). If the named class is not in this
        class's inheritance tree, return a negative value. Valid
        responses will always be nonnegative. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def GetPolyDataAlgorithm(self):
        """
        V.GetPolyDataAlgorithm() -> vtkPolyDataAlgorithm
        C++: virtual vtkPolyDataAlgorithm *GetPolyDataAlgorithm()
        
        Returns underlying vtkPolyDataAlgorithm that determines geometry.
         This can be modified after which PlaceWidget() or
        UpdatePlacement() can be called.  UpdatePlacement() will always
        update the planewidget according to the geometry of the
        underlying PolyDataAlgorithm.  PlaceWidget() will only make use
        of this geometry if there is no Input and no Prop3D set.
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Return 1 if this class is the same type of (or a subclass of) the
        named class. Returns 0 otherwise. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Return 1 if this class type is the same type of (or a subclass
        of) the named class. Returns 0 otherwise. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkPolyDataSourceWidget
        C++: vtkPolyDataSourceWidget *NewInstance()
        """
        ...
    
    def PlaceWidget(self):
        """
        V.PlaceWidget()
        C++: void PlaceWidget() override;
        V.PlaceWidget([float, float, float, float, float, float])
        C++: void PlaceWidget(double bounds[6]) override = 0;
        V.PlaceWidget(float, float, float, float, float, float)
        C++: void PlaceWidget(double xmin, double xmax, double ymin,
            double ymax, double zmin, double zmax) override;
        
        Overrides vtk3DWidget PlaceWidget() so that it doesn't complain
        if there's no Input and no Prop3D.
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkPolyDataSourceWidget
        C++: static vtkPolyDataSourceWidget *SafeDownCast(
            vtkObjectBase *o)
        """
        ...
    
    def UpdatePlacement(self):
        """
        V.UpdatePlacement()
        C++: virtual void UpdatePlacement()
        
        If you've made changes to the underlying vtkPolyDataSource AFTER
        your initial call to PlaceWidget(), use this method to realise
        the changes in the widget.
        """
        ...
    
    def __delattr__(self, *args, **kwargs):
        """ Implement delattr(self, name). """
        ...
    
    def __getattribute__(self, *args, **kwargs):
        """ Return getattr(self, name). """
        ...
    
    def __init__(self, *args, **kwargs) -> None:
        ...
    
    @staticmethod
    def __new__(*args, **kwargs):
        """ Create and return a new object.  See help(type) for accurate signature. """
        ...
    
    def __repr__(self, *args, **kwargs):
        """ Return repr(self). """
        ...
    
    def __setattr__(self, *args, **kwargs):
        """ Implement setattr(self, name, value). """
        ...
    
    def __str__(self, *args, **kwargs) -> str:
        """ Return str(self). """
        ...
    
    __this__ = ...
    __dict__ = ...
    __vtkname__ = ...


