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

from .vtkPointPlacer import vtkPointPlacer

class vtkClosedSurfacePointPlacer(vtkPointPlacer):
    """
    vtkClosedSurfacePointPlacer - PointPlacer to constrain validity
    within a set of convex planes
    
    Superclass: vtkPointPlacer
    
    This placer takes a set of boudning planes and constraints the
    validity within the supplied convex planes. It is used by the
    ParallelopPipedRepresentation to place constraints on the motion the
    handles within the parallelopiped.
    
    @sa
    vtkParallelopipedRepresentation
    """
    def AddBoundingPlane(self, vtkPlane):
        """
        V.AddBoundingPlane(vtkPlane)
        C++: void AddBoundingPlane(vtkPlane *plane)
        
        A collection of plane equations used to bound the position of the
        point. This is in addition to confining the point to a plane -
        these constraints are meant to, for example, keep a point within
        the extent of an image. Using a set of plane equations allows for
        more complex bounds (such as bounding a point to an oblique
        reliced image that has hexagonal shape) than a simple extent.
        """
        ...
    
    def ComputeWorldPosition(self, vtkRenderer, p_float=..., p_float=..., *args, **kwargs):
        """
        V.ComputeWorldPosition(vtkRenderer, [float, float], [float, float,
             float], [float, float, float, float, float, float, float,
            float, float]) -> int
        C++: int ComputeWorldPosition(vtkRenderer *ren,
            double displayPos[2], double worldPos[3],
            double worldOrient[9]) override;
        V.ComputeWorldPosition(vtkRenderer, [float, float], [float,
            float], [float, float, float], [float, float, float, float,
            float, float, float, float, float]) -> int
        C++: int ComputeWorldPosition(vtkRenderer *ren,
            double displayPos[2], double refWorldPos[2],
            double worldPos[3], double worldOrient[9]) override;
        
        Given a renderer and a display position, compute the world
        position and world orientation for this point. A plane is defined
        by a combination of the ProjectionNormal, ProjectionOrigin, and
        ObliquePlane ivars. The display position is projected onto this
        plane to determine a world position, and the orientation is set
        to the normal of the plane. If the point cannot project onto the
        plane or if it falls outside the bounds imposed by the
        BoundingPlanes, then 0 is returned, otherwise 1 is returned to
        indicate a valid return position and orientation.
        """
        ...
    
    def GetBoundingPlanes(self):
        """
        V.GetBoundingPlanes() -> vtkPlaneCollection
        C++: virtual vtkPlaneCollection *GetBoundingPlanes()
        
        A collection of plane equations used to bound the position of the
        point. This is in addition to confining the point to a plane -
        these constraints are meant to, for example, keep a point within
        the extent of an image. Using a set of plane equations allows for
        more complex bounds (such as bounding a point to an oblique
        reliced image that has hexagonal shape) than a simple extent.
        """
        ...
    
    def GetMinimumDistance(self):
        """
        V.GetMinimumDistance() -> float
        C++: virtual double GetMinimumDistance()
        """
        ...
    
    def GetMinimumDistanceMaxValue(self):
        """
        V.GetMinimumDistanceMaxValue() -> float
        C++: virtual double GetMinimumDistanceMaxValue()
        """
        ...
    
    def GetMinimumDistanceMinValue(self):
        """
        V.GetMinimumDistanceMinValue() -> float
        C++: virtual double GetMinimumDistanceMinValue()
        """
        ...
    
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Standard methods for instances of this class.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Standard methods for instances of this class.
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Standard methods for instances of this class.
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Standard methods for instances of this class.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkClosedSurfacePointPlacer
        C++: vtkClosedSurfacePointPlacer *NewInstance()
        
        Standard methods for instances of this class.
        """
        ...
    
    def RemoveAllBoundingPlanes(self):
        """
        V.RemoveAllBoundingPlanes()
        C++: void RemoveAllBoundingPlanes()
        
        A collection of plane equations used to bound the position of the
        point. This is in addition to confining the point to a plane -
        these constraints are meant to, for example, keep a point within
        the extent of an image. Using a set of plane equations allows for
        more complex bounds (such as bounding a point to an oblique
        reliced image that has hexagonal shape) than a simple extent.
        """
        ...
    
    def RemoveBoundingPlane(self, vtkPlane):
        """
        V.RemoveBoundingPlane(vtkPlane)
        C++: void RemoveBoundingPlane(vtkPlane *plane)
        
        A collection of plane equations used to bound the position of the
        point. This is in addition to confining the point to a plane -
        these constraints are meant to, for example, keep a point within
        the extent of an image. Using a set of plane equations allows for
        more complex bounds (such as bounding a point to an oblique
        reliced image that has hexagonal shape) than a simple extent.
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkClosedSurfacePointPlacer
        C++: static vtkClosedSurfacePointPlacer *SafeDownCast(
            vtkObjectBase *o)
        
        Standard methods for instances of this class.
        """
        ...
    
    def SetBoundingPlanes(self, vtkPlaneCollection):
        """
        V.SetBoundingPlanes(vtkPlaneCollection)
        C++: virtual void SetBoundingPlanes(vtkPlaneCollection *)
        V.SetBoundingPlanes(vtkPlanes)
        C++: void SetBoundingPlanes(vtkPlanes *planes)
        
        A collection of plane equations used to bound the position of the
        point. This is in addition to confining the point to a plane -
        these constraints are meant to, for example, keep a point within
        the extent of an image. Using a set of plane equations allows for
        more complex bounds (such as bounding a point to an oblique
        reliced image that has hexagonal shape) than a simple extent.
        """
        ...
    
    def SetMinimumDistance(self, p_float):
        """
        V.SetMinimumDistance(float)
        C++: virtual void SetMinimumDistance(double _arg)
        """
        ...
    
    def ValidateWorldPosition(self, p_float=..., p_float=..., p_float=...):
        """
        V.ValidateWorldPosition([float, float, float]) -> int
        C++: int ValidateWorldPosition(double worldPos[3]) override;
        V.ValidateWorldPosition([float, float, float], [float, float,
            float, float, float, float, float, float, float]) -> int
        C++: int ValidateWorldPosition(double worldPos[3],
            double worldOrient[9]) override;
        
        Give a world position check if it is valid - does it lie on the
        plane and within the bounds? Returns 1 if it is valid, 0
        otherwise.
        """
        ...
    
    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__ = ...


