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

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('_oefastrocs2005')
    return _oefastrocs

_oefastrocs = swig_import_helper()
del swig_import_helper
del _swig_python_version_info

try:
    _swig_property = property
except NameError:
    pass  # Python < 2.2 doesn't have 'property'.

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_setattr_nondynamic(self, class_type, name, value, static=1):
    if (name == "thisown"):
        return self.this.own(value)
    if (name == "this"):
        if type(value).__name__ == 'SwigPyObject':
            self.__dict__[name] = value
            return
    method = class_type.__swig_setmethods__.get(name, None)
    if method:
        return method(self, value)
    if (not static):
        object.__setattr__(self, name, value)
    else:
        raise AttributeError("You cannot add attributes to %s" % self)


def _swig_setattr(self, class_type, name, value):
    return _swig_setattr_nondynamic(self, class_type, name, value, 0)


def _swig_getattr(self, class_type, name):
    if (name == "thisown"):
        return self.this.own()
    method = class_type.__swig_getmethods__.get(name, None)
    if method:
        return method(self)
    raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name))


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_method(set):
    def set_attr(self, name, value):
        if (name == "thisown"):
            return self.this.own(value)
        if hasattr(self, name) or (name == "this"):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add attributes to %s" % self)
    return set_attr


try:
    import weakref
    weakref_proxy = weakref.proxy
except __builtin__.Exception:
    weakref_proxy = lambda x: x


OEShapeDatabaseType_Shape = _oefastrocs.OEShapeDatabaseType_Shape
OEShapeDatabaseType_Color = _oefastrocs.OEShapeDatabaseType_Color

OEShapeDatabaseType_Combo = OEShapeDatabaseType_Shape|OEShapeDatabaseType_Color


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):
    """Proxy of C++ OEFastROCS::OEShapeDatabaseScore class."""

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

    def __init__(self, *args):
        """
        __init__(OEFastROCS::OEShapeDatabaseScore self, size_t molIdx, unsigned int confIdx, float shapeScore, float colorScore, float const * quat, unsigned int csimFunc, unsigned int orient) -> OEShapeDatabaseScore
        __init__(OEFastROCS::OEShapeDatabaseScore self, size_t molIdx, unsigned int confIdx, float shapeScore, float colorScore, float const * quat, unsigned int csimFunc) -> OEShapeDatabaseScore
        __init__(OEFastROCS::OEShapeDatabaseScore self, size_t molIdx, unsigned int confIdx, float shapeScore, float colorScore, float const * quat) -> OEShapeDatabaseScore
        __init__(OEFastROCS::OEShapeDatabaseScore self, size_t molIdx, unsigned int confIdx, float shapeScore, float colorScore, double const * quat, unsigned int csimFunc, unsigned int orient) -> OEShapeDatabaseScore
        __init__(OEFastROCS::OEShapeDatabaseScore self, size_t molIdx, unsigned int confIdx, float shapeScore, float colorScore, double const * quat, unsigned int csimFunc) -> OEShapeDatabaseScore
        __init__(OEFastROCS::OEShapeDatabaseScore self, size_t molIdx, unsigned int confIdx, float shapeScore, float colorScore, double const * quat) -> OEShapeDatabaseScore
        """
        this = _oefastrocs.new_OEShapeDatabaseScore(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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

    __swig_destroy__ = _oefastrocs.delete_OEShapeDatabaseScore
    __del__ = lambda self: None
OEShapeDatabaseScore_swigregister = _oefastrocs.OEShapeDatabaseScore_swigregister
OEShapeDatabaseScore_swigregister(OEShapeDatabaseScore)


def GetSWIG_NewPointerObj(*args) -> "PyObject *":
    """
    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(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):
    """Proxy of C++ OESystem::OEUnaryPredicate<(unsigned int)> class."""

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

    def __init__(self):
        """__init__(OESystem::OEUnaryPredicate<(unsigned int)> self) -> OEShapeDatabasePredicate"""
        if self.__class__ == OEShapeDatabasePredicate:
            _self = None
        else:
            _self = self
        this = _oefastrocs.new_OEShapeDatabasePredicate(_self, )
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _oefastrocs.delete_OEShapeDatabasePredicate
    __del__ = lambda self: None

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


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


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

    def __disown__(self):
        self.this.disown()
        _oefastrocs.disown_OEShapeDatabasePredicate(self)
        return weakref_proxy(self)
OEShapeDatabasePredicate_swigregister = _oefastrocs.OEShapeDatabasePredicate_swigregister
OEShapeDatabasePredicate_swigregister(OEShapeDatabasePredicate)

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

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

    def __init__(self, *args):
        """
        __init__(OEFastROCS::OEFastROCSHistogram self, size_t numBins=200) -> OEFastROCSHistogram
        __init__(OEFastROCS::OEFastROCSHistogram self) -> OEFastROCSHistogram
        __init__(OEFastROCS::OEFastROCSHistogram self, OEFastROCSHistogram rhs) -> OEFastROCSHistogram
        """
        this = _oefastrocs.new_OEFastROCSHistogram(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def Update(self, *args) -> "void":
        """
        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":
        """GetHistogram(OEFastROCSHistogram self, OEUIntVector frequencies, unsigned int scoreType)"""
        return _oefastrocs.OEFastROCSHistogram_GetHistogram(self, frequencies, scoreType)


    def GetNumBins(self) -> "size_t":
        """GetNumBins(OEFastROCSHistogram self) -> size_t"""
        return _oefastrocs.OEFastROCSHistogram_GetNumBins(self)

    __swig_destroy__ = _oefastrocs.delete_OEFastROCSHistogram
    __del__ = lambda self: None
OEFastROCSHistogram_swigregister = _oefastrocs.OEFastROCSHistogram_swigregister
OEFastROCSHistogram_swigregister(OEFastROCSHistogram)

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

    thisown = _swig_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
    __del__ = lambda self: None

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


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


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


    def __init__(self):
        """__init__(OEFastROCS::OEDBTracerBase self) -> OEDBTracerBase"""
        if self.__class__ == OEDBTracerBase:
            _self = None
        else:
            _self = self
        this = _oefastrocs.new_OEDBTracerBase(_self, )
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    def __disown__(self):
        self.this.disown()
        _oefastrocs.disown_OEDBTracerBase(self)
        return weakref_proxy(self)
OEDBTracerBase_swigregister = _oefastrocs.OEDBTracerBase_swigregister
OEDBTracerBase_swigregister(OEDBTracerBase)

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

    thisown = _swig_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):
        """
        __init__(OEFastROCS::OEDBTracer self, size_t numBins=0) -> OEDBTracer
        __init__(OEFastROCS::OEDBTracer self) -> OEDBTracer
        """
        this = _oefastrocs.new_OEDBTracer(numBins)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _oefastrocs.delete_OEDBTracer
    __del__ = lambda self: None

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


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


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


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


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


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

OEDBTracer_swigregister = _oefastrocs.OEDBTracer_swigregister
OEDBTracer_swigregister(OEDBTracer)

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

    thisown = _swig_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
    __del__ = lambda self: None

    def __init__(self, *args):
        """
        __init__(OEFastROCS::OEShapeDatabaseOptions self) -> OEShapeDatabaseOptions
        __init__(OEFastROCS::OEShapeDatabaseOptions self, OEShapeDatabaseOptions arg2) -> OEShapeDatabaseOptions
        """
        this = _oefastrocs.new_OEShapeDatabaseOptions(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

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


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


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


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


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


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


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


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


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


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


    def GetNumStarts(self, *args) -> "unsigned int":
        """
        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":
        """SetUserStarts(OEShapeDatabaseOptions self, OEFloatVector startsCoords, unsigned int numStarts) -> bool"""
        return _oefastrocs.OEShapeDatabaseOptions_SetUserStarts(self, startsCoords, numStarts)


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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

OEShapeDatabaseOptions_swigregister = _oefastrocs.OEShapeDatabaseOptions_swigregister
OEShapeDatabaseOptions_swigregister(OEShapeDatabaseOptions)

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

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

    def __init__(self, *args):
        """
        __init__(OEFastROCS::OEShapeDatabase self, unsigned int dbtype, unsigned int cfftype) -> OEShapeDatabase
        __init__(OEFastROCS::OEShapeDatabase self, unsigned int dbtype) -> OEShapeDatabase
        __init__(OEFastROCS::OEShapeDatabase self) -> OEShapeDatabase
        __init__(OEFastROCS::OEShapeDatabase self, OEShape::OEColorForceField const & cff) -> OEShapeDatabase
        """
        this = _oefastrocs.new_OEShapeDatabase(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

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


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


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

    __swig_destroy__ = _oefastrocs.delete_OEShapeDatabase
    __del__ = lambda self: None

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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

OEShapeDatabase_swigregister = _oefastrocs.OEShapeDatabase_swigregister
OEShapeDatabase_swigregister(OEShapeDatabase)


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

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

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

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

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

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

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

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

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

    def __init__(self, *args):
        """
        __init__(OESystem::OEIter<(OEFastROCS::OEShapeDatabaseScore)> self) -> OEShapeDatabaseScoreIter
        __init__(OESystem::OEIter<(OEFastROCS::OEShapeDatabaseScore)> self, OEShapeDatabaseScoreIter rhs) -> OEShapeDatabaseScoreIter
        __init__(OESystem::OEIter<(OEFastROCS::OEShapeDatabaseScore)> self, OESystem::OEIterBase< OEFastROCS::OEShapeDatabaseScore > * rhs) -> OEShapeDatabaseScoreIter
        __init__(OESystem::OEIter<(OEFastROCS::OEShapeDatabaseScore)> self, OESystem::OEIterBase< OESystem::OEIter< OEFastROCS::OEShapeDatabaseScore >::NonConstA > * rhs) -> OEShapeDatabaseScoreIter
        """
        this = _oefastrocs.new_OEShapeDatabaseScoreIter(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _oefastrocs.delete_OEShapeDatabaseScoreIter
    __del__ = lambda self: None

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


    def Push(self, *args) -> "void":
        """
        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":
        """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 > &":
        """ToFirst(OEShapeDatabaseScoreIter self) -> OEShapeDatabaseScoreIter"""
        return _oefastrocs.OEShapeDatabaseScoreIter_ToFirst(self)


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


    def __ref__(self) -> "OEFastROCS::OEShapeDatabaseScore &":
        """__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 *":
        """next(OEShapeDatabaseScoreIter self) -> PyObject *"""
        return _oefastrocs.OEShapeDatabaseScoreIter_next(self)


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


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


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

OEShapeDatabaseScoreIter_swigregister = _oefastrocs.OEShapeDatabaseScoreIter_swigregister
OEShapeDatabaseScoreIter_swigregister(OEShapeDatabaseScoreIter)

OE_OEFASTROCS_VERSION = _oefastrocs.OE_OEFASTROCS_VERSION

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

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

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

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

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

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

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


