# 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 .vtkCell import vtkCell

class vtkPolygon(vtkCell):
    """
    vtkPolygon - a cell that represents an n-sided polygon
    
    Superclass: vtkCell
    
    vtkPolygon is a concrete implementation of vtkCell to represent a 2D
    n-sided polygon. The polygons cannot have any internal holes, and
    cannot self-intersect. Define the polygon with n-points ordered in
    the counter- clockwise direction; do not repeat the last point.
    """
    def BoundedTriangulate(self, outTris, tol): # real signature unknown; restored from __doc__
        """
        BoundedTriangulate(self, outTris:vtkIdList, tol:float) -> int
        C++: int BoundedTriangulate(vtkIdList *outTris, double tol)
        
        Triangulate polygon and enforce that the ratio of the smallest
        triangle area to the polygon area is greater than a user-defined
        tolerance. The user must provide the vtkIdList outTris. On
        output, the outTris list contains the ids of the points defining
        the triangulation. The ids are ordered into groups of three: each
        three-group defines one triangle.
        """
        return 0

    def CellBoundary(self, subId, pcoords, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        CellBoundary(self, subId:int, pcoords:(float, float, float),
            pts:vtkIdList) -> int
        C++: int CellBoundary(int subId, const double pcoords[3],
            vtkIdList *pts) override;
        
        Given parametric coordinates of a point, return the closest cell
        boundary, and whether the point is inside or outside of the cell.
        The cell boundary is defined by a list of points (pts) that
        specify a face (3D cell), edge (2D cell), or vertex (1D cell). If
        the return value of the method is != 0, then the point is inside
        the cell.
        """
        pass

    def Clip(self, value, cellScalars, locator, tris, inPd, outPd, inCd, cellId, outCd, insideOut): # real signature unknown; restored from __doc__
        """
        Clip(self, value:float, cellScalars:vtkDataArray,
            locator:vtkIncrementalPointLocator, tris:vtkCellArray,
            inPd:vtkPointData, outPd:vtkPointData, inCd:vtkCellData,
            cellId:int, outCd:vtkCellData, insideOut:int) -> None
        C++: void Clip(double value, vtkDataArray *cellScalars,
            vtkIncrementalPointLocator *locator, vtkCellArray *tris,
            vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd,
            vtkIdType cellId, vtkCellData *outCd, int insideOut) override;
        
        Cut (or clip) the cell based on the input cellScalars and the
        specified value. The output of the clip operation will be one or
        more cells of the same topological dimension as the original
        cell. The flag insideOut controls what part of the cell is
        considered inside - normally cell points whose scalar value is
        greater than "value" are considered inside. If insideOut is on,
        this is reversed. Also, if the output cell data is non-nullptr,
        the cell data from the clipped cell is passed to the generated
        contouring primitives. (Note: the CopyAllocate() method must be
        invoked on both the output cell and point data. The cellId refers
        to the cell from which the cell data is copied.)
        """
        pass

    def ComputeArea(self): # real signature unknown; restored from __doc__
        """
        ComputeArea(self) -> float
        C++: double ComputeArea()
        ComputeArea(p:vtkPoints, numPts:int, pts:(int, ...),
            normal:[float, float, float]) -> float
        C++: static double ComputeArea(vtkPoints *p, vtkIdType numPts,
            const vtkIdType *pts, double normal[3])
        
        Compute the area of a polygon. This is a convenience function
        which simply calls static double ComputeArea(vtkPoints *p,
        vtkIdType numPts, vtkIdType *pts, double normal[3]); with the
        appropriate parameters from the instantiated vtkPolygon.
        """
        return 0.0

    def ComputeCentroid(self, p, numPts, pts, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        ComputeCentroid(p:vtkPoints, numPts:int, pts:(int, ...),
            centroid:[float, float, float]) -> bool
        C++: static bool ComputeCentroid(vtkPoints *p, int numPts,
            const vtkIdType *pts, double centroid[3])
        ComputeCentroid(ids:vtkIdTypeArray, pts:vtkPoints,
            centroid:[float, float, float]) -> bool
        C++: static bool ComputeCentroid(vtkIdTypeArray *ids,
            vtkPoints *pts, double centroid[3])
        
        Compute the centroid of a set of points. Returns false if the
        computation is invalid (this occurs when numPts=0 or when ids is
        empty).
        """
        pass

    def ComputeNormal(self, p, numPts, pts, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        ComputeNormal(p:vtkPoints, numPts:int, pts:(int, ...), n:[float,
            float, float]) -> None
        C++: static void ComputeNormal(vtkPoints *p, int numPts,
            const vtkIdType *pts, double n[3])
        ComputeNormal(p:vtkPoints, n:[float, float, float]) -> None
        C++: static void ComputeNormal(vtkPoints *p, double n[3])
        ComputeNormal(ids:vtkIdTypeArray, pts:vtkPoints, n:[float, float,
            float]) -> None
        C++: static void ComputeNormal(vtkIdTypeArray *ids,
            vtkPoints *pts, double n[3])
        ComputeNormal(numPts:int, pts:[float, ...], n:[float, float,
            float]) -> None
        C++: static void ComputeNormal(int numPts, double *pts,
            double n[3])
        
        Computes the unit normal to the polygon. If pts=nullptr, point
        indexing is assumed to be {0, 1, ..., numPts-1}.
        """
        pass

    def Contour(self, value, cellScalars, locator, verts, lines, polys, inPd, outPd, inCd, cellId, outCd): # real signature unknown; restored from __doc__
        """
        Contour(self, value:float, cellScalars:vtkDataArray,
            locator:vtkIncrementalPointLocator, verts:vtkCellArray,
            lines:vtkCellArray, polys:vtkCellArray, inPd:vtkPointData,
            outPd:vtkPointData, inCd:vtkCellData, cellId:int,
            outCd:vtkCellData) -> None
        C++: void Contour(double value, vtkDataArray *cellScalars,
            vtkIncrementalPointLocator *locator, vtkCellArray *verts,
            vtkCellArray *lines, vtkCellArray *polys, vtkPointData *inPd,
            vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId,
            vtkCellData *outCd) override;
        
        Generate contouring primitives. The scalar list cellScalars are
        scalar values at each cell point. The point locator is
        essentially a points list that merges points as they are inserted
        (i.e., prevents duplicates). Contouring primitives can be
        vertices, lines, or polygons. It is possible to interpolate point
        data along the edge by providing input and output point data - if
        outPd is nullptr, then no interpolation is performed. Also, if
        the output cell data is non-nullptr, the cell data from the
        contoured cell is passed to the generated contouring primitives.
        (Note: the CopyAllocate() method must be invoked on both the
        output cell and point data. The cellId refers to the cell from
        which the cell data is copied.)
        """
        pass

    def Derivatives(self, subId, pcoords, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        Derivatives(self, subId:int, pcoords:(float, float, float),
            values:(float, ...), dim:int, derivs:[float, ...]) -> None
        C++: void Derivatives(int subId, const double pcoords[3],
            const double *values, int dim, double *derivs) override;
        
        Compute derivatives given cell subId and parametric coordinates.
        The values array is a series of data value(s) at the cell points.
        There is a one-to-one correspondence between cell point and data
        value(s). Dim is the number of data values per cell point. Derivs
        are derivatives in the x-y-z coordinate directions for each data
        value. Thus, if computing derivatives for a scalar function in a
        hexahedron, dim=1, 8 values are supplied, and 3 deriv values are
        returned (i.e., derivatives in x-y-z directions). On the other
        hand, if computing derivatives of velocity (vx,vy,vz) dim=3, 24
        values are supplied ((vx,vy,vz)1, (vx,vy,vz)2, ....()8), and 9
        deriv values are returned ((d(vx)/dx),(d(vx)/dy),(d(vx)/dz),
        (d(vy)/dx),(d(vy)/dy), (d(vy)/dz),
        (d(vz)/dx),(d(vz)/dy),(d(vz)/dz)).
        """
        pass

    def DistanceToPolygon(self, x, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        DistanceToPolygon(x:[float, float, float], numPts:int, pts:[float,
             ...], bounds:[float, float, float, float, float, float],
            closest:[float, float, float]) -> float
        C++: static double DistanceToPolygon(double x[3], int numPts,
            double *pts, double bounds[6], double closest[3])
        
        Compute the distance of a point to a polygon. The closest point
        on the polygon is also returned. The bounds should be provided to
        accelerate the computation.
        """
        pass

    def EarCutTriangulation(self, measure, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        EarCutTriangulation(self, measure:int=...) -> int
        C++: int EarCutTriangulation(int measure=PERIMETER2_TO_AREA_RATIO)
        EarCutTriangulation(self, outTris:vtkIdList, measure:int=...)
            -> int
        C++: int EarCutTriangulation(vtkIdList *outTris,
            int measure=PERIMETER2_TO_AREA_RATIO)
        
        A fast triangulation method. Uses recursive divide and conquer
        based on plane splitting to reduce loop into triangles. The cell
        (e.g., triangle) is presumed properly initialized (i.e., Points
        and PointIds). Ears can be removed using different measures (the
        measures indicate convexity plus characterize the local geometry
        around each vertex).
        """
        pass

    def EvaluateLocation(self, subId, pcoords, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        EvaluateLocation(self, subId:int, pcoords:(float, float, float),
            x:[float, float, float], weights:[float, ...]) -> None
        C++: void EvaluateLocation(int &subId, const double pcoords[3],
            double x[3], double *weights) override;
        
        Determine global coordinate (x[3]) from subId and parametric
        coordinates. Also returns interpolation weights. (The number of
        weights is equal to the number of points in the cell.)
        """
        pass

    def EvaluatePosition(self, x, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        EvaluatePosition(self, x:(float, float, float),
            closestPoint:[float, float, float], subId:int, pcoords:[float,
             float, float], dist2:float, weights:[float, ...]) -> int
        C++: int EvaluatePosition(const double x[3],
            double closestPoint[3], int &subId, double pcoords[3],
            double &dist2, double weights[]) override;
        
        Given a point x[3] return inside(=1), outside(=0) cell, or (-1)
        computational problem encountered; evaluate parametric
        coordinates, sub-cell id (!=0 only if cell is composite),
        distance squared of point x[3] to cell (in particular, the
        sub-cell indicated), closest point on cell to x[3] (unless
        closestPoint is null, in which case, the closest point and dist2
        are not found), and interpolation weights in cell. (The number of
        weights is equal to the number of points defining the cell).
        Note: on rare occasions a -1 is returned from the method. This
        means that numerical error has occurred and all data returned
        from this method should be ignored. Also, inside/outside is
        determine parametrically. That is, a point is inside if it
        satisfies parametric limits. This can cause problems for cells of
        topological dimension 2 or less, since a point in 3D can project
        onto the cell within parametric limits but be "far" from the
        cell.  Thus the value dist2 may be checked to determine true
        in/out.
        """
        pass

    def GetCellDimension(self): # real signature unknown; restored from __doc__
        """
        GetCellDimension(self) -> int
        C++: int GetCellDimension() override;
        
        Return the topological dimensional of the cell (0,1,2, or 3).
        """
        return 0

    def GetCellType(self): # real signature unknown; restored from __doc__
        """
        GetCellType(self) -> int
        C++: int GetCellType() override;
        
        See the vtkCell API for descriptions of these methods.
        """
        return 0

    def GetEdge(self, edgeId): # real signature unknown; restored from __doc__
        """
        GetEdge(self, edgeId:int) -> vtkCell
        C++: vtkCell *GetEdge(int edgeId) override;
        
        Return the edge cell from the edgeId of the cell.
        """
        return vtkCell

    def GetFace(self, __a): # real signature unknown; restored from __doc__
        """
        GetFace(self, __a:int) -> vtkCell
        C++: vtkCell *GetFace(int) override;
        
        Return the face cell from the faceId of the cell. The returned
        vtkCell is an object owned by this instance, hence the return
        value must not be deleted by the caller.
        
        @warning Repeat calls to this function for different face ids
            will change
        the data stored in the internal member object whose pointer is
        returned by this function.
        
        @warning THIS METHOD IS NOT THREAD SAFE.
        """
        return vtkCell

    def GetNumberOfEdges(self): # real signature unknown; restored from __doc__
        """
        GetNumberOfEdges(self) -> int
        C++: int GetNumberOfEdges() override;
        
        Return the number of edges in the cell.
        """
        return 0

    def GetNumberOfFaces(self): # real signature unknown; restored from __doc__
        """
        GetNumberOfFaces(self) -> int
        C++: int GetNumberOfFaces() override;
        
        Return the number of faces in the cell.
        """
        return 0

    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 GetTolerance(self): # real signature unknown; restored from __doc__
        """
        GetTolerance(self) -> float
        C++: virtual double GetTolerance()
        
        Specify an internal tolerance for operations requiring polygon
        triangulation.  (For example, clipping and contouring operations
        proceed by first triangulating the polygon, and then
        clipping/contouring the resulting triangles.)  This is a
        normalized tolerance value multiplied by the diagonal length of
        the polygon bounding box. Is it used to determine whether
        potential triangulation edges intersect one another.
        """
        return 0.0

    def GetToleranceMaxValue(self): # real signature unknown; restored from __doc__
        """
        GetToleranceMaxValue(self) -> float
        C++: virtual double GetToleranceMaxValue()
        
        Specify an internal tolerance for operations requiring polygon
        triangulation.  (For example, clipping and contouring operations
        proceed by first triangulating the polygon, and then
        clipping/contouring the resulting triangles.)  This is a
        normalized tolerance value multiplied by the diagonal length of
        the polygon bounding box. Is it used to determine whether
        potential triangulation edges intersect one another.
        """
        return 0.0

    def GetToleranceMinValue(self): # real signature unknown; restored from __doc__
        """
        GetToleranceMinValue(self) -> float
        C++: virtual double GetToleranceMinValue()
        
        Specify an internal tolerance for operations requiring polygon
        triangulation.  (For example, clipping and contouring operations
        proceed by first triangulating the polygon, and then
        clipping/contouring the resulting triangles.)  This is a
        normalized tolerance value multiplied by the diagonal length of
        the polygon bounding box. Is it used to determine whether
        potential triangulation edges intersect one another.
        """
        return 0.0

    def GetUseMVCInterpolation(self): # real signature unknown; restored from __doc__
        """
        GetUseMVCInterpolation(self) -> bool
        C++: virtual bool GetUseMVCInterpolation()
        
        Set/Get the flag indicating whether to use Mean Value Coordinate
        for the interpolation. If true, InterpolateFunctions() uses the
        Mean Value Coordinate to compute weights. Otherwise, the
        conventional 1/r^2 method is used. The UseMVCInterpolation
        parameter is set to false by default.
        """
        return False

    def InterpolateFunctions(self, x, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        InterpolateFunctions(self, x:(float, float, float), sf:[float,
            ...]) -> None
        C++: void InterpolateFunctions(const double x[3], double *sf)
            override;
        
        Compute the interpolation functions/derivatives. (aka shape
        functions/derivatives) Two interpolation algorithms are
        available: 1/r^2 and Mean Value Coordinate. The former is used by
        default. To use the second algorithm, set UseMVCInterpolation to
        be true. The function assumes the input point lies on the polygon
        plane without checking that.
        """
        pass

    def IntersectConvex2DCells(self, cell1, cell2, tol, p0, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        IntersectConvex2DCells(cell1:vtkCell, cell2:vtkCell, tol:float,
            p0:[float, float, float], p1:[float, float, float]) -> int
        C++: static int IntersectConvex2DCells(vtkCell *cell1,
            vtkCell *cell2, double tol, double p0[3], double p1[3])
        
        Intersect two convex 2D polygons to produce a line segment as
        output. The return status of the methods indicated no
        intersection (returns 0); a single point of intersection (returns
        1); or a line segment (i.e., two points of intersection, returns
        2). The points of intersection are returned in the arrays p0 and
        p1.  If less than two points of intersection are generated then
        p1 and/or p0 may be indeterminiate. Finally, if the two convex
        polygons are parallel, then "0" is returned (i.e., no
        intersection) even if the triangles lie on one another.
        """
        pass

    def IntersectPolygonWithPolygon(self, npts, pts, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        IntersectPolygonWithPolygon(npts:int, pts:[float, ...],
            bounds:[float, float, float, float, float, float], npts2:int,
            pts2:[float, ...], bounds2:[float, float, float], tol:float,
            x:[float, float, float]) -> int
        C++: static int IntersectPolygonWithPolygon(int npts, double *pts,
             double bounds[6], int npts2, double *pts2, double bounds2[3],
             double tol, double x[3])
        
        Method intersects two polygons. You must supply the number of
        points and point coordinates (npts, *pts) and the bounding box
        (bounds) of the two polygons. Also supply a tolerance squared for
        controlling error. The method returns 1 if there is an
        intersection, and 0 if not. A single point of intersection x[3]
        is also returned if there is an intersection.
        """
        pass

    def IntersectWithLine(self, p1, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        IntersectWithLine(self, p1:(float, float, float), p2:(float,
            float, float), tol:float, t:float, x:[float, float, float],
            pcoords:[float, float, float], subId:int) -> int
        C++: int IntersectWithLine(const double p1[3], const double p2[3],
             double tol, double &t, double x[3], double pcoords[3],
            int &subId) override;
        
        Intersect with a ray. Return parametric coordinates (both line
        and cell) and global intersection coordinates, given ray
        definition p1[3], p2[3] and tolerance tol. The method returns
        non-zero value if intersection occurs. A parametric distance t
        between 0 and 1 along the ray representing the intersection
        point, the point coordinates x[3] in data coordinates and also
        pcoords[3] in parametric coordinates. subId is the index within
        the cell if a composed cell like a triangle strip.
        """
        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 IsConvex(self): # real signature unknown; restored from __doc__
        """
        IsConvex(self) -> bool
        C++: bool IsConvex()
        IsConvex(p:vtkPoints, numPts:int, pts:(int, ...)) -> bool
        C++: static bool IsConvex(vtkPoints *p, int numPts,
            const vtkIdType *pts)
        IsConvex(ids:vtkIdTypeArray, p:vtkPoints) -> bool
        C++: static bool IsConvex(vtkIdTypeArray *ids, vtkPoints *p)
        IsConvex(p:vtkPoints) -> bool
        C++: static bool IsConvex(vtkPoints *p)
        
        Determine whether or not a polygon is convex. This is a
        convenience function that simply calls static bool IsConvex(int
        numPts, vtkIdType *pts, vtkPoints *p) with the appropriate
        parameters from the instantiated vtkPolygon.
        """
        return False

    def IsPrimaryCell(self): # real signature unknown; restored from __doc__
        """
        IsPrimaryCell(self) -> int
        C++: int IsPrimaryCell() override;
        
        Return whether this cell type has a fixed topology or whether the
        topology varies depending on the data (e.g., vtkConvexPointSet).
        This compares to composite cells that are typically composed of
        primary cells (e.g., a triangle strip composite cell is made up
        of triangle primary cells).
        """
        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) -> vtkPolygon
        C++: vtkPolygon *NewInstance()
        """
        return vtkPolygon

    def NonDegenerateTriangulate(self, outTris): # real signature unknown; restored from __doc__
        """
        NonDegenerateTriangulate(self, outTris:vtkIdList) -> int
        C++: int NonDegenerateTriangulate(vtkIdList *outTris)
        
        Same as Triangulate(vtkIdList *outTris) but with a first pass to
        split the polygon into non-degenerate polygons.
        """
        return 0

    def ParameterizePolygon(self, p0, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        ParameterizePolygon(self, p0:[float, float, float], p10:[float,
            float, float], l10:float, p20:[float, float, float],
            l20:float, n:[float, float, float]) -> int
        C++: int ParameterizePolygon(double p0[3], double p10[3],
            double &l10, double p20[3], double &l20, double n[3])
        
        Create a local s-t coordinate system for a polygon. The point p0
        is the origin of the local system, p10 is s-axis vector, and p20
        is the t-axis vector. (These are expressed in the modeling
        coordinate system and are vectors of dimension [3].) The values
        l20 and l20 are the lengths of the vectors p10 and p20, and n is
        the polygon normal.
        """
        pass

    def PointInPolygon(self, x, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        PointInPolygon(x:[float, float, float], numPts:int, pts:[float,
            ...], bounds:[float, float, float, float, float, float],
            n:[float, float, float]) -> int
        C++: static int PointInPolygon(double x[3], int numPts,
            double *pts, double bounds[6], double n[3])
        
        Determine whether a point is inside the specified polygon. The
        function computes the winding number to assess inclusion. It
        works for arbitrary polygon shapes (e.g., non-convex) oriented
        arbitrarily in 3D space. Returns 0 if the point is not in the
        polygon; 1 if it is.  Can also return -1 to indicate a degenerate
        polygon. Parameters passed into the method include the point in
        question x[3]; the polygon defined by (npts,pts); the bounds of
        the polygon bounds[6]; and the normal n[3] to the polygon. (The
        implementation was inspired by Dan Sunday's book Practical
        Geometry Algorithms.) This method is thread safe.
        """
        pass

    def SafeDownCast(self, o): # real signature unknown; restored from __doc__
        """
        SafeDownCast(o:vtkObjectBase) -> vtkPolygon
        C++: static vtkPolygon *SafeDownCast(vtkObjectBase *o)
        """
        return vtkPolygon

    def SetTolerance(self, _arg): # real signature unknown; restored from __doc__
        """
        SetTolerance(self, _arg:float) -> None
        C++: virtual void SetTolerance(double _arg)
        
        Specify an internal tolerance for operations requiring polygon
        triangulation.  (For example, clipping and contouring operations
        proceed by first triangulating the polygon, and then
        clipping/contouring the resulting triangles.)  This is a
        normalized tolerance value multiplied by the diagonal length of
        the polygon bounding box. Is it used to determine whether
        potential triangulation edges intersect one another.
        """
        pass

    def SetUseMVCInterpolation(self, _arg): # real signature unknown; restored from __doc__
        """
        SetUseMVCInterpolation(self, _arg:bool) -> None
        C++: virtual void SetUseMVCInterpolation(bool _arg)
        """
        pass

    def Triangulate(self, index, ptIds, pts): # real signature unknown; restored from __doc__
        """
        Triangulate(self, index:int, ptIds:vtkIdList, pts:vtkPoints)
            -> int
        C++: int Triangulate(int index, vtkIdList *ptIds, vtkPoints *pts)
            override;
        Triangulate(self, outTris:vtkIdList) -> int
        C++: int Triangulate(vtkIdList *outTris)
        
        Generate simplices of proper dimension. If cell is 3D,
        tetrahedron are generated; if 2D triangles; if 1D lines; if 0D
        points. The form of the output is a sequence of points, each n+1
        points (where n is topological cell dimension) defining a
        simplex. The index is a parameter that controls which
        triangulation to use (if more than one is possible). If numerical
        degeneracy encountered, 0 is returned, otherwise 1 is returned.
        This method does not insert new points: all the points that
        define the simplices are the points that define the cell.
        """
        return 0

    def UnbiasedEarCutTriangulation(self, seed, measure, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        UnbiasedEarCutTriangulation(self, seed:int, measure:int=...)
            -> int
        C++: int UnbiasedEarCutTriangulation(int seed,
            int measure=PERIMETER2_TO_AREA_RATIO)
        UnbiasedEarCutTriangulation(self, seed:int, outTris:vtkIdList,
            measure:int=...) -> int
        C++: int UnbiasedEarCutTriangulation(int seed, vtkIdList *outTris,
             int measure=PERIMETER2_TO_AREA_RATIO)
        
        A fast triangulation method. Uses recursive divide and conquer
        based on plane splitting to reduce loop into triangles. The cell
        (e.g., triangle) is presumed properly initialized (i.e., Points
        and PointIds). Unlike EarCutTriangulation(), vertices are visited
        sequentially without preference to angle.
        """
        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."""


    BEST_QUALITY = 2
    DOT_PRODUCT = 1
    EarCutMeasureTypes = None # (!) real value is "<class 'vtkmodules.vtkCommonDataModel.vtkPolygon.EarCutMeasureTypes'>"
    PERIMETER2_TO_AREA_RATIO = 0
    __dict__ = None # (!) real value is "mappingproxy({'__vtkname__': 'vtkPolygon', 'IsTypeOf': <method 'IsTypeOf' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'IsA': <method 'IsA' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'SafeDownCast': <method 'SafeDownCast' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'NewInstance': <method 'NewInstance' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'GetNumberOfGenerationsFromBaseType': <method 'GetNumberOfGenerationsFromBaseType' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'GetNumberOfGenerationsFromBase': <method 'GetNumberOfGenerationsFromBase' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'GetCellType': <method 'GetCellType' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'GetCellDimension': <method 'GetCellDimension' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'GetNumberOfEdges': <method 'GetNumberOfEdges' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'GetNumberOfFaces': <method 'GetNumberOfFaces' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'GetEdge': <method 'GetEdge' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'GetFace': <method 'GetFace' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'CellBoundary': <method 'CellBoundary' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'Contour': <method 'Contour' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'Clip': <method 'Clip' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'EvaluatePosition': <method 'EvaluatePosition' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'EvaluateLocation': <method 'EvaluateLocation' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'IntersectWithLine': <method 'IntersectWithLine' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'Triangulate': <method 'Triangulate' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'Derivatives': <method 'Derivatives' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'IsPrimaryCell': <method 'IsPrimaryCell' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'ComputeArea': <method 'ComputeArea' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'InterpolateFunctions': <method 'InterpolateFunctions' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'ComputeNormal': <method 'ComputeNormal' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'IsConvex': <method 'IsConvex' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'ComputeCentroid': <method 'ComputeCentroid' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'ParameterizePolygon': <method 'ParameterizePolygon' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'PointInPolygon': <method 'PointInPolygon' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'NonDegenerateTriangulate': <method 'NonDegenerateTriangulate' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'BoundedTriangulate': <method 'BoundedTriangulate' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'DistanceToPolygon': <method 'DistanceToPolygon' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'IntersectPolygonWithPolygon': <method 'IntersectPolygonWithPolygon' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'IntersectConvex2DCells': <method 'IntersectConvex2DCells' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'GetUseMVCInterpolation': <method 'GetUseMVCInterpolation' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'SetUseMVCInterpolation': <method 'SetUseMVCInterpolation' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'SetTolerance': <method 'SetTolerance' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'GetToleranceMinValue': <method 'GetToleranceMinValue' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'GetToleranceMaxValue': <method 'GetToleranceMaxValue' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'GetTolerance': <method 'GetTolerance' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'EarCutTriangulation': <method 'EarCutTriangulation' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'UnbiasedEarCutTriangulation': <method 'UnbiasedEarCutTriangulation' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, 'EarCutMeasureTypes': <class 'vtkmodules.vtkCommonDataModel.vtkPolygon.EarCutMeasureTypes'>, 'PERIMETER2_TO_AREA_RATIO': 0, 'DOT_PRODUCT': 1, 'BEST_QUALITY': 2, '__new__': <built-in method __new__ of type object at 0x00007FF81D644C30>, '__repr__': <slot wrapper '__repr__' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, '__str__': <slot wrapper '__str__' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, '__getattribute__': <slot wrapper '__getattribute__' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, '__setattr__': <slot wrapper '__setattr__' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, '__delattr__': <slot wrapper '__delattr__' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, '__dict__': <attribute '__dict__' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, '__this__': <attribute '__this__' of 'vtkmodules.vtkCommonDataModel.vtkPolygon' objects>, '__doc__': 'vtkPolygon - a cell that represents an n-sided polygon\\n\\nSuperclass: vtkCell\\n\\nvtkPolygon is a concrete implementation of vtkCell to represent a 2D\\nn-sided polygon. The polygons cannot have any internal holes, and\\ncannot self-intersect. Define the polygon with n-points ordered in\\nthe counter- clockwise direction; do not repeat the last point.\\n\\n'})"
    __vtkname__ = 'vtkPolygon'


