# SPDX-License-Identifier: ISC
# Generated from local Pivy stubgen output; lightly normalized for checker use.

from _typeshed import Incomplete
from pivy.gui._soqt import cast as cast
from typing import Any, Callable, ClassVar, Iterator, Sequence, overload
from types import BuiltinFunctionType as builtin_function_or_method
from pivy.coin import SbColor, SbVec2b, SbVec2d, SbVec2i32, SbVec3f, SbViewportRegion, SoBase, SoCamera, SoDirectionalLight, SoEngine, SoEngineOutput, SoFieldContainer, SoFieldList, SoGLRenderAction, SoInput, SoNode, SoOutput, SoPath, SoSceneManager, SoSelection, SoTypeList

class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    def __setattr__(cls, name: str, value: Any) -> None: ...

class charp:
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    def __init__(self) -> None: ...
    def assign(self, value: str) -> None: ...
    def value(self) -> str: ...
    def cast(self) -> Any: ...
    @staticmethod
    def frompointer(t: Any) -> charp: ...

class intp:
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    def __init__(self) -> None: ...
    def assign(self, value: int) -> None: ...
    def value(self) -> int: ...
    def cast(self) -> Any: ...
    @staticmethod
    def frompointer(t: Any) -> intp: ...

class longp:
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    def __init__(self) -> None: ...
    def assign(self, value: int) -> None: ...
    def value(self) -> int: ...
    def cast(self) -> Any: ...
    @staticmethod
    def frompointer(t: Any) -> longp: ...

class floatp:
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    def __init__(self) -> None: ...
    def assign(self, value: float) -> None: ...
    def value(self) -> float: ...
    def cast(self) -> Any: ...
    @staticmethod
    def frompointer(t: Any) -> floatp: ...

class doublep:
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    def __init__(self) -> None: ...
    def assign(self, value: float) -> None: ...
    def value(self) -> float: ...
    def cast(self) -> Any: ...
    @staticmethod
    def frompointer(t: Any) -> doublep: ...
FALSE: int
TRUE: int
HAVE_INTTYPES_H: int
HAVE_STDINT_H: int
HAVE_SYS_TYPES_H: int
HAVE_STDDEF_H: int
HAVE_INT8_T: int
HAVE_UINT8_T: int
HAVE_INT16_T: int
HAVE_UINT16_T: int
HAVE_INT32_T: int
HAVE_UINT32_T: int
HAVE_INT64_T: int
HAVE_UINT64_T: int
HAVE_INTPTR_T: int
HAVE_UINTPTR_T: int
M_E: float
M_LOG2E: float
M_LOG10E: float
M_LN2: float
M_LN10: float
M_PI: float
M_TWOPI: float
M_PI_2: float
M_PI_4: float
M_3PI_4: float
M_SQRTPI: float
M_1_PI: float
M_2_PI: float
M_2_SQRTPI: float
M_SQRT2: float
M_SQRT1_2: float
M_LN2LO: float
M_LN2HI: float
M_SQRT3: float
M_IVLN10: float
M_LOG2_E: float
M_INVLN2: float
COIN_MAJOR_VERSION: int
COIN_MINOR_VERSION: int
COIN_MICRO_VERSION: int
COIN_VERSION: str
HAVE_HASH_QUOTING: int
SUN_CC_4_0_SOTYPE_INIT_BUG: int

class SbDict:
    """Proxy of C++ SbDict class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    @overload
    def __init__(self, entries: int = ...) -> None: ...
    @overload
    def __init__(self, srcFrom: SbDict) -> None: ...
    @overload
    def applyToAll(self, rtn: Incomplete) -> None: ...
    @overload
    def applyToAll(self, rtn: Incomplete, data: Incomplete) -> None: ...
    def clear(self) -> None: ...
    def enter(self, key: int, value: Incomplete) -> bool: ...
    def find(self, key: int, value: Incomplete) -> bool: ...
    def makePList(self, keys: SbPList, values: SbPList) -> None: ...
    def remove(self, key: int) -> bool: ...
    def setHashingFunction(self, func: Incomplete) -> None: ...

class SoType:
    """Proxy of C++ SoType class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    @staticmethod
    def fromName(name: SbName) -> SoType: ...
    def getName(self) -> SbName: ...
    def getParent(self) -> SoType: ...
    def isDerivedFrom(self, type: SoType) -> bool: ...
    @staticmethod
    def getAllDerivedFrom(type: SoType, list: SoTypeList) -> int: ...
    def canCreateInstance(self) -> bool: ...
    def getData(self) -> int: ...
    def getKey(self) -> int: ...
    def __eq__(self, type: SoType) -> bool: ...
    def __ne__(self, type: SoType) -> bool: ...
    def __lt__(self, type: SoType) -> bool: ...
    def __le__(self, type: SoType) -> bool: ...
    def __ge__(self, type: SoType) -> bool: ...
    def __gt__(self, type: SoType) -> bool: ...
    @staticmethod
    def removeType(name: SbName) -> bool: ...
    @staticmethod
    def init() -> None: ...
    @staticmethod
    def fromKey(key: int) -> SoType: ...
    @staticmethod
    def badType() -> SoType: ...
    def isBad(self) -> bool: ...
    def makeInternal(self) -> None: ...
    def isInternal(self) -> bool: ...
    @staticmethod
    def getNumTypes() -> int: ...
    def getInstantiationMethod(self) -> int: ...
    def createInstance(self) -> SoBase | SoField | SoPath | None: ...
    def __init__(self) -> None: ...

class SbPList:
    """Proxy of C++ SbPList class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    @overload
    def __init__(self, sizehint: int = ...) -> None: ...
    @overload
    def __init__(self, l: SbPList) -> None: ...
    def copy(self, l: SbPList) -> None: ...
    def fit(self) -> None: ...
    def append(self, item: Any) -> None: ...
    def find(self, item: Any) -> int: ...
    def insert(self, item: Any, insertbefore: int) -> None: ...
    def removeItem(self, item: Any) -> None: ...
    def remove(self, index: int) -> None: ...
    def removeFast(self, index: int) -> None: ...
    def getLength(self) -> int: ...
    def truncate(self, length: int, fit: int = ...) -> None: ...
    def getArrayPtr(self, start: int = ...) -> None: ...
    def __eq__(self, l: SbPList) -> bool: ...
    def __ne__(self, l: SbPList) -> bool: ...
    def get(self, index: int) -> Any: ...
    def set(self, index: int, item: Any) -> None: ...
    def __getitem__(self, i: int) -> Any: ...
    def __setitem__(self, i: int, val: Any) -> None: ...
    def __iter__(self) -> Iterator[Any]: ...

class SbIntList(SbPList):
    """Proxy of C++ SbIntList class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(self, sizehint: int) -> None: ...
    def append(self, item: int) -> None: ...
    def find(self, item: int) -> int: ...
    def insert(self, item: int, addbefore: int) -> None: ...
    def __setitem__(self, i: int, value: int) -> None: ...
    def __getitem__(self, i: int) -> int: ...
    def get(self, i: int) -> int: ...
    def __iter__(self) -> Iterator[int]: ...

class SbString:
    """Proxy of C++ SbString class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(self, s: str) -> None: ...
    @overload
    def __init__(self, s: str, start: int, end: int) -> None: ...
    @overload
    def __init__(self, s: SbString) -> None: ...
    @overload
    def __init__(self, digits: int) -> None: ...
    @staticmethod
    @overload
    def hash() -> int: ...
    @staticmethod
    @overload
    def hash(s: str) -> int: ...
    def getLength(self) -> int: ...
    def makeEmpty(self, freeold: bool = ...) -> None: ...
    def getString(self) -> str: ...
    def getSubString(self, startidx: int, endidx: int = ...) -> SbString: ...
    def deleteSubString(self, startidx: int, endidx: int = ...) -> None: ...
    def addIntString(self, value: int) -> None: ...
    @overload
    def __iadd__(self, s: str) -> SbString: ...
    @overload
    def __iadd__(self, s: SbString) -> SbString: ...
    @overload
    def __iadd__(self, c: str) -> SbString: ...
    def compareSubString(self, text: str, offset: int = ...) -> int: ...
    def sprintf(self, formatstr: str) -> SbString: ...
    def apply(self, func: Incomplete) -> None: ...
    def find(self, s: SbString) -> int: ...
    def findAll(self, s: SbString, found: SbIntList) -> bool: ...
    def lower(self) -> SbString: ...
    def upper(self) -> SbString: ...
    @overload
    def __eq__(self, u: SbString) -> bool: ...
    @overload
    def __eq__(self, u: str) -> bool: ...
    @overload
    def __nq__(self, u: SbString) -> int: ...
    @overload
    def __nq__(self, u: str) -> int: ...
    def __getitem__(self, i: int) -> str: ...
    def __iter__(self) -> Iterator[str]: ...

class SbName:
    """Proxy of C++ SbName class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(self, namestring: str) -> None: ...
    @overload
    def __init__(self, str: SbString) -> None: ...
    @overload
    def __init__(self, name: SbName) -> None: ...
    def getString(self) -> str: ...
    def getLength(self) -> int: ...
    @staticmethod
    def isIdentStartChar(c: str) -> bool: ...
    @staticmethod
    def isIdentChar(c: str) -> bool: ...
    @staticmethod
    def isBaseNameStartChar(c: str) -> bool: ...
    @staticmethod
    def isBaseNameChar(c: str) -> bool: ...
    @staticmethod
    def empty() -> SbName: ...
    @overload
    def __eq__(self, u: SbName) -> bool: ...
    @overload
    def __eq__(self, u: str) -> bool: ...
    @overload
    def __eq__(self, u: SbString) -> bool: ...
    @overload
    def __nq__(self, u: SbName) -> int: ...
    @overload
    def __nq__(self, u: str) -> int: ...
    @overload
    def __nq__(self, u: SbString) -> int: ...
    def __getitem__(self, i: int) -> str: ...
    def __iter__(self) -> Iterator[str]: ...

class SoError:
    """Proxy of C++ SoError class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    def __init__(self) -> None: ...
    # NOTE: SWIG exposes raw C pointers here; keep Incomplete until a Python-level wrapper exists.
    @staticmethod
    def setHandlerCallback(func: Incomplete, data: Incomplete) -> None: ...
    @staticmethod
    def getHandlerCallback() -> Incomplete: ...
    @staticmethod
    def getHandlerData() -> Incomplete: ...
    def getDebugString(self) -> SbString: ...
    @staticmethod
    def getClassTypeId() -> SoType: ...
    def getTypeId(self) -> SoType: ...
    def isOfType(self, type: SoType) -> bool: ...
    @staticmethod
    def post(format: str) -> None: ...
    @staticmethod
    @overload
    def getString(node: SoNode) -> SbString: ...
    @staticmethod
    @overload
    def getString(path: SoPath) -> SbString: ...
    @staticmethod
    @overload
    def getString(engine: SoEngine) -> SbString: ...
    @staticmethod
    def initClass() -> None: ...
    @staticmethod
    def initClasses() -> None: ...

class SoDebugError(SoError):
    """Proxy of C++ SoDebugError class."""
    ERROR: ClassVar[int] = ...
    WARNING: ClassVar[int] = ...
    INFO: ClassVar[int] = ...
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    # NOTE: SWIG exposes raw C pointers here; keep Incomplete until a Python-level wrapper exists.
    @staticmethod
    def setHandlerCallback(function: Incomplete, data: Incomplete) -> None: ...
    @staticmethod
    def getHandlerCallback() -> Incomplete: ...
    @staticmethod
    def getHandlerData() -> Incomplete: ...
    @staticmethod
    def getClassTypeId() -> SoType: ...
    def getTypeId(self) -> SoType: ...
    def getSeverity(self) -> int: ...
    @staticmethod
    def post(source: str, format: str) -> None: ...
    @staticmethod
    def postWarning(source: str, format: str) -> None: ...
    @staticmethod
    def postInfo(source: str, format: str) -> None: ...
    @staticmethod
    def initClass() -> None: ...
    def __init__(self) -> None: ...

class SbVec2s:
    """Proxy of C++ SbVec2s class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(self, v: Sequence[int]) -> None: ...
    @overload
    def __init__(self, x: int, y: int) -> None: ...
    @overload
    def __init__(self, v: Incomplete) -> None: ...
    @overload
    def __init__(self, v: SbVec2b) -> None: ...
    @overload
    def __init__(self, v: SbVec2i32) -> None: ...
    @overload
    def __init__(self, v: SbVec2f) -> None: ...
    @overload
    def __init__(self, v: SbVec2d) -> None: ...
    @overload
    def setValue(self, v: Sequence[int]) -> SbVec2s: ...
    @overload
    def setValue(self, x: int, y: int) -> SbVec2s: ...
    @overload
    def setValue(self, v: Incomplete) -> SbVec2s: ...
    @overload
    def setValue(self, v: SbVec2b) -> SbVec2s: ...
    @overload
    def setValue(self, v: SbVec2i32) -> SbVec2s: ...
    @overload
    def setValue(self, v: SbVec2f) -> SbVec2s: ...
    @overload
    def setValue(self, v: SbVec2d) -> SbVec2s: ...
    def getValue(self) -> Sequence[int]: ...
    def dot(self, v: SbVec2s) -> int: ...
    def negate(self) -> None: ...
    @overload
    def __imul__(self, d: int) -> SbVec2s: ...
    @overload
    def __imul__(self, d: float) -> SbVec2s: ...
    def __itruediv__(self, d: float) -> SbVec2s: ...
    def __idiv__(self, d: float) -> SbVec2s: ...
    def __iadd__(self, v: SbVec2s) -> SbVec2s: ...
    def __isub__(self, v: SbVec2s) -> SbVec2s: ...
    def __neg__(self) -> SbVec2s: ...
    def toString(self) -> SbString: ...
    def fromString(self, str: SbString) -> bool: ...
    def output(self, fp: Incomplete) -> None: ...
    def __add__(self, u: SbVec2s) -> SbVec2s: ...
    def __sub__(self, u: SbVec2s) -> SbVec2s: ...
    def __mul__(self, d: float) -> SbVec2s: ...
    def __rmul__(self, d: float) -> SbVec2s: ...
    def __div__(self, d: float) -> SbVec2s: ...
    def __truediv__(self, d: float) -> SbVec2s: ...
    def __eq__(self, u: SbVec2s) -> bool: ...
    def __nq__(self, u: SbVec2s) -> int: ...
    def __getitem__(self, i: int) -> int: ...
    def __setitem__(self, i: int, value: int) -> None: ...
    def __iter__(self) -> Iterator[int]: ...
    def __len__(self) -> int: ...

class SbVec2f:
    """Proxy of C++ SbVec2f class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(self, v: Sequence[float]) -> None: ...
    @overload
    def __init__(self, x: float, y: float) -> None: ...
    @overload
    def __init__(self, v: SbVec2d) -> None: ...
    @overload
    def __init__(self, v: SbVec2b) -> None: ...
    @overload
    def __init__(self, v: SbVec2s) -> None: ...
    @overload
    def __init__(self, v: SbVec2i32) -> None: ...
    @overload
    def setValue(self, v: Sequence[float]) -> SbVec2f: ...
    @overload
    def setValue(self, x: float, y: float) -> SbVec2f: ...
    @overload
    def setValue(self, v: SbVec2d) -> SbVec2f: ...
    @overload
    def setValue(self, v: SbVec2b) -> SbVec2f: ...
    @overload
    def setValue(self, v: SbVec2s) -> SbVec2f: ...
    @overload
    def setValue(self, v: SbVec2i32) -> SbVec2f: ...
    def getValue(self) -> Sequence[float]: ...
    def dot(self, v: SbVec2f) -> float: ...
    def equals(self, v: SbVec2f, tolerance: float) -> bool: ...
    def length(self) -> float: ...
    def sqrLength(self) -> float: ...
    def negate(self) -> None: ...
    def normalize(self) -> float: ...
    def __imul__(self, d: float) -> SbVec2f: ...
    def __itruediv__(self, d: float) -> SbVec2f: ...
    def __idiv__(self, d: float) -> SbVec2f: ...
    def __iadd__(self, v: SbVec2f) -> SbVec2f: ...
    def __isub__(self, v: SbVec2f) -> SbVec2f: ...
    def __neg__(self) -> SbVec2f: ...
    def toString(self) -> SbString: ...
    def fromString(self, str: SbString) -> bool: ...
    def output(self, fp: Incomplete) -> None: ...
    def __add__(self, u: SbVec2f) -> SbVec2f: ...
    def __sub__(self, u: SbVec2f) -> SbVec2f: ...
    def __mul__(self, d: float) -> SbVec2f: ...
    def __rmul__(self, d: float) -> SbVec2f: ...
    def __div__(self, d: float) -> SbVec2f: ...
    def __truediv__(self, d: float) -> SbVec2f: ...
    def __eq__(self, u: SbVec2f) -> bool: ...
    def __nq__(self, u: SbVec2f) -> int: ...
    def __getitem__(self, i: int) -> float: ...
    def __setitem__(self, i: int, value: float) -> None: ...
    def __iter__(self) -> Iterator[float]: ...
    def __len__(self) -> int: ...

class SbTime:
    """Proxy of C++ SbTime class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(self, sec: float) -> None: ...
    @overload
    def __init__(self, sec: int, usec: int) -> None: ...
    @overload
    def __init__(self, tv: Incomplete) -> None: ...
    @staticmethod
    def getTimeOfDay() -> SbTime: ...
    def setToTimeOfDay(self) -> None: ...
    @staticmethod
    def zero() -> SbTime: ...
    @staticmethod
    def max() -> SbTime: ...
    @staticmethod
    def maxTime() -> SbTime: ...
    @staticmethod
    def sleep(msec: int) -> None: ...
    @overload
    def setValue(self, sec: float) -> None: ...
    @overload
    def setValue(self, sec: int, usec: int) -> None: ...
    @overload
    def setValue(self, tv: Incomplete) -> None: ...
    def setMsecValue(self, msec: int) -> None: ...
    @overload
    def getValue(self) -> float: ...
    @overload
    def getValue(self, sec: Incomplete, usec: longp) -> None: ...
    @overload
    def getValue(self, tv: Incomplete) -> None: ...
    def getMsecValue(self) -> int: ...
    def format(self, fmt: str = ...) -> SbString: ...
    def formatDate(self, fmt: str | None = ...) -> SbString: ...
    def parsedate(self, date: str) -> bool: ...
    def __iadd__(self, tm: SbTime) -> SbTime: ...
    def __isub__(self, tm: SbTime) -> SbTime: ...
    def __neg__(self) -> SbTime: ...
    def __imul__(self, s: float) -> SbTime: ...
    def __itruediv__(self, d: float) -> SbTime: ...
    def __idiv__(self, d: float) -> SbTime: ...
    @overload
    def __truediv__(self, tm: SbTime) -> float: ...
    @overload
    def __truediv__(self, d: float) -> float: ...
    def __div__(self, d: float) -> SbTime: ...
    def __mod__(self, tm: SbTime) -> SbTime: ...
    def __eq__(self, tm: SbTime) -> bool: ...
    def __ne__(self, tm: SbTime) -> bool: ...
    def __lt__(self, tm: SbTime) -> bool: ...
    def __gt__(self, tm: SbTime) -> bool: ...
    def __le__(self, tm: SbTime) -> bool: ...
    def __ge__(self, tm: SbTime) -> bool: ...
    def output(self, fp: Incomplete) -> None: ...
    def __add__(self, u: SbTime) -> SbTime: ...
    def __sub__(self, u: SbTime) -> SbTime: ...
    def __mul__(self, d: float) -> SbTime: ...
    def __rmul__(self, d: float) -> SbTime: ...

class SoEvent:
    """Proxy of C++ SoEvent class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    @staticmethod
    def getClassTypeId() -> SoType: ...
    def getTypeId(self) -> SoType: ...
    @staticmethod
    def initClass() -> None: ...
    def __init__(self) -> None: ...
    def isOfType(self, type: SoType) -> bool: ...
    def setTime(self, t: SbTime) -> None: ...
    def getTime(self) -> SbTime: ...
    def setPosition(self, p: SbVec2s) -> None: ...
    @overload
    def getPosition(self) -> SbVec2s: ...
    @overload
    def getPosition(self, vpRgn: SbViewportRegion) -> SbVec2s: ...
    def getNormalizedPosition(self, vpRgn: SbViewportRegion) -> SbVec2f: ...
    def setShiftDown(self, isDown: bool) -> None: ...
    def wasShiftDown(self) -> bool: ...
    def setCtrlDown(self, isDown: bool) -> None: ...
    def wasCtrlDown(self) -> bool: ...
    def setAltDown(self, isDown: bool) -> None: ...
    def wasAltDown(self) -> bool: ...

class SoNotRec:
    """Proxy of C++ SoNotRec class."""
    CONTAINER: ClassVar[int] = ...
    PARENT: ClassVar[int] = ...
    SENSOR: ClassVar[int] = ...
    FIELD: ClassVar[int] = ...
    ENGINE: ClassVar[int] = ...
    UNSPECIFIED: ClassVar[int] = ...
    FIELD_UPDATE: ClassVar[int] = ...
    GROUP_ADDCHILD: ClassVar[int] = ...
    GROUP_INSERTCHILD: ClassVar[int] = ...
    GROUP_REPLACECHILD: ClassVar[int] = ...
    GROUP_REMOVECHILD: ClassVar[int] = ...
    GROUP_REMOVEALLCHILDREN: ClassVar[int] = ...
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    def __init__(self, notifbase: SoBase) -> None: ...
    def setType(self, type: int) -> None: ...
    def getBase(self) -> SoBase: ...
    def getType(self) -> int: ...
    def getPrevious(self) -> SoNotRec: ...
    def setPrevious(self, prev: SoNotRec) -> None: ...
    def output(self, file: Incomplete) -> None: ...
    def getOperationType(self) -> int: ...
    def getIndex(self) -> int: ...
    def getFieldNumIndices(self) -> int: ...
    def getGroupChild(self) -> SoBase: ...
    def getGroupPrevChild(self) -> SoBase: ...
    def setOperationType(self, opType: int) -> None: ...
    def setIndex(self, idx: int) -> None: ...
    def setFieldNumIndices(self, fldnumind: int) -> None: ...
    def setGroupChild(self, gc: SoBase) -> None: ...
    def setGroupPrevChild(self, pc: SoBase) -> None: ...

class SoNotList:
    """Proxy of C++ SoNotList class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(self, nl: SoNotList) -> None: ...
    @overload
    def append(self, rec: SoNotRec) -> None: ...
    @overload
    def append(self, rec: SoNotRec, field: SoField) -> None: ...
    @overload
    def append(self, rec: SoNotRec, engineout: SoEngineOutput) -> None: ...
    def setLastType(self, type: int) -> None: ...
    def getFirstRec(self) -> SoNotRec: ...
    def getLastRec(self) -> SoNotRec: ...
    def getFirstRecAtNode(self) -> SoNotRec: ...
    def getLastField(self) -> SoField: ...
    def getLastEngineOutput(self) -> SoEngineOutput: ...
    def getTimeStamp(self) -> int: ...
    def output(self, file: Incomplete = ...) -> None: ...

class SoField:
    """Proxy of C++ SoField class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    NORMAL_FIELD: ClassVar[int] = ...
    EVENTIN_FIELD: ClassVar[int] = ...
    EVENTOUT_FIELD: ClassVar[int] = ...
    EXPOSED_FIELD: ClassVar[int] = ...
    thisown: bool
    def __init__(self, *args, **kwargs) -> None: ...
    @staticmethod
    def initClass() -> None: ...
    @staticmethod
    def initClasses() -> None: ...
    @staticmethod
    def cleanupClass() -> None: ...
    def setIgnored(self, ignore: bool) -> None: ...
    def isIgnored(self) -> bool: ...
    def setDefault(self, defaultVal: bool) -> None: ...
    def isDefault(self) -> bool: ...
    def getTypeId(self) -> SoType: ...
    @staticmethod
    def getClassTypeId() -> SoType: ...
    def isOfType(self, type: SoType) -> bool: ...
    def enableConnection(self, flag: bool) -> None: ...
    def isConnectionEnabled(self) -> bool: ...
    def isConnectedFromEngine(self) -> bool: ...
    def getConnectedEngine(self, master: SoEngineOutput) -> bool: ...
    @overload
    def connectFrom(self, master: SoEngineOutput, notnotify: bool = ..., append: bool = ...) -> bool: ...
    @overload
    def connectFrom(self, master: SoField, notnotify: bool = ..., append: bool = ...) -> bool: ...
    @overload
    def appendConnection(self, master: SoEngineOutput, notnotify: bool = ...) -> bool: ...
    @overload
    def appendConnection(self, master: SoField, notnotify: bool = ...) -> bool: ...
    def isConnectedFromField(self) -> bool: ...
    def getConnectedField(self, master: SoField) -> bool: ...
    def getNumConnections(self) -> int: ...
    def getForwardConnections(self, slavelist: SoFieldList) -> int: ...
    def getConnections(self, masterlist: SoFieldList) -> int: ...
    @overload
    def disconnect(self, engineoutput: SoEngineOutput) -> None: ...
    @overload
    def disconnect(self, field: SoField) -> None: ...
    @overload
    def disconnect(self) -> None: ...
    def isConnected(self) -> bool: ...
    def setContainer(self, cont: SoFieldContainer) -> None: ...
    def getContainer(self) -> SoFieldContainer: ...
    def set(self, valuestring: str) -> bool: ...
    def shouldWrite(self) -> bool: ...
    def touch(self) -> None: ...
    def startNotify(self) -> None: ...
    def notify(self, nlist: SoNotList) -> None: ...
    def enableNotify(self, on: bool) -> bool: ...
    def isNotifyEnabled(self) -> bool: ...
    def addAuditor(self, f: Incomplete, type: int) -> None: ...
    def removeAuditor(self, f: Incomplete, type: int) -> None: ...
    def __eq__(self, f: SoField) -> bool: ...
    def __ne__(self, f: SoField) -> bool: ...
    def connectionStatusChanged(self, numconnections: int) -> None: ...
    def isReadOnly(self) -> bool: ...
    def isSame(self, f: SoField) -> bool: ...
    def copyFrom(self, f: SoField) -> None: ...
    def fixCopy(self, copyconnections: bool) -> None: ...
    def referencesCopy(self) -> bool: ...
    def copyConnection(self, fromfield: SoField) -> None: ...
    def read(self, input: SoInput, name: SbName) -> bool: ...
    def write(self, out: SoOutput, name: SbName) -> None: ...
    def countWriteRefs(self, out: SoOutput) -> None: ...
    def setFieldType(self, type: int) -> None: ...
    def getFieldType(self) -> int: ...
    def getDirty(self) -> bool: ...
    def setDirty(self, dirty: bool) -> None: ...
    def evaluate(self) -> None: ...
    def get(self) -> SbString: ...

class SoSField(SoField):
    """Proxy of C++ SoSField class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    def __init__(self, *args, **kwargs) -> None: ...
    @staticmethod
    def initClass() -> None: ...
    @staticmethod
    def getClassTypeId() -> SoType: ...
    @staticmethod
    def atexit_cleanup() -> None: ...

class SoMField(SoField):
    """Proxy of C++ SoMField class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    values: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    @staticmethod
    def getClassTypeId() -> SoType: ...
    @staticmethod
    def atexit_cleanup() -> None: ...
    def getNum(self) -> int: ...
    def setNum(self, num: int) -> None: ...
    def deleteValues(self, start: int, num: int = ...) -> None: ...
    def insertSpace(self, start: int, num: int) -> None: ...
    def set1(self, index: int, valuestring: str) -> bool: ...
    @staticmethod
    def initClass() -> None: ...
    def enableDeleteValues(self) -> None: ...
    def isDeleteValuesEnabled(self) -> bool: ...
    def __iter__(self) -> Iterator[Any]: ...
    def __len__(self) -> int: ...
    def get1(self, index: int) -> SbString: ...

class QEvent:
    """Proxy of C++ QEvent class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    def __init__(self, *args, **kwargs) -> None: ...

class QWidget:
    """Proxy of C++ QWidget class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    def __init__(self, *args, **kwargs) -> None: ...
SOQT_MAJOR_VERSION: int
SOQT_MINOR_VERSION: int
SOQT_MICRO_VERSION: int
SOQT_VERSION: str
GUI_TOOLKIT_VERSION: str

class SoQtObject:
    """Proxy of C++ SoQtObject class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    def __init__(self, *args, **kwargs) -> None: ...
    @staticmethod
    def initClass() -> None: ...
    @staticmethod
    def getClassTypeId() -> SoType: ...
    def getTypeId(self) -> SoType: ...
    def isOfType(self, type: SoType) -> bool: ...
    @staticmethod
    def init() -> None: ...
SOQT_SUN_CC_4_0_SOTYPE_INIT_BUG: int

class SoQtDevice(SoQtObject):
    """Proxy of C++ SoQtDevice class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    def __init__(self, *args, **kwargs) -> None: ...
    @staticmethod
    def initClass() -> None: ...
    @staticmethod
    def getClassTypeId() -> SoType: ...
    def getTypeId(self) -> SoType: ...
    def enable(self, w: QWidget, handler: Incomplete, closure: Incomplete) -> None: ...
    def disable(self, w: QWidget, handler: Incomplete, closure: Incomplete) -> None: ...
    def translateEvent(self, event: QEvent) -> SoEvent: ...
    def setWindowSize(self, size: SbVec2s) -> None: ...
    def getWindowSize(self) -> SbVec2s: ...
    @staticmethod
    def initClasses() -> None: ...

class SoQtKeyboard(SoQtDevice):
    """Proxy of C++ SoQtKeyboard class."""
    KEY_PRESS: ClassVar[int] = ...
    KEY_RELEASE: ClassVar[int] = ...
    ALL_EVENTS: ClassVar[int] = ...
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    @staticmethod
    def initClass() -> None: ...
    @staticmethod
    def getClassTypeId() -> SoType: ...
    def getTypeId(self) -> SoType: ...
    @staticmethod
    def createInstance() -> Incomplete: ...
    def __init__(self, eventmask: int = ...) -> None: ...
    def enable(self, widget: QWidget, handler: Incomplete, closure: Incomplete) -> None: ...
    def disable(self, widget: QWidget, handler: Incomplete, closure: Incomplete) -> None: ...
    def translateEvent(self, event: QEvent) -> SoEvent: ...

class SoQtMouse(SoQtDevice):
    """Proxy of C++ SoQtMouse class."""
    BUTTON_PRESS: ClassVar[int] = ...
    BUTTON_RELEASE: ClassVar[int] = ...
    POINTER_MOTION: ClassVar[int] = ...
    BUTTON_MOTION: ClassVar[int] = ...
    ALL_EVENTS: ClassVar[int] = ...
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    @staticmethod
    def initClass() -> None: ...
    @staticmethod
    def getClassTypeId() -> SoType: ...
    def getTypeId(self) -> SoType: ...
    @staticmethod
    def createInstance() -> Incomplete: ...
    def __init__(self, eventmask: int = ...) -> None: ...
    def enable(self, widget: QWidget, handler: Incomplete, closure: Incomplete) -> None: ...
    def disable(self, widget: QWidget, handler: Incomplete, closure: Incomplete) -> None: ...
    def translateEvent(self, event: QEvent) -> SoEvent: ...

class SoQt:
    """Proxy of C++ SoQt class."""
    UNSPECIFIED_ERROR: ClassVar[int] = ...
    NO_OPENGL_CANVAS: ClassVar[int] = ...
    INTERNAL_ASSERT: ClassVar[int] = ...
    DLL: ClassVar[int] = ...
    LIB: ClassVar[int] = ...
    UNKNOWN: ClassVar[int] = ...
    thisown: bool
    def __init__(self, *args, **kwargs) -> None: ...
    @staticmethod
    @overload
    def init(appname: str, classname: str = ...) -> QWidget: ...
    @staticmethod
    @overload
    def init(argc: intp, argv: Sequence[str], appname: str, classname: str = ...) -> QWidget: ...
    @staticmethod
    @overload
    def init(toplevelwidget: QWidget) -> None: ...
    @staticmethod
    def exitMainLoop() -> None: ...
    @staticmethod
    def done() -> None: ...
    @staticmethod
    def getTopLevelWidget() -> QWidget: ...
    @staticmethod
    def getShellWidget(w: QWidget) -> QWidget: ...
    @staticmethod
    def show(widget: QWidget) -> None: ...
    @staticmethod
    def hide(widget: QWidget) -> None: ...
    @staticmethod
    def setWidgetSize(widget: QWidget, size: SbVec2s) -> None: ...
    @staticmethod
    def getWidgetSize(widget: QWidget) -> SbVec2s: ...
    @staticmethod
    def createSimpleErrorDialog(widget: QWidget, title: str, string1: str, string2: str | None = ...) -> None: ...
    @staticmethod
    def getVersionInfo(major: intp | None = ..., minor: intp | None = ..., micro: intp | None = ...) -> None: ...
    @staticmethod
    def getVersionString() -> str: ...
    @staticmethod
    def getVersionToolkitString() -> str: ...
    @staticmethod
    def setFatalErrorHandler(cb: Incomplete, userdata: Incomplete) -> Incomplete: ...
    @staticmethod
    def isDebugLibrary() -> bool: ...
    @staticmethod
    def isCompatible(major: int, minor: int) -> bool: ...
    @staticmethod
    def getABIType() -> int: ...
    @staticmethod
    def lockGL() -> None: ...
    @staticmethod
    def unlockGL() -> None: ...
    @staticmethod
    def mainLoop() -> None: ...

class SoQtComponent(SoQtObject):
    """Proxy of C++ SoQtComponent class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    def __init__(self, *args, **kwargs) -> None: ...
    @staticmethod
    def initClass() -> None: ...
    @staticmethod
    def getClassTypeId() -> SoType: ...
    def getTypeId(self) -> SoType: ...
    def show(self) -> None: ...
    def hide(self) -> None: ...
    def setComponentCursor(self, cursor: SoQtCursor) -> None: ...
    @staticmethod
    def setWidgetCursor(w: QWidget, cursor: SoQtCursor) -> None: ...
    def isFullScreen(self) -> bool: ...
    def setFullScreen(self, onoff: bool) -> bool: ...
    def isVisible(self) -> bool: ...
    def isTopLevelShell(self) -> bool: ...
    def getWidget(self) -> QWidget: ...
    def getBaseWidget(self) -> QWidget: ...
    def getShellWidget(self) -> QWidget: ...
    def getParentWidget(self) -> QWidget: ...
    def setSize(self, size: SbVec2s) -> None: ...
    def getSize(self) -> SbVec2s: ...
    def setTitle(self, title: str) -> None: ...
    def getTitle(self) -> str: ...
    def setIconTitle(self, title: str) -> None: ...
    def getIconTitle(self) -> str: ...
    def getWidgetName(self) -> str: ...
    def getClassName(self) -> str: ...
    def setWindowCloseCallback(self, func: Incomplete, user: Incomplete | None = ...) -> None: ...
    @staticmethod
    def getComponent(widget: QWidget) -> SoQtComponent: ...
    @staticmethod
    def initClasses() -> None: ...
SO_GL_RGB: int
SO_GLX_RGB: int
SO_GL_DOUBLE: int
SO_GLX_DOUBLE: int
SO_GL_ZBUFFER: int
SO_GLX_ZBUFFER: int
SO_GL_OVERLAY: int
SO_GLX_OVERLAY: int
SO_GL_STEREO: int
SO_GLX_STEREO: int

class SoQtGLWidget(SoQtComponent):
    """Proxy of C++ SoQtGLWidget class."""
    thisown: bool
    def __init__(self, *args, **kwargs) -> None: ...
    @staticmethod
    def initClass() -> None: ...
    @staticmethod
    def getClassTypeId() -> SoType: ...
    def getTypeId(self) -> SoType: ...
    def setBorder(self, enable: bool) -> None: ...
    def isBorder(self) -> bool: ...
    def setDoubleBuffer(self, enable: bool) -> None: ...
    def isDoubleBuffer(self) -> bool: ...
    def setDrawToFrontBufferEnable(self, enable: bool) -> None: ...
    def isDrawToFrontBufferEnable(self) -> bool: ...
    def setQuadBufferStereo(self, enable: bool) -> None: ...
    def isQuadBufferStereo(self) -> bool: ...
    def setAccumulationBuffer(self, enable: bool) -> None: ...
    def getAccumulationBuffer(self) -> bool: ...
    def setStencilBuffer(self, enable: bool) -> None: ...
    def getStencilBuffer(self) -> bool: ...
    def setAlphaChannel(self, enable: bool) -> None: ...
    def getAlphaChannel(self) -> bool: ...
    def setOverlayRender(self, onoff: bool) -> None: ...
    def isOverlayRender(self) -> bool: ...
    def setSampleBuffers(self, numsamples: int) -> None: ...
    def getSampleBuffers(self) -> int: ...
    def setStealFocus(self, enable: bool) -> None: ...
    def isStealFocus(self) -> bool: ...
    def getGLWidget(self) -> QWidget: ...
    def getNormalWidget(self) -> QWidget: ...
    def getOverlayWidget(self) -> QWidget: ...
    def hasOverlayGLArea(self) -> bool: ...
    def hasNormalGLArea(self) -> bool: ...
    def getOverlayTransparentPixel(self) -> int: ...
    def getPointSizeLimits(self, range: SbVec2f, granularity: floatp) -> None: ...
    def getLineWidthLimits(self, range: SbVec2f, granularity: floatp) -> None: ...

class SoQtRenderArea(SoQtGLWidget):
    """Proxy of C++ SoQtRenderArea class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    @staticmethod
    def initClass() -> None: ...
    @staticmethod
    def getClassTypeId() -> SoType: ...
    def getTypeId(self) -> SoType: ...
    @staticmethod
    def createInstance() -> Incomplete: ...
    def __init__(self, parent: QWidget | None = ..., name: str | None = ..., embed: bool = ..., mouseInput: bool = ..., keyboardInput: bool = ...) -> None: ...
    def setSceneGraph(self, scene: SoNode) -> None: ...
    def getSceneGraph(self) -> SoNode: ...
    def setOverlaySceneGraph(self, scene: SoNode) -> None: ...
    def getOverlaySceneGraph(self) -> SoNode: ...
    def setBackgroundColor(self, color: SbColor) -> None: ...
    def getBackgroundColor(self) -> SbColor: ...
    def setBackgroundIndex(self, idx: int) -> None: ...
    def getBackgroundIndex(self) -> int: ...
    def setOverlayBackgroundIndex(self, idx: int) -> None: ...
    def getOverlayBackgroundIndex(self) -> int: ...
    def setColorMap(self, start: int, num: int, colors: SbColor) -> None: ...
    def setOverlayColorMap(self, start: int, num: int, colors: SbColor) -> None: ...
    def setViewportRegion(self, newRegion: SbViewportRegion) -> None: ...
    def getViewportRegion(self) -> SbViewportRegion: ...
    def setTransparencyType(self, type: int) -> None: ...
    def getTransparencyType(self) -> int: ...
    def setAntialiasing(self, smoothing: bool, numPasses: int) -> None: ...
    def getAntialiasing(self, smoothing: intp, numPasses: intp) -> None: ...
    def setClearBeforeRender(self, enable: bool, zbEnable: bool = ...) -> None: ...
    def isClearBeforeRender(self) -> bool: ...
    def isClearZBufferBeforeRender(self) -> bool: ...
    def setClearBeforeOverlayRender(self, enable: bool) -> None: ...
    def isClearBeforeOverlayRender(self) -> bool: ...
    def setAutoRedraw(self, enable: bool) -> None: ...
    def isAutoRedraw(self) -> bool: ...
    def setRedrawPriority(self, priority: int) -> None: ...
    def getRedrawPriority(self) -> int: ...
    @staticmethod
    def getDefaultRedrawPriority() -> int: ...
    def render(self) -> None: ...
    def renderOverlay(self) -> None: ...
    def scheduleRedraw(self) -> None: ...
    def scheduleOverlayRedraw(self) -> None: ...
    def redrawOnSelectionChange(self, selection: SoSelection) -> None: ...
    def redrawOverlayOnSelectionChange(self, selection: SoSelection) -> None: ...
    def setSceneManager(self, manager: SoSceneManager) -> None: ...
    def getSceneManager(self) -> SoSceneManager: ...
    def setOverlaySceneManager(self, manager: SoSceneManager) -> None: ...
    def getOverlaySceneManager(self) -> SoSceneManager: ...
    def setGLRenderAction(self, action: SoGLRenderAction) -> None: ...
    def getGLRenderAction(self) -> SoGLRenderAction: ...
    def setOverlayGLRenderAction(self, action: SoGLRenderAction) -> None: ...
    def getOverlayGLRenderAction(self) -> SoGLRenderAction: ...
    def sendSoEvent(self, event: SoEvent) -> bool: ...
    def registerDevice(self, device: SoQtDevice) -> None: ...
    def unregisterDevice(self, device: SoQtDevice) -> None: ...
    def setEventCallback(self, pyfunc: Callable[[Any, QEvent], Any], user: Any | None = ...) -> None: ...

class SoQtViewer(SoQtRenderArea):
    """Proxy of C++ SoQtViewer class."""
    BROWSER: ClassVar[int] = ...
    EDITOR: ClassVar[int] = ...
    VIEW_AS_IS: ClassVar[int] = ...
    VIEW_HIDDEN_LINE: ClassVar[int] = ...
    VIEW_NO_TEXTURE: ClassVar[int] = ...
    VIEW_LOW_COMPLEXITY: ClassVar[int] = ...
    VIEW_LINE: ClassVar[int] = ...
    VIEW_POINT: ClassVar[int] = ...
    VIEW_BBOX: ClassVar[int] = ...
    VIEW_LOW_RES_LINE: ClassVar[int] = ...
    VIEW_LOW_RES_POINT: ClassVar[int] = ...
    VIEW_SAME_AS_STILL: ClassVar[int] = ...
    VIEW_WIREFRAME_OVERLAY: ClassVar[int] = ...
    STILL: ClassVar[int] = ...
    INTERACTIVE: ClassVar[int] = ...
    BUFFER_SINGLE: ClassVar[int] = ...
    BUFFER_DOUBLE: ClassVar[int] = ...
    BUFFER_INTERACTIVE: ClassVar[int] = ...
    VARIABLE_NEAR_PLANE: ClassVar[int] = ...
    CONSTANT_NEAR_PLANE: ClassVar[int] = ...
    STEREO_NONE: ClassVar[int] = ...
    STEREO_ANAGLYPH: ClassVar[int] = ...
    STEREO_QUADBUFFER: ClassVar[int] = ...
    STEREO_INTERLEAVED_ROWS: ClassVar[int] = ...
    STEREO_INTERLEAVED_COLUMNS: ClassVar[int] = ...
    thisown: bool
    def __init__(self, *args, **kwargs) -> None: ...
    @staticmethod
    def initClass() -> None: ...
    @staticmethod
    def getClassTypeId() -> SoType: ...
    def getTypeId(self) -> SoType: ...
    def setCamera(self, camera: SoCamera) -> None: ...
    def getCamera(self) -> SoCamera: ...
    def setCameraType(self, type: SoType) -> None: ...
    def getCameraType(self) -> SoType: ...
    def toggleCameraType(self) -> None: ...
    def viewAll(self) -> None: ...
    def saveHomePosition(self) -> None: ...
    def resetToHomePosition(self) -> None: ...
    def setHeadlight(self, enable: bool) -> None: ...
    def isHeadlight(self) -> bool: ...
    def getHeadlight(self) -> SoDirectionalLight: ...
    def setDrawStyle(self, type: int, style: int) -> None: ...
    def getDrawStyle(self, type: int) -> int: ...
    def setBufferingType(self, type: int) -> None: ...
    def getBufferingType(self) -> int: ...
    def setViewing(self, enable: bool) -> None: ...
    def isViewing(self) -> bool: ...
    def setCursorEnabled(self, enable: bool) -> None: ...
    def isCursorEnabled(self) -> bool: ...
    def setAutoClipping(self, enable: bool) -> None: ...
    def isAutoClipping(self) -> bool: ...
    def setAutoClippingStrategy(self, strategy: int, value: float = ..., cb: Incomplete | None = ..., cbuserdata: Incomplete | None = ...) -> None: ...
    def setStereoViewing(self, enable: bool) -> None: ...
    def isStereoViewing(self) -> bool: ...
    def setStereoOffset(self, dist: float) -> None: ...
    def getStereoOffset(self) -> float: ...
    def setStereoType(self, s: int) -> bool: ...
    def getStereoType(self) -> int: ...
    def setAnaglyphStereoColorMasks(self, left: Sequence[bool], right: Sequence[bool]) -> None: ...
    def getAnaglyphStereoColorMasks(self, left: Incomplete, right: Incomplete) -> None: ...
    def setDetailSeek(self, enable: bool) -> None: ...
    def isDetailSeek(self) -> bool: ...
    def setSeekTime(self, seconds: float) -> None: ...
    def getSeekTime(self) -> float: ...
    def addStartCallback(self, func: Incomplete, data: Incomplete | None = ...) -> None: ...
    def addFinishCallback(self, func: Incomplete, data: Incomplete | None = ...) -> None: ...
    def removeStartCallback(self, func: Incomplete, data: Incomplete | None = ...) -> None: ...
    def removeFinishCallback(self, func: Incomplete, data: Incomplete | None = ...) -> None: ...
    def setWireframeOverlayColor(self, color: SbColor) -> None: ...
    def getWireframeOverlayColor(self) -> SbColor: ...
    def setDoubleBuffer(self, enable: bool) -> None: ...
    def setSceneGraph(self, root: SoNode) -> None: ...
    def getSceneGraph(self) -> SoNode: ...

class SoQtFullViewer(SoQtViewer):
    """Proxy of C++ SoQtFullViewer class."""
    BUILD_NONE: ClassVar[int] = ...
    BUILD_DECORATION: ClassVar[int] = ...
    BUILD_POPUP: ClassVar[int] = ...
    BUILD_ALL: ClassVar[int] = ...
    thisown: bool
    def __init__(self, *args, **kwargs) -> None: ...
    @staticmethod
    def initClass() -> None: ...
    @staticmethod
    def getClassTypeId() -> SoType: ...
    def getTypeId(self) -> SoType: ...
    def setDecoration(self, on: bool) -> None: ...
    def isDecoration(self) -> bool: ...
    def setPopupMenuEnabled(self, on: bool) -> None: ...
    def isPopupMenuEnabled(self) -> bool: ...
    def getAppPushButtonParent(self) -> QWidget: ...
    def addAppPushButton(self, newButton: QWidget) -> None: ...
    def insertAppPushButton(self, newButton: QWidget, index: int) -> None: ...
    def removeAppPushButton(self, oldButton: QWidget) -> None: ...
    def findAppPushButton(self, oldButton: QWidget) -> int: ...
    def lengthAppPushButton(self) -> int: ...
    def getRenderAreaWidget(self) -> QWidget: ...
    def setViewing(self, on: bool) -> None: ...
    def setComponentCursor(self, cursor: SoQtCursor) -> None: ...

class SoQtPlaneViewer(SoQtFullViewer):
    """Proxy of C++ SoQtPlaneViewer class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    @staticmethod
    def initClass() -> None: ...
    @staticmethod
    def getClassTypeId() -> SoType: ...
    def getTypeId(self) -> SoType: ...
    @staticmethod
    def createInstance() -> Incomplete: ...
    def __init__(self, parent: QWidget | None = ..., name: str | None = ..., embed: bool = ..., flag: int = ..., type: int = ...) -> None: ...
    def setViewing(self, enable: bool) -> None: ...
    def setCamera(self, camera: SoCamera) -> None: ...
    def setCursorEnabled(self, enable: bool) -> None: ...

class SoQtExaminerViewer(SoQtFullViewer):
    """Proxy of C++ SoQtExaminerViewer class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    @staticmethod
    def initClass() -> None: ...
    @staticmethod
    def getClassTypeId() -> SoType: ...
    def getTypeId(self) -> SoType: ...
    @staticmethod
    def createInstance() -> Incomplete: ...
    def __init__(self, parent: QWidget | None = ..., name: str | None = ..., embed: bool = ..., flag: int = ..., type: int = ...) -> None: ...
    def setAnimationEnabled(self, enable: bool) -> None: ...
    def isAnimationEnabled(self) -> bool: ...
    def stopAnimating(self) -> None: ...
    def isAnimating(self) -> bool: ...
    def setFeedbackVisibility(self, enable: bool) -> None: ...
    def isFeedbackVisible(self) -> bool: ...
    def setFeedbackSize(self, size: int) -> None: ...
    def getFeedbackSize(self) -> int: ...
    def setViewing(self, enable: bool) -> None: ...
    def setCamera(self, camera: SoCamera) -> None: ...
    def setCursorEnabled(self, enable: bool) -> None: ...

class SoQtConstrainedViewer(SoQtFullViewer):
    """Proxy of C++ SoQtConstrainedViewer class."""
    thisown: bool
    def __init__(self, *args, **kwargs) -> None: ...
    @staticmethod
    def initClass() -> None: ...
    @staticmethod
    def getClassTypeId() -> SoType: ...
    def getTypeId(self) -> SoType: ...
    def setUpDirection(self, dir: SbVec3f) -> None: ...
    def getUpDirection(self) -> SbVec3f: ...
    def setCamera(self, newcam: SoCamera) -> None: ...
    def saveHomePosition(self) -> None: ...
    def resetToHomePosition(self) -> None: ...

class SoQtFlyViewer(SoQtConstrainedViewer):
    """Proxy of C++ SoQtFlyViewer class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    @staticmethod
    def initClass() -> None: ...
    @staticmethod
    def getClassTypeId() -> SoType: ...
    def getTypeId(self) -> SoType: ...
    @staticmethod
    def createInstance() -> Incomplete: ...
    def __init__(self, parent: QWidget | None = ..., name: str | None = ..., embed: bool = ..., flag: int = ..., type: int = ...) -> None: ...
    def setViewing(self, enable: bool) -> None: ...
    def viewAll(self) -> None: ...
    def resetToHomePosition(self) -> None: ...
    def setCamera(self, camera: SoCamera) -> None: ...
    def setCursorEnabled(self, enable: bool) -> None: ...
    def setCameraType(self, type: SoType) -> None: ...

class SoQtPopupMenu:
    """Proxy of C++ SoQtPopupMenu class."""
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    def __init__(self, *args, **kwargs) -> None: ...
    @staticmethod
    def createInstance() -> SoQtPopupMenu: ...
    def newMenu(self, name: str, menuid: int = ...) -> int: ...
    def getMenu(self, name: str) -> int: ...
    def setMenuTitle(self, id: int, title: str) -> None: ...
    def getMenuTitle(self, id: int) -> str: ...
    def newMenuItem(self, name: str, itemid: int = ...) -> int: ...
    def getMenuItem(self, name: str) -> int: ...
    def setMenuItemTitle(self, itemid: int, title: str) -> None: ...
    def getMenuItemTitle(self, itemid: int) -> str: ...
    def setMenuItemEnabled(self, itemid: int, enabled: bool) -> None: ...
    def getMenuItemEnabled(self, itemid: int) -> bool: ...
    def setMenuItemMarked(self, itemid: int, marked: bool) -> None: ...
    def getMenuItemMarked(self, itemid: int) -> bool: ...
    def addMenu(self, menuid: int, submenuid: int, pos: int = ...) -> None: ...
    def addMenuItem(self, menuid: int, itemid: int, pos: int = ...) -> None: ...
    def addSeparator(self, menuid: int, pos: int = ...) -> None: ...
    def removeMenu(self, menuid: int) -> None: ...
    def removeMenuItem(self, itemid: int) -> None: ...
    def popUp(self, inside: QWidget, x: int, y: int) -> None: ...
    def newRadioGroup(self, groupid: int = ...) -> int: ...
    def getRadioGroup(self, itemid: int) -> int: ...
    def getRadioGroupSize(self, groupid: int) -> int: ...
    def addRadioGroupItem(self, groupid: int, itemid: int) -> None: ...
    def removeRadioGroupItem(self, itemid: int) -> None: ...
    def setRadioGroupMarkedItem(self, itemid: int) -> None: ...
    def getRadioGroupMarkedItem(self, groupid: int) -> int: ...
    def addMenuSelectionCallback(self, callback: Incomplete, data: Incomplete) -> None: ...
    def removeMenuSelectionCallback(self, callback: Incomplete, data: Incomplete) -> None: ...

class SoQtCursor:
    """Proxy of C++ SoQtCursor class."""
    CUSTOM_BITMAP: ClassVar[int] = ...
    DEFAULT: ClassVar[int] = ...
    BUSY: ClassVar[int] = ...
    CROSSHAIR: ClassVar[int] = ...
    UPARROW: ClassVar[int] = ...
    __swig_destroy__: ClassVar[builtin_function_or_method] = ...
    thisown: bool
    @staticmethod
    def initClass() -> None: ...
    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(self, shape: int) -> None: ...
    @overload
    def __init__(self, cc: int) -> None: ...
    @overload
    def __init__(self, cursor: SoQtCursor) -> None: ...
    def getShape(self) -> int: ...
    def setShape(self, shape: int) -> None: ...
    def getCustomCursor(self) -> int: ...
    @staticmethod
    def getZoomCursor() -> SoQtCursor: ...
    @staticmethod
    def getPanCursor() -> SoQtCursor: ...
    @staticmethod
    def getRotateCursor() -> SoQtCursor: ...
    @staticmethod
    def getBlankCursor() -> SoQtCursor: ...
