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

    _oezap = libs.OEGetModule('_oezap2451')
    return _oezap

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

import openeye.oechem as oechem
OEAreaMethod_Undefined = _oezap.OEAreaMethod_Undefined

OEAreaMethod_Gaussian = _oezap.OEAreaMethod_Gaussian

OEAreaMethod_Discrete = _oezap.OEAreaMethod_Discrete


OEAreaMethod_Default = OEAreaMethod_Gaussian

OEZapDielectricModel_Gaussian = _oezap.OEZapDielectricModel_Gaussian

OEZapDielectricModel_Molecular = _oezap.OEZapDielectricModel_Molecular


OEZapDielectricModel_Default = OEZapDielectricModel_Gaussian

class OESimpleBindResultsIter(object):
    r"""Proxy of C++ OESystem::OEIterBase< OEPB::OESimpleBindResults > class."""

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

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

    def Copy(self) -> "OESystem::OEIterBase< OEPB::OESimpleBindResults > *":
        r"""Copy(OESimpleBindResultsIter self) -> OESimpleBindResultsIter"""
        return _oezap.OESimpleBindResultsIter_Copy(self)

    def Push(self, ib: "OESimpleBindResultsIter") -> "OESystem::OEIterBase< OEPB::OESimpleBindResults > *":
        r"""Push(OESimpleBindResultsIter self, OESimpleBindResultsIter ib) -> OESimpleBindResultsIter"""
        return _oezap.OESimpleBindResultsIter_Push(self, ib)

    def ToFirst(self) -> "OESystem::OEIterBase< OEPB::OESimpleBindResults > &":
        r"""ToFirst(OESimpleBindResultsIter self) -> OESimpleBindResultsIter"""
        return _oezap.OESimpleBindResultsIter_ToFirst(self)

    def ToLast(self) -> "OESystem::OEIterBase< OEPB::OESimpleBindResults > &":
        r"""ToLast(OESimpleBindResultsIter self) -> OESimpleBindResultsIter"""
        return _oezap.OESimpleBindResultsIter_ToLast(self)

    def __ref__(self) -> "OEPB::OESimpleBindResults &":
        r"""__ref__(OESimpleBindResultsIter self) -> OESimpleBindResults"""
        return _oezap.OESimpleBindResultsIter___ref__(self)

    def IsValid(self):
      return _oezap.OESimpleBindResultsIter___nonzero__(self)



# Register OESimpleBindResultsIter in _oezap:
_oezap.OESimpleBindResultsIter_swigregister(OESimpleBindResultsIter)

class OEBindResultsIter(object):
    r"""Proxy of C++ OESystem::OEIterBase< OEPB::OEBindResults > class."""

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

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

    def Copy(self) -> "OESystem::OEIterBase< OEPB::OEBindResults > *":
        r"""Copy(OEBindResultsIter self) -> OEBindResultsIter"""
        return _oezap.OEBindResultsIter_Copy(self)

    def Push(self, ib: "OEBindResultsIter") -> "OESystem::OEIterBase< OEPB::OEBindResults > *":
        r"""Push(OEBindResultsIter self, OEBindResultsIter ib) -> OEBindResultsIter"""
        return _oezap.OEBindResultsIter_Push(self, ib)

    def ToFirst(self) -> "OESystem::OEIterBase< OEPB::OEBindResults > &":
        r"""ToFirst(OEBindResultsIter self) -> OEBindResultsIter"""
        return _oezap.OEBindResultsIter_ToFirst(self)

    def ToLast(self) -> "OESystem::OEIterBase< OEPB::OEBindResults > &":
        r"""ToLast(OEBindResultsIter self) -> OEBindResultsIter"""
        return _oezap.OEBindResultsIter_ToLast(self)

    def __ref__(self) -> "OEPB::OEBindResults &":
        r"""__ref__(OEBindResultsIter self) -> OEBindResults"""
        return _oezap.OEBindResultsIter___ref__(self)

    def IsValid(self):
      return _oezap.OEBindResultsIter___nonzero__(self)



# Register OEBindResultsIter in _oezap:
_oezap.OEBindResultsIter_swigregister(OEBindResultsIter)

class OESimpleBindResults(object):
    r"""Proxy of C++ OEPB::OESimpleBindResults class."""

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

    def GetUnboundProteinZapEnergy(self) -> "float":
        r"""GetUnboundProteinZapEnergy(OESimpleBindResults self) -> float"""
        return _oezap.OESimpleBindResults_GetUnboundProteinZapEnergy(self)

    def GetUnboundLigandZapEnergy(self) -> "float":
        r"""GetUnboundLigandZapEnergy(OESimpleBindResults self) -> float"""
        return _oezap.OESimpleBindResults_GetUnboundLigandZapEnergy(self)

    def GetBoundProteinZapEnergy(self) -> "float":
        r"""GetBoundProteinZapEnergy(OESimpleBindResults self) -> float"""
        return _oezap.OESimpleBindResults_GetBoundProteinZapEnergy(self)

    def GetBoundLigandZapEnergy(self) -> "float":
        r"""GetBoundLigandZapEnergy(OESimpleBindResults self) -> float"""
        return _oezap.OESimpleBindResults_GetBoundLigandZapEnergy(self)

    def GetComplexZapEnergy(self) -> "float":
        r"""GetComplexZapEnergy(OESimpleBindResults self) -> float"""
        return _oezap.OESimpleBindResults_GetComplexZapEnergy(self)

    def GetZapEnergy(self) -> "float":
        r"""GetZapEnergy(OESimpleBindResults self) -> float"""
        return _oezap.OESimpleBindResults_GetZapEnergy(self)

    def GetUnboundProteinAreaEnergy(self) -> "float":
        r"""GetUnboundProteinAreaEnergy(OESimpleBindResults self) -> float"""
        return _oezap.OESimpleBindResults_GetUnboundProteinAreaEnergy(self)

    def GetUnboundLigandAreaEnergy(self) -> "float":
        r"""GetUnboundLigandAreaEnergy(OESimpleBindResults self) -> float"""
        return _oezap.OESimpleBindResults_GetUnboundLigandAreaEnergy(self)

    def GetBoundProteinAreaEnergy(self) -> "float":
        r"""GetBoundProteinAreaEnergy(OESimpleBindResults self) -> float"""
        return _oezap.OESimpleBindResults_GetBoundProteinAreaEnergy(self)

    def GetBoundLigandAreaEnergy(self) -> "float":
        r"""GetBoundLigandAreaEnergy(OESimpleBindResults self) -> float"""
        return _oezap.OESimpleBindResults_GetBoundLigandAreaEnergy(self)

    def GetComplexAreaEnergy(self) -> "float":
        r"""GetComplexAreaEnergy(OESimpleBindResults self) -> float"""
        return _oezap.OESimpleBindResults_GetComplexAreaEnergy(self)

    def GetBuriedAreaEnergy(self) -> "float":
        r"""GetBuriedAreaEnergy(OESimpleBindResults self) -> float"""
        return _oezap.OESimpleBindResults_GetBuriedAreaEnergy(self)

    def GetBindingEnergy(self) -> "float":
        r"""GetBindingEnergy(OESimpleBindResults self) -> float"""
        return _oezap.OESimpleBindResults_GetBindingEnergy(self)

    def GetUnboundProteinArea(self) -> "float":
        r"""GetUnboundProteinArea(OESimpleBindResults self) -> float"""
        return _oezap.OESimpleBindResults_GetUnboundProteinArea(self)

    def GetUnboundLigandArea(self) -> "float":
        r"""GetUnboundLigandArea(OESimpleBindResults self) -> float"""
        return _oezap.OESimpleBindResults_GetUnboundLigandArea(self)

    def GetBoundProteinArea(self) -> "float":
        r"""GetBoundProteinArea(OESimpleBindResults self) -> float"""
        return _oezap.OESimpleBindResults_GetBoundProteinArea(self)

    def GetBoundLigandArea(self) -> "float":
        r"""GetBoundLigandArea(OESimpleBindResults self) -> float"""
        return _oezap.OESimpleBindResults_GetBoundLigandArea(self)

    def GetComplexArea(self) -> "float":
        r"""GetComplexArea(OESimpleBindResults self) -> float"""
        return _oezap.OESimpleBindResults_GetComplexArea(self)

    def GetBuriedArea(self) -> "float":
        r"""GetBuriedArea(OESimpleBindResults self) -> float"""
        return _oezap.OESimpleBindResults_GetBuriedArea(self)

    def GetConf(self, *args) -> "OEChem::OEConfBase const *":
        r"""
        GetConf(OESimpleBindResults self) -> OEConfBase
        GetConf(OESimpleBindResults self) -> OEConfBase
        """
        return _oezap.OESimpleBindResults_GetConf(self, *args)

    def Print(self, *args) -> "void":
        r"""
        Print(OESimpleBindResults self, oeostream ofs)
        Print(OESimpleBindResults self, OEErrorHandler log)
        """
        return _oezap.OESimpleBindResults_Print(self, *args)

    def __init__(self, *args):
        r"""
        __init__(OESimpleBindResults self) -> OESimpleBindResults
        __init__(OESimpleBindResults self, OESimpleBindResults arg2) -> OESimpleBindResults
        """
        _oezap.OESimpleBindResults_swiginit(self, _oezap.new_OESimpleBindResults(*args))
    __swig_destroy__ = _oezap.delete_OESimpleBindResults

# Register OESimpleBindResults in _oezap:
_oezap.OESimpleBindResults_swigregister(OESimpleBindResults)

class OEBindResults(OESimpleBindResults):
    r"""Proxy of C++ OEPB::OEBindResults class."""

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

    def Print(self, *args) -> "void":
        r"""
        Print(OEBindResults self, oeostream ofs)
        Print(OEBindResults self, OEErrorHandler log)
        """
        return _oezap.OEBindResults_Print(self, *args)

    def GetUnboundProteinCoulombEnergy(self) -> "float":
        r"""GetUnboundProteinCoulombEnergy(OEBindResults self) -> float"""
        return _oezap.OEBindResults_GetUnboundProteinCoulombEnergy(self)

    def GetUnboundLigandCoulombEnergy(self) -> "float":
        r"""GetUnboundLigandCoulombEnergy(OEBindResults self) -> float"""
        return _oezap.OEBindResults_GetUnboundLigandCoulombEnergy(self)

    def GetBoundProteinCoulombEnergy(self) -> "float":
        r"""GetBoundProteinCoulombEnergy(OEBindResults self) -> float"""
        return _oezap.OEBindResults_GetBoundProteinCoulombEnergy(self)

    def GetBoundLigandCoulombEnergy(self) -> "float":
        r"""GetBoundLigandCoulombEnergy(OEBindResults self) -> float"""
        return _oezap.OEBindResults_GetBoundLigandCoulombEnergy(self)

    def GetComplexCoulombEnergy(self) -> "float":
        r"""GetComplexCoulombEnergy(OEBindResults self) -> float"""
        return _oezap.OEBindResults_GetComplexCoulombEnergy(self)

    def GetCoulombEnergy(self) -> "float":
        r"""GetCoulombEnergy(OEBindResults self) -> float"""
        return _oezap.OEBindResults_GetCoulombEnergy(self)

    def GetAnalyticCoulombicBindingEnergy(self) -> "float":
        r"""GetAnalyticCoulombicBindingEnergy(OEBindResults self) -> float"""
        return _oezap.OEBindResults_GetAnalyticCoulombicBindingEnergy(self)

    def GetProteinDesolvationEnergy(self) -> "float":
        r"""GetProteinDesolvationEnergy(OEBindResults self) -> float"""
        return _oezap.OEBindResults_GetProteinDesolvationEnergy(self)

    def GetLigandDesolvationEnergy(self) -> "float":
        r"""GetLigandDesolvationEnergy(OEBindResults self) -> float"""
        return _oezap.OEBindResults_GetLigandDesolvationEnergy(self)

    def GetDesolvationEnergy(self) -> "float":
        r"""GetDesolvationEnergy(OEBindResults self) -> float"""
        return _oezap.OEBindResults_GetDesolvationEnergy(self)

    def __init__(self, *args):
        r"""
        __init__(OEBindResults self) -> OEBindResults
        __init__(OEBindResults self, OEBindResults arg2) -> OEBindResults
        """
        _oezap.OEBindResults_swiginit(self, _oezap.new_OEBindResults(*args))
    __swig_destroy__ = _oezap.delete_OEBindResults

# Register OEBindResults in _oezap:
_oezap.OEBindResults_swigregister(OEBindResults)

class OEBind(object):
    r"""Proxy of C++ OEPB::OEBind 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__(OEBind self) -> OEBind
        __init__(OEBind self, OEMolBase protein) -> OEBind
        __init__(OEBind self, OEBind rhs) -> OEBind
        """
        _oezap.OEBind_swiginit(self, _oezap.new_OEBind(*args))
    __swig_destroy__ = _oezap.delete_OEBind

    def SetProtein(self, protein: "OEMolBase") -> "bool":
        r"""SetProtein(OEBind self, OEMolBase protein) -> bool"""
        return _oezap.OEBind_SetProtein(self, protein)

    def SimpleBind(self, *args) -> "bool":
        r"""
        SimpleBind(OEBind self, OEMCMolBase ligand) -> OESimpleBindResultsIter
        SimpleBind(OEBind self, OEMolBase ligand, OESimpleBindResults results) -> bool
        """
        return _oezap.OEBind_SimpleBind(self, *args)

    def Bind(self, *args) -> "bool":
        r"""
        Bind(OEBind self, OEMCMolBase ligand) -> OEBindResultsIter
        Bind(OEBind self, OEMolBase ligand, OEBindResults results) -> bool
        """
        return _oezap.OEBind_Bind(self, *args)

    def GetZap(self, *args) -> "OEPB::OEZap const &":
        r"""
        GetZap(OEBind self) -> OEZap
        GetZap(OEBind self) -> OEZap
        """
        return _oezap.OEBind_GetZap(self, *args)

    def SetZap(self, zap: "OEZap") -> "bool":
        r"""SetZap(OEBind self, OEZap zap) -> bool"""
        return _oezap.OEBind_SetZap(self, zap)

# Register OEBind in _oezap:
_oezap.OEBind_swigregister(OEBind)


def OEZapBind(*args) -> "bool":
    r"""
    OEZapBind(OEMolBase protein, OEMolBase ligand, OESimpleBindResults results) -> bool
    OEZapBind(OEMolBase protein, OEMolBase ligand, OEBindResults results) -> bool
    """
    return _oezap.OEZapBind(*args)
class OEZap(object):
    r"""Proxy of C++ OEPB::OEZap 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__(OEZap self) -> OEZap
        __init__(OEZap self, OEZap rhs) -> OEZap
        """
        _oezap.OEZap_swiginit(self, _oezap.new_OEZap(*args))
    __swig_destroy__ = _oezap.delete_OEZap

    def SetMolecule(self, mol: "OEMolBase") -> "bool":
        r"""SetMolecule(OEZap self, OEMolBase mol) -> bool"""
        return _oezap.OEZap_SetMolecule(self, mol)

    def GetMolecule(self) -> "OEChem::OEMolBase const *":
        r"""GetMolecule(OEZap self) -> OEMolBase"""
        return _oezap.OEZap_GetMolecule(self)

    def SetFocusTarget(self, mol: "OEMolBase") -> "bool":
        r"""SetFocusTarget(OEZap self, OEMolBase mol) -> bool"""
        return _oezap.OEZap_SetFocusTarget(self, mol)

    def GetFocusTarget(self) -> "OEChem::OEMolBase const *":
        r"""GetFocusTarget(OEZap self) -> OEMolBase"""
        return _oezap.OEZap_GetFocusTarget(self)

    def IsFocusTargetSet(self) -> "bool":
        r"""IsFocusTargetSet(OEZap self) -> bool"""
        return _oezap.OEZap_IsFocusTargetSet(self)

    def ClearFocusTarget(self) -> "void":
        r"""ClearFocusTarget(OEZap self)"""
        return _oezap.OEZap_ClearFocusTarget(self)

    def CalcSolvationEnergy(self) -> "float":
        r"""CalcSolvationEnergy(OEZap self) -> float"""
        return _oezap.OEZap_CalcSolvationEnergy(self)

    def CalcPotentialGrid(self, grid: "OESystem::OEScalarGrid &") -> "bool":
        r"""CalcPotentialGrid(OEZap self, OESystem::OEScalarGrid & grid) -> bool"""
        return _oezap.OEZap_CalcPotentialGrid(self, grid)

    def CalcAtomPotentials(self, pot: "float *", no_grid: "bool"=False) -> "bool":
        r"""CalcAtomPotentials(OEZap self, float * pot, bool no_grid=False) -> bool"""
        return _oezap.OEZap_CalcAtomPotentials(self, pot, no_grid)

    def CalcForces(self, forces: "float *") -> "bool":
        r"""CalcForces(OEZap self, float * forces) -> bool"""
        return _oezap.OEZap_CalcForces(self, forces)

    def SetInnerDielectric(self, epsin: "float") -> "bool":
        r"""SetInnerDielectric(OEZap self, float epsin) -> bool"""
        return _oezap.OEZap_SetInnerDielectric(self, epsin)

    def SetOuterDielectric(self, epsout: "float") -> "bool":
        r"""SetOuterDielectric(OEZap self, float epsout) -> bool"""
        return _oezap.OEZap_SetOuterDielectric(self, epsout)

    def SetSaltConcentration(self, conc: "float") -> "bool":
        r"""SetSaltConcentration(OEZap self, float conc) -> bool"""
        return _oezap.OEZap_SetSaltConcentration(self, conc)

    def SetProbeRadius(self, radius: "float") -> "bool":
        r"""SetProbeRadius(OEZap self, float radius) -> bool"""
        return _oezap.OEZap_SetProbeRadius(self, radius)

    def SetError(self, zaperr: "float") -> "bool":
        r"""SetError(OEZap self, float zaperr) -> bool"""
        return _oezap.OEZap_SetError(self, zaperr)

    def SetIterations(self, iters: "unsigned int") -> "bool":
        r"""SetIterations(OEZap self, unsigned int iters) -> bool"""
        return _oezap.OEZap_SetIterations(self, iters)

    def SetDielectricModel(self, model: "unsigned int") -> "bool":
        r"""SetDielectricModel(OEZap self, unsigned int model) -> bool"""
        return _oezap.OEZap_SetDielectricModel(self, model)

    def SetVerbose(self, verbose: "bool") -> "void":
        r"""SetVerbose(OEZap self, bool verbose)"""
        return _oezap.OEZap_SetVerbose(self, verbose)

    def GetInnerDielectric(self) -> "float":
        r"""GetInnerDielectric(OEZap self) -> float"""
        return _oezap.OEZap_GetInnerDielectric(self)

    def GetOuterDielectric(self) -> "float":
        r"""GetOuterDielectric(OEZap self) -> float"""
        return _oezap.OEZap_GetOuterDielectric(self)

    def GetSaltConcentration(self) -> "float":
        r"""GetSaltConcentration(OEZap self) -> float"""
        return _oezap.OEZap_GetSaltConcentration(self)

    def GetProbeRadius(self) -> "float":
        r"""GetProbeRadius(OEZap self) -> float"""
        return _oezap.OEZap_GetProbeRadius(self)

    def GetError(self) -> "float":
        r"""GetError(OEZap self) -> float"""
        return _oezap.OEZap_GetError(self)

    def GetIterations(self) -> "unsigned int":
        r"""GetIterations(OEZap self) -> unsigned int"""
        return _oezap.OEZap_GetIterations(self)

    def GetDielectricModel(self) -> "unsigned int":
        r"""GetDielectricModel(OEZap self) -> unsigned int"""
        return _oezap.OEZap_GetDielectricModel(self)

    def GetVerbose(self) -> "bool":
        r"""GetVerbose(OEZap self) -> bool"""
        return _oezap.OEZap_GetVerbose(self)

    def SetGridSpacing(self, spacing: "float") -> "bool":
        r"""SetGridSpacing(OEZap self, float spacing) -> bool"""
        return _oezap.OEZap_SetGridSpacing(self, spacing)

    def SetBoundarySpacing(self, spacing: "float") -> "bool":
        r"""SetBoundarySpacing(OEZap self, float spacing) -> bool"""
        return _oezap.OEZap_SetBoundarySpacing(self, spacing)

    def GetGridSpacing(self) -> "float":
        r"""GetGridSpacing(OEZap self) -> float"""
        return _oezap.OEZap_GetGridSpacing(self)

    def GetBoundarySpacing(self) -> "float":
        r"""GetBoundarySpacing(OEZap self) -> float"""
        return _oezap.OEZap_GetBoundarySpacing(self)

# Register OEZap in _oezap:
_oezap.OEZap_swigregister(OEZap)


def OECoulombicSelfEnergy(mol: "OEMolBase", D: "float") -> "float":
    r"""OECoulombicSelfEnergy(OEMolBase mol, float D) -> float"""
    return _oezap.OECoulombicSelfEnergy(mol, D)

def OECoulombicAtomPotentials(mol: "OEMolBase", D: "float", apot: "float *") -> "bool":
    r"""OECoulombicAtomPotentials(OEMolBase mol, float D, float * apot) -> bool"""
    return _oezap.OECoulombicAtomPotentials(mol, D, apot)

def OECalculateCoulombicBinding(protein: "OEMolBase", ligand: "OEMolBase", dielectric: "float") -> "float":
    r"""OECalculateCoulombicBinding(OEMolBase protein, OEMolBase ligand, float dielectric) -> float"""
    return _oezap.OECalculateCoulombicBinding(protein, ligand, dielectric)
class OEArea(object):
    r"""Proxy of C++ OEPB::OEArea 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__(OEArea self) -> OEArea
        __init__(OEArea self, OEArea arg2) -> OEArea
        """
        _oezap.OEArea_swiginit(self, _oezap.new_OEArea(*args))
    __swig_destroy__ = _oezap.delete_OEArea

    def GetArea(self, *args) -> "bool":
        r"""
        GetArea(OEArea self, OEMolBase mol) -> float
        GetArea(OEArea self, OEMolBase mol, float * atomArea) -> bool
        """
        return _oezap.OEArea_GetArea(self, *args)

    def SetMethod(self, method: "unsigned int const") -> "bool":
        r"""SetMethod(OEArea self, unsigned int const method) -> bool"""
        return _oezap.OEArea_SetMethod(self, method)

    def GetMethod(self) -> "unsigned int":
        r"""GetMethod(OEArea self) -> unsigned int"""
        return _oezap.OEArea_GetMethod(self)

    def SetUseHydrogens(self, state: "bool") -> "bool":
        r"""SetUseHydrogens(OEArea self, bool state) -> bool"""
        return _oezap.OEArea_SetUseHydrogens(self, state)

    def GetUseHydrogens(self) -> "bool":
        r"""GetUseHydrogens(OEArea self) -> bool"""
        return _oezap.OEArea_GetUseHydrogens(self)

# Register OEArea in _oezap:
_oezap.OEArea_swigregister(OEArea)

class OEET(object):
    r"""Proxy of C++ OEPB::OEET 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__(OEET self, float dielectric=80.0) -> OEET
        __init__(OEET self, OEET rhs) -> OEET
        """
        _oezap.OEET_swiginit(self, _oezap.new_OEET(*args))
    __swig_destroy__ = _oezap.delete_OEET

    def SetRefMol(self, mol: "OEMolBase") -> "bool":
        r"""SetRefMol(OEET self, OEMolBase mol) -> bool"""
        return _oezap.OEET_SetRefMol(self, mol)

    def Tanimoto(self, mol: "OEMolBase") -> "float":
        r"""Tanimoto(OEET self, OEMolBase mol) -> float"""
        return _oezap.OEET_Tanimoto(self, mol)

    def SetDielectric(self, d: "float") -> "void":
        r"""SetDielectric(OEET self, float d)"""
        return _oezap.OEET_SetDielectric(self, d)

    def SetInnerDielectric(self, d: "float") -> "void":
        r"""SetInnerDielectric(OEET self, float d)"""
        return _oezap.OEET_SetInnerDielectric(self, d)

    def SetSaltConcentration(self, conc: "float") -> "void":
        r"""SetSaltConcentration(OEET self, float conc)"""
        return _oezap.OEET_SetSaltConcentration(self, conc)

    def SetInnerMask(self, f: "float") -> "void":
        r"""SetInnerMask(OEET self, float f)"""
        return _oezap.OEET_SetInnerMask(self, f)

    def SetOuterMask(self, f: "float") -> "void":
        r"""SetOuterMask(OEET self, float f)"""
        return _oezap.OEET_SetOuterMask(self, f)

    def SetJoin(self, j: "bool") -> "void":
        r"""SetJoin(OEET self, bool j)"""
        return _oezap.OEET_SetJoin(self, j)

    def SetGridSpacing(self, f: "float") -> "void":
        r"""SetGridSpacing(OEET self, float f)"""
        return _oezap.OEET_SetGridSpacing(self, f)

    def SetGridBuffer(self, f: "float") -> "void":
        r"""SetGridBuffer(OEET self, float f)"""
        return _oezap.OEET_SetGridBuffer(self, f)

    def GetDielectric(self) -> "float":
        r"""GetDielectric(OEET self) -> float"""
        return _oezap.OEET_GetDielectric(self)

    def GetInnerDielectric(self) -> "float":
        r"""GetInnerDielectric(OEET self) -> float"""
        return _oezap.OEET_GetInnerDielectric(self)

    def GetSaltConcentration(self) -> "float":
        r"""GetSaltConcentration(OEET self) -> float"""
        return _oezap.OEET_GetSaltConcentration(self)

    def GetInnerMask(self) -> "float":
        r"""GetInnerMask(OEET self) -> float"""
        return _oezap.OEET_GetInnerMask(self)

    def GetOuterMask(self) -> "float":
        r"""GetOuterMask(OEET self) -> float"""
        return _oezap.OEET_GetOuterMask(self)

    def GetJoin(self) -> "bool":
        r"""GetJoin(OEET self) -> bool"""
        return _oezap.OEET_GetJoin(self)

    def GetGridSpacing(self) -> "float":
        r"""GetGridSpacing(OEET self) -> float"""
        return _oezap.OEET_GetGridSpacing(self)

    def GetGridBuffer(self) -> "float":
        r"""GetGridBuffer(OEET self) -> float"""
        return _oezap.OEET_GetGridBuffer(self)

# Register OEET in _oezap:
_oezap.OEET_swigregister(OEET)


def OEMakeETGrid(grid: "OESystem::OEScalarGrid &", mol: "OEMolBase", et: "OEET") -> "bool":
    r"""OEMakeETGrid(OESystem::OEScalarGrid & grid, OEMolBase mol, OEET et) -> bool"""
    return _oezap.OEMakeETGrid(grid, mol, et)
OE_OEZAP_VERSION = _oezap.OE_OEZAP_VERSION


def OEZapGetRelease() -> "char const *":
    r"""OEZapGetRelease() -> char const *"""
    return _oezap.OEZapGetRelease()

def OEZapGetVersion() -> "unsigned int":
    r"""OEZapGetVersion() -> unsigned int"""
    return _oezap.OEZapGetVersion()

def OEZapGetArch() -> "char const *":
    r"""OEZapGetArch() -> char const *"""
    return _oezap.OEZapGetArch()

def OEZapGetPlatform() -> "char const *":
    r"""OEZapGetPlatform() -> char const *"""
    return _oezap.OEZapGetPlatform()

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

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

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


