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

from .vtkGraphLayoutStrategy import vtkGraphLayoutStrategy

class vtkForceDirectedLayoutStrategy(vtkGraphLayoutStrategy):
    """
    vtkForceDirectedLayoutStrategy - a force directed graph layout
    algorithm
    
    Superclass: vtkGraphLayoutStrategy
    
    Lays out a graph in 2D or 3D using a force-directed algorithm. The
    user may specify whether to layout the graph randomly initially, the
    bounds, the number of dimensions (2 or 3), and the cool-down rate.
    
    @par Thanks: Thanks to Brian Wylie for adding functionality for
    allowing this layout to be incremental.
    """
    def AutomaticBoundsComputationOff(self):
        """
        V.AutomaticBoundsComputationOff()
        C++: virtual void AutomaticBoundsComputationOff()
        
        Turn on/off automatic graph bounds calculation. If this boolean
        is off, then the manually specified GraphBounds is used. If on,
        then the input's bounds us used as the graph bounds.
        """
        ...
    
    def AutomaticBoundsComputationOn(self):
        """
        V.AutomaticBoundsComputationOn()
        C++: virtual void AutomaticBoundsComputationOn()
        
        Turn on/off automatic graph bounds calculation. If this boolean
        is off, then the manually specified GraphBounds is used. If on,
        then the input's bounds us used as the graph bounds.
        """
        ...
    
    def GetAutomaticBoundsComputation(self):
        """
        V.GetAutomaticBoundsComputation() -> int
        C++: virtual vtkTypeBool GetAutomaticBoundsComputation()
        
        Turn on/off automatic graph bounds calculation. If this boolean
        is off, then the manually specified GraphBounds is used. If on,
        then the input's bounds us used as the graph bounds.
        """
        ...
    
    def GetCoolDownRate(self):
        """
        V.GetCoolDownRate() -> float
        C++: virtual double GetCoolDownRate()
        
        Set/Get the Cool-down rate. The higher this number is, the longer
        it will take to "cool-down", and thus, the more the graph will be
        modified.
        """
        ...
    
    def GetCoolDownRateMaxValue(self):
        """
        V.GetCoolDownRateMaxValue() -> float
        C++: virtual double GetCoolDownRateMaxValue()
        
        Set/Get the Cool-down rate. The higher this number is, the longer
        it will take to "cool-down", and thus, the more the graph will be
        modified.
        """
        ...
    
    def GetCoolDownRateMinValue(self):
        """
        V.GetCoolDownRateMinValue() -> float
        C++: virtual double GetCoolDownRateMinValue()
        
        Set/Get the Cool-down rate. The higher this number is, the longer
        it will take to "cool-down", and thus, the more the graph will be
        modified.
        """
        ...
    
    def GetGraphBounds(self):
        """
        V.GetGraphBounds() -> (float, float, float, float, float, float)
        C++: virtual double *GetGraphBounds()
        
        Set / get the region in space in which to place the final graph.
        The GraphBounds only affects the results if
        AutomaticBoundsComputation is off.
        """
        ...
    
    def GetInitialTemperature(self):
        """
        V.GetInitialTemperature() -> float
        C++: virtual float GetInitialTemperature()
        
        Set the initial temperature.  If zero (the default) , the initial
        temperature will be computed automatically.
        """
        ...
    
    def GetInitialTemperatureMaxValue(self):
        """
        V.GetInitialTemperatureMaxValue() -> float
        C++: virtual float GetInitialTemperatureMaxValue()
        
        Set the initial temperature.  If zero (the default) , the initial
        temperature will be computed automatically.
        """
        ...
    
    def GetInitialTemperatureMinValue(self):
        """
        V.GetInitialTemperatureMinValue() -> float
        C++: virtual float GetInitialTemperatureMinValue()
        
        Set the initial temperature.  If zero (the default) , the initial
        temperature will be computed automatically.
        """
        ...
    
    def GetIterationsPerLayout(self):
        """
        V.GetIterationsPerLayout() -> int
        C++: virtual int GetIterationsPerLayout()
        
        Set/Get the number of iterations per layout. The only use for
        this ivar is for the application to do visualizations of the
        layout before it's complete. The default is '50' to match the
        default 'MaxNumberOfIterations'
        """
        ...
    
    def GetIterationsPerLayoutMaxValue(self):
        """
        V.GetIterationsPerLayoutMaxValue() -> int
        C++: virtual int GetIterationsPerLayoutMaxValue()
        
        Set/Get the number of iterations per layout. The only use for
        this ivar is for the application to do visualizations of the
        layout before it's complete. The default is '50' to match the
        default 'MaxNumberOfIterations'
        """
        ...
    
    def GetIterationsPerLayoutMinValue(self):
        """
        V.GetIterationsPerLayoutMinValue() -> int
        C++: virtual int GetIterationsPerLayoutMinValue()
        
        Set/Get the number of iterations per layout. The only use for
        this ivar is for the application to do visualizations of the
        layout before it's complete. The default is '50' to match the
        default 'MaxNumberOfIterations'
        """
        ...
    
    def GetMaxNumberOfIterations(self):
        """
        V.GetMaxNumberOfIterations() -> int
        C++: virtual int GetMaxNumberOfIterations()
        
        Set/Get the maximum number of iterations to be used. The higher
        this number, the more iterations through the algorithm is
        possible, and thus, the more the graph gets modified. The default
        is '50' for no particular reason
        """
        ...
    
    def GetMaxNumberOfIterationsMaxValue(self):
        """
        V.GetMaxNumberOfIterationsMaxValue() -> int
        C++: virtual int GetMaxNumberOfIterationsMaxValue()
        
        Set/Get the maximum number of iterations to be used. The higher
        this number, the more iterations through the algorithm is
        possible, and thus, the more the graph gets modified. The default
        is '50' for no particular reason
        """
        ...
    
    def GetMaxNumberOfIterationsMinValue(self):
        """
        V.GetMaxNumberOfIterationsMinValue() -> int
        C++: virtual int GetMaxNumberOfIterationsMinValue()
        
        Set/Get the maximum number of iterations to be used. The higher
        this number, the more iterations through the algorithm is
        possible, and thus, the more the graph gets modified. The default
        is '50' for no particular reason
        """
        ...
    
    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 GetRandomInitialPoints(self):
        """
        V.GetRandomInitialPoints() -> int
        C++: virtual vtkTypeBool GetRandomInitialPoints()
        
        Turn on/off use of random positions within the graph bounds as
        initial points.
        """
        ...
    
    def GetRandomSeed(self):
        """
        V.GetRandomSeed() -> int
        C++: virtual int GetRandomSeed()
        
        Seed the random number generator used to jitter point positions.
        This has a significant effect on their final positions when the
        layout is complete.
        """
        ...
    
    def GetRandomSeedMaxValue(self):
        """
        V.GetRandomSeedMaxValue() -> int
        C++: virtual int GetRandomSeedMaxValue()
        
        Seed the random number generator used to jitter point positions.
        This has a significant effect on their final positions when the
        layout is complete.
        """
        ...
    
    def GetRandomSeedMinValue(self):
        """
        V.GetRandomSeedMinValue() -> int
        C++: virtual int GetRandomSeedMinValue()
        
        Seed the random number generator used to jitter point positions.
        This has a significant effect on their final positions when the
        layout is complete.
        """
        ...
    
    def GetThreeDimensionalLayout(self):
        """
        V.GetThreeDimensionalLayout() -> int
        C++: virtual vtkTypeBool GetThreeDimensionalLayout()
        
        Turn on/off layout of graph in three dimensions. If off, graph
        layout occurs in two dimensions. By default, three dimensional
        layout is off.
        """
        ...
    
    def Initialize(self):
        """
        V.Initialize()
        C++: void Initialize() override;
        
        This strategy sets up some data structures for faster processing
        of each Layout() call
        """
        ...
    
    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 IsLayoutComplete(self):
        """
        V.IsLayoutComplete() -> int
        C++: int IsLayoutComplete() override;
        
        I'm an iterative layout so this method lets the caller know if
        I'm done laying out the graph
        """
        ...
    
    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 Layout(self):
        """
        V.Layout()
        C++: void Layout() override;
        
        This is the layout method where the graph that was set in
        SetGraph() is laid out. The method can either entirely layout the
        graph or iteratively lay out the graph. If you have an iterative
        layout please implement the IsLayoutComplete() method.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkForceDirectedLayoutStrategy
        C++: vtkForceDirectedLayoutStrategy *NewInstance()
        """
        ...
    
    def RandomInitialPointsOff(self):
        """
        V.RandomInitialPointsOff()
        C++: virtual void RandomInitialPointsOff()
        
        Turn on/off use of random positions within the graph bounds as
        initial points.
        """
        ...
    
    def RandomInitialPointsOn(self):
        """
        V.RandomInitialPointsOn()
        C++: virtual void RandomInitialPointsOn()
        
        Turn on/off use of random positions within the graph bounds as
        initial points.
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkForceDirectedLayoutStrategy
        C++: static vtkForceDirectedLayoutStrategy *SafeDownCast(
            vtkObjectBase *o)
        """
        ...
    
    def SetAutomaticBoundsComputation(self, p_int):
        """
        V.SetAutomaticBoundsComputation(int)
        C++: virtual void SetAutomaticBoundsComputation(vtkTypeBool _arg)
        
        Turn on/off automatic graph bounds calculation. If this boolean
        is off, then the manually specified GraphBounds is used. If on,
        then the input's bounds us used as the graph bounds.
        """
        ...
    
    def SetCoolDownRate(self, p_float):
        """
        V.SetCoolDownRate(float)
        C++: virtual void SetCoolDownRate(double _arg)
        
        Set/Get the Cool-down rate. The higher this number is, the longer
        it will take to "cool-down", and thus, the more the graph will be
        modified.
        """
        ...
    
    def SetGraphBounds(self, p_float, p_float_1, p_float_2, p_float_3, p_float_4, p_float_5):
        """
        V.SetGraphBounds(float, float, float, float, float, float)
        C++: virtual void SetGraphBounds(double _arg1, double _arg2,
            double _arg3, double _arg4, double _arg5, double _arg6)
        V.SetGraphBounds((float, float, float, float, float, float))
        C++: virtual void SetGraphBounds(const double _arg[6])
        
        Set / get the region in space in which to place the final graph.
        The GraphBounds only affects the results if
        AutomaticBoundsComputation is off.
        """
        ...
    
    def SetInitialTemperature(self, p_float):
        """
        V.SetInitialTemperature(float)
        C++: virtual void SetInitialTemperature(float _arg)
        
        Set the initial temperature.  If zero (the default) , the initial
        temperature will be computed automatically.
        """
        ...
    
    def SetIterationsPerLayout(self, p_int):
        """
        V.SetIterationsPerLayout(int)
        C++: virtual void SetIterationsPerLayout(int _arg)
        
        Set/Get the number of iterations per layout. The only use for
        this ivar is for the application to do visualizations of the
        layout before it's complete. The default is '50' to match the
        default 'MaxNumberOfIterations'
        """
        ...
    
    def SetMaxNumberOfIterations(self, p_int):
        """
        V.SetMaxNumberOfIterations(int)
        C++: virtual void SetMaxNumberOfIterations(int _arg)
        
        Set/Get the maximum number of iterations to be used. The higher
        this number, the more iterations through the algorithm is
        possible, and thus, the more the graph gets modified. The default
        is '50' for no particular reason
        """
        ...
    
    def SetRandomInitialPoints(self, p_int):
        """
        V.SetRandomInitialPoints(int)
        C++: virtual void SetRandomInitialPoints(vtkTypeBool _arg)
        
        Turn on/off use of random positions within the graph bounds as
        initial points.
        """
        ...
    
    def SetRandomSeed(self, p_int):
        """
        V.SetRandomSeed(int)
        C++: virtual void SetRandomSeed(int _arg)
        
        Seed the random number generator used to jitter point positions.
        This has a significant effect on their final positions when the
        layout is complete.
        """
        ...
    
    def SetThreeDimensionalLayout(self, p_int):
        """
        V.SetThreeDimensionalLayout(int)
        C++: virtual void SetThreeDimensionalLayout(vtkTypeBool _arg)
        
        Turn on/off layout of graph in three dimensions. If off, graph
        layout occurs in two dimensions. By default, three dimensional
        layout is off.
        """
        ...
    
    def ThreeDimensionalLayoutOff(self):
        """
        V.ThreeDimensionalLayoutOff()
        C++: virtual void ThreeDimensionalLayoutOff()
        
        Turn on/off layout of graph in three dimensions. If off, graph
        layout occurs in two dimensions. By default, three dimensional
        layout is off.
        """
        ...
    
    def ThreeDimensionalLayoutOn(self):
        """
        V.ThreeDimensionalLayoutOn()
        C++: virtual void ThreeDimensionalLayoutOn()
        
        Turn on/off layout of graph in three dimensions. If off, graph
        layout occurs in two dimensions. By default, three dimensional
        layout is off.
        """
        ...
    
    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__ = ...


