# CONFIDENTIAL. (C) 2022 Cadence Design Systems, Inc. (Cadence)
# All rights reserved.
# ALL SOFTWARE BELOW IS PROPRIETARY AND CONFIDENTIAL TO CADENCE
# AND IS SUBJECT TO THE FULL PROTECTION OF COPYRIGHT AND TRADE SECRET LAW.
# Copying or modifying this software is strictly prohibited and illegal.
# Using this software without a valid license from Cadence 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 Cadence 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
    import importlib.abc

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

    _oeszmap = libs.OEGetModule('_oeszmap1661')
    return _oeszmap

_oeszmap = 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

OEComponent_Interaction = _oeszmap.OEComponent_Interaction
OEComponent_PSolv = _oeszmap.OEComponent_PSolv
OEComponent_WSolv = _oeszmap.OEComponent_WSolv
OEComponent_VDW = _oeszmap.OEComponent_VDW
OEComponent_ProbeBurial = _oeszmap.OEComponent_ProbeBurial
OEComponent_NumTypes = _oeszmap.OEComponent_NumTypes
OEEnsemble_Interaction = _oeszmap.OEEnsemble_Interaction
OEEnsemble_PSolv = _oeszmap.OEEnsemble_PSolv
OEEnsemble_WSolv = _oeszmap.OEEnsemble_WSolv
OEEnsemble_VDW = _oeszmap.OEEnsemble_VDW
OEEnsemble_ProbeBurial = _oeszmap.OEEnsemble_ProbeBurial
OEEnsemble_InteractionPlusVDW = _oeszmap.OEEnsemble_InteractionPlusVDW
OEEnsemble_OrderParam = _oeszmap.OEEnsemble_OrderParam
OEEnsemble_CalcPoint = _oeszmap.OEEnsemble_CalcPoint
OEEnsemble_Mask = _oeszmap.OEEnsemble_Mask
OEEnsemble_NeutralDiffDeltaH = _oeszmap.OEEnsemble_NeutralDiffDeltaH
OEEnsemble_NeutralDiffTDeltaS = _oeszmap.OEEnsemble_NeutralDiffTDeltaS
OEEnsemble_NeutralDiffDeltaG = _oeszmap.OEEnsemble_NeutralDiffDeltaG
OEEnsemble_NeutralDeltaH = _oeszmap.OEEnsemble_NeutralDeltaH
OEEnsemble_NeutralTDeltaS = _oeszmap.OEEnsemble_NeutralTDeltaS
OEEnsemble_NeutralDeltaG = _oeszmap.OEEnsemble_NeutralDeltaG
OEEnsemble_VacuumDiffDeltaH = _oeszmap.OEEnsemble_VacuumDiffDeltaH
OEEnsemble_VacuumDiffDeltaG = _oeszmap.OEEnsemble_VacuumDiffDeltaG
OEEnsemble_DeltaH = _oeszmap.OEEnsemble_DeltaH
OEEnsemble_TDeltaS = _oeszmap.OEEnsemble_TDeltaS
OEEnsemble_DeltaG = _oeszmap.OEEnsemble_DeltaG
OEEnsemble_NumTypes = _oeszmap.OEEnsemble_NumTypes

OEEnsemble_Default = OEEnsemble_NeutralDiffDeltaG

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

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

    def __init__(self, *args):
        r"""
        __init__(OESzmapEngineOptions self) -> OESzmapEngineOptions
        __init__(OESzmapEngineOptions self, OESzmapEngineOptions rhs) -> OESzmapEngineOptions
        """
        _oeszmap.OESzmapEngineOptions_swiginit(self, _oeszmap.new_OESzmapEngineOptions(*args))

    def SetMaskCutoff(self, cutoff: "double") -> "OESzmap::OESzmapEngineOptions &":
        r"""SetMaskCutoff(OESzmapEngineOptions self, double cutoff) -> OESzmapEngineOptions"""
        return _oeszmap.OESzmapEngineOptions_SetMaskCutoff(self, cutoff)

    def GetMaskCutoff(self) -> "double":
        r"""GetMaskCutoff(OESzmapEngineOptions self) -> double"""
        return _oeszmap.OESzmapEngineOptions_GetMaskCutoff(self)

    def SetProbe(self, numOrientations: "unsigned int") -> "OESzmap::OESzmapEngineOptions &":
        r"""SetProbe(OESzmapEngineOptions self, unsigned int numOrientations) -> OESzmapEngineOptions"""
        return _oeszmap.OESzmapEngineOptions_SetProbe(self, numOrientations)

    def GetProbe(self) -> "OEChem::OEMCMolBase const &":
        r"""GetProbe(OESzmapEngineOptions self) -> OEMCMolBase"""
        return _oeszmap.OESzmapEngineOptions_GetProbe(self)

    def GetProbeMol(self, outputMol: "OEMolBase", orientation: "unsigned int"=0) -> "void":
        r"""GetProbeMol(OESzmapEngineOptions self, OEMolBase outputMol, unsigned int orientation=0)"""
        return _oeszmap.OESzmapEngineOptions_GetProbeMol(self, outputMol, orientation)

    def NumOrientations(self) -> "unsigned int":
        r"""NumOrientations(OESzmapEngineOptions self) -> unsigned int"""
        return _oeszmap.OESzmapEngineOptions_NumOrientations(self)

    def GetProbeName(self) -> "char const *":
        r"""GetProbeName(OESzmapEngineOptions self) -> char const *"""
        return _oeszmap.OESzmapEngineOptions_GetProbeName(self)

# Register OESzmapEngineOptions in _oeszmap:
_oeszmap.OESzmapEngineOptions_swigregister(OESzmapEngineOptions)

class OESzmapEngine(object):
    r"""Proxy of C++ OESzmap::OESzmapEngine class."""

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

    def __init__(self, *args):
        r"""
        __init__(OESzmapEngine self, OESzmapEngineOptions opt=OESzmap::OESzmapEngineOptions()) -> OESzmapEngine
        __init__(OESzmapEngine self, OEMolBase context, OESzmapEngineOptions opt=OESzmap::OESzmapEngineOptions()) -> OESzmapEngine
        __init__(OESzmapEngine self, OESzmapEngine rhs) -> OESzmapEngine
        """
        _oeszmap.OESzmapEngine_swiginit(self, _oeszmap.new_OESzmapEngine(*args))

    def GetOptions(self) -> "OESzmap::OESzmapEngineOptions const &":
        r"""GetOptions(OESzmapEngine self) -> OESzmapEngineOptions"""
        return _oeszmap.OESzmapEngine_GetOptions(self)

    def SetContext(self, context: "OEMolBase") -> "bool":
        r"""SetContext(OESzmapEngine self, OEMolBase context) -> bool"""
        return _oeszmap.OESzmapEngine_SetContext(self, context)

    def GetContext(self) -> "OEChem::OEMolBase const &":
        r"""GetContext(OESzmapEngine self) -> OEMolBase"""
        return _oeszmap.OESzmapEngine_GetContext(self)

    def CheckAtomTypes(self) -> "bool":
        r"""CheckAtomTypes(OESzmapEngine self) -> bool"""
        return _oeszmap.OESzmapEngine_CheckAtomTypes(self)

    def IsValid(self):
      return _oeszmap.OESzmapEngine___nonzero__(self)



# Register OESzmapEngine in _oeszmap:
_oeszmap.OESzmapEngine_swigregister(OESzmapEngine)

class OESzmapResults(object):
    r"""Proxy of C++ OESzmap::OESzmapResults class."""

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

    def __init__(self, *args):
        r"""
        __init__(OESzmapResults self) -> OESzmapResults
        __init__(OESzmapResults self, OESzmapResults rhs) -> OESzmapResults
        """
        _oeszmap.OESzmapResults_swiginit(self, _oeszmap.new_OESzmapResults(*args))

    def IsValid(self):
      return _oeszmap.OESzmapResults___nonzero__(self)



    def Clear(self) -> "void":
        r"""Clear(OESzmapResults self)"""
        return _oeszmap.OESzmapResults_Clear(self)

    def GetEnsembleValue(self, ensembleType: "unsigned int") -> "double":
        r"""GetEnsembleValue(OESzmapResults self, unsigned int ensembleType) -> double"""
        return _oeszmap.OESzmapResults_GetEnsembleValue(self, ensembleType)

    def GetComponent(self, *args) -> "bool":
        r"""
        GetComponent(OESzmapResults self, unsigned int componentType) -> OESystem::OEIterBase< double >
        GetComponent(OESzmapResults self, double * compArray, unsigned int componentType) -> bool
        """
        return _oeszmap.OESzmapResults_GetComponent(self, *args)

    def GetProbabilities(self, *args) -> "bool":
        r"""
        GetProbabilities(OESzmapResults self) -> OESystem::OEIterBase< double >
        GetProbabilities(OESzmapResults self, double * probArray) -> bool
        """
        return _oeszmap.OESzmapResults_GetProbabilities(self, *args)

    def GetProbabilityOrder(self, *args) -> "bool":
        r"""
        GetProbabilityOrder(OESzmapResults self) -> OESystem::OEIterBase< unsigned int >
        GetProbabilityOrder(OESzmapResults self, unsigned int * orderArray) -> bool
        """
        return _oeszmap.OESzmapResults_GetProbabilityOrder(self, *args)

    def PlaceProbeMol(self, outputMol: "OEMolBase", orientation: "unsigned int"=0, annotate: "bool"=True) -> "bool":
        r"""PlaceProbeMol(OESzmapResults self, OEMolBase outputMol, unsigned int orientation=0, bool annotate=True) -> bool"""
        return _oeszmap.OESzmapResults_PlaceProbeMol(self, outputMol, orientation, annotate)

    def PlaceProbeSet(self, *args) -> "double":
        r"""
        PlaceProbeSet(OESzmapResults self, OEMCMolBase probeSet, double probCutoff, bool clear=True) -> double
        PlaceProbeSet(OESzmapResults self, OEMCMolBase probeSet, unsigned int maxConfs=0, bool clear=True) -> double
        """
        return _oeszmap.OESzmapResults_PlaceProbeSet(self, *args)

    def PlaceNewAtom(self, *args) -> "OEChem::OEAtomBase *":
        r"""PlaceNewAtom(OESzmapResults self, OEMolBase mol, unsigned int element=) -> OEAtomBase"""
        return _oeszmap.OESzmapResults_PlaceNewAtom(self, *args)

    def GetCoords(self, *args) -> "bool":
        r"""
        GetCoords(OESzmapResults self, double * xyz) -> bool
        GetCoords(OESzmapResults self, float * xyz) -> bool
        """
        return _oeszmap.OESzmapResults_GetCoords(self, *args)

    def NumOrientations(self) -> "unsigned int":
        r"""NumOrientations(OESzmapResults self) -> unsigned int"""
        return _oeszmap.OESzmapResults_NumOrientations(self)

# Register OESzmapResults in _oeszmap:
_oeszmap.OESzmapResults_swigregister(OESzmapResults)


def OEIsClashing(*args) -> "bool":
    r"""
    OEIsClashing(OESzmapEngine szmap, double const * xyz) -> bool
    OEIsClashing(OESzmapEngine szmap, float const * xyz) -> bool
    """
    return _oeszmap.OEIsClashing(*args)

def OECalcSzmapValue(*args) -> "double":
    r"""
    OECalcSzmapValue(OESzmapEngine szmap, double const * xyz, unsigned int ensembleType=OESzmap::OEEnsemble::Default) -> double
    OECalcSzmapValue(OESzmapEngine szmap, float const * xyz, unsigned int ensembleType=OESzmap::OEEnsemble::Default) -> double
    """
    return _oeszmap.OECalcSzmapValue(*args)

def OECalcSzmapResults(*args) -> "bool":
    r"""
    OECalcSzmapResults(OESzmapResults results, OESzmapEngine szmap, double const * xyz) -> bool
    OECalcSzmapResults(OESzmapResults results, OESzmapEngine szmap, float const * xyz) -> bool
    """
    return _oeszmap.OECalcSzmapResults(*args)

def OEGetEnsembleName(ensembleType: "unsigned int", longName: "bool"=False) -> "char const *":
    r"""OEGetEnsembleName(unsigned int ensembleType, bool longName=False) -> char const"""
    return _oeszmap.OEGetEnsembleName(ensembleType, longName)

def OEGetComponentName(componentType: "unsigned int") -> "char const *":
    r"""OEGetComponentName(unsigned int componentType) -> char const *"""
    return _oeszmap.OEGetComponentName(componentType)
OE_OESZMAP_VERSION = _oeszmap.OE_OESZMAP_VERSION


def OESzmapGetRelease() -> "char const *":
    r"""OESzmapGetRelease() -> char const *"""
    return _oeszmap.OESzmapGetRelease()

def OESzmapGetVersion() -> "unsigned int":
    r"""OESzmapGetVersion() -> unsigned int"""
    return _oeszmap.OESzmapGetVersion()

def OESzmapGetArch() -> "char const *":
    r"""OESzmapGetArch() -> char const *"""
    return _oeszmap.OESzmapGetArch()

def OESzmapGetPlatform() -> "char const *":
    r"""OESzmapGetPlatform() -> char const *"""
    return _oeszmap.OESzmapGetPlatform()

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

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

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


