# encoding: utf-8
# module vtkmodules.vtkCommonDataModel
# from C:\Users\xukai\Downloads\发票2\venv\Lib\site-packages\vtkmodules\vtkCommonDataModel.cp311-win_amd64.pyd
# by generator 1.147
# no doc

# imports
import vtkmodules.vtkCommonCore as __vtkmodules_vtkCommonCore
import vtkmodules.vtkCommonMath as __vtkmodules_vtkCommonMath
import vtkmodules.vtkCommonTransforms as __vtkmodules_vtkCommonTransforms


from .vtkImplicitFunction import vtkImplicitFunction

class vtkSuperquadric(vtkImplicitFunction):
    """
    vtkSuperquadric - implicit function for a Superquadric
    
    Superclass: vtkImplicitFunction
    
    vtkSuperquadric computes the implicit function and function gradient
    for a superquadric. vtkSuperquadric is a concrete implementation of
    vtkImplicitFunction.  The superquadric is centered at Center and axes
    of rotation is along the y-axis. (Use the superclass'
    vtkImplicitFunction transformation matrix if necessary to
    reposition.) Roundness parameters (PhiRoundness and ThetaRoundness)
    control the shape of the superquadric.  The Toroidal boolean controls
    whether a toroidal superquadric is produced.  If so, the Thickness
    parameter controls the thickness of the toroid:  0 is the thinnest
    allowable toroid, and 1 has a minimum sized hole.  The Scale
    parameters allow the superquadric to be scaled in x, y, and z (normal
    vectors are correctly generated in any case).  The Size parameter
    controls size of the superquadric.
    
    This code is based on "Rigid physically based superquadrics", A. H.
    Barr, in "Graphics Gems III", David Kirk, ed., Academic Press, 1992.
    
    @warning
    The Size and Thickness parameters control coefficients of
    superquadric generation, and may do not exactly describe the size of
    the superquadric.
    """
    def EvaluateFunction(self, x, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        EvaluateFunction(self, x:[float, float, float]) -> float
        C++: double EvaluateFunction(double x[3]) override;
        EvaluateFunction(self, input:vtkDataArray, output:vtkDataArray)
            -> None
        C++: virtual void EvaluateFunction(vtkDataArray *input,
            vtkDataArray *output)
        EvaluateFunction(self, x:float, y:float, z:float) -> float
        C++: virtual double EvaluateFunction(double x, double y, double z)
        
        Evaluate function at position x-y-z and return value.  You should
        generally not call this method directly, you should use
        FunctionValue() instead.  This method must be implemented by any
        derived class.
        """
        pass

    def EvaluateGradient(self, x, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        EvaluateGradient(self, x:[float, float, float], g:[float, float,
            float]) -> None
        C++: void EvaluateGradient(double x[3], double g[3]) override;
        
        Evaluate function gradient at position x-y-z and pass back
        vector. You should generally not call this method directly, you
        should use FunctionGradient() instead.  This method must be
        implemented by any derived class.
        """
        pass

    def GetCenter(self): # real signature unknown; restored from __doc__
        """
        GetCenter(self) -> (float, float, float)
        C++: virtual double *GetCenter()
        """
        pass

    def GetNumberOfGenerationsFromBase(self, type): # real signature unknown; restored from __doc__
        """
        GetNumberOfGenerationsFromBase(self, type:str) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Given 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.
        """
        return 0

    def GetNumberOfGenerationsFromBaseType(self, type): # real signature unknown; restored from __doc__
        """
        GetNumberOfGenerationsFromBaseType(type:str) -> 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.
        """
        return 0

    def GetPhiRoundness(self): # real signature unknown; restored from __doc__
        """
        GetPhiRoundness(self) -> float
        C++: virtual double GetPhiRoundness()
        
        Set/Get Superquadric north/south roundness. Values range from 0
        (rectangular) to 1 (circular) to higher orders.
        """
        return 0.0

    def GetScale(self): # real signature unknown; restored from __doc__
        """
        GetScale(self) -> (float, float, float)
        C++: virtual double *GetScale()
        """
        pass

    def GetSize(self): # real signature unknown; restored from __doc__
        """
        GetSize(self) -> float
        C++: virtual double GetSize()
        """
        return 0.0

    def GetThetaRoundness(self): # real signature unknown; restored from __doc__
        """
        GetThetaRoundness(self) -> float
        C++: virtual double GetThetaRoundness()
        
        Set/Get Superquadric east/west roundness. Values range from 0
        (rectangular) to 1 (circular) to higher orders.
        """
        return 0.0

    def GetThickness(self): # real signature unknown; restored from __doc__
        """
        GetThickness(self) -> float
        C++: virtual double GetThickness()
        
        Set/Get Superquadric ring thickness (toroids only). Changing
        thickness maintains the outside diameter of the toroid.
        """
        return 0.0

    def GetThicknessMaxValue(self): # real signature unknown; restored from __doc__
        """
        GetThicknessMaxValue(self) -> float
        C++: virtual double GetThicknessMaxValue()
        """
        return 0.0

    def GetThicknessMinValue(self): # real signature unknown; restored from __doc__
        """
        GetThicknessMinValue(self) -> float
        C++: virtual double GetThicknessMinValue()
        """
        return 0.0

    def GetToroidal(self): # real signature unknown; restored from __doc__
        """
        GetToroidal(self) -> int
        C++: virtual vtkTypeBool GetToroidal()
        """
        return 0

    def IsA(self, type): # real signature unknown; restored from __doc__
        """
        IsA(self, type:str) -> 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.
        """
        return 0

    def IsTypeOf(self, type): # real signature unknown; restored from __doc__
        """
        IsTypeOf(type:str) -> 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.
        """
        return 0

    def NewInstance(self): # real signature unknown; restored from __doc__
        """
        NewInstance(self) -> vtkSuperquadric
        C++: vtkSuperquadric *NewInstance()
        """
        return vtkSuperquadric

    def SafeDownCast(self, o): # real signature unknown; restored from __doc__
        """
        SafeDownCast(o:vtkObjectBase) -> vtkSuperquadric
        C++: static vtkSuperquadric *SafeDownCast(vtkObjectBase *o)
        """
        return vtkSuperquadric

    def SetCenter(self, _arg1, _arg2, _arg3): # real signature unknown; restored from __doc__
        """
        SetCenter(self, _arg1:float, _arg2:float, _arg3:float) -> None
        C++: virtual void SetCenter(double _arg1, double _arg2,
            double _arg3)
        SetCenter(self, _arg:(float, float, float)) -> None
        C++: virtual void SetCenter(const double _arg[3])
        
        Set the center of the superquadric. Default is 0,0,0.
        """
        pass

    def SetPhiRoundness(self, e): # real signature unknown; restored from __doc__
        """
        SetPhiRoundness(self, e:float) -> None
        C++: void SetPhiRoundness(double e)
        """
        pass

    def SetScale(self, _arg1, _arg2, _arg3): # real signature unknown; restored from __doc__
        """
        SetScale(self, _arg1:float, _arg2:float, _arg3:float) -> None
        C++: virtual void SetScale(double _arg1, double _arg2,
            double _arg3)
        SetScale(self, _arg:(float, float, float)) -> None
        C++: virtual void SetScale(const double _arg[3])
        
        Set the scale factors of the superquadric. Default is 1,1,1.
        """
        pass

    def SetSize(self, _arg): # real signature unknown; restored from __doc__
        """
        SetSize(self, _arg:float) -> None
        C++: virtual void SetSize(double _arg)
        
        Set/Get Superquadric isotropic size.
        """
        pass

    def SetThetaRoundness(self, e): # real signature unknown; restored from __doc__
        """
        SetThetaRoundness(self, e:float) -> None
        C++: void SetThetaRoundness(double e)
        """
        pass

    def SetThickness(self, _arg): # real signature unknown; restored from __doc__
        """
        SetThickness(self, _arg:float) -> None
        C++: virtual void SetThickness(double _arg)
        """
        pass

    def SetToroidal(self, _arg): # real signature unknown; restored from __doc__
        """
        SetToroidal(self, _arg:int) -> None
        C++: virtual void SetToroidal(vtkTypeBool _arg)
        """
        pass

    def ToroidalOff(self): # real signature unknown; restored from __doc__
        """
        ToroidalOff(self) -> None
        C++: virtual void ToroidalOff()
        """
        pass

    def ToroidalOn(self): # real signature unknown; restored from __doc__
        """
        ToroidalOn(self) -> None
        C++: virtual void ToroidalOn()
        
        Set/Get whether or not the superquadric is toroidal (1) or
        ellipsoidal (0).
        """
        pass

    def __delattr__(self, *args, **kwargs): # real signature unknown
        """ Implement delattr(self, name). """
        pass

    def __getattribute__(self, *args, **kwargs): # real signature unknown
        """ Return getattr(self, name). """
        pass

    def __init__(self, *args, **kwargs): # real signature unknown
        pass

    @staticmethod # known case of __new__
    def __new__(*args, **kwargs): # real signature unknown
        """ Create and return a new object.  See help(type) for accurate signature. """
        pass

    def __repr__(self, *args, **kwargs): # real signature unknown
        """ Return repr(self). """
        pass

    def __setattr__(self, *args, **kwargs): # real signature unknown
        """ Implement setattr(self, name, value). """
        pass

    def __str__(self, *args, **kwargs): # real signature unknown
        """ Return str(self). """
        pass

    __this__ = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
    """Pointer to the C++ object."""


    __dict__ = None # (!) real value is 'mappingproxy({\'__vtkname__\': \'vtkSuperquadric\', \'IsTypeOf\': <method \'IsTypeOf\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'IsA\': <method \'IsA\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'SafeDownCast\': <method \'SafeDownCast\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'NewInstance\': <method \'NewInstance\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'GetNumberOfGenerationsFromBaseType\': <method \'GetNumberOfGenerationsFromBaseType\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'GetNumberOfGenerationsFromBase\': <method \'GetNumberOfGenerationsFromBase\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'EvaluateFunction\': <method \'EvaluateFunction\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'EvaluateGradient\': <method \'EvaluateGradient\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'SetCenter\': <method \'SetCenter\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'GetCenter\': <method \'GetCenter\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'SetScale\': <method \'SetScale\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'GetScale\': <method \'GetScale\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'GetThickness\': <method \'GetThickness\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'SetThickness\': <method \'SetThickness\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'GetThicknessMinValue\': <method \'GetThicknessMinValue\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'GetThicknessMaxValue\': <method \'GetThicknessMaxValue\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'GetPhiRoundness\': <method \'GetPhiRoundness\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'SetPhiRoundness\': <method \'SetPhiRoundness\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'GetThetaRoundness\': <method \'GetThetaRoundness\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'SetThetaRoundness\': <method \'SetThetaRoundness\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'SetSize\': <method \'SetSize\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'GetSize\': <method \'GetSize\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'ToroidalOn\': <method \'ToroidalOn\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'ToroidalOff\': <method \'ToroidalOff\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'GetToroidal\': <method \'GetToroidal\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'SetToroidal\': <method \'SetToroidal\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'__new__\': <built-in method __new__ of type object at 0x00007FF81D651220>, \'__repr__\': <slot wrapper \'__repr__\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'__str__\': <slot wrapper \'__str__\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'__getattribute__\': <slot wrapper \'__getattribute__\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'__setattr__\': <slot wrapper \'__setattr__\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'__delattr__\': <slot wrapper \'__delattr__\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'__dict__\': <attribute \'__dict__\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'__this__\': <attribute \'__this__\' of \'vtkmodules.vtkCommonDataModel.vtkSuperquadric\' objects>, \'__doc__\': \'vtkSuperquadric - implicit function for a Superquadric\\n\\nSuperclass: vtkImplicitFunction\\n\\nvtkSuperquadric computes the implicit function and function gradient\\nfor a superquadric. vtkSuperquadric is a concrete implementation of\\nvtkImplicitFunction.  The superquadric is centered at Center and axes\\nof rotation is along the y-axis. (Use the superclass\\\'\\nvtkImplicitFunction transformation matrix if necessary to\\nreposition.) Roundness parameters (PhiRoundness and ThetaRoundness)\\ncontrol the shape of the superquadric.  The Toroidal boolean controls\\nwhether a toroidal superquadric is produced.  If so, the Thickness\\nparameter controls the thickness of the toroid:  0 is the thinnest\\nallowable toroid, and 1 has a minimum sized hole.  The Scale\\nparameters allow the superquadric to be scaled in x, y, and z (normal\\nvectors are correctly generated in any case).  The Size parameter\\ncontrols size of the superquadric.\\n\\nThis code is based on "Rigid physically based superquadrics", A. H.\\nBarr, in "Graphics Gems III", David Kirk, ed., Academic Press, 1992.\\n\\n@warning\\nThe Size and Thickness parameters control coefficients of\\nsuperquadric generation, and may do not exactly describe the size of\\nthe superquadric.\\n\\n\'})'
    __vtkname__ = 'vtkSuperquadric'


