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

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

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


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):
    """Proxy of C++ OESystem::OEIterBase<(OEPB::OESimpleBindResults)> class."""

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

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


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


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


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


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


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


OESimpleBindResultsIter_swigregister = _oezap.OESimpleBindResultsIter_swigregister
OESimpleBindResultsIter_swigregister(OESimpleBindResultsIter)

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

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

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


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


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


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


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


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


OEBindResultsIter_swigregister = _oezap.OEBindResultsIter_swigregister
OEBindResultsIter_swigregister(OEBindResultsIter)

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

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

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


    def __init__(self, *args):
        """
        __init__(OEPB::OESimpleBindResults self) -> OESimpleBindResults
        __init__(OEPB::OESimpleBindResults self, OESimpleBindResults arg2) -> OESimpleBindResults
        """
        this = _oezap.new_OESimpleBindResults(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _oezap.delete_OESimpleBindResults
    __del__ = lambda self: None
OESimpleBindResults_swigregister = _oezap.OESimpleBindResults_swigregister
OESimpleBindResults_swigregister(OESimpleBindResults)

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

    thisown = _swig_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":
        """
        Print(OEBindResults self, oeostream ofs)
        Print(OEBindResults self, OEErrorHandler log)
        """
        return _oezap.OEBindResults_Print(self, *args)


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


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


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


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


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


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


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


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


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


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


    def __init__(self, *args):
        """
        __init__(OEPB::OEBindResults self) -> OEBindResults
        __init__(OEPB::OEBindResults self, OEBindResults arg2) -> OEBindResults
        """
        this = _oezap.new_OEBindResults(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _oezap.delete_OEBindResults
    __del__ = lambda self: None
OEBindResults_swigregister = _oezap.OEBindResults_swigregister
OEBindResults_swigregister(OEBindResults)

class OEBind(object):
    """Proxy of C++ OEPB::OEBind 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__(OEPB::OEBind self) -> OEBind
        __init__(OEPB::OEBind self, OEMolBase protein) -> OEBind
        __init__(OEPB::OEBind self, OEBind rhs) -> OEBind
        """
        this = _oezap.new_OEBind(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _oezap.delete_OEBind
    __del__ = lambda self: None

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


    def SimpleBind(self, *args) -> "bool":
        """
        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":
        """
        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 &":
        """
        GetZap(OEBind self) -> OEZap
        GetZap(OEBind self) -> OEZap
        """
        return _oezap.OEBind_GetZap(self, *args)


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

OEBind_swigregister = _oezap.OEBind_swigregister
OEBind_swigregister(OEBind)


def OEZapBind(*args) -> "bool":
    """
    OEZapBind(OEMolBase protein, OEMolBase ligand, OESimpleBindResults results) -> bool
    OEZapBind(OEMolBase protein, OEMolBase ligand, OEBindResults results) -> bool
    """
    return _oezap.OEZapBind(*args)
class OEZap(object):
    """Proxy of C++ OEPB::OEZap 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__(OEPB::OEZap self) -> OEZap
        __init__(OEPB::OEZap self, OEZap rhs) -> OEZap
        """
        this = _oezap.new_OEZap(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _oezap.delete_OEZap
    __del__ = lambda self: None

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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

OEZap_swigregister = _oezap.OEZap_swigregister
OEZap_swigregister(OEZap)


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

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

def OECalculateCoulombicBinding(protein: 'OEMolBase', ligand: 'OEMolBase', dielectric: 'float') -> "float":
    """OECalculateCoulombicBinding(OEMolBase protein, OEMolBase ligand, float dielectric) -> float"""
    return _oezap.OECalculateCoulombicBinding(protein, ligand, dielectric)
class OEArea(object):
    """Proxy of C++ OEPB::OEArea 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__(OEPB::OEArea self) -> OEArea
        __init__(OEPB::OEArea self, OEArea arg2) -> OEArea
        """
        this = _oezap.new_OEArea(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _oezap.delete_OEArea
    __del__ = lambda self: None

    def GetArea(self, *args) -> "bool":
        """
        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":
        """SetMethod(OEArea self, unsigned int const method) -> bool"""
        return _oezap.OEArea_SetMethod(self, method)


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


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


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

OEArea_swigregister = _oezap.OEArea_swigregister
OEArea_swigregister(OEArea)

class OEET(object):
    """Proxy of C++ OEPB::OEET 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__(OEPB::OEET self, float dielectric=80.0) -> OEET
        __init__(OEPB::OEET self) -> OEET
        __init__(OEPB::OEET self, OEET rhs) -> OEET
        """
        this = _oezap.new_OEET(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _oezap.delete_OEET
    __del__ = lambda self: None

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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

OEET_swigregister = _oezap.OEET_swigregister
OEET_swigregister(OEET)


def OEMakeETGrid(grid: 'OESystem::OEScalarGrid &', mol: 'OEMolBase', et: 'OEET') -> "bool":
    """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 *":
    """OEZapGetRelease() -> char const *"""
    return _oezap.OEZapGetRelease()

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

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

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

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

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

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


