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

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

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


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):
    """Proxy of C++ OESzmap::OESzmapEngineOptions 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__ = _oeszmap.delete_OESzmapEngineOptions
    __del__ = lambda self: None

    def __init__(self, *args):
        """
        __init__(OESzmap::OESzmapEngineOptions self) -> OESzmapEngineOptions
        __init__(OESzmap::OESzmapEngineOptions self, OESzmapEngineOptions rhs) -> OESzmapEngineOptions
        """
        this = _oeszmap.new_OESzmapEngineOptions(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

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


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


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


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


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


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


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

OESzmapEngineOptions_swigregister = _oeszmap.OESzmapEngineOptions_swigregister
OESzmapEngineOptions_swigregister(OESzmapEngineOptions)

class OESzmapEngine(object):
    """Proxy of C++ OESzmap::OESzmapEngine 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__ = _oeszmap.delete_OESzmapEngine
    __del__ = lambda self: None

    def __init__(self, *args):
        """
        __init__(OESzmap::OESzmapEngine self, OESzmapEngineOptions opt) -> OESzmapEngine
        __init__(OESzmap::OESzmapEngine self) -> OESzmapEngine
        __init__(OESzmap::OESzmapEngine self, OEMolBase context, OESzmapEngineOptions opt) -> OESzmapEngine
        __init__(OESzmap::OESzmapEngine self, OEMolBase context) -> OESzmapEngine
        __init__(OESzmap::OESzmapEngine self, OESzmapEngine rhs) -> OESzmapEngine
        """
        this = _oeszmap.new_OESzmapEngine(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

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


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


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


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


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


OESzmapEngine_swigregister = _oeszmap.OESzmapEngine_swigregister
OESzmapEngine_swigregister(OESzmapEngine)

class OESzmapResults(object):
    """Proxy of C++ OESzmap::OESzmapResults 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__ = _oeszmap.delete_OESzmapResults
    __del__ = lambda self: None

    def __init__(self, *args):
        """
        __init__(OESzmap::OESzmapResults self) -> OESzmapResults
        __init__(OESzmap::OESzmapResults self, OESzmapResults rhs) -> OESzmapResults
        """
        this = _oeszmap.new_OESzmapResults(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

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



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


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


    def GetComponent(self, *args) -> "bool":
        """
        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":
        """
        GetProbabilities(OESzmapResults self) -> OESystem::OEIterBase< double >
        GetProbabilities(OESzmapResults self, double * probArray) -> bool
        """
        return _oeszmap.OESzmapResults_GetProbabilities(self, *args)


    def GetProbabilityOrder(self, *args) -> "bool":
        """
        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":
        """
        PlaceProbeMol(OESzmapResults self, OEMolBase outputMol, unsigned int orientation=0, bool annotate=True) -> bool
        PlaceProbeMol(OESzmapResults self, OEMolBase outputMol, unsigned int orientation=0) -> bool
        PlaceProbeMol(OESzmapResults self, OEMolBase outputMol) -> bool
        """
        return _oeszmap.OESzmapResults_PlaceProbeMol(self, outputMol, orientation, annotate)


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


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


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


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

OESzmapResults_swigregister = _oeszmap.OESzmapResults_swigregister
OESzmapResults_swigregister(OESzmapResults)


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

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

def OECalcSzmapResults(*args) -> "bool":
    """
    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 *":
    """
    OEGetEnsembleName(unsigned int ensembleType, bool longName=False) -> char const
    OEGetEnsembleName(unsigned int ensembleType) -> char const *
    """
    return _oeszmap.OEGetEnsembleName(ensembleType, longName)

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

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

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

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

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

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

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

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


