# encoding: utf-8
# module vtkmodules.vtkRenderingVolume
# from C:\Users\xukai\Downloads\发票2\venv\Lib\site-packages\vtkmodules\vtkRenderingVolume.cp311-win_amd64.pyd
# by generator 1.147
# no doc

# imports
import vtkmodules.vtkCommonCore as __vtkmodules_vtkCommonCore
import vtkmodules.vtkCommonExecutionModel as __vtkmodules_vtkCommonExecutionModel
import vtkmodules.vtkRenderingCore as __vtkmodules_vtkRenderingCore


from .vtkUnstructuredGridVolumeRayCastFunction import vtkUnstructuredGridVolumeRayCastFunction

class vtkUnstructuredGridBunykRayCastFunction(vtkUnstructuredGridVolumeRayCastFunction):
    """
    vtkUnstructuredGridBunykRayCastFunction - a superclass for ray
    casting functions
    
    Superclass: vtkUnstructuredGridVolumeRayCastFunction
    
    vtkUnstructuredGridBunykRayCastFunction is a concrete implementation
    of a ray cast function for unstructured grid data. This class was
    based on the paper "Simple, Fast, Robust Ray Casting of Irregular
    Grids" by Paul Bunyk, Arie Kaufmna, and Claudio Silva. This method is
    quite memory intensive (with extra explicit copies of the data) and
    therefore should not be used for very large data. This method assumes
    that the input data is composed entirely of tetras - use
    vtkDataSetTriangleFilter before setting the input on the mapper.
    
    The basic idea of this method is as follows:
    
    1) Enumerate the triangles. At each triangle have space for some
       information that will be used during rendering. This includes
       which tetra the triangles belong to, the plane equation and the
       Barycentric coefficients.
    
    2) Keep a reference to all four triangles for each tetra.
    
    3) At the beginning of each render, do the precomputation. This
       includes creating an array of transformed points (in view
       coordinates) and computing the view dependent info per triangle
       (plane equations and barycentric coords in view space)
    
    4) Find all front facing boundary triangles (a triangle is on the
       boundary if it belongs to only one tetra). For each triangle, find
    all pixels in the image that intersect the triangle, and add this to
       the sorted (by depth) intersection list at each pixel.
    
    5) For each ray cast, traverse the intersection list. At each
       intersection, accumulate opacity and color contribution per tetra
       along the ray until you reach an exiting triangle (on the
       boundary).
    
    @sa
    vtkUnstructuredGridVolumeRayCastMapper
    """
    def Finalize(self): # real signature unknown; restored from __doc__
        """
        Finalize(self) -> None
        C++: void Finalize() override;
        
        Called by the ray cast mapper at the end of rendering
        """
        pass

    def GetImageOrigin(self): # real signature unknown; restored from __doc__
        """
        GetImageOrigin(self) -> (int, int)
        C++: virtual int *GetImageOrigin()
        
        Access to an internal structure for the templated method.
        """
        pass

    def GetImageViewportSize(self): # real signature unknown; restored from __doc__
        """
        GetImageViewportSize(self) -> (int, int)
        C++: virtual int *GetImageViewportSize()
        
        Access to an internal structure for the templated method.
        """
        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 GetPoints(self): # real signature unknown; restored from __doc__
        """
        GetPoints(self) -> Pointer
        C++: double *GetPoints()
        
        Access to an internal structure for the templated method.
        """
        pass

    def GetViewToWorldMatrix(self): # real signature unknown; restored from __doc__
        """
        GetViewToWorldMatrix(self) -> vtkMatrix4x4
        C++: virtual vtkMatrix4x4 *GetViewToWorldMatrix()
        
        Access to an internal structure for the templated method.
        """
        pass

    def Initialize(self, ren, vol): # real signature unknown; restored from __doc__
        """
        Initialize(self, ren:vtkRenderer, vol:vtkVolume) -> None
        C++: void Initialize(vtkRenderer *ren, vtkVolume *vol) override;
        
        Called by the ray cast mapper at the start of rendering
        """
        pass

    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) -> vtkUnstructuredGridBunykRayCastFunction
        C++: vtkUnstructuredGridBunykRayCastFunction *NewInstance()
        """
        return vtkUnstructuredGridBunykRayCastFunction

    def NewIterator(self): # real signature unknown; restored from __doc__
        """
        NewIterator(self) -> vtkUnstructuredGridVolumeRayCastIterator
        C++: vtkUnstructuredGridVolumeRayCastIterator *NewIterator()
            override;
        
        Returns a new object that will iterate over all the intersections
        of a ray with the cells of the input.  The calling code is
        responsible for deleting the returned object.
        """
        return vtkUnstructuredGridVolumeRayCastIterator

    def SafeDownCast(self, o): # real signature unknown; restored from __doc__
        """
        SafeDownCast(o:vtkObjectBase)
            -> vtkUnstructuredGridBunykRayCastFunction
        C++: static vtkUnstructuredGridBunykRayCastFunction *SafeDownCast(
            vtkObjectBase *o)
        """
        return vtkUnstructuredGridBunykRayCastFunction

    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__\': \'vtkUnstructuredGridBunykRayCastFunction\', \'IsTypeOf\': <method \'IsTypeOf\' of \'vtkmodules.vtkRenderingVolume.vtkUnstructuredGridBunykRayCastFunction\' objects>, \'IsA\': <method \'IsA\' of \'vtkmodules.vtkRenderingVolume.vtkUnstructuredGridBunykRayCastFunction\' objects>, \'SafeDownCast\': <method \'SafeDownCast\' of \'vtkmodules.vtkRenderingVolume.vtkUnstructuredGridBunykRayCastFunction\' objects>, \'NewInstance\': <method \'NewInstance\' of \'vtkmodules.vtkRenderingVolume.vtkUnstructuredGridBunykRayCastFunction\' objects>, \'GetNumberOfGenerationsFromBaseType\': <method \'GetNumberOfGenerationsFromBaseType\' of \'vtkmodules.vtkRenderingVolume.vtkUnstructuredGridBunykRayCastFunction\' objects>, \'GetNumberOfGenerationsFromBase\': <method \'GetNumberOfGenerationsFromBase\' of \'vtkmodules.vtkRenderingVolume.vtkUnstructuredGridBunykRayCastFunction\' objects>, \'Initialize\': <method \'Initialize\' of \'vtkmodules.vtkRenderingVolume.vtkUnstructuredGridBunykRayCastFunction\' objects>, \'Finalize\': <method \'Finalize\' of \'vtkmodules.vtkRenderingVolume.vtkUnstructuredGridBunykRayCastFunction\' objects>, \'NewIterator\': <method \'NewIterator\' of \'vtkmodules.vtkRenderingVolume.vtkUnstructuredGridBunykRayCastFunction\' objects>, \'GetPoints\': <method \'GetPoints\' of \'vtkmodules.vtkRenderingVolume.vtkUnstructuredGridBunykRayCastFunction\' objects>, \'GetViewToWorldMatrix\': <method \'GetViewToWorldMatrix\' of \'vtkmodules.vtkRenderingVolume.vtkUnstructuredGridBunykRayCastFunction\' objects>, \'GetImageOrigin\': <method \'GetImageOrigin\' of \'vtkmodules.vtkRenderingVolume.vtkUnstructuredGridBunykRayCastFunction\' objects>, \'GetImageViewportSize\': <method \'GetImageViewportSize\' of \'vtkmodules.vtkRenderingVolume.vtkUnstructuredGridBunykRayCastFunction\' objects>, \'__new__\': <built-in method __new__ of type object at 0x00007FF8393B5F40>, \'__repr__\': <slot wrapper \'__repr__\' of \'vtkmodules.vtkRenderingVolume.vtkUnstructuredGridBunykRayCastFunction\' objects>, \'__str__\': <slot wrapper \'__str__\' of \'vtkmodules.vtkRenderingVolume.vtkUnstructuredGridBunykRayCastFunction\' objects>, \'__getattribute__\': <slot wrapper \'__getattribute__\' of \'vtkmodules.vtkRenderingVolume.vtkUnstructuredGridBunykRayCastFunction\' objects>, \'__setattr__\': <slot wrapper \'__setattr__\' of \'vtkmodules.vtkRenderingVolume.vtkUnstructuredGridBunykRayCastFunction\' objects>, \'__delattr__\': <slot wrapper \'__delattr__\' of \'vtkmodules.vtkRenderingVolume.vtkUnstructuredGridBunykRayCastFunction\' objects>, \'__dict__\': <attribute \'__dict__\' of \'vtkmodules.vtkRenderingVolume.vtkUnstructuredGridBunykRayCastFunction\' objects>, \'__this__\': <attribute \'__this__\' of \'vtkmodules.vtkRenderingVolume.vtkUnstructuredGridBunykRayCastFunction\' objects>, \'__doc__\': \'vtkUnstructuredGridBunykRayCastFunction - a superclass for ray\\ncasting functions\\n\\nSuperclass: vtkUnstructuredGridVolumeRayCastFunction\\n\\nvtkUnstructuredGridBunykRayCastFunction is a concrete implementation\\nof a ray cast function for unstructured grid data. This class was\\nbased on the paper "Simple, Fast, Robust Ray Casting of Irregular\\nGrids" by Paul Bunyk, Arie Kaufmna, and Claudio Silva. This method is\\nquite memory intensive (with extra explicit copies of the data) and\\ntherefore should not be used for very large data. This method assumes\\nthat the input data is composed entirely of tetras - use\\nvtkDataSetTriangleFilter before setting the input on the mapper.\\n\\nThe basic idea of this method is as follows:\\n\\n1) Enumerate the triangles. At each triangle have space for some\\n   information that will be used during rendering. This includes\\n   which tetra the triangles belong to, the plane equation and the\\n   Barycentric coefficients.\\n\\n2) Keep a reference to all four triangles for each tetra.\\n\\n3) At the beginning of each render, do the precomputation. This\\n   includes creating an array of transformed points (in view\\n   coordinates) and computing the view dependent info per triangle\\n   (plane equations and barycentric coords in view space)\\n\\n4) Find all front facing boundary triangles (a triangle is on the\\n   boundary if it belongs to only one tetra). For each triangle, find\\nall pixels in the image that intersect the triangle, and add this to\\n   the sorted (by depth) intersection list at each pixel.\\n\\n5) For each ray cast, traverse the intersection list. At each\\n   intersection, accumulate opacity and color contribution per tetra\\n   along the ray until you reach an exiting triangle (on the\\n   boundary).\\n\\n@sa\\nvtkUnstructuredGridVolumeRayCastMapper\\n\\n\'})'
    __vtkname__ = 'vtkUnstructuredGridBunykRayCastFunction'


