from typing import overload, Any, Callable, TypeVar, Union
from typing import Tuple, List, Sequence, MutableSequence

Callback = Union[Callable[..., None], None]
Buffer = TypeVar('Buffer')
Pointer = TypeVar('Pointer')
Template = TypeVar('Template')

import vtkmodules.vtkCommonCore
import vtkmodules.vtkCommonExecutionModel
import vtkmodules.vtkRenderingCore
import vtkmodules.vtkRenderingOpenGL2

class vtkBatchedSurfaceLICMapper(vtkmodules.vtkRenderingOpenGL2.vtkOpenGLBatchedPolyDataMapper):
    def __init__(self, **properties:Any) -> None: ...
    def GetNumberOfGenerationsFromBase(self, type:str) -> int: ...
    @staticmethod
    def GetNumberOfGenerationsFromBaseType(type:str) -> int: ...
    def IsA(self, type:str) -> int: ...
    @staticmethod
    def IsTypeOf(type:str) -> int: ...
    def NewInstance(self) -> 'vtkBatchedSurfaceLICMapper': ...
    @staticmethod
    def SafeDownCast(o:'vtkObjectBase') -> 'vtkBatchedSurfaceLICMapper': ...

class vtkCompositeSurfaceLICMapper(vtkmodules.vtkRenderingCore.vtkCompositePolyDataMapper):
    lic_interface:'getset_descriptor'
    def __init__(self, **properties:Any) -> None: ...
    def GetLICInterface(self) -> 'vtkSurfaceLICInterface': ...
    def GetNumberOfGenerationsFromBase(self, type:str) -> int: ...
    @staticmethod
    def GetNumberOfGenerationsFromBaseType(type:str) -> int: ...
    def IsA(self, type:str) -> int: ...
    @staticmethod
    def IsTypeOf(type:str) -> int: ...
    def NewInstance(self) -> 'vtkCompositeSurfaceLICMapper': ...
    def Render(self, ren:'vtkRenderer', act:'vtkActor') -> None: ...
    @staticmethod
    def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeSurfaceLICMapper': ...

class vtkCompositeSurfaceLICMapperDelegator(vtkmodules.vtkRenderingOpenGL2.vtkOpenGLCompositePolyDataMapperDelegator):
    def __init__(self, **properties:Any) -> None: ...
    def GetNumberOfGenerationsFromBase(self, type:str) -> int: ...
    @staticmethod
    def GetNumberOfGenerationsFromBaseType(type:str) -> int: ...
    def IsA(self, type:str) -> int: ...
    @staticmethod
    def IsTypeOf(type:str) -> int: ...
    def NewInstance(self) -> 'vtkCompositeSurfaceLICMapperDelegator': ...
    @staticmethod
    def SafeDownCast(o:'vtkObjectBase') -> 'vtkCompositeSurfaceLICMapperDelegator': ...
    def ShallowCopy(self, mapper:'vtkCompositePolyDataMapper') -> None: ...

class vtkImageDataLIC2D(vtkmodules.vtkCommonExecutionModel.vtkImageAlgorithm):
    context:'getset_descriptor'
    magnification:'getset_descriptor'
    open_gl_extensions_supported:'getset_descriptor'
    step_size:'getset_descriptor'
    steps:'getset_descriptor'
    def __init__(self, **properties:Any) -> None: ...
    def GetContext(self) -> 'vtkRenderWindow': ...
    def GetMagnification(self) -> int: ...
    def GetNumberOfGenerationsFromBase(self, type:str) -> int: ...
    @staticmethod
    def GetNumberOfGenerationsFromBaseType(type:str) -> int: ...
    def GetOpenGLExtensionsSupported(self) -> int: ...
    def GetStepSize(self) -> float: ...
    def GetSteps(self) -> int: ...
    def IsA(self, type:str) -> int: ...
    @staticmethod
    def IsTypeOf(type:str) -> int: ...
    def NewInstance(self) -> 'vtkImageDataLIC2D': ...
    @staticmethod
    def SafeDownCast(o:'vtkObjectBase') -> 'vtkImageDataLIC2D': ...
    def SetContext(self, context:'vtkRenderWindow') -> int: ...
    def SetMagnification(self, _arg:int) -> None: ...
    def SetStepSize(self, _arg:float) -> None: ...
    def SetSteps(self, _arg:int) -> None: ...
    def TranslateInputExtent(self, inExt:Sequence[int], inWholeExtent:Sequence[int], outExt:MutableSequence[int]) -> None: ...

class vtkLineIntegralConvolution2D(vtkmodules.vtkCommonCore.vtkObject):
    ENHANCE_CONTRAST_OFF:int
    ENHANCE_CONTRAST_ON:int
    anti_alias:'getset_descriptor'
    component_ids:'getset_descriptor'
    context:'getset_descriptor'
    enhance_contrast:'getset_descriptor'
    enhanced_lic:'getset_descriptor'
    high_contrast_enhancement_factor:'getset_descriptor'
    low_contrast_enhancement_factor:'getset_descriptor'
    mask_threshold:'getset_descriptor'
    max_noise_value:'getset_descriptor'
    noise_tex_parameters:'getset_descriptor'
    normalize_vectors:'getset_descriptor'
    number_of_steps:'getset_descriptor'
    number_of_steps_max_value:'getset_descriptor'
    number_of_steps_min_value:'getset_descriptor'
    step_size:'getset_descriptor'
    transform_vectors:'getset_descriptor'
    vector_tex_parameters:'getset_descriptor'
    def __init__(self, **properties:Any) -> None: ...
    def AntiAliasOff(self) -> None: ...
    def AntiAliasOn(self) -> None: ...
    def EnhanceContrastOff(self) -> None: ...
    def EnhanceContrastOn(self) -> None: ...
    def EnhancedLICOff(self) -> None: ...
    def EnhancedLICOn(self) -> None: ...
    @overload
    def Execute(self, vectorTex:'vtkTextureObject', noiseTex:'vtkTextureObject') -> 'vtkTextureObject': ...
    @overload
    def Execute(self, extent:Sequence[int], vectorTex:'vtkTextureObject', noiseTex:'vtkTextureObject') -> 'vtkTextureObject': ...
    def GetAntiAlias(self) -> int: ...
    def GetAntiAliasMaxValue(self) -> int: ...
    def GetAntiAliasMinValue(self) -> int: ...
    def GetComponentIds(self) -> Tuple[int, int]: ...
    def GetContext(self) -> 'vtkOpenGLRenderWindow': ...
    def GetEnhanceContrast(self) -> int: ...
    def GetEnhanceContrastMaxValue(self) -> int: ...
    def GetEnhanceContrastMinValue(self) -> int: ...
    def GetEnhancedLIC(self) -> int: ...
    def GetEnhancedLICMaxValue(self) -> int: ...
    def GetEnhancedLICMinValue(self) -> int: ...
    def GetHighContrastEnhancementFactor(self) -> float: ...
    def GetHighContrastEnhancementFactorMaxValue(self) -> float: ...
    def GetHighContrastEnhancementFactorMinValue(self) -> float: ...
    def GetLowContrastEnhancementFactor(self) -> float: ...
    def GetLowContrastEnhancementFactorMaxValue(self) -> float: ...
    def GetLowContrastEnhancementFactorMinValue(self) -> float: ...
    def GetMaskThreshold(self) -> float: ...
    def GetMaskThresholdMaxValue(self) -> float: ...
    def GetMaskThresholdMinValue(self) -> float: ...
    def GetMaxNoiseValue(self) -> float: ...
    def GetMaxNoiseValueMaxValue(self) -> float: ...
    def GetMaxNoiseValueMinValue(self) -> float: ...
    def GetNormalizeVectors(self) -> int: ...
    def GetNumberOfGenerationsFromBase(self, type:str) -> int: ...
    @staticmethod
    def GetNumberOfGenerationsFromBaseType(type:str) -> int: ...
    def GetNumberOfSteps(self) -> int: ...
    def GetNumberOfStepsMaxValue(self) -> int: ...
    def GetNumberOfStepsMinValue(self) -> int: ...
    def GetStepSize(self) -> float: ...
    def GetStepSizeMaxValue(self) -> float: ...
    def GetStepSizeMinValue(self) -> float: ...
    def GetTransformVectors(self) -> int: ...
    def IsA(self, type:str) -> int: ...
    @staticmethod
    def IsSupported(renWin:'vtkRenderWindow') -> bool: ...
    @staticmethod
    def IsTypeOf(type:str) -> int: ...
    def NewInstance(self) -> 'vtkLineIntegralConvolution2D': ...
    @staticmethod
    def SafeDownCast(o:'vtkObjectBase') -> 'vtkLineIntegralConvolution2D': ...
    def SetAntiAlias(self, _arg:int) -> None: ...
    @overload
    def SetComponentIds(self, c0:int, c1:int) -> None: ...
    @overload
    def SetComponentIds(self, c:MutableSequence[int]) -> None: ...
    def SetContext(self, context:'vtkOpenGLRenderWindow') -> None: ...
    def SetEnhanceContrast(self, _arg:int) -> None: ...
    def SetEnhancedLIC(self, _arg:int) -> None: ...
    def SetHighContrastEnhancementFactor(self, _arg:float) -> None: ...
    def SetLowContrastEnhancementFactor(self, _arg:float) -> None: ...
    def SetMaskThreshold(self, _arg:float) -> None: ...
    def SetMaxNoiseValue(self, _arg:float) -> None: ...
    @staticmethod
    def SetNoiseTexParameters(noise:'vtkTextureObject') -> None: ...
    def SetNormalizeVectors(self, val:int) -> None: ...
    def SetNumberOfSteps(self, _arg:int) -> None: ...
    def SetStepSize(self, _arg:float) -> None: ...
    def SetTransformVectors(self, val:int) -> None: ...
    @staticmethod
    def SetVectorTexParameters(vectors:'vtkTextureObject') -> None: ...
    def WriteTimerLog(self, __a:str) -> None: ...

class vtkPainterCommunicator(object):
    is_null:'getset_descriptor'
    mpi_finalized:'getset_descriptor'
    mpi_initialized:'getset_descriptor'
    rank:'getset_descriptor'
    size:'getset_descriptor'
    world_rank:'getset_descriptor'
    world_size:'getset_descriptor'
    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(self, other:'vtkPainterCommunicator') -> None: ...
    def GetIsNull(self) -> bool: ...
    def GetMPIFinalized(self) -> bool: ...
    def GetMPIInitialized(self) -> bool: ...
    def GetRank(self) -> int: ...
    def GetSize(self) -> int: ...
    def GetWorldRank(self) -> int: ...
    def GetWorldSize(self) -> int: ...

class vtkStructuredGridLIC2D(vtkmodules.vtkCommonExecutionModel.vtkStructuredGridAlgorithm):
    context:'getset_descriptor'
    fbo_success:'getset_descriptor'
    lic_success:'getset_descriptor'
    magnification:'getset_descriptor'
    step_size:'getset_descriptor'
    steps:'getset_descriptor'
    def __init__(self, **properties:Any) -> None: ...
    def GetContext(self) -> 'vtkRenderWindow': ...
    def GetFBOSuccess(self) -> int: ...
    def GetLICSuccess(self) -> int: ...
    def GetMagnification(self) -> int: ...
    def GetMagnificationMaxValue(self) -> int: ...
    def GetMagnificationMinValue(self) -> int: ...
    def GetNumberOfGenerationsFromBase(self, type:str) -> int: ...
    @staticmethod
    def GetNumberOfGenerationsFromBaseType(type:str) -> int: ...
    def GetStepSize(self) -> float: ...
    def GetSteps(self) -> int: ...
    def IsA(self, type:str) -> int: ...
    @staticmethod
    def IsTypeOf(type:str) -> int: ...
    def NewInstance(self) -> 'vtkStructuredGridLIC2D': ...
    @staticmethod
    def SafeDownCast(o:'vtkObjectBase') -> 'vtkStructuredGridLIC2D': ...
    def SetContext(self, context:'vtkRenderWindow') -> int: ...
    def SetMagnification(self, _arg:int) -> None: ...
    def SetStepSize(self, _arg:float) -> None: ...
    def SetSteps(self, _arg:int) -> None: ...

class vtkSurfaceLICComposite(vtkmodules.vtkCommonCore.vtkObject):
    COMPOSITE_AUTO:int
    COMPOSITE_BALANCED:int
    COMPOSITE_INPLACE:int
    COMPOSITE_INPLACE_DISJOINT:int
    context:'getset_descriptor'
    data_set_extent:'getset_descriptor'
    number_of_composite_extents:'getset_descriptor'
    strategy:'getset_descriptor'
    window_extent:'getset_descriptor'
    def __init__(self, **properties:Any) -> None: ...
    def BuildProgram(self, __a:MutableSequence[float]) -> int: ...
    def GetCompositeExtent(self, i:int=0) -> 'vtkPixelExtent': ...
    def GetContext(self) -> 'vtkOpenGLRenderWindow': ...
    def GetDataSetExtent(self) -> 'vtkPixelExtent': ...
    def GetDisjointGuardExtent(self, i:int=0) -> 'vtkPixelExtent': ...
    def GetGuardExtent(self, i:int=0) -> 'vtkPixelExtent': ...
    def GetNumberOfCompositeExtents(self) -> int: ...
    def GetNumberOfGenerationsFromBase(self, type:str) -> int: ...
    @staticmethod
    def GetNumberOfGenerationsFromBaseType(type:str) -> int: ...
    def GetStrategy(self) -> int: ...
    def GetWindowExtent(self) -> 'vtkPixelExtent': ...
    def InitializeCompositeExtents(self, vectors:MutableSequence[float]) -> int: ...
    def IsA(self, type:str) -> int: ...
    @staticmethod
    def IsTypeOf(type:str) -> int: ...
    def NewInstance(self) -> 'vtkSurfaceLICComposite': ...
    def RestoreDefaultCommunicator(self) -> None: ...
    @staticmethod
    def SafeDownCast(o:'vtkObjectBase') -> 'vtkSurfaceLICComposite': ...
    def SetContext(self, __a:'vtkOpenGLRenderWindow') -> None: ...
    def SetStrategy(self, val:int) -> None: ...

class vtkSurfaceLICInterface(vtkmodules.vtkCommonCore.vtkObject):
    COLOR_MODE_BLEND:int
    COLOR_MODE_MAP:int
    COMPOSITE_AUTO:int
    COMPOSITE_BALANCED:int
    COMPOSITE_INPLACE:int
    COMPOSITE_INPLACE_DISJOINT:int
    ENHANCE_CONTRAST_BOTH:int
    ENHANCE_CONTRAST_COLOR:int
    ENHANCE_CONTRAST_LIC:int
    ENHANCE_CONTRAST_OFF:int
    NOISE_TYPE_GAUSSIAN:int
    NOISE_TYPE_PERLIN:int
    NOISE_TYPE_UNIFORM:int
    anti_alias:'getset_descriptor'
    color_mode:'getset_descriptor'
    composite_strategy:'getset_descriptor'
    enable:'getset_descriptor'
    enhance_contrast:'getset_descriptor'
    enhanced_lic:'getset_descriptor'
    generate_noise_texture:'getset_descriptor'
    has_vectors:'getset_descriptor'
    high_color_contrast_enhancement_factor:'getset_descriptor'
    high_lic_contrast_enhancement_factor:'getset_descriptor'
    impulse_noise_background_value:'getset_descriptor'
    impulse_noise_probability:'getset_descriptor'
    lic_intensity:'getset_descriptor'
    low_color_contrast_enhancement_factor:'getset_descriptor'
    low_lic_contrast_enhancement_factor:'getset_descriptor'
    map_mode_bias:'getset_descriptor'
    mask_color:'getset_descriptor'
    mask_intensity:'getset_descriptor'
    mask_on_surface:'getset_descriptor'
    mask_threshold:'getset_descriptor'
    max_noise_value:'getset_descriptor'
    min_noise_value:'getset_descriptor'
    noise_data_set:'getset_descriptor'
    noise_generator_seed:'getset_descriptor'
    noise_grain_size:'getset_descriptor'
    noise_texture_size:'getset_descriptor'
    noise_type:'getset_descriptor'
    normalize_vectors:'getset_descriptor'
    number_of_noise_levels:'getset_descriptor'
    number_of_steps:'getset_descriptor'
    step_size:'getset_descriptor'
    def __init__(self, **properties:Any) -> None: ...
    def AntiAliasOff(self) -> None: ...
    def AntiAliasOn(self) -> None: ...
    def ApplyLIC(self) -> None: ...
    def CanRenderSurfaceLIC(self, actor:'vtkActor') -> bool: ...
    def CombineColorsAndLIC(self) -> None: ...
    def CompletedGeometry(self) -> None: ...
    def CopyToScreen(self) -> None: ...
    def CreateCommunicator(self, __a:'vtkRenderer', __b:'vtkActor', data:'vtkDataObject') -> None: ...
    def EnableOff(self) -> None: ...
    def EnableOn(self) -> None: ...
    def EnhancedLICOff(self) -> None: ...
    def EnhancedLICOn(self) -> None: ...
    def GatherVectors(self) -> None: ...
    def GetAntiAlias(self) -> int: ...
    def GetColorMode(self) -> int: ...
    def GetCompositeStrategy(self) -> int: ...
    def GetEnable(self) -> int: ...
    def GetEnhanceContrast(self) -> int: ...
    def GetEnhancedLIC(self) -> int: ...
    def GetGenerateNoiseTexture(self) -> int: ...
    def GetHasVectors(self) -> bool: ...
    def GetHighColorContrastEnhancementFactor(self) -> float: ...
    def GetHighLICContrastEnhancementFactor(self) -> float: ...
    def GetImpulseNoiseBackgroundValue(self) -> float: ...
    def GetImpulseNoiseProbability(self) -> float: ...
    def GetLICIntensity(self) -> float: ...
    def GetLowColorContrastEnhancementFactor(self) -> float: ...
    def GetLowLICContrastEnhancementFactor(self) -> float: ...
    def GetMapModeBias(self) -> float: ...
    def GetMaskColor(self) -> Tuple[float, float, float]: ...
    def GetMaskIntensity(self) -> float: ...
    def GetMaskOnSurface(self) -> int: ...
    def GetMaskThreshold(self) -> float: ...
    def GetMaxNoiseValue(self) -> float: ...
    def GetMinNoiseValue(self) -> float: ...
    def GetNoiseDataSet(self) -> 'vtkImageData': ...
    def GetNoiseGeneratorSeed(self) -> int: ...
    def GetNoiseGrainSize(self) -> int: ...
    def GetNoiseTextureSize(self) -> int: ...
    def GetNoiseType(self) -> int: ...
    def GetNormalizeVectors(self) -> int: ...
    def GetNumberOfGenerationsFromBase(self, type:str) -> int: ...
    @staticmethod
    def GetNumberOfGenerationsFromBaseType(type:str) -> int: ...
    def GetNumberOfNoiseLevels(self) -> int: ...
    def GetNumberOfSteps(self) -> int: ...
    def GetStepSize(self) -> float: ...
    def InitializeResources(self) -> None: ...
    def IsA(self, type:str) -> int: ...
    @staticmethod
    def IsSupported(context:'vtkRenderWindow') -> bool: ...
    @staticmethod
    def IsTypeOf(type:str) -> int: ...
    def MaskOnSurfaceOff(self) -> None: ...
    def MaskOnSurfaceOn(self) -> None: ...
    def NewInstance(self) -> 'vtkSurfaceLICInterface': ...
    def NormalizeVectorsOff(self) -> None: ...
    def NormalizeVectorsOn(self) -> None: ...
    def PrepareForGeometry(self) -> None: ...
    def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ...
    @staticmethod
    def SafeDownCast(o:'vtkObjectBase') -> 'vtkSurfaceLICInterface': ...
    def SetAntiAlias(self, val:int) -> None: ...
    def SetColorMode(self, val:int) -> None: ...
    def SetCompositeStrategy(self, val:int) -> None: ...
    def SetEnable(self, _arg:int) -> None: ...
    def SetEnhanceContrast(self, val:int) -> None: ...
    def SetEnhancedLIC(self, val:int) -> None: ...
    def SetGenerateNoiseTexture(self, shouldGenerate:int) -> None: ...
    def SetHasVectors(self, val:bool) -> None: ...
    def SetHighColorContrastEnhancementFactor(self, val:float) -> None: ...
    def SetHighLICContrastEnhancementFactor(self, val:float) -> None: ...
    def SetImpulseNoiseBackgroundValue(self, val:float) -> None: ...
    def SetImpulseNoiseProbability(self, val:float) -> None: ...
    def SetLICIntensity(self, val:float) -> None: ...
    def SetLowColorContrastEnhancementFactor(self, val:float) -> None: ...
    def SetLowLICContrastEnhancementFactor(self, val:float) -> None: ...
    def SetMapModeBias(self, val:float) -> None: ...
    @overload
    def SetMaskColor(self, val:MutableSequence[float]) -> None: ...
    @overload
    def SetMaskColor(self, r:float, g:float, b:float) -> None: ...
    def SetMaskIntensity(self, val:float) -> None: ...
    def SetMaskOnSurface(self, val:int) -> None: ...
    def SetMaskThreshold(self, val:float) -> None: ...
    def SetMaxNoiseValue(self, val:float) -> None: ...
    def SetMinNoiseValue(self, val:float) -> None: ...
    def SetNoiseDataSet(self, data:'vtkImageData') -> None: ...
    def SetNoiseGeneratorSeed(self, val:int) -> None: ...
    def SetNoiseGrainSize(self, val:int) -> None: ...
    def SetNoiseTextureSize(self, length:int) -> None: ...
    def SetNoiseType(self, type:int) -> None: ...
    def SetNormalizeVectors(self, val:int) -> None: ...
    def SetNumberOfNoiseLevels(self, val:int) -> None: ...
    def SetNumberOfSteps(self, val:int) -> None: ...
    def SetStepSize(self, val:float) -> None: ...
    def ShallowCopy(self, m:'vtkSurfaceLICInterface') -> None: ...
    def UpdateCommunicator(self, renderer:'vtkRenderer', actor:'vtkActor', data:'vtkDataObject') -> None: ...
    def ValidateContext(self, renderer:'vtkRenderer') -> None: ...
    def WriteTimerLog(self, __a:str) -> None: ...

class vtkSurfaceLICMapper(vtkmodules.vtkRenderingOpenGL2.vtkOpenGLPolyDataMapper):
    lic_interface:'getset_descriptor'
    def __init__(self, **properties:Any) -> None: ...
    def GetLICInterface(self) -> 'vtkSurfaceLICInterface': ...
    def GetNumberOfGenerationsFromBase(self, type:str) -> int: ...
    @staticmethod
    def GetNumberOfGenerationsFromBaseType(type:str) -> int: ...
    def IsA(self, type:str) -> int: ...
    @staticmethod
    def IsTypeOf(type:str) -> int: ...
    def NewInstance(self) -> 'vtkSurfaceLICMapper': ...
    def ReleaseGraphicsResources(self, win:'vtkWindow') -> None: ...
    def RenderPiece(self, ren:'vtkRenderer', act:'vtkActor') -> None: ...
    @staticmethod
    def SafeDownCast(o:'vtkObjectBase') -> 'vtkSurfaceLICMapper': ...
    def ShallowCopy(self, __a:'vtkAbstractMapper') -> None: ...

class vtkTextureIO(object):
    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(self, __a:'vtkTextureIO') -> None: ...
    @overload
    @staticmethod
    def Write(filename:str, texture:'vtkTextureObject', subset:Sequence[int] =..., origin:Sequence[float]=...) -> None: ...
    @overload
    @staticmethod
    def Write(filename:str, texture:'vtkTextureObject', subset:'vtkPixelExtent', origin:Sequence[float]=...) -> None: ...

