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

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