public new static vtkLabelHierarchyIterator SafeDownCast(vtkObjectBase o)
        {
            vtkLabelHierarchyIterator vtkLabelHierarchyIterator = null;
            uint   mteStatus   = 0u;
            uint   mteIndex    = 4294967295u;
            uint   rawRefCount = 0u;
            IntPtr intPtr      = vtkLabelHierarchyIterator.vtkLabelHierarchyIterator_SafeDownCast_18((o == null) ? default(HandleRef) : o.GetCppThis(), ref mteStatus, ref mteIndex, ref rawRefCount);

            if (IntPtr.Zero != intPtr)
            {
                bool flag;
                vtkLabelHierarchyIterator = (vtkLabelHierarchyIterator)Methods.CreateWrappedObject(mteStatus, mteIndex, rawRefCount, intPtr, true, out flag);
                if (flag)
                {
                    vtkLabelHierarchyIterator.Register(null);
                }
            }
            return(vtkLabelHierarchyIterator);
        }
        public vtkLabelHierarchyIterator NewIterator(int type, vtkRenderer ren, vtkCamera cam, IntPtr frustumPlanes, bool positionsAsNormals, IntPtr bucketSize)
        {
            vtkLabelHierarchyIterator vtkLabelHierarchyIterator = null;
            uint   mteStatus   = 0u;
            uint   mteIndex    = 4294967295u;
            uint   rawRefCount = 0u;
            IntPtr intPtr      = vtkLabelHierarchy.vtkLabelHierarchy_NewIterator_28(base.GetCppThis(), type, (ren == null) ? default(HandleRef) : ren.GetCppThis(), (cam == null) ? default(HandleRef) : cam.GetCppThis(), frustumPlanes, positionsAsNormals ? (byte)1 : (byte)0, bucketSize, ref mteStatus, ref mteIndex, ref rawRefCount);

            if (IntPtr.Zero != intPtr)
            {
                bool flag;
                vtkLabelHierarchyIterator = (vtkLabelHierarchyIterator)Methods.CreateWrappedObject(mteStatus, mteIndex, rawRefCount, intPtr, true, out flag);
                if (flag)
                {
                    vtkLabelHierarchyIterator.Register(null);
                }
            }
            return(vtkLabelHierarchyIterator);
        }