# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

"""
RWGltf module, see official documentation at
https://www.opencascade.com/doc/occt-7.4.0/refman/html/package_rwgltf.html
"""

from sys import version_info as _swig_python_version_info
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _RWGltf
else:
    import _RWGltf

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


class SwigPyIterator(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _RWGltf.delete_SwigPyIterator

    def value(self) -> "PyObject *":
        return _RWGltf.SwigPyIterator_value(self)

    def incr(self, n: "size_t"=1) -> "swig::SwigPyIterator *":
        return _RWGltf.SwigPyIterator_incr(self, n)

    def decr(self, n: "size_t"=1) -> "swig::SwigPyIterator *":
        return _RWGltf.SwigPyIterator_decr(self, n)

    def distance(self, x: "SwigPyIterator") -> "ptrdiff_t":
        return _RWGltf.SwigPyIterator_distance(self, x)

    def equal(self, x: "SwigPyIterator") -> "bool":
        return _RWGltf.SwigPyIterator_equal(self, x)

    def copy(self) -> "swig::SwigPyIterator *":
        return _RWGltf.SwigPyIterator_copy(self)

    def next(self) -> "PyObject *":
        return _RWGltf.SwigPyIterator_next(self)

    def __next__(self) -> "PyObject *":
        return _RWGltf.SwigPyIterator___next__(self)

    def previous(self) -> "PyObject *":
        return _RWGltf.SwigPyIterator_previous(self)

    def advance(self, n: "ptrdiff_t") -> "swig::SwigPyIterator *":
        return _RWGltf.SwigPyIterator_advance(self, n)

    def __eq__(self, x: "SwigPyIterator") -> "bool":
        return _RWGltf.SwigPyIterator___eq__(self, x)

    def __ne__(self, x: "SwigPyIterator") -> "bool":
        return _RWGltf.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator &":
        return _RWGltf.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator &":
        return _RWGltf.SwigPyIterator___isub__(self, n)

    def __add__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator *":
        return _RWGltf.SwigPyIterator___add__(self, n)

    def __sub__(self, *args) -> "ptrdiff_t":
        return _RWGltf.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self

# Register SwigPyIterator in _RWGltf:
_RWGltf.SwigPyIterator_swigregister(SwigPyIterator)


def _dumps_object(klass):
    """ Overwrite default string output for any wrapped object.
    By default, __repr__ method returns something like:
    <OCC.Core.TopoDS.TopoDS_Shape; proxy of <Swig Object of type 'TopoDS_Shape *' at 0x02BB0758> >
    This is too much verbose.
    We prefer :
    <class 'gp_Pnt'>
    or
    <class 'TopoDS_Shape'>
    """
    klass_name = str(klass.__class__).split(".")[3].split("'")[0]
    repr_string = "<class '" + klass_name + "'"
# for TopoDS_Shape, we also look for the base type
    if klass_name == "TopoDS_Shape":
        if klass.IsNull():
            repr_string += ": Null>"
            return repr_string
        st = klass.ShapeType()
        types = {OCC.Core.TopAbs.TopAbs_VERTEX: "Vertex",
                 OCC.Core.TopAbs.TopAbs_SOLID: "Solid",
                 OCC.Core.TopAbs.TopAbs_EDGE: "Edge",
                 OCC.Core.TopAbs.TopAbs_FACE: "Face",
                 OCC.Core.TopAbs.TopAbs_SHELL: "Shell",
                 OCC.Core.TopAbs.TopAbs_WIRE: "Wire",
                 OCC.Core.TopAbs.TopAbs_COMPOUND: "Compound",
                 OCC.Core.TopAbs.TopAbs_COMPSOLID: "Compsolid"}
        repr_string += "; Type:%s" % types[st]        
    elif hasattr(klass, "IsNull"):
        if klass.IsNull():
            repr_string += "; Null"
    repr_string += ">"
    return repr_string


def process_exception(error: "Standard_Failure", method_name: "std::string", class_name: "std::string") -> "void":
    return _RWGltf.process_exception(error, method_name, class_name)

from six import with_metaclass
import warnings
from OCC.Wrapper.wrapper_utils import Proxy, deprecated

import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.TCollection
import OCC.Core.XCAFPrs
import OCC.Core.TDF
import OCC.Core.TColStd
import OCC.Core.TopLoc
import OCC.Core.gp
import OCC.Core.Quantity
import OCC.Core.AIS
import OCC.Core.SelectMgr
import OCC.Core.Graphic3d
import OCC.Core.BVH
import OCC.Core.Aspect
import OCC.Core.Image
import OCC.Core.Bnd
import OCC.Core.TColgp
import OCC.Core.OSD
import OCC.Core.Media
import OCC.Core.Select3D
import OCC.Core.SelectBasics
import OCC.Core.Geom
import OCC.Core.GeomAbs
import OCC.Core.PrsMgr
import OCC.Core.Prs3d
import OCC.Core.Poly
import OCC.Core.TShort
import OCC.Core.V3d
import OCC.Core.TopAbs
import OCC.Core.TopoDS
import OCC.Core.Message
import OCC.Core.StdSelect
import OCC.Core.TDocStd
import OCC.Core.CDF
import OCC.Core.CDM
import OCC.Core.Resource
import OCC.Core.PCDM
import OCC.Core.Storage
import OCC.Core.XCAFDoc
import OCC.Core.TDataStd
import OCC.Core.XCAFDimTolObjects
import OCC.Core.XCAFNoteObjects
import OCC.Core.TopTools
import OCC.Core.XCAFView
import OCC.Core.TPrsStd
import OCC.Core.TDataXtd
import OCC.Core.TNaming

from enum import IntEnum
from OCC.Core.Exception import *

RWGltf_GltfPrimitiveMode_UNKNOWN = _RWGltf.RWGltf_GltfPrimitiveMode_UNKNOWN
RWGltf_GltfPrimitiveMode_Points = _RWGltf.RWGltf_GltfPrimitiveMode_Points
RWGltf_GltfPrimitiveMode_Lines = _RWGltf.RWGltf_GltfPrimitiveMode_Lines
RWGltf_GltfPrimitiveMode_LineLoop = _RWGltf.RWGltf_GltfPrimitiveMode_LineLoop
RWGltf_GltfPrimitiveMode_LineStrip = _RWGltf.RWGltf_GltfPrimitiveMode_LineStrip
RWGltf_GltfPrimitiveMode_Triangles = _RWGltf.RWGltf_GltfPrimitiveMode_Triangles
RWGltf_GltfPrimitiveMode_TriangleStrip = _RWGltf.RWGltf_GltfPrimitiveMode_TriangleStrip
RWGltf_GltfPrimitiveMode_TriangleFan = _RWGltf.RWGltf_GltfPrimitiveMode_TriangleFan
RWGltf_GltfBufferViewTarget_UNKNOWN = _RWGltf.RWGltf_GltfBufferViewTarget_UNKNOWN
RWGltf_GltfBufferViewTarget_ARRAY_BUFFER = _RWGltf.RWGltf_GltfBufferViewTarget_ARRAY_BUFFER
RWGltf_GltfBufferViewTarget_ELEMENT_ARRAY_BUFFER = _RWGltf.RWGltf_GltfBufferViewTarget_ELEMENT_ARRAY_BUFFER
RWGltf_GltfArrayType_UNKNOWN = _RWGltf.RWGltf_GltfArrayType_UNKNOWN
RWGltf_GltfArrayType_Indices = _RWGltf.RWGltf_GltfArrayType_Indices
RWGltf_GltfArrayType_Position = _RWGltf.RWGltf_GltfArrayType_Position
RWGltf_GltfArrayType_Normal = _RWGltf.RWGltf_GltfArrayType_Normal
RWGltf_GltfArrayType_Color = _RWGltf.RWGltf_GltfArrayType_Color
RWGltf_GltfArrayType_TCoord0 = _RWGltf.RWGltf_GltfArrayType_TCoord0
RWGltf_GltfArrayType_TCoord1 = _RWGltf.RWGltf_GltfArrayType_TCoord1
RWGltf_GltfArrayType_Joint = _RWGltf.RWGltf_GltfArrayType_Joint
RWGltf_GltfArrayType_Weight = _RWGltf.RWGltf_GltfArrayType_Weight
RWGltf_GltfRootElement_Asset = _RWGltf.RWGltf_GltfRootElement_Asset
RWGltf_GltfRootElement_Scenes = _RWGltf.RWGltf_GltfRootElement_Scenes
RWGltf_GltfRootElement_Scene = _RWGltf.RWGltf_GltfRootElement_Scene
RWGltf_GltfRootElement_Nodes = _RWGltf.RWGltf_GltfRootElement_Nodes
RWGltf_GltfRootElement_Meshes = _RWGltf.RWGltf_GltfRootElement_Meshes
RWGltf_GltfRootElement_Accessors = _RWGltf.RWGltf_GltfRootElement_Accessors
RWGltf_GltfRootElement_BufferViews = _RWGltf.RWGltf_GltfRootElement_BufferViews
RWGltf_GltfRootElement_Buffers = _RWGltf.RWGltf_GltfRootElement_Buffers
RWGltf_GltfRootElement_NB_MANDATORY = _RWGltf.RWGltf_GltfRootElement_NB_MANDATORY
RWGltf_GltfRootElement_Animations = _RWGltf.RWGltf_GltfRootElement_Animations
RWGltf_GltfRootElement_Materials = _RWGltf.RWGltf_GltfRootElement_Materials
RWGltf_GltfRootElement_Programs = _RWGltf.RWGltf_GltfRootElement_Programs
RWGltf_GltfRootElement_Samplers = _RWGltf.RWGltf_GltfRootElement_Samplers
RWGltf_GltfRootElement_Shaders = _RWGltf.RWGltf_GltfRootElement_Shaders
RWGltf_GltfRootElement_Skins = _RWGltf.RWGltf_GltfRootElement_Skins
RWGltf_GltfRootElement_Techniques = _RWGltf.RWGltf_GltfRootElement_Techniques
RWGltf_GltfRootElement_Textures = _RWGltf.RWGltf_GltfRootElement_Textures
RWGltf_GltfRootElement_Images = _RWGltf.RWGltf_GltfRootElement_Images
RWGltf_GltfRootElement_ExtensionsUsed = _RWGltf.RWGltf_GltfRootElement_ExtensionsUsed
RWGltf_GltfRootElement_ExtensionsRequired = _RWGltf.RWGltf_GltfRootElement_ExtensionsRequired
RWGltf_GltfRootElement_NB = _RWGltf.RWGltf_GltfRootElement_NB
RWGltf_GltfAccessorCompType_UNKNOWN = _RWGltf.RWGltf_GltfAccessorCompType_UNKNOWN
RWGltf_GltfAccessorCompType_Int8 = _RWGltf.RWGltf_GltfAccessorCompType_Int8
RWGltf_GltfAccessorCompType_UInt8 = _RWGltf.RWGltf_GltfAccessorCompType_UInt8
RWGltf_GltfAccessorCompType_Int16 = _RWGltf.RWGltf_GltfAccessorCompType_Int16
RWGltf_GltfAccessorCompType_UInt16 = _RWGltf.RWGltf_GltfAccessorCompType_UInt16
RWGltf_GltfAccessorCompType_UInt32 = _RWGltf.RWGltf_GltfAccessorCompType_UInt32
RWGltf_GltfAccessorCompType_Float32 = _RWGltf.RWGltf_GltfAccessorCompType_Float32
RWGltf_GltfAlphaMode_Opaque = _RWGltf.RWGltf_GltfAlphaMode_Opaque
RWGltf_GltfAlphaMode_Mask = _RWGltf.RWGltf_GltfAlphaMode_Mask
RWGltf_GltfAlphaMode_Blend = _RWGltf.RWGltf_GltfAlphaMode_Blend
RWGltf_GltfAccessorLayout_UNKNOWN = _RWGltf.RWGltf_GltfAccessorLayout_UNKNOWN
RWGltf_GltfAccessorLayout_Scalar = _RWGltf.RWGltf_GltfAccessorLayout_Scalar
RWGltf_GltfAccessorLayout_Vec2 = _RWGltf.RWGltf_GltfAccessorLayout_Vec2
RWGltf_GltfAccessorLayout_Vec3 = _RWGltf.RWGltf_GltfAccessorLayout_Vec3
RWGltf_GltfAccessorLayout_Vec4 = _RWGltf.RWGltf_GltfAccessorLayout_Vec4
RWGltf_GltfAccessorLayout_Mat2 = _RWGltf.RWGltf_GltfAccessorLayout_Mat2
RWGltf_GltfAccessorLayout_Mat3 = _RWGltf.RWGltf_GltfAccessorLayout_Mat3
RWGltf_GltfAccessorLayout_Mat4 = _RWGltf.RWGltf_GltfAccessorLayout_Mat4
RWGltf_WriterTrsfFormat_Compact = _RWGltf.RWGltf_WriterTrsfFormat_Compact
RWGltf_WriterTrsfFormat_Mat4 = _RWGltf.RWGltf_WriterTrsfFormat_Mat4
RWGltf_WriterTrsfFormat_TRS = _RWGltf.RWGltf_WriterTrsfFormat_TRS
RWGltf_WriterTrsfFormat_LOWER = _RWGltf.RWGltf_WriterTrsfFormat_LOWER
RWGltf_WriterTrsfFormat_UPPER = _RWGltf.RWGltf_WriterTrsfFormat_UPPER


class RWGltf_GltfPrimitiveMode(IntEnum):
	RWGltf_GltfPrimitiveMode_UNKNOWN = - 1
	RWGltf_GltfPrimitiveMode_Points = 0
	RWGltf_GltfPrimitiveMode_Lines = 1
	RWGltf_GltfPrimitiveMode_LineLoop = 2
	RWGltf_GltfPrimitiveMode_LineStrip = 3
	RWGltf_GltfPrimitiveMode_Triangles = 4
	RWGltf_GltfPrimitiveMode_TriangleStrip = 5
	RWGltf_GltfPrimitiveMode_TriangleFan = 6
RWGltf_GltfPrimitiveMode_UNKNOWN = RWGltf_GltfPrimitiveMode.RWGltf_GltfPrimitiveMode_UNKNOWN
RWGltf_GltfPrimitiveMode_Points = RWGltf_GltfPrimitiveMode.RWGltf_GltfPrimitiveMode_Points
RWGltf_GltfPrimitiveMode_Lines = RWGltf_GltfPrimitiveMode.RWGltf_GltfPrimitiveMode_Lines
RWGltf_GltfPrimitiveMode_LineLoop = RWGltf_GltfPrimitiveMode.RWGltf_GltfPrimitiveMode_LineLoop
RWGltf_GltfPrimitiveMode_LineStrip = RWGltf_GltfPrimitiveMode.RWGltf_GltfPrimitiveMode_LineStrip
RWGltf_GltfPrimitiveMode_Triangles = RWGltf_GltfPrimitiveMode.RWGltf_GltfPrimitiveMode_Triangles
RWGltf_GltfPrimitiveMode_TriangleStrip = RWGltf_GltfPrimitiveMode.RWGltf_GltfPrimitiveMode_TriangleStrip
RWGltf_GltfPrimitiveMode_TriangleFan = RWGltf_GltfPrimitiveMode.RWGltf_GltfPrimitiveMode_TriangleFan

class RWGltf_GltfBufferViewTarget(IntEnum):
	RWGltf_GltfBufferViewTarget_UNKNOWN = 0
	RWGltf_GltfBufferViewTarget_ARRAY_BUFFER = 34962
	RWGltf_GltfBufferViewTarget_ELEMENT_ARRAY_BUFFER = 34963
RWGltf_GltfBufferViewTarget_UNKNOWN = RWGltf_GltfBufferViewTarget.RWGltf_GltfBufferViewTarget_UNKNOWN
RWGltf_GltfBufferViewTarget_ARRAY_BUFFER = RWGltf_GltfBufferViewTarget.RWGltf_GltfBufferViewTarget_ARRAY_BUFFER
RWGltf_GltfBufferViewTarget_ELEMENT_ARRAY_BUFFER = RWGltf_GltfBufferViewTarget.RWGltf_GltfBufferViewTarget_ELEMENT_ARRAY_BUFFER

class RWGltf_GltfArrayType(IntEnum):
	RWGltf_GltfArrayType_UNKNOWN = 0
	RWGltf_GltfArrayType_Indices = 1
	RWGltf_GltfArrayType_Position = 2
	RWGltf_GltfArrayType_Normal = 3
	RWGltf_GltfArrayType_Color = 4
	RWGltf_GltfArrayType_TCoord0 = 5
	RWGltf_GltfArrayType_TCoord1 = 6
	RWGltf_GltfArrayType_Joint = 7
	RWGltf_GltfArrayType_Weight = 8
RWGltf_GltfArrayType_UNKNOWN = RWGltf_GltfArrayType.RWGltf_GltfArrayType_UNKNOWN
RWGltf_GltfArrayType_Indices = RWGltf_GltfArrayType.RWGltf_GltfArrayType_Indices
RWGltf_GltfArrayType_Position = RWGltf_GltfArrayType.RWGltf_GltfArrayType_Position
RWGltf_GltfArrayType_Normal = RWGltf_GltfArrayType.RWGltf_GltfArrayType_Normal
RWGltf_GltfArrayType_Color = RWGltf_GltfArrayType.RWGltf_GltfArrayType_Color
RWGltf_GltfArrayType_TCoord0 = RWGltf_GltfArrayType.RWGltf_GltfArrayType_TCoord0
RWGltf_GltfArrayType_TCoord1 = RWGltf_GltfArrayType.RWGltf_GltfArrayType_TCoord1
RWGltf_GltfArrayType_Joint = RWGltf_GltfArrayType.RWGltf_GltfArrayType_Joint
RWGltf_GltfArrayType_Weight = RWGltf_GltfArrayType.RWGltf_GltfArrayType_Weight

class RWGltf_GltfRootElement(IntEnum):
	RWGltf_GltfRootElement_Asset = 0
	RWGltf_GltfRootElement_Scenes = 1
	RWGltf_GltfRootElement_Scene = 2
	RWGltf_GltfRootElement_Nodes = 3
	RWGltf_GltfRootElement_Meshes = 4
	RWGltf_GltfRootElement_Accessors = 5
	RWGltf_GltfRootElement_BufferViews = 6
	RWGltf_GltfRootElement_Buffers = 7
	RWGltf_GltfRootElement_NB_MANDATORY = 8
	RWGltf_GltfRootElement_Animations = RWGltf_GltfRootElement_NB_MANDATORY
	RWGltf_GltfRootElement_Materials = 10
	RWGltf_GltfRootElement_Programs = 11
	RWGltf_GltfRootElement_Samplers = 12
	RWGltf_GltfRootElement_Shaders = 13
	RWGltf_GltfRootElement_Skins = 14
	RWGltf_GltfRootElement_Techniques = 15
	RWGltf_GltfRootElement_Textures = 16
	RWGltf_GltfRootElement_Images = 17
	RWGltf_GltfRootElement_ExtensionsUsed = 18
	RWGltf_GltfRootElement_ExtensionsRequired = 19
	RWGltf_GltfRootElement_NB = 20
RWGltf_GltfRootElement_Asset = RWGltf_GltfRootElement.RWGltf_GltfRootElement_Asset
RWGltf_GltfRootElement_Scenes = RWGltf_GltfRootElement.RWGltf_GltfRootElement_Scenes
RWGltf_GltfRootElement_Scene = RWGltf_GltfRootElement.RWGltf_GltfRootElement_Scene
RWGltf_GltfRootElement_Nodes = RWGltf_GltfRootElement.RWGltf_GltfRootElement_Nodes
RWGltf_GltfRootElement_Meshes = RWGltf_GltfRootElement.RWGltf_GltfRootElement_Meshes
RWGltf_GltfRootElement_Accessors = RWGltf_GltfRootElement.RWGltf_GltfRootElement_Accessors
RWGltf_GltfRootElement_BufferViews = RWGltf_GltfRootElement.RWGltf_GltfRootElement_BufferViews
RWGltf_GltfRootElement_Buffers = RWGltf_GltfRootElement.RWGltf_GltfRootElement_Buffers
RWGltf_GltfRootElement_NB_MANDATORY = RWGltf_GltfRootElement.RWGltf_GltfRootElement_NB_MANDATORY
RWGltf_GltfRootElement_Animations = RWGltf_GltfRootElement.RWGltf_GltfRootElement_Animations
RWGltf_GltfRootElement_Materials = RWGltf_GltfRootElement.RWGltf_GltfRootElement_Materials
RWGltf_GltfRootElement_Programs = RWGltf_GltfRootElement.RWGltf_GltfRootElement_Programs
RWGltf_GltfRootElement_Samplers = RWGltf_GltfRootElement.RWGltf_GltfRootElement_Samplers
RWGltf_GltfRootElement_Shaders = RWGltf_GltfRootElement.RWGltf_GltfRootElement_Shaders
RWGltf_GltfRootElement_Skins = RWGltf_GltfRootElement.RWGltf_GltfRootElement_Skins
RWGltf_GltfRootElement_Techniques = RWGltf_GltfRootElement.RWGltf_GltfRootElement_Techniques
RWGltf_GltfRootElement_Textures = RWGltf_GltfRootElement.RWGltf_GltfRootElement_Textures
RWGltf_GltfRootElement_Images = RWGltf_GltfRootElement.RWGltf_GltfRootElement_Images
RWGltf_GltfRootElement_ExtensionsUsed = RWGltf_GltfRootElement.RWGltf_GltfRootElement_ExtensionsUsed
RWGltf_GltfRootElement_ExtensionsRequired = RWGltf_GltfRootElement.RWGltf_GltfRootElement_ExtensionsRequired
RWGltf_GltfRootElement_NB = RWGltf_GltfRootElement.RWGltf_GltfRootElement_NB

class RWGltf_GltfAccessorCompType(IntEnum):
	RWGltf_GltfAccessorCompType_UNKNOWN = 0
	RWGltf_GltfAccessorCompType_Int8 = 5120
	RWGltf_GltfAccessorCompType_UInt8 = 5121
	RWGltf_GltfAccessorCompType_Int16 = 5122
	RWGltf_GltfAccessorCompType_UInt16 = 5123
	RWGltf_GltfAccessorCompType_UInt32 = 5125
	RWGltf_GltfAccessorCompType_Float32 = 5126
RWGltf_GltfAccessorCompType_UNKNOWN = RWGltf_GltfAccessorCompType.RWGltf_GltfAccessorCompType_UNKNOWN
RWGltf_GltfAccessorCompType_Int8 = RWGltf_GltfAccessorCompType.RWGltf_GltfAccessorCompType_Int8
RWGltf_GltfAccessorCompType_UInt8 = RWGltf_GltfAccessorCompType.RWGltf_GltfAccessorCompType_UInt8
RWGltf_GltfAccessorCompType_Int16 = RWGltf_GltfAccessorCompType.RWGltf_GltfAccessorCompType_Int16
RWGltf_GltfAccessorCompType_UInt16 = RWGltf_GltfAccessorCompType.RWGltf_GltfAccessorCompType_UInt16
RWGltf_GltfAccessorCompType_UInt32 = RWGltf_GltfAccessorCompType.RWGltf_GltfAccessorCompType_UInt32
RWGltf_GltfAccessorCompType_Float32 = RWGltf_GltfAccessorCompType.RWGltf_GltfAccessorCompType_Float32

class RWGltf_GltfAlphaMode(IntEnum):
	RWGltf_GltfAlphaMode_Opaque = 0
	RWGltf_GltfAlphaMode_Mask = 1
	RWGltf_GltfAlphaMode_Blend = 2
RWGltf_GltfAlphaMode_Opaque = RWGltf_GltfAlphaMode.RWGltf_GltfAlphaMode_Opaque
RWGltf_GltfAlphaMode_Mask = RWGltf_GltfAlphaMode.RWGltf_GltfAlphaMode_Mask
RWGltf_GltfAlphaMode_Blend = RWGltf_GltfAlphaMode.RWGltf_GltfAlphaMode_Blend

class RWGltf_GltfAccessorLayout(IntEnum):
	RWGltf_GltfAccessorLayout_UNKNOWN = 0
	RWGltf_GltfAccessorLayout_Scalar = 1
	RWGltf_GltfAccessorLayout_Vec2 = 2
	RWGltf_GltfAccessorLayout_Vec3 = 3
	RWGltf_GltfAccessorLayout_Vec4 = 4
	RWGltf_GltfAccessorLayout_Mat2 = 5
	RWGltf_GltfAccessorLayout_Mat3 = 6
	RWGltf_GltfAccessorLayout_Mat4 = 7
RWGltf_GltfAccessorLayout_UNKNOWN = RWGltf_GltfAccessorLayout.RWGltf_GltfAccessorLayout_UNKNOWN
RWGltf_GltfAccessorLayout_Scalar = RWGltf_GltfAccessorLayout.RWGltf_GltfAccessorLayout_Scalar
RWGltf_GltfAccessorLayout_Vec2 = RWGltf_GltfAccessorLayout.RWGltf_GltfAccessorLayout_Vec2
RWGltf_GltfAccessorLayout_Vec3 = RWGltf_GltfAccessorLayout.RWGltf_GltfAccessorLayout_Vec3
RWGltf_GltfAccessorLayout_Vec4 = RWGltf_GltfAccessorLayout.RWGltf_GltfAccessorLayout_Vec4
RWGltf_GltfAccessorLayout_Mat2 = RWGltf_GltfAccessorLayout.RWGltf_GltfAccessorLayout_Mat2
RWGltf_GltfAccessorLayout_Mat3 = RWGltf_GltfAccessorLayout.RWGltf_GltfAccessorLayout_Mat3
RWGltf_GltfAccessorLayout_Mat4 = RWGltf_GltfAccessorLayout.RWGltf_GltfAccessorLayout_Mat4

class RWGltf_WriterTrsfFormat(IntEnum):
	RWGltf_WriterTrsfFormat_Compact = 0
	RWGltf_WriterTrsfFormat_Mat4 = 1
	RWGltf_WriterTrsfFormat_TRS = 2
RWGltf_WriterTrsfFormat_Compact = RWGltf_WriterTrsfFormat.RWGltf_WriterTrsfFormat_Compact
RWGltf_WriterTrsfFormat_Mat4 = RWGltf_WriterTrsfFormat.RWGltf_WriterTrsfFormat_Mat4
RWGltf_WriterTrsfFormat_TRS = RWGltf_WriterTrsfFormat.RWGltf_WriterTrsfFormat_TRS


def Handle_RWGltf_CafWriter_Create() -> "opencascade::handle< RWGltf_CafWriter >":
    return _RWGltf.Handle_RWGltf_CafWriter_Create()

def Handle_RWGltf_CafWriter_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< RWGltf_CafWriter >":
    return _RWGltf.Handle_RWGltf_CafWriter_DownCast(t)

def Handle_RWGltf_CafWriter_IsNull(t: "opencascade::handle< RWGltf_CafWriter > const &") -> "bool":
    return _RWGltf.Handle_RWGltf_CafWriter_IsNull(t)

def Handle_RWGltf_GltfLatePrimitiveArray_Create() -> "opencascade::handle< RWGltf_GltfLatePrimitiveArray >":
    return _RWGltf.Handle_RWGltf_GltfLatePrimitiveArray_Create()

def Handle_RWGltf_GltfLatePrimitiveArray_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< RWGltf_GltfLatePrimitiveArray >":
    return _RWGltf.Handle_RWGltf_GltfLatePrimitiveArray_DownCast(t)

def Handle_RWGltf_GltfLatePrimitiveArray_IsNull(t: "opencascade::handle< RWGltf_GltfLatePrimitiveArray > const &") -> "bool":
    return _RWGltf.Handle_RWGltf_GltfLatePrimitiveArray_IsNull(t)

def Handle_RWGltf_MaterialCommon_Create() -> "opencascade::handle< RWGltf_MaterialCommon >":
    return _RWGltf.Handle_RWGltf_MaterialCommon_Create()

def Handle_RWGltf_MaterialCommon_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< RWGltf_MaterialCommon >":
    return _RWGltf.Handle_RWGltf_MaterialCommon_DownCast(t)

def Handle_RWGltf_MaterialCommon_IsNull(t: "opencascade::handle< RWGltf_MaterialCommon > const &") -> "bool":
    return _RWGltf.Handle_RWGltf_MaterialCommon_IsNull(t)

def Handle_RWGltf_MaterialMetallicRoughness_Create() -> "opencascade::handle< RWGltf_MaterialMetallicRoughness >":
    return _RWGltf.Handle_RWGltf_MaterialMetallicRoughness_Create()

def Handle_RWGltf_MaterialMetallicRoughness_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< RWGltf_MaterialMetallicRoughness >":
    return _RWGltf.Handle_RWGltf_MaterialMetallicRoughness_DownCast(t)

def Handle_RWGltf_MaterialMetallicRoughness_IsNull(t: "opencascade::handle< RWGltf_MaterialMetallicRoughness > const &") -> "bool":
    return _RWGltf.Handle_RWGltf_MaterialMetallicRoughness_IsNull(t)

def Handle_RWGltf_PrimitiveArrayReader_Create() -> "opencascade::handle< RWGltf_PrimitiveArrayReader >":
    return _RWGltf.Handle_RWGltf_PrimitiveArrayReader_Create()

def Handle_RWGltf_PrimitiveArrayReader_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< RWGltf_PrimitiveArrayReader >":
    return _RWGltf.Handle_RWGltf_PrimitiveArrayReader_DownCast(t)

def Handle_RWGltf_PrimitiveArrayReader_IsNull(t: "opencascade::handle< RWGltf_PrimitiveArrayReader > const &") -> "bool":
    return _RWGltf.Handle_RWGltf_PrimitiveArrayReader_IsNull(t)

def Handle_RWGltf_TriangulationReader_Create() -> "opencascade::handle< RWGltf_TriangulationReader >":
    return _RWGltf.Handle_RWGltf_TriangulationReader_Create()

def Handle_RWGltf_TriangulationReader_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< RWGltf_TriangulationReader >":
    return _RWGltf.Handle_RWGltf_TriangulationReader_DownCast(t)

def Handle_RWGltf_TriangulationReader_IsNull(t: "opencascade::handle< RWGltf_TriangulationReader > const &") -> "bool":
    return _RWGltf.Handle_RWGltf_TriangulationReader_IsNull(t)
class RWGltf_CafReader(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Empty constructor.

        Returns
        -------
        None

        """
        _RWGltf.RWGltf_CafReader_swiginit(self, _RWGltf.new_RWGltf_CafReader(*args))

    def SetMeshNameAsFallback(self, *args) -> "void":
        r"""
        Set flag to use mesh name in case if node name is empty.

        Parameters
        ----------
        theToFallback: bool

        Returns
        -------
        None

        """
        return _RWGltf.RWGltf_CafReader_SetMeshNameAsFallback(self, *args)

    def SetParallel(self, *args) -> "void":
        r"""
        Setup multithreaded execution.

        Parameters
        ----------
        theToParallel: bool

        Returns
        -------
        None

        """
        return _RWGltf.RWGltf_CafReader_SetParallel(self, *args)

    def SetSkipEmptyNodes(self, *args) -> "void":
        r"""
        Set flag to ignore nodes without geometry.

        Parameters
        ----------
        theToSkip: bool

        Returns
        -------
        None

        """
        return _RWGltf.RWGltf_CafReader_SetSkipEmptyNodes(self, *args)

    def ToParallel(self, *args) -> "bool":
        r"""
        Return true if multithreaded optimizations are allowed; false by default.

        Returns
        -------
        bool

        """
        return _RWGltf.RWGltf_CafReader_ToParallel(self, *args)

    def ToSkipEmptyNodes(self, *args) -> "bool":
        r"""
        Return true if nodes without geometry should be ignored, true by default.

        Returns
        -------
        bool

        """
        return _RWGltf.RWGltf_CafReader_ToSkipEmptyNodes(self, *args)

    def ToUseMeshNameAsFallback(self, *args) -> "bool":
        r"""
        Set flag to use mesh name in case if node name is empty, true by default.

        Returns
        -------
        bool

        """
        return _RWGltf.RWGltf_CafReader_ToUseMeshNameAsFallback(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _RWGltf.delete_RWGltf_CafReader

# Register RWGltf_CafReader in _RWGltf:
_RWGltf.RWGltf_CafReader_swigregister(RWGltf_CafReader)

class RWGltf_CafWriter(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Main constructor. @param thefile [in] path to output gltf file @param theisbinary [in] flag to write into binary gltf format (.glb).

        Parameters
        ----------
        theFile: TCollection_AsciiString
        theIsBinary: bool

        Returns
        -------
        None

        """
        _RWGltf.RWGltf_CafWriter_swiginit(self, _RWGltf.new_RWGltf_CafWriter(*args))

    def ChangeCoordinateSystemConverter(self, *args) -> "RWMesh_CoordinateSystemConverter &":
        r"""
        Return transformation from occt to gltf coordinate system.

        Returns
        -------
        RWMesh_CoordinateSystemConverter

        """
        return _RWGltf.RWGltf_CafWriter_ChangeCoordinateSystemConverter(self, *args)

    def CoordinateSystemConverter(self, *args) -> "RWMesh_CoordinateSystemConverter const &":
        r"""
        Return transformation from occt to gltf coordinate system.

        Returns
        -------
        RWMesh_CoordinateSystemConverter

        """
        return _RWGltf.RWGltf_CafWriter_CoordinateSystemConverter(self, *args)

    def DefaultStyle(self, *args) -> "XCAFPrs_Style const &":
        r"""
        Return default material definition to be used for nodes with only color defined.

        Returns
        -------
        XCAFPrs_Style

        """
        return _RWGltf.RWGltf_CafWriter_DefaultStyle(self, *args)

    def IsBinary(self, *args) -> "bool":
        r"""
        Return flag to write into binary gltf format (.glb), specified within class constructor.

        Returns
        -------
        bool

        """
        return _RWGltf.RWGltf_CafWriter_IsBinary(self, *args)

    def IsForcedUVExport(self, *args) -> "bool":
        r"""
        Return true to export uv coordinates even if there are no mapped texture; false by default.

        Returns
        -------
        bool

        """
        return _RWGltf.RWGltf_CafWriter_IsForcedUVExport(self, *args)

    def Perform(self, *args) -> "bool":
        r"""
        Write gltf file and associated binary file. triangulation data should be precomputed within shapes! @param thedocument [in] input document @param therootlabels [in] list of root shapes to export @param thelabelfilter [in] optional filter with document nodes to export,  with keys defined by xcafprs_documentexplorer::definechildid() and filled recursively  (leaves and parent assembly nodes at all levels);  when not null, all nodes not included into the map will be ignored @param thefileinfo [in] map with file metadata to put into gltf header section @param theprogress [in] optional progress indicator returns false on file writing failure.

        Parameters
        ----------
        theDocument: TDocStd_Document
        theRootLabels: TDF_LabelSequence
        theLabelFilter: TColStd_MapOfAsciiString *
        theFileInfo: TColStd_IndexedDataMapOfStringString
        theProgress: Message_ProgressRange

        Returns
        -------
        bool
        Write gltf file and associated binary file. triangulation data should be precomputed within shapes! @param thedocument [in] input document @param thefileinfo [in] map with file metadata to put into gltf header section @param theprogress [in] optional progress indicator returns false on file writing failure.

        Parameters
        ----------
        theDocument: TDocStd_Document
        theFileInfo: TColStd_IndexedDataMapOfStringString
        theProgress: Message_ProgressRange

        Returns
        -------
        bool

        """
        return _RWGltf.RWGltf_CafWriter_Perform(self, *args)

    def SetCoordinateSystemConverter(self, *args) -> "void":
        r"""
        Set transformation from occt to gltf coordinate system.

        Parameters
        ----------
        theConverter: RWMesh_CoordinateSystemConverter

        Returns
        -------
        None

        """
        return _RWGltf.RWGltf_CafWriter_SetCoordinateSystemConverter(self, *args)

    def SetDefaultStyle(self, *args) -> "void":
        r"""
        Set default material definition to be used for nodes with only color defined.

        Parameters
        ----------
        theStyle: XCAFPrs_Style

        Returns
        -------
        None

        """
        return _RWGltf.RWGltf_CafWriter_SetDefaultStyle(self, *args)

    def SetForcedUVExport(self, *args) -> "void":
        r"""
        Set flag to export uv coordinates even if there are no mapped texture; false by default.

        Parameters
        ----------
        theToForce: bool

        Returns
        -------
        None

        """
        return _RWGltf.RWGltf_CafWriter_SetForcedUVExport(self, *args)

    def SetTransformationFormat(self, *args) -> "void":
        r"""
        Set preferred transformation format for writing into gltf file.

        Parameters
        ----------
        theFormat: RWGltf_WriterTrsfFormat

        Returns
        -------
        None

        """
        return _RWGltf.RWGltf_CafWriter_SetTransformationFormat(self, *args)

    def TransformationFormat(self, *args) -> "RWGltf_WriterTrsfFormat":
        r"""
        Return preferred transformation format for writing into gltf file; rwgltf_writertrsfformat_compact by default.

        Returns
        -------
        RWGltf_WriterTrsfFormat

        """
        return _RWGltf.RWGltf_CafWriter_TransformationFormat(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_RWGltf_CafWriter_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _RWGltf.delete_RWGltf_CafWriter

# Register RWGltf_CafWriter in _RWGltf:
_RWGltf.RWGltf_CafWriter_swigregister(RWGltf_CafWriter)

class RWGltf_GltfAccessor(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Id = property(_RWGltf.RWGltf_GltfAccessor_Id_get, _RWGltf.RWGltf_GltfAccessor_Id_set)
    ByteOffset = property(_RWGltf.RWGltf_GltfAccessor_ByteOffset_get, _RWGltf.RWGltf_GltfAccessor_ByteOffset_set)
    Count = property(_RWGltf.RWGltf_GltfAccessor_Count_get, _RWGltf.RWGltf_GltfAccessor_Count_set)
    ByteStride = property(_RWGltf.RWGltf_GltfAccessor_ByteStride_get, _RWGltf.RWGltf_GltfAccessor_ByteStride_set)
    Type = property(_RWGltf.RWGltf_GltfAccessor_Type_get, _RWGltf.RWGltf_GltfAccessor_Type_set)
    ComponentType = property(_RWGltf.RWGltf_GltfAccessor_ComponentType_get, _RWGltf.RWGltf_GltfAccessor_ComponentType_set)
    BndBox = property(_RWGltf.RWGltf_GltfAccessor_BndBox_get, _RWGltf.RWGltf_GltfAccessor_BndBox_set)

    def __init__(self, *args):
        r"""
        Empty constructor.

        Returns
        -------
        None

        """
        _RWGltf.RWGltf_GltfAccessor_swiginit(self, _RWGltf.new_RWGltf_GltfAccessor(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _RWGltf.delete_RWGltf_GltfAccessor

# Register RWGltf_GltfAccessor in _RWGltf:
_RWGltf.RWGltf_GltfAccessor_swigregister(RWGltf_GltfAccessor)

class RWGltf_GltfBufferView(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Id = property(_RWGltf.RWGltf_GltfBufferView_Id_get, _RWGltf.RWGltf_GltfBufferView_Id_set)
    ByteOffset = property(_RWGltf.RWGltf_GltfBufferView_ByteOffset_get, _RWGltf.RWGltf_GltfBufferView_ByteOffset_set)
    ByteLength = property(_RWGltf.RWGltf_GltfBufferView_ByteLength_get, _RWGltf.RWGltf_GltfBufferView_ByteLength_set)
    ByteStride = property(_RWGltf.RWGltf_GltfBufferView_ByteStride_get, _RWGltf.RWGltf_GltfBufferView_ByteStride_set)
    Target = property(_RWGltf.RWGltf_GltfBufferView_Target_get, _RWGltf.RWGltf_GltfBufferView_Target_set)

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None

        """
        _RWGltf.RWGltf_GltfBufferView_swiginit(self, _RWGltf.new_RWGltf_GltfBufferView(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _RWGltf.delete_RWGltf_GltfBufferView

# Register RWGltf_GltfBufferView in _RWGltf:
_RWGltf.RWGltf_GltfBufferView_swigregister(RWGltf_GltfBufferView)

class RWGltf_GltfFace(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    NodePos = property(_RWGltf.RWGltf_GltfFace_NodePos_get, _RWGltf.RWGltf_GltfFace_NodePos_set)
    NodeNorm = property(_RWGltf.RWGltf_GltfFace_NodeNorm_get, _RWGltf.RWGltf_GltfFace_NodeNorm_set)
    NodeUV = property(_RWGltf.RWGltf_GltfFace_NodeUV_get, _RWGltf.RWGltf_GltfFace_NodeUV_set)
    Indices = property(_RWGltf.RWGltf_GltfFace_Indices_get, _RWGltf.RWGltf_GltfFace_Indices_set)

    __repr__ = _dumps_object


    def __init__(self):
        _RWGltf.RWGltf_GltfFace_swiginit(self, _RWGltf.new_RWGltf_GltfFace())
    __swig_destroy__ = _RWGltf.delete_RWGltf_GltfFace

# Register RWGltf_GltfFace in _RWGltf:
_RWGltf.RWGltf_GltfFace_swigregister(RWGltf_GltfFace)

class RWGltf_GltfLatePrimitiveArray(OCC.Core.Poly.Poly_Triangulation):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Constructor.

        Parameters
        ----------
        theId: TCollection_AsciiString
        theName: TCollection_AsciiString

        Returns
        -------
        None

        """
        _RWGltf.RWGltf_GltfLatePrimitiveArray_swiginit(self, _RWGltf.new_RWGltf_GltfLatePrimitiveArray(*args))

    def AddPrimArrayData(self, *args) -> "RWGltf_GltfPrimArrayData &":
        r"""
        Add primitive array data element.

        Parameters
        ----------
        theType: RWGltf_GltfArrayType

        Returns
        -------
        RWGltf_GltfPrimArrayData

        """
        return _RWGltf.RWGltf_GltfLatePrimitiveArray_AddPrimArrayData(self, *args)

    def BaseColor(self, *args) -> "Quantity_ColorRGBA":
        r"""
        Return base color.

        Returns
        -------
        Quantity_ColorRGBA

        """
        return _RWGltf.RWGltf_GltfLatePrimitiveArray_BaseColor(self, *args)

    def BoundingBox(self, *args) -> "Bnd_Box const &":
        r"""
        Return bounding box defined within gltf file, or void if not specified.

        Returns
        -------
        Bnd_Box

        """
        return _RWGltf.RWGltf_GltfLatePrimitiveArray_BoundingBox(self, *args)

    def Data(self, *args) -> "NCollection_Sequence< RWGltf_GltfPrimArrayData > const &":
        r"""
        Return primitive array data elements.

        Returns
        -------
        NCollection_Sequence<RWGltf_GltfPrimArrayData>

        """
        return _RWGltf.RWGltf_GltfLatePrimitiveArray_Data(self, *args)

    def HasStyle(self, *args) -> "bool":
        r"""
        Return true if primitive array has assigned material.

        Returns
        -------
        bool

        """
        return _RWGltf.RWGltf_GltfLatePrimitiveArray_HasStyle(self, *args)

    def Id(self, *args) -> "TCollection_AsciiString const &":
        r"""
        Entity id.

        Returns
        -------
        TCollection_AsciiString

        """
        return _RWGltf.RWGltf_GltfLatePrimitiveArray_Id(self, *args)

    def MaterialCommon(self, *args) -> "opencascade::handle< RWGltf_MaterialCommon > const &":
        r"""
        Return common (obsolete) material definition.

        Returns
        -------
        opencascade::handle<RWGltf_MaterialCommon>

        """
        return _RWGltf.RWGltf_GltfLatePrimitiveArray_MaterialCommon(self, *args)

    def MaterialPbr(self, *args) -> "opencascade::handle< RWGltf_MaterialMetallicRoughness > const &":
        r"""
        Return pbr material definition.

        Returns
        -------
        opencascade::handle<RWGltf_MaterialMetallicRoughness>

        """
        return _RWGltf.RWGltf_GltfLatePrimitiveArray_MaterialPbr(self, *args)

    def Name(self, *args) -> "TCollection_AsciiString const &":
        r"""
        Entity name.

        Returns
        -------
        TCollection_AsciiString

        """
        return _RWGltf.RWGltf_GltfLatePrimitiveArray_Name(self, *args)

    def PrimitiveMode(self, *args) -> "RWGltf_GltfPrimitiveMode":
        r"""
        Return type of primitive array.

        Returns
        -------
        RWGltf_GltfPrimitiveMode

        """
        return _RWGltf.RWGltf_GltfLatePrimitiveArray_PrimitiveMode(self, *args)

    def SetBoundingBox(self, *args) -> "void":
        r"""
        This method sets input bounding box and assigns a fake data to underlying poly_triangulation as min/max corners of bounding box, so that standard tools like brepbndlib::add() can be used transparently for computing bounding box of this face.

        Parameters
        ----------
        theBox: Bnd_Box

        Returns
        -------
        None

        """
        return _RWGltf.RWGltf_GltfLatePrimitiveArray_SetBoundingBox(self, *args)

    def SetMaterialCommon(self, *args) -> "void":
        r"""
        Set common (obsolete) material definition.

        Parameters
        ----------
        theMat: RWGltf_MaterialCommon

        Returns
        -------
        None

        """
        return _RWGltf.RWGltf_GltfLatePrimitiveArray_SetMaterialCommon(self, *args)

    def SetMaterialPbr(self, *args) -> "void":
        r"""
        Set pbr material definition.

        Parameters
        ----------
        theMat: RWGltf_MaterialMetallicRoughness

        Returns
        -------
        None

        """
        return _RWGltf.RWGltf_GltfLatePrimitiveArray_SetMaterialPbr(self, *args)

    def SetName(self, *args) -> "void":
        r"""
        Assign entity name.

        Parameters
        ----------
        theName: TCollection_AsciiString

        Returns
        -------
        None

        """
        return _RWGltf.RWGltf_GltfLatePrimitiveArray_SetName(self, *args)

    def SetPrimitiveMode(self, *args) -> "void":
        r"""
        Set type of primitive array.

        Parameters
        ----------
        theMode: RWGltf_GltfPrimitiveMode

        Returns
        -------
        None

        """
        return _RWGltf.RWGltf_GltfLatePrimitiveArray_SetPrimitiveMode(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_RWGltf_GltfLatePrimitiveArray_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _RWGltf.delete_RWGltf_GltfLatePrimitiveArray

# Register RWGltf_GltfLatePrimitiveArray in _RWGltf:
_RWGltf.RWGltf_GltfLatePrimitiveArray_swigregister(RWGltf_GltfLatePrimitiveArray)

class RWGltf_GltfMaterialMap(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Main constructor.

        Parameters
        ----------
        theFile: TCollection_AsciiString
        theDefSamplerId: int

        Returns
        -------
        None

        """
        _RWGltf.RWGltf_GltfMaterialMap_swiginit(self, _RWGltf.new_RWGltf_GltfMaterialMap(*args))

    def AddImages(self, *args) -> "void":
        r"""
        Add material images.

        Parameters
        ----------
        theWriter: RWGltf_GltfOStreamWriter *
        theStyle: XCAFPrs_Style

        Returns
        -------
        theIsStarted: bool

        """
        return _RWGltf.RWGltf_GltfMaterialMap_AddImages(self, *args)

    def AddMaterial(self, *args) -> "void":
        r"""
        Add material.

        Parameters
        ----------
        theWriter: RWGltf_GltfOStreamWriter *
        theStyle: XCAFPrs_Style

        Returns
        -------
        theIsStarted: bool

        """
        return _RWGltf.RWGltf_GltfMaterialMap_AddMaterial(self, *args)

    def AddTextures(self, *args) -> "void":
        r"""
        Add material textures.

        Parameters
        ----------
        theWriter: RWGltf_GltfOStreamWriter *
        theStyle: XCAFPrs_Style

        Returns
        -------
        theIsStarted: bool

        """
        return _RWGltf.RWGltf_GltfMaterialMap_AddTextures(self, *args)

    def NbImages(self, *args) -> "Standard_Integer":
        r"""
        Return extent of images map.

        Returns
        -------
        int

        """
        return _RWGltf.RWGltf_GltfMaterialMap_NbImages(self, *args)

    def NbTextures(self, *args) -> "Standard_Integer":
        r"""
        Return extent of textures map.

        Returns
        -------
        int

        """
        return _RWGltf.RWGltf_GltfMaterialMap_NbTextures(self, *args)

    @staticmethod
    def baseColorTexture(*args) -> "opencascade::handle< Image_Texture > const &":
        r"""
        Return base color texture.

        Parameters
        ----------
        theMat: XCAFDoc_VisMaterial

        Returns
        -------
        opencascade::handle<Image_Texture>

        """
        return _RWGltf.RWGltf_GltfMaterialMap_baseColorTexture(*args)

    __repr__ = _dumps_object

    __swig_destroy__ = _RWGltf.delete_RWGltf_GltfMaterialMap

# Register RWGltf_GltfMaterialMap in _RWGltf:
_RWGltf.RWGltf_GltfMaterialMap_swigregister(RWGltf_GltfMaterialMap)

def RWGltf_GltfMaterialMap_baseColorTexture(*args) -> "opencascade::handle< Image_Texture > const &":
    r"""
    Return base color texture.

    Parameters
    ----------
    theMat: XCAFDoc_VisMaterial

    Returns
    -------
    opencascade::handle<Image_Texture>

    """
    return _RWGltf.RWGltf_GltfMaterialMap_baseColorTexture(*args)

class RWGltf_GltfOStreamWriter(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Main constructor.

        Parameters
        ----------
        theOStream: rapidjson::OStreamWrapper

        Returns
        -------
        None

        """
        _RWGltf.RWGltf_GltfOStreamWriter_swiginit(self, _RWGltf.new_RWGltf_GltfOStreamWriter(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _RWGltf.delete_RWGltf_GltfOStreamWriter

# Register RWGltf_GltfOStreamWriter in _RWGltf:
_RWGltf.RWGltf_GltfOStreamWriter_swigregister(RWGltf_GltfOStreamWriter)

class RWGltf_GltfPrimArrayData(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    StreamData = property(_RWGltf.RWGltf_GltfPrimArrayData_StreamData_get, _RWGltf.RWGltf_GltfPrimArrayData_StreamData_set)
    StreamUri = property(_RWGltf.RWGltf_GltfPrimArrayData_StreamUri_get, _RWGltf.RWGltf_GltfPrimArrayData_StreamUri_set)
    StreamOffset = property(_RWGltf.RWGltf_GltfPrimArrayData_StreamOffset_get, _RWGltf.RWGltf_GltfPrimArrayData_StreamOffset_set)
    Accessor = property(_RWGltf.RWGltf_GltfPrimArrayData_Accessor_get, _RWGltf.RWGltf_GltfPrimArrayData_Accessor_set)
    Type = property(_RWGltf.RWGltf_GltfPrimArrayData_Type_get, _RWGltf.RWGltf_GltfPrimArrayData_Type_set)

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None
        No available documentation.

        Parameters
        ----------
        theType: RWGltf_GltfArrayType

        Returns
        -------
        None

        """
        _RWGltf.RWGltf_GltfPrimArrayData_swiginit(self, _RWGltf.new_RWGltf_GltfPrimArrayData(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _RWGltf.delete_RWGltf_GltfPrimArrayData

# Register RWGltf_GltfPrimArrayData in _RWGltf:
_RWGltf.RWGltf_GltfPrimArrayData_swigregister(RWGltf_GltfPrimArrayData)

class RWGltf_GltfSceneNodeMap(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Empty constructor.

        Returns
        -------
        None

        """
        _RWGltf.RWGltf_GltfSceneNodeMap_swiginit(self, _RWGltf.new_RWGltf_GltfSceneNodeMap(*args))

    def FindIndex(self, *args) -> "Standard_Integer":
        r"""
        Find index from document node string identifier.

        Parameters
        ----------
        theNodeId: TCollection_AsciiString

        Returns
        -------
        int

        """
        return _RWGltf.RWGltf_GltfSceneNodeMap_FindIndex(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _RWGltf.delete_RWGltf_GltfSceneNodeMap

# Register RWGltf_GltfSceneNodeMap in _RWGltf:
_RWGltf.RWGltf_GltfSceneNodeMap_swigregister(RWGltf_GltfSceneNodeMap)

class RWGltf_MaterialCommon(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    AmbientTexture = property(_RWGltf.RWGltf_MaterialCommon_AmbientTexture_get, _RWGltf.RWGltf_MaterialCommon_AmbientTexture_set)
    DiffuseTexture = property(_RWGltf.RWGltf_MaterialCommon_DiffuseTexture_get, _RWGltf.RWGltf_MaterialCommon_DiffuseTexture_set)
    SpecularTexture = property(_RWGltf.RWGltf_MaterialCommon_SpecularTexture_get, _RWGltf.RWGltf_MaterialCommon_SpecularTexture_set)
    Id = property(_RWGltf.RWGltf_MaterialCommon_Id_get, _RWGltf.RWGltf_MaterialCommon_Id_set)
    Name = property(_RWGltf.RWGltf_MaterialCommon_Name_get, _RWGltf.RWGltf_MaterialCommon_Name_set)
    AmbientColor = property(_RWGltf.RWGltf_MaterialCommon_AmbientColor_get, _RWGltf.RWGltf_MaterialCommon_AmbientColor_set)
    DiffuseColor = property(_RWGltf.RWGltf_MaterialCommon_DiffuseColor_get, _RWGltf.RWGltf_MaterialCommon_DiffuseColor_set)
    SpecularColor = property(_RWGltf.RWGltf_MaterialCommon_SpecularColor_get, _RWGltf.RWGltf_MaterialCommon_SpecularColor_set)
    EmissiveColor = property(_RWGltf.RWGltf_MaterialCommon_EmissiveColor_get, _RWGltf.RWGltf_MaterialCommon_EmissiveColor_set)
    Shininess = property(_RWGltf.RWGltf_MaterialCommon_Shininess_get, _RWGltf.RWGltf_MaterialCommon_Shininess_set)
    Transparency = property(_RWGltf.RWGltf_MaterialCommon_Transparency_get, _RWGltf.RWGltf_MaterialCommon_Transparency_set)

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None

        """
        _RWGltf.RWGltf_MaterialCommon_swiginit(self, _RWGltf.new_RWGltf_MaterialCommon(*args))


    @staticmethod
    def DownCast(t):
      return Handle_RWGltf_MaterialCommon_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _RWGltf.delete_RWGltf_MaterialCommon

# Register RWGltf_MaterialCommon in _RWGltf:
_RWGltf.RWGltf_MaterialCommon_swigregister(RWGltf_MaterialCommon)

class RWGltf_MaterialMetallicRoughness(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    BaseColorTexture = property(_RWGltf.RWGltf_MaterialMetallicRoughness_BaseColorTexture_get, _RWGltf.RWGltf_MaterialMetallicRoughness_BaseColorTexture_set)
    MetallicRoughnessTexture = property(_RWGltf.RWGltf_MaterialMetallicRoughness_MetallicRoughnessTexture_get, _RWGltf.RWGltf_MaterialMetallicRoughness_MetallicRoughnessTexture_set)
    EmissiveTexture = property(_RWGltf.RWGltf_MaterialMetallicRoughness_EmissiveTexture_get, _RWGltf.RWGltf_MaterialMetallicRoughness_EmissiveTexture_set)
    OcclusionTexture = property(_RWGltf.RWGltf_MaterialMetallicRoughness_OcclusionTexture_get, _RWGltf.RWGltf_MaterialMetallicRoughness_OcclusionTexture_set)
    NormalTexture = property(_RWGltf.RWGltf_MaterialMetallicRoughness_NormalTexture_get, _RWGltf.RWGltf_MaterialMetallicRoughness_NormalTexture_set)
    Id = property(_RWGltf.RWGltf_MaterialMetallicRoughness_Id_get, _RWGltf.RWGltf_MaterialMetallicRoughness_Id_set)
    Name = property(_RWGltf.RWGltf_MaterialMetallicRoughness_Name_get, _RWGltf.RWGltf_MaterialMetallicRoughness_Name_set)
    BaseColor = property(_RWGltf.RWGltf_MaterialMetallicRoughness_BaseColor_get, _RWGltf.RWGltf_MaterialMetallicRoughness_BaseColor_set)
    EmissiveFactor = property(_RWGltf.RWGltf_MaterialMetallicRoughness_EmissiveFactor_get, _RWGltf.RWGltf_MaterialMetallicRoughness_EmissiveFactor_set)
    Metallic = property(_RWGltf.RWGltf_MaterialMetallicRoughness_Metallic_get, _RWGltf.RWGltf_MaterialMetallicRoughness_Metallic_set)
    Roughness = property(_RWGltf.RWGltf_MaterialMetallicRoughness_Roughness_get, _RWGltf.RWGltf_MaterialMetallicRoughness_Roughness_set)
    AlphaCutOff = property(_RWGltf.RWGltf_MaterialMetallicRoughness_AlphaCutOff_get, _RWGltf.RWGltf_MaterialMetallicRoughness_AlphaCutOff_set)
    AlphaMode = property(_RWGltf.RWGltf_MaterialMetallicRoughness_AlphaMode_get, _RWGltf.RWGltf_MaterialMetallicRoughness_AlphaMode_set)
    IsDoubleSided = property(_RWGltf.RWGltf_MaterialMetallicRoughness_IsDoubleSided_get, _RWGltf.RWGltf_MaterialMetallicRoughness_IsDoubleSided_set)

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None

        """
        _RWGltf.RWGltf_MaterialMetallicRoughness_swiginit(self, _RWGltf.new_RWGltf_MaterialMetallicRoughness(*args))


    @staticmethod
    def DownCast(t):
      return Handle_RWGltf_MaterialMetallicRoughness_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _RWGltf.delete_RWGltf_MaterialMetallicRoughness

# Register RWGltf_MaterialMetallicRoughness in _RWGltf:
_RWGltf.RWGltf_MaterialMetallicRoughness_swigregister(RWGltf_MaterialMetallicRoughness)

class RWGltf_PrimitiveArrayReader(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def CoordinateSystemConverter(self, *args) -> "RWMesh_CoordinateSystemConverter const &":
        r"""
        Return transformation from gltf to occt coordinate system.

        Returns
        -------
        RWMesh_CoordinateSystemConverter

        """
        return _RWGltf.RWGltf_PrimitiveArrayReader_CoordinateSystemConverter(self, *args)

    def ErrorPrefix(self, *args) -> "TCollection_AsciiString const &":
        r"""
        Return prefix for reporting issues.

        Returns
        -------
        TCollection_AsciiString

        """
        return _RWGltf.RWGltf_PrimitiveArrayReader_ErrorPrefix(self, *args)

    def Load(self, *args) -> "opencascade::handle< Poly_Triangulation >":
        r"""
        Load primitive array.

        Parameters
        ----------
        theMesh: RWGltf_GltfLatePrimitiveArray

        Returns
        -------
        opencascade::handle<Poly_Triangulation>

        """
        return _RWGltf.RWGltf_PrimitiveArrayReader_Load(self, *args)

    def SetCoordinateSystemConverter(self, *args) -> "void":
        r"""
        Set transformation from gltf to occt coordinate system.

        Parameters
        ----------
        theConverter: RWMesh_CoordinateSystemConverter

        Returns
        -------
        None

        """
        return _RWGltf.RWGltf_PrimitiveArrayReader_SetCoordinateSystemConverter(self, *args)

    def SetErrorPrefix(self, *args) -> "void":
        r"""
        Set prefix for reporting issues.

        Parameters
        ----------
        theErrPrefix: TCollection_AsciiString

        Returns
        -------
        None

        """
        return _RWGltf.RWGltf_PrimitiveArrayReader_SetErrorPrefix(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_RWGltf_PrimitiveArrayReader_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _RWGltf.delete_RWGltf_PrimitiveArrayReader

# Register RWGltf_PrimitiveArrayReader in _RWGltf:
_RWGltf.RWGltf_PrimitiveArrayReader_swigregister(RWGltf_PrimitiveArrayReader)

class RWGltf_TriangulationReader(RWGltf_PrimitiveArrayReader):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Empty constructor.

        Returns
        -------
        None

        """
        _RWGltf.RWGltf_TriangulationReader_swiginit(self, _RWGltf.new_RWGltf_TriangulationReader(*args))


    @staticmethod
    def DownCast(t):
      return Handle_RWGltf_TriangulationReader_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _RWGltf.delete_RWGltf_TriangulationReader

# Register RWGltf_TriangulationReader in _RWGltf:
_RWGltf.RWGltf_TriangulationReader_swigregister(RWGltf_TriangulationReader)


@classnotwrapped
class RWGltf_GltfSharedIStream:
	pass






