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

import vtkmodules.vtkRenderingCore as __vtkmodules_vtkRenderingCore

class vtkOpenGLUniforms(__vtkmodules_vtkRenderingCore.vtkUniforms):
    """
    vtkOpenGLUniforms - helper class to set custom uniform variables in
    GLSL shaders.
    
    Superclass: vtkUniforms
    
    This class implements all SetUniform* functions supported by
    vtkShaderProgram but instead of directly calling the underlying
    OpenGL functions, it caches the name and value of the variable and
    provides a mechanism for client mappers to set all cached variables
    at once in a generic way.
    
    The basic types of GLSL uniform variables supported by the class are
    the following: int, float, vec2i, vec3, vec4, mat3, mat4, int[],
    float[], vec2i[], vec3[], vec4[], mat4[]. All other types supported
    by Set* functions undergo the same type conversions implemented in
    vtkShaderProgram.
    
    @par Thanks: Developed by Simon Drouin (sdrouin2@bwh.harvard.edu) at
    Brigham and Women's Hospital.
    """
    def GetDeclarations(self):
        """
        V.GetDeclarations() -> string
        C++: std::string GetDeclarations()
        
        Build a string containing the GLSL declaration of all stored
        uniform variables. This is typically called by mappers to compose
        the complete shader program.
        """
        ...
    
    def GetNthUniformName(self, p_int):
        """
        V.GetNthUniformName(int) -> string
        C++: const char *GetNthUniformName(vtkIdType uniformIndex)
            override;
        
        Get number of all uniforms stored in this class. Valid range is
        between 0 and GetNumberOfUniforms() - 1.
        """
        ...
    
    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 GetNumberOfUniforms(self):
        """
        V.GetNumberOfUniforms() -> int
        C++: int GetNumberOfUniforms() override;
        
        Get number of all uniforms stored in this class
        """
        ...
    
    def GetUniform(self, string, Stvector_IiE):
        """
        V.GetUniform(string, Stvector_IiE) -> bool
        C++: bool GetUniform(const char *name, std::vector<int> &value)
            override;
        V.GetUniform(string, Stvector_IfE) -> bool
        C++: bool GetUniform(const char *name, std::vector<float> &value)
            override;
        
        Generic setters and getter. Set and Get the value of uniform
        variable name, with TupleType tt, number of components
        nbComponents and values stored invalue. These functions simplify
        io of uniforms
        """
        ...
    
    def GetUniform1fv(self, string, Stvector_IfE):
        """
        V.GetUniform1fv(string, Stvector_IfE) -> bool
        C++: bool GetUniform1fv(const char *name, std::vector<float> &f)
            override;
        
        Get the name uniform vector to f with.
        """
        ...
    
    def GetUniform1iv(self, string, Stvector_IiE):
        """
        V.GetUniform1iv(string, Stvector_IiE) -> bool
        C++: bool GetUniform1iv(const char *name, std::vector<int> &f)
            override;
        
        Get the name uniform vector to f with.
        """
        ...
    
    def GetUniform2f(self, string, p_float=..., p_float=...):
        """
        V.GetUniform2f(string, [float, float]) -> bool
        C++: bool GetUniform2f(const char *name, float v[2]) override;
        
        Get the name uniform value. Returns true on success.
        """
        ...
    
    def GetUniform2fv(self, string, Stvector_IfE):
        """
        V.GetUniform2fv(string, Stvector_IfE) -> bool
        C++: bool GetUniform2fv(const char *name, std::vector<float> &f)
            override;
        
        Get the name uniform vector to f with.
        """
        ...
    
    def GetUniform2i(self, string, p_int=..., p_int=...):
        """
        V.GetUniform2i(string, [int, int]) -> bool
        C++: bool GetUniform2i(const char *name, int v[2]) override;
        
        Get the name uniform value. Returns true on success.
        """
        ...
    
    def GetUniform3f(self, string, p_float=..., p_float=..., p_float=...):
        """
        V.GetUniform3f(string, [float, float, float]) -> bool
        C++: bool GetUniform3f(const char *name, double v[3]) override;
        
        Get the name uniform to v. The following are convenience
        functions and do not reflect the way the data is stored and sent
        to OpenGL. Data is converted from one of the basic supported
        types
        """
        ...
    
    def GetUniform3fv(self, string, Stvector_IfE):
        """
        V.GetUniform3fv(string, Stvector_IfE) -> bool
        C++: bool GetUniform3fv(const char *name, std::vector<float> &f)
            override;
        
        Get the name uniform vector to f with.
        """
        ...
    
    def GetUniform3uc(self, string, p_int=..., p_int=..., p_int=...):
        """
        V.GetUniform3uc(string, [int, int, int]) -> bool
        C++: bool GetUniform3uc(const char *name, unsigned char v[3])
            override;
        
        Get the name uniform to v. The following are convenience
        functions and do not reflect the way the data is stored and sent
        to OpenGL. Data is converted from one of the basic supported
        types
        """
        ...
    
    def GetUniform4f(self, string, p_float=..., p_float=..., p_float=..., p_float=...):
        """
        V.GetUniform4f(string, [float, float, float, float]) -> bool
        C++: bool GetUniform4f(const char *name, float v[4]) override;
        
        Get the name uniform value. Returns true on success.
        """
        ...
    
    def GetUniform4fv(self, string, Stvector_IfE):
        """
        V.GetUniform4fv(string, Stvector_IfE) -> bool
        C++: bool GetUniform4fv(const char *name, std::vector<float> &f)
            override;
        
        Get the name uniform vector to f with.
        """
        ...
    
    def GetUniform4uc(self, string, p_int=..., p_int=..., p_int=..., p_int=...):
        """
        V.GetUniform4uc(string, [int, int, int, int]) -> bool
        C++: bool GetUniform4uc(const char *name, unsigned char v[4])
            override;
        
        Get the name uniform to v. The following are convenience
        functions and do not reflect the way the data is stored and sent
        to OpenGL. Data is converted from one of the basic supported
        types
        """
        ...
    
    def GetUniformf(self, string, p_float):
        """
        V.GetUniformf(string, float) -> bool
        C++: bool GetUniformf(const char *name, float &v) override;
        
        Get the name uniform value. Returns true on success.
        """
        ...
    
    def GetUniformi(self, string, p_int):
        """
        V.GetUniformi(string, int) -> bool
        C++: bool GetUniformi(const char *name, int &v) override;
        
        Get the name uniform value. Returns true on success.
        """
        ...
    
    def GetUniformListMTime(self):
        """
        V.GetUniformListMTime() -> int
        C++: vtkMTimeType GetUniformListMTime() override;
        
        Get modified time of the list of uniform variables, which is
        typically used to check whether the shader needs to be
        recompiled. The time stamp is not affected by the modification of
        the value of an existing variable as then no shader recompilation
        is needed.
        """
        ...
    
    def GetUniformMatrix(self, string, vtkMatrix3x3):
        """
        V.GetUniformMatrix(string, vtkMatrix3x3) -> bool
        C++: bool GetUniformMatrix(const char *name, vtkMatrix3x3 *v)
            override;
        V.GetUniformMatrix(string, vtkMatrix4x4) -> bool
        C++: bool GetUniformMatrix(const char *name, vtkMatrix4x4 *v)
            override;
        
        Get the name uniform to v. The following are convenience
        functions and do not reflect the way the data is stored and sent
        to OpenGL. Data is converted from one of the basic supported
        types
        """
        ...
    
    def GetUniformMatrix3x3(self, string, *float):
        """
        V.GetUniformMatrix3x3(string, [float, ...]) -> bool
        C++: bool GetUniformMatrix3x3(const char *name, float *v)
            override;
        
        Get the name uniform value. Returns true on success.
        """
        ...
    
    def GetUniformMatrix4x4(self, string, *float):
        """
        V.GetUniformMatrix4x4(string, [float, ...]) -> bool
        C++: bool GetUniformMatrix4x4(const char *name, float *v)
            override;
        
        Get the name uniform value. Returns true on success.
        """
        ...
    
    def GetUniformMatrix4x4v(self, string, Stvector_IfE):
        """
        V.GetUniformMatrix4x4v(string, Stvector_IfE) -> bool
        C++: bool GetUniformMatrix4x4v(const char *name,
            std::vector<float> &f) override;
        
        Get the name uniform vector to f with.
        """
        ...
    
    def GetUniformNumberOfComponents(self, string):
        """
        V.GetUniformNumberOfComponents(string) -> int
        C++: int GetUniformNumberOfComponents(const char *name) override;
        
        Get the number of components stored in each tuple of uniform
        name. for example, a uniform with tuples of matrix type and 9
        components contains 3x3 matrices
        """
        ...
    
    def GetUniformNumberOfTuples(self, string):
        """
        V.GetUniformNumberOfTuples(string) -> int
        C++: int GetUniformNumberOfTuples(const char *name) override;
        
        Get length of a uniform name that contains a variable-size
        vector. Size includes number of tuples. For example, 3fv returns
        3 x number of triplets.
        """
        ...
    
    def GetUniformScalarType(self, string):
        """
        V.GetUniformScalarType(string) -> int
        C++: int GetUniformScalarType(const char *name) override;
        
        Get type of scalars stored in uniform name
        """
        ...
    
    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() -> vtkOpenGLUniforms
        C++: vtkOpenGLUniforms *NewInstance()
        """
        ...
    
    def RemoveAllUniforms(self):
        """
        V.RemoveAllUniforms()
        C++: void RemoveAllUniforms() override;
        
        Remove all uniform variables
        """
        ...
    
    def RemoveUniform(self, string):
        """
        V.RemoveUniform(string)
        C++: void RemoveUniform(const char *name) override;
        
        Remove uniform variable named name
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkOpenGLUniforms
        C++: static vtkOpenGLUniforms *SafeDownCast(vtkObjectBase *o)
        """
        ...
    
    def SetUniform(self, string, vtkUniforms_TupleType, p_int, Stvector_IiE):
        """
        V.SetUniform(string, vtkUniforms.TupleType, int, Stvector_IiE)
        C++: void SetUniform(const char *name, vtkUniforms::TupleType tt,
            int nbComponents, const std::vector<int> &value) override;
        V.SetUniform(string, vtkUniforms.TupleType, int, Stvector_IfE)
        C++: void SetUniform(const char *name, vtkUniforms::TupleType tt,
            int nbComponents, const std::vector<float> &value) override;
        
        Generic setters and getter. Set and Get the value of uniform
        variable name, with TupleType tt, number of components
        nbComponents and values stored invalue. These functions simplify
        io of uniforms
        """
        ...
    
    def SetUniform1fv(self, string, p_int, float_tuple):
        """
        V.SetUniform1fv(string, int, (float, ...))
        C++: void SetUniform1fv(const char *name, const int count,
            const float *f) override;
        
        Set the name uniform array to f with count elements
        """
        ...
    
    def SetUniform1iv(self, string, p_int, int_tuple):
        """
        V.SetUniform1iv(string, int, (int, ...))
        C++: void SetUniform1iv(const char *name, const int count,
            const int *f) override;
        
        Set the name uniform array to f with count elements
        """
        ...
    
    def SetUniform2f(self, string, ):
        """
        V.SetUniform2f(string, (float, float))
        C++: void SetUniform2f(const char *name, const float v[2])
            override;
        
        Set the name uniform value to v.
        """
        ...
    
    def SetUniform2i(self, string, ):
        """
        V.SetUniform2i(string, (int, int))
        C++: void SetUniform2i(const char *name, const int v[2]) override;
        
        Set the name uniform value to v.
        """
        ...
    
    def SetUniform3f(self, string, ):
        """
        V.SetUniform3f(string, (float, float, float))
        C++: void SetUniform3f(const char *name, const double v[3])
            override;
        
        Set the name uniform to v. The following are convenience
        functions and do not reflect the way the data is stored and sent
        to OpenGL. Data is converted to match one of the basic supported
        types
        """
        ...
    
    def SetUniform3uc(self, string, ):
        """
        V.SetUniform3uc(string, (int, int, int))
        C++: void SetUniform3uc(const char *name,
            const unsigned char v[3]) override;
        
        Set the name uniform to v. The following are convenience
        functions and do not reflect the way the data is stored and sent
        to OpenGL. Data is converted to match one of the basic supported
        types
        """
        ...
    
    def SetUniform4f(self, string, ):
        """
        V.SetUniform4f(string, (float, float, float, float))
        C++: void SetUniform4f(const char *name, const float v[4])
            override;
        
        Set the name uniform value to v.
        """
        ...
    
    def SetUniform4uc(self, string, ):
        """
        V.SetUniform4uc(string, (int, int, int, int))
        C++: void SetUniform4uc(const char *name,
            const unsigned char v[4]) override;
        
        Set the name uniform to v. The following are convenience
        functions and do not reflect the way the data is stored and sent
        to OpenGL. Data is converted to match one of the basic supported
        types
        """
        ...
    
    def SetUniformf(self, string, p_float):
        """
        V.SetUniformf(string, float)
        C++: void SetUniformf(const char *name, float v) override;
        
        Set the name uniform value to v.
        """
        ...
    
    def SetUniformi(self, string, p_int):
        """
        V.SetUniformi(string, int)
        C++: void SetUniformi(const char *name, int v) override;
        
        Set the name uniform value to v.
        """
        ...
    
    def SetUniformMatrix(self, string, vtkMatrix3x3):
        """
        V.SetUniformMatrix(string, vtkMatrix3x3)
        C++: void SetUniformMatrix(const char *name, vtkMatrix3x3 *v)
            override;
        V.SetUniformMatrix(string, vtkMatrix4x4)
        C++: void SetUniformMatrix(const char *name, vtkMatrix4x4 *v)
            override;
        
        Set the name uniform to v. The following are convenience
        functions and do not reflect the way the data is stored and sent
        to OpenGL. Data is converted to match one of the basic supported
        types
        """
        ...
    
    def SetUniformMatrix3x3(self, string, *float):
        """
        V.SetUniformMatrix3x3(string, [float, ...])
        C++: void SetUniformMatrix3x3(const char *name, float *v)
            override;
        
        Set the name uniform value to v.
        """
        ...
    
    def SetUniformMatrix4x4(self, string, *float):
        """
        V.SetUniformMatrix4x4(string, [float, ...])
        C++: void SetUniformMatrix4x4(const char *name, float *v)
            override;
        
        Set the name uniform value to v.
        """
        ...
    
    def SetUniformMatrix4x4v(self, string, p_int, *float):
        """
        V.SetUniformMatrix4x4v(string, int, [float, ...])
        C++: void SetUniformMatrix4x4v(const char *name, const int count,
            float *v) override;
        
        Set the name uniform array to f with count elements
        """
        ...
    
    def SetUniforms(self, vtkShaderProgram):
        """
        V.SetUniforms(vtkShaderProgram) -> bool
        C++: bool SetUniforms(vtkShaderProgram *p)
        
        Set all the stored uniform variables values in the shader program
        p. This is called when the shader is bound.
        """
        ...
    
    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__ = ...


