# CONFIDENTIAL. (C) 2017 OpenEye Scientific Software Inc.
# All rights reserved.
# 
# ALL SOFTWARE BELOW IS PROPRIETARY AND CONFIDENTIAL TO OPENEYE
# SCIENTIFIC SOFTWARE INC., AND IS SUBJECT TO THE FULL PROTECTION OF
# COPYRIGHT AND TRADESECRET LAW.
# Copying or modifying this software is strictly prohibited and illegal.
# Using this software without a valid license from OpenEye is strictly
# prohibited and illegal.  De-obfuscating, de-minimizing, or any other
# attempt to reverse engineer or discover the workings of this software,
# is strictly prohibited. Even if software is exposed or visible, it is
# still proprietary and confidential and the above prohibitions apply.
# This software is NOT "Sample Code". For purposes of customization or
# interoperation with other software you must use Sample Code
# specifically labeled as such.
# Please contact OpenEye at eyesopen.com/legal if you have any questions
# about this warning.


# 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.

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")


def swig_import_helper():
    from os.path import dirname
    import importlib.util

    spec = importlib.machinery.PathFinder().find_spec("_oechem", [dirname(__file__)])

    if spec is None:
        # OpenEye Import Statements
        spec = importlib.machinery.PathFinder().find_spec("libs",[dirname(__file__)])
    libs = importlib.util.module_from_spec(spec)

    import sys
    sys.modules[spec.name] = libs
    spec.loader.exec_module(libs)

    assert not sys.platform.startswith('win')

    _oefastrocs = libs.OEGetModule('_oefastrocs2201')
    return _oefastrocs

_oefastrocs = swig_import_helper()
del swig_import_helper

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__)


import weakref

OEShapeDatabaseType_Shape = _oefastrocs.OEShapeDatabaseType_Shape

OEShapeDatabaseType_Color = _oefastrocs.OEShapeDatabaseType_Color


OEShapeDatabaseType_Combo = OEShapeDatabaseType_Shape|OEShapeDatabaseType_Color

OEShapeDatabaseType_Sitehopper = _oefastrocs.OEShapeDatabaseType_Sitehopper


OEShapeDatabaseType_Default = OEShapeDatabaseType_Combo

OEFastROCSComputeEngine_UNDEFINED = _oefastrocs.OEFastROCSComputeEngine_UNDEFINED

OEFastROCSComputeEngine_CUDA = _oefastrocs.OEFastROCSComputeEngine_CUDA

OEFastROCSComputeEngine_OpenCL = _oefastrocs.OEFastROCSComputeEngine_OpenCL


OEFastROCSComputeEngine_DEFAULT = OEFastROCSComputeEngine_CUDA

OEFastROCSReturnCode_Success = _oefastrocs.OEFastROCSReturnCode_Success

OEFastROCSReturnCode_ErrorInvalidValue = _oefastrocs.OEFastROCSReturnCode_ErrorInvalidValue

OEFastROCSReturnCode_InitializationError = _oefastrocs.OEFastROCSReturnCode_InitializationError

OEFastROCSReturnCode_InsufficientDriver = _oefastrocs.OEFastROCSReturnCode_InsufficientDriver

OEFastROCSReturnCode_NoDevice = _oefastrocs.OEFastROCSReturnCode_NoDevice

OEFastROCSReturnCode_NoDeviceDetected = _oefastrocs.OEFastROCSReturnCode_NoDeviceDetected

OEFastROCSReturnCode_NotPermitted = _oefastrocs.OEFastROCSReturnCode_NotPermitted

OEFastROCSReturnCode_Unknown = _oefastrocs.OEFastROCSReturnCode_Unknown

OEFastROCSMode_FastROCS = _oefastrocs.OEFastROCSMode_FastROCS

OEFastROCSMode_ROCS = _oefastrocs.OEFastROCSMode_ROCS


OEFastROCSMode_Default = OEFastROCSMode_FastROCS

OEShapeSimFuncType_Tanimoto = _oefastrocs.OEShapeSimFuncType_Tanimoto

OEShapeSimFuncType_Tversky = _oefastrocs.OEShapeSimFuncType_Tversky


OEShapeSimFuncType_Default = OEShapeSimFuncType_Tanimoto

OEFastROCSOrientation_Inertial = _oefastrocs.OEFastROCSOrientation_Inertial

OEFastROCSOrientation_AsIs = _oefastrocs.OEFastROCSOrientation_AsIs

OEFastROCSOrientation_Random = _oefastrocs.OEFastROCSOrientation_Random

OEFastROCSOrientation_InertialAtHeavyAtoms = _oefastrocs.OEFastROCSOrientation_InertialAtHeavyAtoms

OEFastROCSOrientation_InertialAtColorAtoms = _oefastrocs.OEFastROCSOrientation_InertialAtColorAtoms

OEFastROCSOrientation_UserInertialStarts = _oefastrocs.OEFastROCSOrientation_UserInertialStarts

OEFastROCSOrientation_Subrocs = _oefastrocs.OEFastROCSOrientation_Subrocs


OEFastROCSOrientation_Default = OEFastROCSOrientation_Inertial

import openeye.oechem as oechem
class OEShapeDatabaseScore(object):
    r"""Proxy of C++ OEFastROCS::OEShapeDatabaseScore class."""

    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"""
        __init__(OEShapeDatabaseScore self, size_t molIdx, unsigned int confIdx, float shapeScore, float colorScore, float const * quat, unsigned int csimFunc=, unsigned int orient=) -> OEShapeDatabaseScore
        __init__(OEShapeDatabaseScore self, size_t molIdx, unsigned int confIdx, float shapeScore, float colorScore, double const * quat, unsigned int csimFunc=, unsigned int orient=) -> OEShapeDatabaseScore
        """
        _oefastrocs.OEShapeDatabaseScore_swiginit(self, _oefastrocs.new_OEShapeDatabaseScore(*args))

    def GetMolIdx(self) -> "size_t":
        r"""GetMolIdx(OEShapeDatabaseScore self) -> size_t"""
        return _oefastrocs.OEShapeDatabaseScore_GetMolIdx(self)

    def GetConfIdx(self) -> "unsigned int":
        r"""GetConfIdx(OEShapeDatabaseScore self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabaseScore_GetConfIdx(self)

    def GetShapeTanimoto(self) -> "float":
        r"""GetShapeTanimoto(OEShapeDatabaseScore self) -> float"""
        return _oefastrocs.OEShapeDatabaseScore_GetShapeTanimoto(self)

    def GetColorTanimoto(self) -> "float":
        r"""GetColorTanimoto(OEShapeDatabaseScore self) -> float"""
        return _oefastrocs.OEShapeDatabaseScore_GetColorTanimoto(self)

    def GetTanimotoCombo(self) -> "float":
        r"""GetTanimotoCombo(OEShapeDatabaseScore self) -> float"""
        return _oefastrocs.OEShapeDatabaseScore_GetTanimotoCombo(self)

    def GetShapeTversky(self) -> "float":
        r"""GetShapeTversky(OEShapeDatabaseScore self) -> float"""
        return _oefastrocs.OEShapeDatabaseScore_GetShapeTversky(self)

    def GetColorTversky(self) -> "float":
        r"""GetColorTversky(OEShapeDatabaseScore self) -> float"""
        return _oefastrocs.OEShapeDatabaseScore_GetColorTversky(self)

    def GetTverskyCombo(self) -> "float":
        r"""GetTverskyCombo(OEShapeDatabaseScore self) -> float"""
        return _oefastrocs.OEShapeDatabaseScore_GetTverskyCombo(self)

    def GetSimFunc(self) -> "unsigned int":
        r"""GetSimFunc(OEShapeDatabaseScore self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabaseScore_GetSimFunc(self)

    def GetQuat(self) -> "float const *":
        r"""GetQuat(OEShapeDatabaseScore self) -> float const *"""
        return _oefastrocs.OEShapeDatabaseScore_GetQuat(self)

    def GetScore(self) -> "float":
        r"""GetScore(OEShapeDatabaseScore self) -> float"""
        return _oefastrocs.OEShapeDatabaseScore_GetScore(self)

    def GetShapeScore(self) -> "float":
        r"""GetShapeScore(OEShapeDatabaseScore self) -> float"""
        return _oefastrocs.OEShapeDatabaseScore_GetShapeScore(self)

    def GetColorScore(self) -> "float":
        r"""GetColorScore(OEShapeDatabaseScore self) -> float"""
        return _oefastrocs.OEShapeDatabaseScore_GetColorScore(self)

    def GetRotMatrix(self, rmat: "float *") -> "bool":
        r"""GetRotMatrix(OEShapeDatabaseScore self, float * rmat) -> bool"""
        return _oefastrocs.OEShapeDatabaseScore_GetRotMatrix(self, rmat)

    def GetTranslation(self, trans: "float *") -> "bool":
        r"""GetTranslation(OEShapeDatabaseScore self, float * trans) -> bool"""
        return _oefastrocs.OEShapeDatabaseScore_GetTranslation(self, trans)

    def Transform(self, mol: "OEMolBase") -> "bool":
        r"""Transform(OEShapeDatabaseScore self, OEMolBase mol) -> bool"""
        return _oefastrocs.OEShapeDatabaseScore_Transform(self, mol)

    def ExtractTransform(self, transform: "OETrans", dbmol: "OEMolBase") -> "bool":
        r"""ExtractTransform(OEShapeDatabaseScore self, OETrans transform, OEMolBase dbmol) -> bool"""
        return _oefastrocs.OEShapeDatabaseScore_ExtractTransform(self, transform, dbmol)
    __swig_destroy__ = _oefastrocs.delete_OEShapeDatabaseScore

# Register OEShapeDatabaseScore in _oefastrocs:
_oefastrocs.OEShapeDatabaseScore_swigregister(OEShapeDatabaseScore)


def GetSWIG_NewPointerObj(*args) -> "PyObject *":
    r"""
    GetSWIG_NewPointerObj(OEAtomBase arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEBondBase arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEMolBase arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEConfBase arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OETransBase arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OENbrs arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEAltLocation arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEAltGroup arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OESequenceAlignment arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OERole arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEResidue arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(std::string const & arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(std::string & arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OERotamer arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OETorsion arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEColor arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEColorStop arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEGroupBase arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEAtomBondSet arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OESubSearch arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEInteractionHintTypeBase arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEInteractionHint arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OESphere arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEReceptorProteinConstraint arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEReceptorConstraintFeature arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEHierResidue arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEHierFragment arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEHierChain arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEPlaceHydrogensMoverNote arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEAnnotation arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEFuzzy arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEShapeDatabaseScore const & arg, bool owned) -> PyObject *
    """
    return _oefastrocs.GetSWIG_NewPointerObj(*args)
class OEShapeDatabasePredicate(object):
    r"""Proxy of C++ OESystem::OEUnaryPredicate< unsigned int > class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    __swig_destroy__ = _oefastrocs.delete_OEShapeDatabasePredicate

    def __call__(self, a: "unsigned int const &") -> "bool":
        r"""__call__(OEShapeDatabasePredicate self, unsigned int const & a) -> bool"""
        return _oefastrocs.OEShapeDatabasePredicate___call__(self, a)

    def CreateCopy(self) -> "OESystem::OEUnaryPredicate< unsigned int >::base_type *":
        r"""CreateCopy(OEShapeDatabasePredicate self) -> OESystem::OEUnaryPredicate< unsigned int >::base_type *"""
        return _oefastrocs.OEShapeDatabasePredicate_CreateCopy(self)

    def CreatePredicateCopy(self) -> "OESystem::OEUnaryPredicate< unsigned int > *":
        r"""CreatePredicateCopy(OEShapeDatabasePredicate self) -> OEShapeDatabasePredicate"""
        return _oefastrocs.OEShapeDatabasePredicate_CreatePredicateCopy(self)

    def __init__(self, *args):
        r"""
        __init__(OEShapeDatabasePredicate self) -> OEShapeDatabasePredicate
        __init__(OEShapeDatabasePredicate self, OEShapeDatabasePredicate arg2) -> OEShapeDatabasePredicate
        """
        if self.__class__ == OEShapeDatabasePredicate:
            _self = None
        else:
            _self = self
        _oefastrocs.OEShapeDatabasePredicate_swiginit(self, _oefastrocs.new_OEShapeDatabasePredicate(_self, *args))
    def __disown__(self):
        self.this.disown()
        _oefastrocs.disown_OEShapeDatabasePredicate(self)
        return weakref.proxy(self)

# Register OEShapeDatabasePredicate in _oefastrocs:
_oefastrocs.OEShapeDatabasePredicate_swigregister(OEShapeDatabasePredicate)

class OEFastROCSHistogram(object):
    r"""Proxy of C++ OEFastROCS::OEFastROCSHistogram class."""

    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"""
        __init__(OEFastROCSHistogram self, size_t numBins=200) -> OEFastROCSHistogram
        __init__(OEFastROCSHistogram self, OEFastROCSHistogram rhs) -> OEFastROCSHistogram
        """
        _oefastrocs.OEFastROCSHistogram_swiginit(self, _oefastrocs.new_OEFastROCSHistogram(*args))

    def Update(self, *args) -> "void":
        r"""
        Update(OEFastROCSHistogram self, OEFastROCSHistogram rhs)
        Update(OEFastROCSHistogram self, OEShapeDatabaseScore score)
        """
        return _oefastrocs.OEFastROCSHistogram_Update(self, *args)

    def GetHistogram(self, frequencies: "OEUIntVector", scoreType: "unsigned int") -> "void":
        r"""GetHistogram(OEFastROCSHistogram self, OEUIntVector frequencies, unsigned int scoreType)"""
        return _oefastrocs.OEFastROCSHistogram_GetHistogram(self, frequencies, scoreType)

    def GetNumBins(self) -> "size_t":
        r"""GetNumBins(OEFastROCSHistogram self) -> size_t"""
        return _oefastrocs.OEFastROCSHistogram_GetNumBins(self)
    __swig_destroy__ = _oefastrocs.delete_OEFastROCSHistogram

# Register OEFastROCSHistogram in _oefastrocs:
_oefastrocs.OEFastROCSHistogram_swigregister(OEFastROCSHistogram)

class OEDBTracerBase(object):
    r"""Proxy of C++ OEFastROCS::OEDBTracerBase class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    __swig_destroy__ = _oefastrocs.delete_OEDBTracerBase

    def SetTotal(self, total: "OEULongLong") -> "void":
        r"""SetTotal(OEDBTracerBase self, OEULongLong total)"""
        return _oefastrocs.OEDBTracerBase_SetTotal(self, total)

    def Update(self, step: "OEULongLong"=1, hist: "OEFastROCSHistogram"=None) -> "void":
        r"""Update(OEDBTracerBase self, OEULongLong step=1, OEFastROCSHistogram hist=None)"""
        return _oefastrocs.OEDBTracerBase_Update(self, step, hist)

    def GetNumBins(self) -> "size_t":
        r"""GetNumBins(OEDBTracerBase self) -> size_t"""
        return _oefastrocs.OEDBTracerBase_GetNumBins(self)

    def __init__(self):
        r"""__init__(OEDBTracerBase self) -> OEDBTracerBase"""
        if self.__class__ == OEDBTracerBase:
            _self = None
        else:
            _self = self
        _oefastrocs.OEDBTracerBase_swiginit(self, _oefastrocs.new_OEDBTracerBase(_self, ))
    def __disown__(self):
        self.this.disown()
        _oefastrocs.disown_OEDBTracerBase(self)
        return weakref.proxy(self)

# Register OEDBTracerBase in _oefastrocs:
_oefastrocs.OEDBTracerBase_swigregister(OEDBTracerBase)

class OEDBTracer(OEDBTracerBase):
    r"""Proxy of C++ OEFastROCS::OEDBTracer class."""

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

    def __init__(self, numBins: "size_t"=0):
        r"""__init__(OEDBTracer self, size_t numBins=0) -> OEDBTracer"""
        _oefastrocs.OEDBTracer_swiginit(self, _oefastrocs.new_OEDBTracer(numBins))
    __swig_destroy__ = _oefastrocs.delete_OEDBTracer

    def SetTotal(self, total: "OEULongLong") -> "void":
        r"""SetTotal(OEDBTracer self, OEULongLong total)"""
        return _oefastrocs.OEDBTracer_SetTotal(self, total)

    def GetTotal(self) -> "OEULongLong":
        r"""GetTotal(OEDBTracer self) -> OEULongLong"""
        return _oefastrocs.OEDBTracer_GetTotal(self)

    def Update(self, step: "OEULongLong"=1, hist: "OEFastROCSHistogram"=None) -> "void":
        r"""Update(OEDBTracer self, OEULongLong step=1, OEFastROCSHistogram hist=None)"""
        return _oefastrocs.OEDBTracer_Update(self, step, hist)

    def GetCounts(self, blocking: "bool"=False) -> "OEULongLong":
        r"""GetCounts(OEDBTracer self, bool blocking=False) -> OEULongLong"""
        return _oefastrocs.OEDBTracer_GetCounts(self, blocking)

    def GetHistogram(self) -> "OEFastROCS::OEFastROCSHistogram":
        r"""GetHistogram(OEDBTracer self) -> OEFastROCSHistogram"""
        return _oefastrocs.OEDBTracer_GetHistogram(self)

    def GetNumBins(self) -> "size_t":
        r"""GetNumBins(OEDBTracer self) -> size_t"""
        return _oefastrocs.OEDBTracer_GetNumBins(self)

# Register OEDBTracer in _oefastrocs:
_oefastrocs.OEDBTracer_swigregister(OEDBTracer)

class OEShapeDatabaseOptions(object):
    r"""Proxy of C++ OEFastROCS::OEShapeDatabaseOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    __swig_destroy__ = _oefastrocs.delete_OEShapeDatabaseOptions

    def __init__(self, *args):
        r"""
        __init__(OEShapeDatabaseOptions self) -> OEShapeDatabaseOptions
        __init__(OEShapeDatabaseOptions self, OEShapeDatabaseOptions arg2) -> OEShapeDatabaseOptions
        """
        _oefastrocs.OEShapeDatabaseOptions_swiginit(self, _oefastrocs.new_OEShapeDatabaseOptions(*args))

    def GetImpl(self, *args) -> "OEFastROCS::OEShapeDatabaseOptionsImpl *":
        r"""
        GetImpl(OEShapeDatabaseOptions self) -> OEFastROCS::OEShapeDatabaseOptionsImpl const
        GetImpl(OEShapeDatabaseOptions self) -> OEFastROCS::OEShapeDatabaseOptionsImpl *
        """
        return _oefastrocs.OEShapeDatabaseOptions_GetImpl(self, *args)

    def SetColorForceFieldType(self, type: "unsigned int") -> "bool":
        r"""SetColorForceFieldType(OEShapeDatabaseOptions self, unsigned int type) -> bool"""
        return _oefastrocs.OEShapeDatabaseOptions_SetColorForceFieldType(self, type)

    def SetColorForceField(self, cff: "OEShape::OEColorForceField const &") -> "bool":
        r"""SetColorForceField(OEShapeDatabaseOptions self, OEShape::OEColorForceField const & cff) -> bool"""
        return _oefastrocs.OEShapeDatabaseOptions_SetColorForceField(self, cff)

    def GetColorForceFieldType(self) -> "unsigned int":
        r"""GetColorForceFieldType(OEShapeDatabaseOptions self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabaseOptions_GetColorForceFieldType(self)

    def SetMaxConfs(self, maxConfs: "unsigned int") -> "void":
        r"""SetMaxConfs(OEShapeDatabaseOptions self, unsigned int maxConfs)"""
        return _oefastrocs.OEShapeDatabaseOptions_SetMaxConfs(self, maxConfs)

    def GetMaxConfs(self) -> "unsigned int":
        r"""GetMaxConfs(OEShapeDatabaseOptions self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabaseOptions_GetMaxConfs(self)

    def SetMaxOverlays(self, maxOverlaysToReturn: "unsigned int") -> "void":
        r"""SetMaxOverlays(OEShapeDatabaseOptions self, unsigned int maxOverlaysToReturn)"""
        return _oefastrocs.OEShapeDatabaseOptions_SetMaxOverlays(self, maxOverlaysToReturn)

    def GetMaxOverlays(self) -> "unsigned int":
        r"""GetMaxOverlays(OEShapeDatabaseOptions self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabaseOptions_GetMaxOverlays(self)

    def SetInitialOrientation(self, orient: "unsigned int") -> "bool":
        r"""SetInitialOrientation(OEShapeDatabaseOptions self, unsigned int orient) -> bool"""
        return _oefastrocs.OEShapeDatabaseOptions_SetInitialOrientation(self, orient)

    def GetInitialOrientation(self) -> "unsigned int":
        r"""GetInitialOrientation(OEShapeDatabaseOptions self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabaseOptions_GetInitialOrientation(self)

    def GetNumStarts(self, *args) -> "unsigned int":
        r"""
        GetNumStarts(OEShapeDatabaseOptions self) -> unsigned int
        GetNumStarts(OEShapeDatabaseOptions self, OEMolBase mol) -> unsigned int
        """
        return _oefastrocs.OEShapeDatabaseOptions_GetNumStarts(self, *args)

    def SetUserStarts(self, startsCoords: "OEFloatVector", numStarts: "unsigned int") -> "bool":
        r"""SetUserStarts(OEShapeDatabaseOptions self, OEFloatVector startsCoords, unsigned int numStarts) -> bool"""
        return _oefastrocs.OEShapeDatabaseOptions_SetUserStarts(self, startsCoords, numStarts)

    def GetUserStarts(self, xyz: "OEFloatVector") -> "bool":
        r"""GetUserStarts(OEShapeDatabaseOptions self, OEFloatVector xyz) -> bool"""
        return _oefastrocs.OEShapeDatabaseOptions_GetUserStarts(self, xyz)

    def ClearUserStarts(self) -> "void":
        r"""ClearUserStarts(OEShapeDatabaseOptions self)"""
        return _oefastrocs.OEShapeDatabaseOptions_ClearUserStarts(self)

    def GetNumUserStarts(self) -> "unsigned int":
        r"""GetNumUserStarts(OEShapeDatabaseOptions self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabaseOptions_GetNumUserStarts(self)

    def GetNumColorAtomStarts(self, mol: "OEMolBase") -> "unsigned int":
        r"""GetNumColorAtomStarts(OEShapeDatabaseOptions self, OEMolBase mol) -> unsigned int"""
        return _oefastrocs.OEShapeDatabaseOptions_GetNumColorAtomStarts(self, mol)

    def GetNumHeavyAtomStarts(self, mol: "OEMolBase") -> "unsigned int":
        r"""GetNumHeavyAtomStarts(OEShapeDatabaseOptions self, OEMolBase mol) -> unsigned int"""
        return _oefastrocs.OEShapeDatabaseOptions_GetNumHeavyAtomStarts(self, mol)

    def SetNumRandomStarts(self, numStarts: "unsigned int") -> "bool":
        r"""SetNumRandomStarts(OEShapeDatabaseOptions self, unsigned int numStarts) -> bool"""
        return _oefastrocs.OEShapeDatabaseOptions_SetNumRandomStarts(self, numStarts)

    def GetNumRandomStarts(self) -> "unsigned int":
        r"""GetNumRandomStarts(OEShapeDatabaseOptions self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabaseOptions_GetNumRandomStarts(self)

    def SetMaxRandomTranslation(self, trans: "float") -> "bool":
        r"""SetMaxRandomTranslation(OEShapeDatabaseOptions self, float trans) -> bool"""
        return _oefastrocs.OEShapeDatabaseOptions_SetMaxRandomTranslation(self, trans)

    def GetMaxRandomTranslation(self) -> "float":
        r"""GetMaxRandomTranslation(OEShapeDatabaseOptions self) -> float"""
        return _oefastrocs.OEShapeDatabaseOptions_GetMaxRandomTranslation(self)

    def SetRandomSeed(self, seed: "unsigned int") -> "bool":
        r"""SetRandomSeed(OEShapeDatabaseOptions self, unsigned int seed) -> bool"""
        return _oefastrocs.OEShapeDatabaseOptions_SetRandomSeed(self, seed)

    def GetRandomSeed(self) -> "unsigned int":
        r"""GetRandomSeed(OEShapeDatabaseOptions self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabaseOptions_GetRandomSeed(self)

    def SetNumInertialStarts(self, numInertialStarts: "unsigned int") -> "void":
        r"""SetNumInertialStarts(OEShapeDatabaseOptions self, unsigned int numInertialStarts)"""
        return _oefastrocs.OEShapeDatabaseOptions_SetNumInertialStarts(self, numInertialStarts)

    def GetNumInertialStarts(self) -> "unsigned int":
        r"""GetNumInertialStarts(OEShapeDatabaseOptions self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabaseOptions_GetNumInertialStarts(self)

    def SetLimit(self, limit: "unsigned int") -> "void":
        r"""SetLimit(OEShapeDatabaseOptions self, unsigned int limit)"""
        return _oefastrocs.OEShapeDatabaseOptions_SetLimit(self, limit)

    def GetLimit(self) -> "unsigned int":
        r"""GetLimit(OEShapeDatabaseOptions self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabaseOptions_GetLimit(self)

    def SetSimFunc(self, type: "unsigned int") -> "void":
        r"""SetSimFunc(OEShapeDatabaseOptions self, unsigned int type)"""
        return _oefastrocs.OEShapeDatabaseOptions_SetSimFunc(self, type)

    def GetSimFunc(self) -> "unsigned int":
        r"""GetSimFunc(OEShapeDatabaseOptions self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabaseOptions_GetSimFunc(self)

    def SetTverskyCoeffs(self, alpha: "float"=0.95, beta: "float"=0.05) -> "void":
        r"""SetTverskyCoeffs(OEShapeDatabaseOptions self, float alpha=0.95, float beta=0.05)"""
        return _oefastrocs.OEShapeDatabaseOptions_SetTverskyCoeffs(self, alpha, beta)

    def GetTverskyAlpha(self) -> "float":
        r"""GetTverskyAlpha(OEShapeDatabaseOptions self) -> float"""
        return _oefastrocs.OEShapeDatabaseOptions_GetTverskyAlpha(self)

    def GetTverskyBeta(self) -> "float":
        r"""GetTverskyBeta(OEShapeDatabaseOptions self) -> float"""
        return _oefastrocs.OEShapeDatabaseOptions_GetTverskyBeta(self)

    def SetScoreType(self, type: "unsigned int") -> "void":
        r"""SetScoreType(OEShapeDatabaseOptions self, unsigned int type)"""
        return _oefastrocs.OEShapeDatabaseOptions_SetScoreType(self, type)

    def GetScoreType(self) -> "unsigned int":
        r"""GetScoreType(OEShapeDatabaseOptions self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabaseOptions_GetScoreType(self)

    def HasCutoff(self) -> "bool":
        r"""HasCutoff(OEShapeDatabaseOptions self) -> bool"""
        return _oefastrocs.OEShapeDatabaseOptions_HasCutoff(self)

    def SetCutoff(self, arg2: "float") -> "void":
        r"""SetCutoff(OEShapeDatabaseOptions self, float arg2)"""
        return _oefastrocs.OEShapeDatabaseOptions_SetCutoff(self, arg2)

    def GetCutoff(self) -> "float":
        r"""GetCutoff(OEShapeDatabaseOptions self) -> float"""
        return _oefastrocs.OEShapeDatabaseOptions_GetCutoff(self)

    def HasCutoffGT(self) -> "bool":
        r"""HasCutoffGT(OEShapeDatabaseOptions self) -> bool"""
        return _oefastrocs.OEShapeDatabaseOptions_HasCutoffGT(self)

    def SetCutoffGT(self, arg2: "float") -> "void":
        r"""SetCutoffGT(OEShapeDatabaseOptions self, float arg2)"""
        return _oefastrocs.OEShapeDatabaseOptions_SetCutoffGT(self, arg2)

    def GetCutoffGT(self) -> "float":
        r"""GetCutoffGT(OEShapeDatabaseOptions self) -> float"""
        return _oefastrocs.OEShapeDatabaseOptions_GetCutoffGT(self)

    def HasCutoffLT(self) -> "bool":
        r"""HasCutoffLT(OEShapeDatabaseOptions self) -> bool"""
        return _oefastrocs.OEShapeDatabaseOptions_HasCutoffLT(self)

    def SetCutoffLT(self, arg2: "float") -> "void":
        r"""SetCutoffLT(OEShapeDatabaseOptions self, float arg2)"""
        return _oefastrocs.OEShapeDatabaseOptions_SetCutoffLT(self, arg2)

    def GetCutoffLT(self) -> "float":
        r"""GetCutoffLT(OEShapeDatabaseOptions self) -> float"""
        return _oefastrocs.OEShapeDatabaseOptions_GetCutoffLT(self)

    def ClearCutoff(self) -> "void":
        r"""ClearCutoff(OEShapeDatabaseOptions self)"""
        return _oefastrocs.OEShapeDatabaseOptions_ClearCutoff(self)

    def SetTracer(self, tracer: "OEDBTracerBase") -> "void":
        r"""SetTracer(OEShapeDatabaseOptions self, OEDBTracerBase tracer)"""
        return _oefastrocs.OEShapeDatabaseOptions_SetTracer(self, tracer)

    def ClearTracer(self) -> "void":
        r"""ClearTracer(OEShapeDatabaseOptions self)"""
        return _oefastrocs.OEShapeDatabaseOptions_ClearTracer(self)

    def GetTracer(self) -> "OEFastROCS::OEDBTracerBase *":
        r"""GetTracer(OEShapeDatabaseOptions self) -> OEDBTracerBase"""
        return _oefastrocs.OEShapeDatabaseOptions_GetTracer(self)

    def SetSortLargest(self, sortLargest: "bool") -> "void":
        r"""SetSortLargest(OEShapeDatabaseOptions self, bool sortLargest)"""
        return _oefastrocs.OEShapeDatabaseOptions_SetSortLargest(self, sortLargest)

    def GetSortLargest(self) -> "bool":
        r"""GetSortLargest(OEShapeDatabaseOptions self) -> bool"""
        return _oefastrocs.OEShapeDatabaseOptions_GetSortLargest(self)

    def SetColorOptimization(self, colorOptimization: "bool") -> "void":
        r"""SetColorOptimization(OEShapeDatabaseOptions self, bool colorOptimization)"""
        return _oefastrocs.OEShapeDatabaseOptions_SetColorOptimization(self, colorOptimization)

    def GetColorOptimization(self) -> "bool":
        r"""GetColorOptimization(OEShapeDatabaseOptions self) -> bool"""
        return _oefastrocs.OEShapeDatabaseOptions_GetColorOptimization(self)

    def SetFastROCSMode(self, FRMode: "unsigned int") -> "void":
        r"""SetFastROCSMode(OEShapeDatabaseOptions self, unsigned int FRMode)"""
        return _oefastrocs.OEShapeDatabaseOptions_SetFastROCSMode(self, FRMode)

    def GetFastROCSMode(self) -> "unsigned int":
        r"""GetFastROCSMode(OEShapeDatabaseOptions self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabaseOptions_GetFastROCSMode(self)

# Register OEShapeDatabaseOptions in _oefastrocs:
_oefastrocs.OEShapeDatabaseOptions_swigregister(OEShapeDatabaseOptions)

class OEShapeDatabase(object):
    r"""Proxy of C++ OEFastROCS::OEShapeDatabase class."""

    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"""
        __init__(OEShapeDatabase self, unsigned int dbtype=, unsigned int cfftype=OEShape::OEColorFFType::OEDefault) -> OEShapeDatabase
        __init__(OEShapeDatabase self, OEShape::OEColorForceField const & cff, unsigned int dbtype=) -> OEShapeDatabase
        """
        _oefastrocs.OEShapeDatabase_swiginit(self, _oefastrocs.new_OEShapeDatabase(*args))

    def Open(self, *args) -> "bool":
        r"""
        Open(OEShapeDatabase self, OEMolDatabase moldb, unsigned int const orient=) -> bool
        Open(OEShapeDatabase self, OEMolDatabase moldb, OEThreadedDots dots, unsigned int const orient=) -> bool
        """
        return _oefastrocs.OEShapeDatabase_Open(self, *args)

    def SetNumOpenThreads(self, numThrds: "unsigned int") -> "void":
        r"""SetNumOpenThreads(OEShapeDatabase self, unsigned int numThrds)"""
        return _oefastrocs.OEShapeDatabase_SetNumOpenThreads(self, numThrds)

    def GetNumOpenThreads(self) -> "unsigned int":
        r"""GetNumOpenThreads(OEShapeDatabase self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabase_GetNumOpenThreads(self)
    __swig_destroy__ = _oefastrocs.delete_OEShapeDatabase

    def AddMol(self, *args) -> "unsigned int":
        r"""AddMol(OEShapeDatabase self, OEMCMolBase mol, unsigned int const orient=) -> unsigned int"""
        return _oefastrocs.OEShapeDatabase_AddMol(self, *args)

    def NumConfs(self) -> "unsigned int":
        r"""NumConfs(OEShapeDatabase self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabase_NumConfs(self)

    def SetNumDevices(self, ndevices: "unsigned int") -> "void":
        r"""SetNumDevices(OEShapeDatabase self, unsigned int ndevices)"""
        return _oefastrocs.OEShapeDatabase_SetNumDevices(self, ndevices)

    def GetNumDevices(self) -> "unsigned int":
        r"""GetNumDevices(OEShapeDatabase self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabase_GetNumDevices(self)

    def GetMaxNumDevices(self) -> "unsigned int":
        r"""GetMaxNumDevices(OEShapeDatabase self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabase_GetMaxNumDevices(self)

    def SetHostToDeviceStrategy(self, strat: "unsigned int") -> "void":
        r"""SetHostToDeviceStrategy(OEShapeDatabase self, unsigned int strat)"""
        return _oefastrocs.OEShapeDatabase_SetHostToDeviceStrategy(self, strat)

    def GetHostToDeviceStrategy(self) -> "unsigned int":
        r"""GetHostToDeviceStrategy(OEShapeDatabase self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabase_GetHostToDeviceStrategy(self)

    def SetDeviceToHostStrategy(self, strat: "unsigned int") -> "void":
        r"""SetDeviceToHostStrategy(OEShapeDatabase self, unsigned int strat)"""
        return _oefastrocs.OEShapeDatabase_SetDeviceToHostStrategy(self, strat)

    def GetDeviceToHostStrategy(self) -> "unsigned int":
        r"""GetDeviceToHostStrategy(OEShapeDatabase self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabase_GetDeviceToHostStrategy(self)

    def SetMaxOptIterations(self, maxIter: "unsigned int") -> "void":
        r"""SetMaxOptIterations(OEShapeDatabase self, unsigned int maxIter)"""
        return _oefastrocs.OEShapeDatabase_SetMaxOptIterations(self, maxIter)

    def GetMaxOptIterations(self) -> "unsigned int":
        r"""GetMaxOptIterations(OEShapeDatabase self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabase_GetMaxOptIterations(self)

    def SetNumThreadsPerDevice(self, numThrds: "unsigned int") -> "void":
        r"""SetNumThreadsPerDevice(OEShapeDatabase self, unsigned int numThrds)"""
        return _oefastrocs.OEShapeDatabase_SetNumThreadsPerDevice(self, numThrds)

    def GetNumThreadsPerDevice(self) -> "unsigned int":
        r"""GetNumThreadsPerDevice(OEShapeDatabase self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabase_GetNumThreadsPerDevice(self)

    def SetShapeGridSpacing(self, gridSpacing: "float") -> "bool":
        r"""SetShapeGridSpacing(OEShapeDatabase self, float gridSpacing) -> bool"""
        return _oefastrocs.OEShapeDatabase_SetShapeGridSpacing(self, gridSpacing)

    def GetShapeGridSpacing(self) -> "float":
        r"""GetShapeGridSpacing(OEShapeDatabase self) -> float"""
        return _oefastrocs.OEShapeDatabase_GetShapeGridSpacing(self)

    def SetColorGridSpacing(self, gridSpacing: "float") -> "bool":
        r"""SetColorGridSpacing(OEShapeDatabase self, float gridSpacing) -> bool"""
        return _oefastrocs.OEShapeDatabase_SetColorGridSpacing(self, gridSpacing)

    def GetColorGridSpacing(self) -> "float":
        r"""GetColorGridSpacing(OEShapeDatabase self) -> float"""
        return _oefastrocs.OEShapeDatabase_GetColorGridSpacing(self)

    def GetDatabaseType(self) -> "unsigned int":
        r"""GetDatabaseType(OEShapeDatabase self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabase_GetDatabaseType(self)

    def GetColorForceFieldType(self) -> "unsigned int":
        r"""GetColorForceFieldType(OEShapeDatabase self) -> unsigned int"""
        return _oefastrocs.OEShapeDatabase_GetColorForceFieldType(self)

    def GetScores(self, *args) -> "OESystem::OEIterBase< OEFastROCS::OEShapeDatabaseScore > *":
        r"""
        GetScores(OEShapeDatabase self, OEMolBase query, OEShapeDatabaseOptions options=OEFastROCS::OEShapeDatabaseOptions()) -> OESystem::OEIterBase< OEFastROCS::OEShapeDatabaseScore >
        GetScores(OEShapeDatabase self, OEShape::OEShapeQueryPublic const & shapeQry, OEShapeDatabaseOptions options=OEFastROCS::OEShapeDatabaseOptions()) -> OESystem::OEIterBase< OEFastROCS::OEShapeDatabaseScore >
        GetScores(OEShapeDatabase self, OEShape::OEShapeQuery const & shapeQry, OEShapeDatabaseOptions options=OEFastROCS::OEShapeDatabaseOptions()) -> OESystem::OEIterBase< OEFastROCS::OEShapeDatabaseScore >
        """
        return _oefastrocs.OEShapeDatabase_GetScores(self, *args)

    def GetSortedScores(self, *args) -> "OESystem::OEIterBase< OEFastROCS::OEShapeDatabaseScore > *":
        r"""
        GetSortedScores(OEShapeDatabase self, OEMolBase query, unsigned int limit=0) -> OESystem::OEIterBase< OEFastROCS::OEShapeDatabaseScore >
        GetSortedScores(OEShapeDatabase self, OEMolBase query, OEShapeDatabaseOptions options) -> OESystem::OEIterBase< OEFastROCS::OEShapeDatabaseScore >
        GetSortedScores(OEShapeDatabase self, OEShape::OEShapeQueryPublic const & shapeQry, OEShapeDatabaseOptions options=OEFastROCS::OEShapeDatabaseOptions()) -> OESystem::OEIterBase< OEFastROCS::OEShapeDatabaseScore >
        GetSortedScores(OEShapeDatabase self, OEShape::OEShapeQuery const & shapeQry, OEShapeDatabaseOptions options=OEFastROCS::OEShapeDatabaseOptions()) -> OESystem::OEIterBase< OEFastROCS::OEShapeDatabaseScore >
        """
        return _oefastrocs.OEShapeDatabase_GetSortedScores(self, *args)

    def PrintMemoryUsage(self, *args) -> "void":
        r"""
        PrintMemoryUsage(OEShapeDatabase self, oeostream os)
        PrintMemoryUsage(OEShapeDatabase self)
        """
        return _oefastrocs.OEShapeDatabase_PrintMemoryUsage(self, *args)

# Register OEShapeDatabase in _oefastrocs:
_oefastrocs.OEShapeDatabase_swigregister(OEShapeDatabase)


def OEFastROCSCacheStuff(mol: "OEMCMolBase", cff: "OEShape::OEColorForceField const &") -> "bool":
    r"""OEFastROCSCacheStuff(OEMCMolBase mol, OEShape::OEColorForceField const & cff) -> bool"""
    return _oefastrocs.OEFastROCSCacheStuff(mol, cff)

def OEPrepareFastROCSMol(*args) -> "bool":
    r"""
    OEPrepareFastROCSMol(OEMCMolBase mol, OEShape::OEColorForceField const & cff) -> bool
    OEPrepareFastROCSMol(OEMCMolBase mol) -> bool
    """
    return _oefastrocs.OEPrepareFastROCSMol(*args)

def OEFastROCSIsGPUReady() -> "bool":
    r"""OEFastROCSIsGPUReady() -> bool"""
    return _oefastrocs.OEFastROCSIsGPUReady()

def OEFastROCSGPUStatus() -> "unsigned int":
    r"""OEFastROCSGPUStatus() -> unsigned int"""
    return _oefastrocs.OEFastROCSGPUStatus()

def OEFastROCSGetNumDevices() -> "size_t":
    r"""OEFastROCSGetNumDevices() -> size_t"""
    return _oefastrocs.OEFastROCSGetNumDevices()

def OEIsDatabasePrepared(*args) -> "bool":
    r"""
    OEIsDatabasePrepared(OEMolBase mol) -> bool
    OEIsDatabasePrepared(OEMolDatabase moldb) -> bool
    """
    return _oefastrocs.OEIsDatabasePrepared(*args)

def OESetCoordsToInertialFrame(mol: "OEMolBase") -> "bool":
    r"""OESetCoordsToInertialFrame(OEMolBase mol) -> bool"""
    return _oefastrocs.OESetCoordsToInertialFrame(mol)

def OEShapeDatabasePrep(*args) -> "bool":
    r"""OEShapeDatabasePrep(std::string filein, std::string fileout, unsigned int cfftype=OEShape::OEColorFFType::OEDefault) -> bool"""
    return _oefastrocs.OEShapeDatabasePrep(*args)
class OEShapeDatabaseScoreIter(object):
    r"""Proxy of C++ OESystem::OEIter< OEFastROCS::OEShapeDatabaseScore > class."""

    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"""
        __init__(OEShapeDatabaseScoreIter self) -> OEShapeDatabaseScoreIter
        __init__(OEShapeDatabaseScoreIter self, OEShapeDatabaseScoreIter rhs) -> OEShapeDatabaseScoreIter
        __init__(OEShapeDatabaseScoreIter self, OESystem::OEIterBase< OEFastROCS::OEShapeDatabaseScore > * rhs) -> OEShapeDatabaseScoreIter
        __init__(OEShapeDatabaseScoreIter self, OESystem::OEIterBase< OESystem::OEIter< OEFastROCS::OEShapeDatabaseScore >::NonConstA > * rhs) -> OEShapeDatabaseScoreIter
        """
        _oefastrocs.OEShapeDatabaseScoreIter_swiginit(self, _oefastrocs.new_OEShapeDatabaseScoreIter(*args))
    __swig_destroy__ = _oefastrocs.delete_OEShapeDatabaseScoreIter

    def Copy(self) -> "OESystem::OEIterBase< OEFastROCS::OEShapeDatabaseScore > *":
        r"""Copy(OEShapeDatabaseScoreIter self) -> OESystem::OEIterBase< OEFastROCS::OEShapeDatabaseScore > *"""
        return _oefastrocs.OEShapeDatabaseScoreIter_Copy(self)

    def Push(self, *args) -> "void":
        r"""
        Push(OEShapeDatabaseScoreIter self, OESystem::OEIterBase< OEFastROCS::OEShapeDatabaseScore > * ib)
        Push(OEShapeDatabaseScoreIter self, OEShapeDatabaseScoreIter iter)
        """
        return _oefastrocs.OEShapeDatabaseScoreIter_Push(self, *args)

    def Sort(self, sort_criterion: "OESystem::OEBinaryPredicate< OEFastROCS::OEShapeDatabaseScore,OEFastROCS::OEShapeDatabaseScore > const &") -> "void":
        r"""Sort(OEShapeDatabaseScoreIter self, OESystem::OEBinaryPredicate< OEFastROCS::OEShapeDatabaseScore,OEFastROCS::OEShapeDatabaseScore > const & sort_criterion)"""
        return _oefastrocs.OEShapeDatabaseScoreIter_Sort(self, sort_criterion)

    def ToFirst(self) -> "OESystem::OEIter< OEFastROCS::OEShapeDatabaseScore > &":
        r"""ToFirst(OEShapeDatabaseScoreIter self) -> OEShapeDatabaseScoreIter"""
        return _oefastrocs.OEShapeDatabaseScoreIter_ToFirst(self)

    def ToLast(self) -> "OESystem::OEIter< OEFastROCS::OEShapeDatabaseScore > &":
        r"""ToLast(OEShapeDatabaseScoreIter self) -> OEShapeDatabaseScoreIter"""
        return _oefastrocs.OEShapeDatabaseScoreIter_ToLast(self)

    def __ref__(self) -> "OEFastROCS::OEShapeDatabaseScore &":
        r"""__ref__(OEShapeDatabaseScoreIter self) -> OEShapeDatabaseScore"""
        return _oefastrocs.OEShapeDatabaseScoreIter___ref__(self)

    def IsValid(self):
      return _oefastrocs.OEShapeDatabaseScoreIter___nonzero__(self)



    def __iter__(self):
        while self.IsValid():
            ret = self.Target()
            ret._itr = self
            yield ret
            self.Next()



    def next(self) -> "PyObject *":
        r"""next(OEShapeDatabaseScoreIter self) -> PyObject *"""
        return _oefastrocs.OEShapeDatabaseScoreIter_next(self)

    def Target(self) -> "OEFastROCS::OEShapeDatabaseScore &":
        r"""Target(OEShapeDatabaseScoreIter self) -> OEShapeDatabaseScore"""
        return _oefastrocs.OEShapeDatabaseScoreIter_Target(self)

    def Next(self, *args) -> "OESystem::OEIter< OEFastROCS::OEShapeDatabaseScore > &":
        r"""
        Next(OEShapeDatabaseScoreIter self) -> OEShapeDatabaseScoreIter
        Next(OEShapeDatabaseScoreIter self, int i) -> OEShapeDatabaseScoreIter
        """
        return _oefastrocs.OEShapeDatabaseScoreIter_Next(self, *args)

    def Prev(self, *args) -> "OESystem::OEIter< OEFastROCS::OEShapeDatabaseScore > &":
        r"""
        Prev(OEShapeDatabaseScoreIter self) -> OEShapeDatabaseScoreIter
        Prev(OEShapeDatabaseScoreIter self, int i) -> OEShapeDatabaseScoreIter
        """
        return _oefastrocs.OEShapeDatabaseScoreIter_Prev(self, *args)

# Register OEShapeDatabaseScoreIter in _oefastrocs:
_oefastrocs.OEShapeDatabaseScoreIter_swigregister(OEShapeDatabaseScoreIter)

OE_OEFASTROCS_VERSION = _oefastrocs.OE_OEFASTROCS_VERSION


def OEFastROCSGetRelease() -> "char const *":
    r"""OEFastROCSGetRelease() -> char const *"""
    return _oefastrocs.OEFastROCSGetRelease()

def OEFastROCSGetVersion() -> "unsigned int":
    r"""OEFastROCSGetVersion() -> unsigned int"""
    return _oefastrocs.OEFastROCSGetVersion()

def OEFastROCSGetArch() -> "char const *":
    r"""OEFastROCSGetArch() -> char const *"""
    return _oefastrocs.OEFastROCSGetArch()

def OEFastROCSGetPlatform() -> "char const *":
    r"""OEFastROCSGetPlatform() -> char const *"""
    return _oefastrocs.OEFastROCSGetPlatform()

def OEFastROCSIsLicensed(feature: "char const *"=None, expdate: "unsigned int *"=None) -> "bool":
    r"""OEFastROCSIsLicensed(char const * feature=None, unsigned int * expdate=None) -> bool"""
    return _oefastrocs.OEFastROCSIsLicensed(feature, expdate)

def OEFastROCSGetLicensee(*args) -> "std::string":
    r"""
    OEFastROCSGetLicensee(std::string & licensee) -> bool
    OEFastROCSGetLicensee() -> std::string
    """
    return _oefastrocs.OEFastROCSGetLicensee(*args)

def OEFastROCSGetSite(*args) -> "std::string":
    r"""
    OEFastROCSGetSite(std::string & site) -> bool
    OEFastROCSGetSite() -> std::string
    """
    return _oefastrocs.OEFastROCSGetSite(*args)


