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

    _oedepict = libs.OEGetModule('_oedepict2521')
    return _oedepict

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

OEFontFamily_Arial = _oedepict.OEFontFamily_Arial

OEFontFamily_Courier = _oedepict.OEFontFamily_Courier

OEFontFamily_Helvetica = _oedepict.OEFontFamily_Helvetica

OEFontFamily_Times = _oedepict.OEFontFamily_Times


OEFontFamily_Default = OEFontFamily_Arial

OEFontStyle_Normal = _oedepict.OEFontStyle_Normal

OEFontStyle_Italic = _oedepict.OEFontStyle_Italic

OEFontStyle_Bold = _oedepict.OEFontStyle_Bold


OEFontStyle_Default = OEFontStyle_Normal

OEAlignment_Center = _oedepict.OEAlignment_Center

OEAlignment_Left = _oedepict.OEAlignment_Left

OEAlignment_Right = _oedepict.OEAlignment_Right


OEAlignment_Default = OEAlignment_Center

OEHighlightStyle_Color = _oedepict.OEHighlightStyle_Color

OEHighlightStyle_Stick = _oedepict.OEHighlightStyle_Stick

OEHighlightStyle_BallAndStick = _oedepict.OEHighlightStyle_BallAndStick

OEHighlightStyle_Cogwheel = _oedepict.OEHighlightStyle_Cogwheel

OEHighlightStyle_Lasso = _oedepict.OEHighlightStyle_Lasso


OEHighlightStyle_Default = OEHighlightStyle_Color

OEHighlightOverlayStyle_BallAndStick = _oedepict.OEHighlightOverlayStyle_BallAndStick


OEHighlightOverlayStyle_Default = OEHighlightOverlayStyle_BallAndStick

OEHighlightSetup_Style = _oedepict.OEHighlightSetup_Style

OEHighlightSetup_Color = _oedepict.OEHighlightSetup_Color

OEHighlightSetup_All = _oedepict.OEHighlightSetup_All

OEHighlightParamName_Style = _oedepict.OEHighlightParamName_Style

OEHighlightParamName_Color = _oedepict.OEHighlightParamName_Color

OELayerPosition_Below = _oedepict.OELayerPosition_Below

OELayerPosition_Above = _oedepict.OELayerPosition_Above

OELayerPosition_SVG = _oedepict.OELayerPosition_SVG

OEMargin_Top = _oedepict.OEMargin_Top

OEMargin_Bottom = _oedepict.OEMargin_Bottom

OEMargin_Left = _oedepict.OEMargin_Left

OEMargin_Right = _oedepict.OEMargin_Right

OEImageGridSetup_NumRows = _oedepict.OEImageGridSetup_NumRows

OEImageGridSetup_NumColumns = _oedepict.OEImageGridSetup_NumColumns

OEImageGridSetup_All = _oedepict.OEImageGridSetup_All

OEImageGridParamName_NumRows = _oedepict.OEImageGridParamName_NumRows

OEImageGridParamName_NumColumns = _oedepict.OEImageGridParamName_NumColumns

OEImageTableStyle_NoStyle = _oedepict.OEImageTableStyle_NoStyle

OEImageTableStyle_LightGrey = _oedepict.OEImageTableStyle_LightGrey

OEImageTableStyle_LightBlue = _oedepict.OEImageTableStyle_LightBlue

OEImageTableStyle_LightGreen = _oedepict.OEImageTableStyle_LightGreen

OEImageTableStyle_MediumGrey = _oedepict.OEImageTableStyle_MediumGrey

OEImageTableStyle_MediumBlue = _oedepict.OEImageTableStyle_MediumBlue

OEImageTableStyle_MediumGreen = _oedepict.OEImageTableStyle_MediumGreen

OEImageTableStyle_SantaFe = _oedepict.OEImageTableStyle_SantaFe


OEImageTableStyle_Default = OEImageTableStyle_NoStyle

OELegendLayoutStyle_VerticalTopLeft = _oedepict.OELegendLayoutStyle_VerticalTopLeft

OELegendLayoutStyle_VerticalTopRight = _oedepict.OELegendLayoutStyle_VerticalTopRight

OELegendLayoutStyle_HorizontalTopLeft = _oedepict.OELegendLayoutStyle_HorizontalTopLeft

OELegendLayoutStyle_HorizontalTopRight = _oedepict.OELegendLayoutStyle_HorizontalTopRight

OELegendLayoutStyle_VerticalBottomLeft = _oedepict.OELegendLayoutStyle_VerticalBottomLeft

OELegendLayoutStyle_VerticalBottomRight = _oedepict.OELegendLayoutStyle_VerticalBottomRight

OELegendLayoutStyle_HorizontalBottomLeft = _oedepict.OELegendLayoutStyle_HorizontalBottomLeft

OELegendLayoutStyle_HorizontalBottomRight = _oedepict.OELegendLayoutStyle_HorizontalBottomRight


OELegendLayoutStyle_Default = OELegendLayoutStyle_VerticalTopLeft

OELegendColorStyle_NoStyle = _oedepict.OELegendColorStyle_NoStyle

OELegendColorStyle_LightGrey = _oedepict.OELegendColorStyle_LightGrey

OELegendColorStyle_LightBlue = _oedepict.OELegendColorStyle_LightBlue

OELegendColorStyle_LightGreen = _oedepict.OELegendColorStyle_LightGreen


OELegendColorStyle_Default = OELegendColorStyle_NoStyle

OELegendInteractiveStyle_Permanent = _oedepict.OELegendInteractiveStyle_Permanent

OELegendInteractiveStyle_Hover = _oedepict.OELegendInteractiveStyle_Hover

OELegendInteractiveStyle_Toggle = _oedepict.OELegendInteractiveStyle_Toggle


OELegendInteractiveStyle_Default = OELegendInteractiveStyle_Hover

OEIconLocation_Undefined = _oedepict.OEIconLocation_Undefined

OEIconLocation_TopLeft = _oedepict.OEIconLocation_TopLeft

OEIconLocation_TopRight = _oedepict.OEIconLocation_TopRight

OEIconLocation_BottomLeft = _oedepict.OEIconLocation_BottomLeft

OEIconLocation_BottomRight = _oedepict.OEIconLocation_BottomRight


OEIconLocation_Default = OEIconLocation_BottomRight

OE2DMolDisplaySetup_Scale = _oedepict.OE2DMolDisplaySetup_Scale

OE2DMolDisplaySetup_AtomColorStyle = _oedepict.OE2DMolDisplaySetup_AtomColorStyle

OE2DMolDisplaySetup_BondColorStyle = _oedepict.OE2DMolDisplaySetup_BondColorStyle

OE2DMolDisplaySetup_AromaticStyle = _oedepict.OE2DMolDisplaySetup_AromaticStyle

OE2DMolDisplaySetup_HydrogenStyle = _oedepict.OE2DMolDisplaySetup_HydrogenStyle

OE2DMolDisplaySetup_AtomStereoStyle = _oedepict.OE2DMolDisplaySetup_AtomStereoStyle

OE2DMolDisplaySetup_BondStereoStyle = _oedepict.OE2DMolDisplaySetup_BondStereoStyle

OE2DMolDisplaySetup_SuperAtomStyle = _oedepict.OE2DMolDisplaySetup_SuperAtomStyle

OE2DMolDisplaySetup_ProtectiveGroupStyle = _oedepict.OE2DMolDisplaySetup_ProtectiveGroupStyle

OE2DMolDisplaySetup_AtomPropDisplay = _oedepict.OE2DMolDisplaySetup_AtomPropDisplay

OE2DMolDisplaySetup_BondPropDisplay = _oedepict.OE2DMolDisplaySetup_BondPropDisplay

OE2DMolDisplaySetup_DefaultLineWidth = _oedepict.OE2DMolDisplaySetup_DefaultLineWidth

OE2DMolDisplaySetup_AtomLabelFontScale = _oedepict.OE2DMolDisplaySetup_AtomLabelFontScale

OE2DMolDisplaySetup_TitleLocation = _oedepict.OE2DMolDisplaySetup_TitleLocation

OE2DMolDisplaySetup_All = _oedepict.OE2DMolDisplaySetup_All

OEImageSetup_Width = _oedepict.OEImageSetup_Width

OEImageSetup_Height = _oedepict.OEImageSetup_Height

OEImageSetup_All = _oedepict.OEImageSetup_All

OEImageParamName_Width = _oedepict.OEImageParamName_Width

OEImageParamName_Height = _oedepict.OEImageParamName_Height

OEHydrogenPos_Undefined = _oedepict.OEHydrogenPos_Undefined

OEHydrogenPos_East = _oedepict.OEHydrogenPos_East

OEHydrogenPos_West = _oedepict.OEHydrogenPos_West

OEHydrogenPos_North = _oedepict.OEHydrogenPos_North

OEHydrogenPos_South = _oedepict.OEHydrogenPos_South

OERadicalDisplayType_Off = _oedepict.OERadicalDisplayType_Off

OERadicalDisplayType_Monoradical = _oedepict.OERadicalDisplayType_Monoradical

OERadicalDisplayType_Diradical = _oedepict.OERadicalDisplayType_Diradical

OEBondDisplayPosition_Undefined = _oedepict.OEBondDisplayPosition_Undefined

OEBondDisplayPosition_Center = _oedepict.OEBondDisplayPosition_Center

OEBondDisplayPosition_Left = _oedepict.OEBondDisplayPosition_Left

OEBondDisplayPosition_Right = _oedepict.OEBondDisplayPosition_Right

OEBondDisplayType_Undefined = _oedepict.OEBondDisplayType_Undefined

OEBondDisplayType_Single = _oedepict.OEBondDisplayType_Single

OEBondDisplayType_Double = _oedepict.OEBondDisplayType_Double

OEBondDisplayType_Triple = _oedepict.OEBondDisplayType_Triple

OEBondDisplayType_Quadruple = _oedepict.OEBondDisplayType_Quadruple

OEBondDisplayType_Wedge = _oedepict.OEBondDisplayType_Wedge

OEBondDisplayType_Hash = _oedepict.OEBondDisplayType_Hash

OEBondDisplayType_Wavy = _oedepict.OEBondDisplayType_Wavy

OEBondDisplayType_AromaticDash = _oedepict.OEBondDisplayType_AromaticDash

OEBondDisplayType_DoubleBowTie = _oedepict.OEBondDisplayType_DoubleBowTie

OEBondDisplayType_SingleDouble = _oedepict.OEBondDisplayType_SingleDouble

OEBondDisplayType_SingleArom = _oedepict.OEBondDisplayType_SingleArom

OEBondDisplayType_DoubleArom = _oedepict.OEBondDisplayType_DoubleArom

OEBondDisplayType_Aromatic = _oedepict.OEBondDisplayType_Aromatic

OEBondDisplayType_Any = _oedepict.OEBondDisplayType_Any

OEBondDisplayType_Hidden = _oedepict.OEBondDisplayType_Hidden

OETitleLocation_Hidden = _oedepict.OETitleLocation_Hidden

OETitleLocation_Top = _oedepict.OETitleLocation_Top

OETitleLocation_Bottom = _oedepict.OETitleLocation_Bottom


OETitleLocation_Default = OETitleLocation_Top

OEAtomColorStyle_WhiteCPK = _oedepict.OEAtomColorStyle_WhiteCPK

OEAtomColorStyle_BlackCPK = _oedepict.OEAtomColorStyle_BlackCPK

OEAtomColorStyle_WhiteMonochrome = _oedepict.OEAtomColorStyle_WhiteMonochrome

OEAtomColorStyle_BlackMonochrome = _oedepict.OEAtomColorStyle_BlackMonochrome


OEAtomColorStyle_Default = OEAtomColorStyle_WhiteCPK

OEBondColorStyle_ByElement = _oedepict.OEBondColorStyle_ByElement

OEBondColorStyle_Monochrome = _oedepict.OEBondColorStyle_Monochrome


OEBondColorStyle_Default = OEBondColorStyle_ByElement

OEAromaticStyle_Kekule = _oedepict.OEAromaticStyle_Kekule

OEAromaticStyle_Circle = _oedepict.OEAromaticStyle_Circle

OEAromaticStyle_Dash = _oedepict.OEAromaticStyle_Dash


OEAromaticStyle_Default = OEAromaticStyle_Kekule

OEHydrogenStyle_Hidden = _oedepict.OEHydrogenStyle_Hidden

OEHydrogenStyle_ImplicitHetero = _oedepict.OEHydrogenStyle_ImplicitHetero

OEHydrogenStyle_ImplicitTerminal = _oedepict.OEHydrogenStyle_ImplicitTerminal

OEHydrogenStyle_ImplicitAll = _oedepict.OEHydrogenStyle_ImplicitAll

OEHydrogenStyle_ExplicitHetero = _oedepict.OEHydrogenStyle_ExplicitHetero

OEHydrogenStyle_ExplicitTerminal = _oedepict.OEHydrogenStyle_ExplicitTerminal

OEHydrogenStyle_ExplicitAll = _oedepict.OEHydrogenStyle_ExplicitAll


OEHydrogenStyle_Default = OEHydrogenStyle_ImplicitHetero|OEHydrogenStyle_ExplicitAll

OEAtomStereoStyle_Display_AtomStereo = _oedepict.OEAtomStereoStyle_Display_AtomStereo

OEAtomStereoStyle_Display_CIPAtomStereo = _oedepict.OEAtomStereoStyle_Display_CIPAtomStereo

OEAtomStereoStyle_Display_MDLStereoCenter = _oedepict.OEAtomStereoStyle_Display_MDLStereoCenter

OEAtomStereoStyle_Display_All = _oedepict.OEAtomStereoStyle_Display_All


OEAtomStereoStyle_Display_Default = OEAtomStereoStyle_Display_AtomStereo|OEAtomStereoStyle_Display_MDLStereoCenter

OEAtomStereoStyle_HashWedgeStyle_Standard = _oedepict.OEAtomStereoStyle_HashWedgeStyle_Standard

OEAtomStereoStyle_HashWedgeStyle_Fancy = _oedepict.OEAtomStereoStyle_HashWedgeStyle_Fancy


OEAtomStereoStyle_HashWedgeStyle_Default = OEAtomStereoStyle_HashWedgeStyle_Fancy

OEAtomStereoStyle_Hidden = _oedepict.OEAtomStereoStyle_Hidden

OEAtomStereoStyle_DisplayMask = _oedepict.OEAtomStereoStyle_DisplayMask

OEAtomStereoStyle_HashWedgeStyleMask = _oedepict.OEAtomStereoStyle_HashWedgeStyleMask

OEAtomStereoStyle_Default = _oedepict.OEAtomStereoStyle_Default

OEBondStereoStyle_Display_BondStereo = _oedepict.OEBondStereoStyle_Display_BondStereo

OEBondStereoStyle_Display_CIPBondStereo = _oedepict.OEBondStereoStyle_Display_CIPBondStereo

OEBondStereoStyle_Display_All = _oedepict.OEBondStereoStyle_Display_All


OEBondStereoStyle_Display_Default = OEBondStereoStyle_Display_BondStereo

OEBondStereoStyle_Hidden = _oedepict.OEBondStereoStyle_Hidden

OEBondStereoStyle_DisplayMask = _oedepict.OEBondStereoStyle_DisplayMask

OEBondStereoStyle_Default = _oedepict.OEBondStereoStyle_Default

OESuperAtomStyle_Off = _oedepict.OESuperAtomStyle_Off

OESuperAtomStyle_COOH = _oedepict.OESuperAtomStyle_COOH

OESuperAtomStyle_COO_ = _oedepict.OESuperAtomStyle_COO_

OESuperAtomStyle_CHO = _oedepict.OESuperAtomStyle_CHO

OESuperAtomStyle_NC = _oedepict.OESuperAtomStyle_NC

OESuperAtomStyle_CN = _oedepict.OESuperAtomStyle_CN

OESuperAtomStyle_N2 = _oedepict.OESuperAtomStyle_N2

OESuperAtomStyle_N3 = _oedepict.OESuperAtomStyle_N3

OESuperAtomStyle_NCO = _oedepict.OESuperAtomStyle_NCO

OESuperAtomStyle_NO2 = _oedepict.OESuperAtomStyle_NO2

OESuperAtomStyle_CNO = _oedepict.OESuperAtomStyle_CNO

OESuperAtomStyle_ONO = _oedepict.OESuperAtomStyle_ONO

OESuperAtomStyle_SO3H = _oedepict.OESuperAtomStyle_SO3H

OESuperAtomStyle_SO3_ = _oedepict.OESuperAtomStyle_SO3_

OESuperAtomStyle_PO3H2 = _oedepict.OESuperAtomStyle_PO3H2

OESuperAtomStyle_CF3 = _oedepict.OESuperAtomStyle_CF3

OESuperAtomStyle_CCl3 = _oedepict.OESuperAtomStyle_CCl3

OESuperAtomStyle_Me = _oedepict.OESuperAtomStyle_Me

OESuperAtomStyle_Et = _oedepict.OESuperAtomStyle_Et

OESuperAtomStyle_Pr = _oedepict.OESuperAtomStyle_Pr

OESuperAtomStyle_Bu = _oedepict.OESuperAtomStyle_Bu

OESuperAtomStyle_iBu = _oedepict.OESuperAtomStyle_iBu

OESuperAtomStyle_sBu = _oedepict.OESuperAtomStyle_sBu

OESuperAtomStyle_tBu = _oedepict.OESuperAtomStyle_tBu

OESuperAtomStyle_OMe = _oedepict.OESuperAtomStyle_OMe

OESuperAtomStyle_OEt = _oedepict.OESuperAtomStyle_OEt

OESuperAtomStyle_OPr = _oedepict.OESuperAtomStyle_OPr

OESuperAtomStyle_OBu = _oedepict.OESuperAtomStyle_OBu


OESuperAtomStyle_Oxygen = OESuperAtomStyle_COOH|OESuperAtomStyle_COO_|OESuperAtomStyle_CHO


OESuperAtomStyle_Nitrogen = OESuperAtomStyle_NC|OESuperAtomStyle_CN|OESuperAtomStyle_N2|OESuperAtomStyle_N3


OESuperAtomStyle_OxygenAndNitrogen = OESuperAtomStyle_NCO|OESuperAtomStyle_NO2|OESuperAtomStyle_CNO|OESuperAtomStyle_ONO


OESuperAtomStyle_Sulfur = OESuperAtomStyle_SO3H|OESuperAtomStyle_SO3_


OESuperAtomStyle_Phosphorus = OESuperAtomStyle_PO3H2


OESuperAtomStyle_Halide = OESuperAtomStyle_CF3|OESuperAtomStyle_CCl3


OESuperAtomStyle_Carbon = OESuperAtomStyle_Me|OESuperAtomStyle_Et|OESuperAtomStyle_Pr|OESuperAtomStyle_Bu|OESuperAtomStyle_iBu|OESuperAtomStyle_sBu|OESuperAtomStyle_tBu


OESuperAtomStyle_Ether = OESuperAtomStyle_OMe|OESuperAtomStyle_OEt|OESuperAtomStyle_OPr|OESuperAtomStyle_OBu

OESuperAtomStyle_All = _oedepict.OESuperAtomStyle_All


OESuperAtomStyle_Default = OESuperAtomStyle_Off

OEProtectiveGroupStyle_Off = _oedepict.OEProtectiveGroupStyle_Off

OEProtectiveGroupStyle_Boc = _oedepict.OEProtectiveGroupStyle_Boc

OEProtectiveGroupStyle_Fmoc = _oedepict.OEProtectiveGroupStyle_Fmoc

OEProtectiveGroupStyle_Cbz = _oedepict.OEProtectiveGroupStyle_Cbz

OEProtectiveGroupStyle_TIPS = _oedepict.OEProtectiveGroupStyle_TIPS

OEProtectiveGroupStyle_Bn = _oedepict.OEProtectiveGroupStyle_Bn

OEProtectiveGroupStyle_TBDMS = _oedepict.OEProtectiveGroupStyle_TBDMS

OEProtectiveGroupStyle_THP = _oedepict.OEProtectiveGroupStyle_THP

OEProtectiveGroupStyle_Ac = _oedepict.OEProtectiveGroupStyle_Ac

OEProtectiveGroupStyle_FourOMeBz = _oedepict.OEProtectiveGroupStyle_FourOMeBz

OEProtectiveGroupStyle_Ad = _oedepict.OEProtectiveGroupStyle_Ad

OEProtectiveGroupStyle_Alloc = _oedepict.OEProtectiveGroupStyle_Alloc

OEProtectiveGroupStyle_Benzoyl = _oedepict.OEProtectiveGroupStyle_Benzoyl

OEProtectiveGroupStyle_Benzyl = _oedepict.OEProtectiveGroupStyle_Benzyl

OEProtectiveGroupStyle_Bom = _oedepict.OEProtectiveGroupStyle_Bom

OEProtectiveGroupStyle_Bpoc = _oedepict.OEProtectiveGroupStyle_Bpoc

OEProtectiveGroupStyle_Bs = _oedepict.OEProtectiveGroupStyle_Bs

OEProtectiveGroupStyle_Bt = _oedepict.OEProtectiveGroupStyle_Bt

OEProtectiveGroupStyle_Btm = _oedepict.OEProtectiveGroupStyle_Btm

OEProtectiveGroupStyle_Bz = _oedepict.OEProtectiveGroupStyle_Bz

OEProtectiveGroupStyle_BzOM = _oedepict.OEProtectiveGroupStyle_BzOM

OEProtectiveGroupStyle_Bzh = _oedepict.OEProtectiveGroupStyle_Bzh

OEProtectiveGroupStyle_Bzl = _oedepict.OEProtectiveGroupStyle_Bzl

OEProtectiveGroupStyle_DCB = _oedepict.OEProtectiveGroupStyle_DCB

OEProtectiveGroupStyle_DDIV = _oedepict.OEProtectiveGroupStyle_DDIV

OEProtectiveGroupStyle_DEIPS = _oedepict.OEProtectiveGroupStyle_DEIPS

OEProtectiveGroupStyle_DMAB = _oedepict.OEProtectiveGroupStyle_DMAB

OEProtectiveGroupStyle_DMIPS = _oedepict.OEProtectiveGroupStyle_DMIPS

OEProtectiveGroupStyle_DMPM = _oedepict.OEProtectiveGroupStyle_DMPM

OEProtectiveGroupStyle_DMPS = _oedepict.OEProtectiveGroupStyle_DMPS

OEProtectiveGroupStyle_DMTr = _oedepict.OEProtectiveGroupStyle_DMTr

OEProtectiveGroupStyle_DNBZ = _oedepict.OEProtectiveGroupStyle_DNBZ

OEProtectiveGroupStyle_DNP = _oedepict.OEProtectiveGroupStyle_DNP

OEProtectiveGroupStyle_DOC = _oedepict.OEProtectiveGroupStyle_DOC

OEProtectiveGroupStyle_DDE = _oedepict.OEProtectiveGroupStyle_DDE

OEProtectiveGroupStyle_DPIPS = _oedepict.OEProtectiveGroupStyle_DPIPS

OEProtectiveGroupStyle_DTBMS = _oedepict.OEProtectiveGroupStyle_DTBMS

OEProtectiveGroupStyle_Dpp = _oedepict.OEProtectiveGroupStyle_Dpp

OEProtectiveGroupStyle_EE = _oedepict.OEProtectiveGroupStyle_EE

OEProtectiveGroupStyle_ESC = _oedepict.OEProtectiveGroupStyle_ESC

OEProtectiveGroupStyle_Et = _oedepict.OEProtectiveGroupStyle_Et

OEProtectiveGroupStyle_FPMP = _oedepict.OEProtectiveGroupStyle_FPMP

OEProtectiveGroupStyle_Im = _oedepict.OEProtectiveGroupStyle_Im

OEProtectiveGroupStyle_Lev = _oedepict.OEProtectiveGroupStyle_Lev

OEProtectiveGroupStyle_MDIPS = _oedepict.OEProtectiveGroupStyle_MDIPS

OEProtectiveGroupStyle_MDPS = _oedepict.OEProtectiveGroupStyle_MDPS

OEProtectiveGroupStyle_MEM = _oedepict.OEProtectiveGroupStyle_MEM

OEProtectiveGroupStyle_MMTR = _oedepict.OEProtectiveGroupStyle_MMTR

OEProtectiveGroupStyle_MOM = _oedepict.OEProtectiveGroupStyle_MOM

OEProtectiveGroupStyle_MPC = _oedepict.OEProtectiveGroupStyle_MPC

OEProtectiveGroupStyle_MPM = _oedepict.OEProtectiveGroupStyle_MPM

OEProtectiveGroupStyle_MS = _oedepict.OEProtectiveGroupStyle_MS

OEProtectiveGroupStyle_MTHP = _oedepict.OEProtectiveGroupStyle_MTHP

OEProtectiveGroupStyle_MTM = _oedepict.OEProtectiveGroupStyle_MTM

OEProtectiveGroupStyle_MTr = _oedepict.OEProtectiveGroupStyle_MTr

OEProtectiveGroupStyle_Me = _oedepict.OEProtectiveGroupStyle_Me

OEProtectiveGroupStyle_Mes = _oedepict.OEProtectiveGroupStyle_Mes

OEProtectiveGroupStyle_Moz = _oedepict.OEProtectiveGroupStyle_Moz

OEProtectiveGroupStyle_NPE = _oedepict.OEProtectiveGroupStyle_NPE

OEProtectiveGroupStyle_NPEOC = _oedepict.OEProtectiveGroupStyle_NPEOC

OEProtectiveGroupStyle_NPES = _oedepict.OEProtectiveGroupStyle_NPES

OEProtectiveGroupStyle_NPS = _oedepict.OEProtectiveGroupStyle_NPS

OEProtectiveGroupStyle_NVOC = _oedepict.OEProtectiveGroupStyle_NVOC

OEProtectiveGroupStyle_Np = _oedepict.OEProtectiveGroupStyle_Np

OEProtectiveGroupStyle_ONOS = _oedepict.OEProtectiveGroupStyle_ONOS

OEProtectiveGroupStyle_OBzl = _oedepict.OEProtectiveGroupStyle_OBzl

OEProtectiveGroupStyle_OEt = _oedepict.OEProtectiveGroupStyle_OEt

OEProtectiveGroupStyle_OMe = _oedepict.OEProtectiveGroupStyle_OMe

OEProtectiveGroupStyle_Tf = _oedepict.OEProtectiveGroupStyle_Tf

OEProtectiveGroupStyle_OtBu = _oedepict.OEProtectiveGroupStyle_OtBu

OEProtectiveGroupStyle_PAC = _oedepict.OEProtectiveGroupStyle_PAC

OEProtectiveGroupStyle_PBF = _oedepict.OEProtectiveGroupStyle_PBF

OEProtectiveGroupStyle_PCB = _oedepict.OEProtectiveGroupStyle_PCB

OEProtectiveGroupStyle_PHF = _oedepict.OEProtectiveGroupStyle_PHF

OEProtectiveGroupStyle_PMB = _oedepict.OEProtectiveGroupStyle_PMB

OEProtectiveGroupStyle_PMBM = _oedepict.OEProtectiveGroupStyle_PMBM

OEProtectiveGroupStyle_PPi = _oedepict.OEProtectiveGroupStyle_PPi

OEProtectiveGroupStyle_Pht = _oedepict.OEProtectiveGroupStyle_Pht

OEProtectiveGroupStyle_Piv = _oedepict.OEProtectiveGroupStyle_Piv

OEProtectiveGroupStyle_Poc = _oedepict.OEProtectiveGroupStyle_Poc

OEProtectiveGroupStyle_StBu = _oedepict.OEProtectiveGroupStyle_StBu

OEProtectiveGroupStyle_SEM = _oedepict.OEProtectiveGroupStyle_SEM

OEProtectiveGroupStyle_SES = _oedepict.OEProtectiveGroupStyle_SES

OEProtectiveGroupStyle_TBMPS = _oedepict.OEProtectiveGroupStyle_TBMPS

OEProtectiveGroupStyle_TBS = _oedepict.OEProtectiveGroupStyle_TBS

OEProtectiveGroupStyle_TCP = _oedepict.OEProtectiveGroupStyle_TCP

OEProtectiveGroupStyle_TES = _oedepict.OEProtectiveGroupStyle_TES

OEProtectiveGroupStyle_TFA = _oedepict.OEProtectiveGroupStyle_TFA

OEProtectiveGroupStyle_THF = _oedepict.OEProtectiveGroupStyle_THF

OEProtectiveGroupStyle_TMOB = _oedepict.OEProtectiveGroupStyle_TMOB

OEProtectiveGroupStyle_TMS = _oedepict.OEProtectiveGroupStyle_TMS

OEProtectiveGroupStyle_TRT = _oedepict.OEProtectiveGroupStyle_TRT

OEProtectiveGroupStyle_TS = _oedepict.OEProtectiveGroupStyle_TS

OEProtectiveGroupStyle_Teoc = _oedepict.OEProtectiveGroupStyle_Teoc

OEProtectiveGroupStyle_Thexyl = _oedepict.OEProtectiveGroupStyle_Thexyl

OEProtectiveGroupStyle_Tos = _oedepict.OEProtectiveGroupStyle_Tos

OEProtectiveGroupStyle_Trisyl = _oedepict.OEProtectiveGroupStyle_Trisyl

OEProtectiveGroupStyle_Troc = _oedepict.OEProtectiveGroupStyle_Troc

OEProtectiveGroupStyle_Xyl = _oedepict.OEProtectiveGroupStyle_Xyl

OEProtectiveGroupStyle_Z = _oedepict.OEProtectiveGroupStyle_Z

OEProtectiveGroupStyle_cHx = _oedepict.OEProtectiveGroupStyle_cHx

OEProtectiveGroupStyle_transCinnamyl = _oedepict.OEProtectiveGroupStyle_transCinnamyl

OEProtectiveGroupStyle_Dansyl = _oedepict.OEProtectiveGroupStyle_Dansyl

OEProtectiveGroupStyle_Dan = _oedepict.OEProtectiveGroupStyle_Dan

OEProtectiveGroupStyle_TBDPS = _oedepict.OEProtectiveGroupStyle_TBDPS

OEProtectiveGroupStyle_All = _oedepict.OEProtectiveGroupStyle_All


OEProtectiveGroupStyle_Default = OEProtectiveGroupStyle_Off

OEProtectiveGroupStyle_TOTAL_BITWISE_PRO_GROUPS = _oedepict.OEProtectiveGroupStyle_TOTAL_BITWISE_PRO_GROUPS

OEProtectiveGroupStyle_FIRST_PRO_GROUP_ID = _oedepict.OEProtectiveGroupStyle_FIRST_PRO_GROUP_ID

OEProtectiveGroupStyle_LAST_PRO_GROUP_ID = _oedepict.OEProtectiveGroupStyle_LAST_PRO_GROUP_ID

OEProtectiveGroupStyle_MAX_BITWISE_ID = _oedepict.OEProtectiveGroupStyle_MAX_BITWISE_ID

OEScale_AutoScale = _oedepict.OEScale_AutoScale

OEScale_Default = _oedepict.OEScale_Default

OEPageSize_ISO_A4 = _oedepict.OEPageSize_ISO_A4

OEPageSize_US_Letter = _oedepict.OEPageSize_US_Letter

OEPageSize_US_Legal = _oedepict.OEPageSize_US_Legal

OEPageSize_Custom = _oedepict.OEPageSize_Custom


OEPageSize_Default = OEPageSize_US_Letter

OEPageOrientation_Portrait = _oedepict.OEPageOrientation_Portrait

OEPageOrientation_Landscape = _oedepict.OEPageOrientation_Landscape


OEPageOrientation_Default = OEPageOrientation_Portrait

OEMultiPageSetup_PageSize = _oedepict.OEMultiPageSetup_PageSize

OEMultiPageSetup_PageOrientation = _oedepict.OEMultiPageSetup_PageOrientation

OEMultiPageSetup_All = _oedepict.OEMultiPageSetup_All

OEMultiPageParamName_PageSize = _oedepict.OEMultiPageParamName_PageSize

OEMultiPageParamName_PageOrientation = _oedepict.OEMultiPageParamName_PageOrientation

OEReportSetup_NumRowsPerPage = _oedepict.OEReportSetup_NumRowsPerPage

OEReportSetup_NumColsPerPage = _oedepict.OEReportSetup_NumColsPerPage

OEReportSetup_PageSize = _oedepict.OEReportSetup_PageSize

OEReportSetup_PageOrientation = _oedepict.OEReportSetup_PageOrientation

OEReportSetup_PageWidth = _oedepict.OEReportSetup_PageWidth

OEReportSetup_PageHeight = _oedepict.OEReportSetup_PageHeight

OEReportSetup_All = _oedepict.OEReportSetup_All

OELineJoin_Miter = _oedepict.OELineJoin_Miter

OELineJoin_Round = _oedepict.OELineJoin_Round

OELineJoin_Bevel = _oedepict.OELineJoin_Bevel


OELineJoin_Default = OELineJoin_Round

OELineCap_Butt = _oedepict.OELineCap_Butt

OELineCap_Round = _oedepict.OELineCap_Round

OELineCap_Square = _oedepict.OELineCap_Square


OELineCap_Default = OELineCap_Round

OEStipple_Solid = _oedepict.OEStipple_Solid

OEStipple_LongDash = _oedepict.OEStipple_LongDash

OEStipple_ShortDash = _oedepict.OEStipple_ShortDash

OEStipple_Dot = _oedepict.OEStipple_Dot

OEStipple_DotDashDash = _oedepict.OEStipple_DotDashDash

OEStipple_DotDash = _oedepict.OEStipple_DotDash

OEStipple_NoLine = _oedepict.OEStipple_NoLine


OEStipple_Default = OEStipple_Solid

OEFill_Off = _oedepict.OEFill_Off

OEFill_On = _oedepict.OEFill_On


OEFill_Default = OEFill_Off

OE2DPathPointType_Start = _oedepict.OE2DPathPointType_Start

OE2DPathPointType_LineEnd = _oedepict.OE2DPathPointType_LineEnd

OE2DPathPointType_CurveC1 = _oedepict.OE2DPathPointType_CurveC1

OE2DPathPointType_CurveC2 = _oedepict.OE2DPathPointType_CurveC2

OE2DPathPointType_CurveEnd = _oedepict.OE2DPathPointType_CurveEnd

OEDepictOrientation_Original = _oedepict.OEDepictOrientation_Original

OEDepictOrientation_Square = _oedepict.OEDepictOrientation_Square

OEDepictOrientation_Horizontal = _oedepict.OEDepictOrientation_Horizontal

OEDepictOrientation_Vertical = _oedepict.OEDepictOrientation_Vertical


OEDepictOrientation_Default = OEDepictOrientation_Original

OEPrepareDepictionSetup_ClearCoords = _oedepict.OEPrepareDepictionSetup_ClearCoords

OEPrepareDepictionSetup_SuppressHydrogens = _oedepict.OEPrepareDepictionSetup_SuppressHydrogens

OEPrepareDepictionSetup_DepictOrientation = _oedepict.OEPrepareDepictionSetup_DepictOrientation

OEPrepareDepictionSetup_All = _oedepict.OEPrepareDepictionSetup_All

import openeye.oechem as oechem

def __no_op(*args) -> "void":
    r"""
    __no_op(OEConstStringIter arg1)
    __no_op(OEStringIter arg1)
    __no_op(OEMatchBaseAtomIter arg1)
    __no_op(OEMatchBaseBondIter arg1)
    __no_op(OEColorIter arg1)
    """
    return _oedepict.__no_op(*args)
class OEFont(object):
    r"""Proxy of C++ OEDepict::OEFont 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__(OEFont self) -> OEFont
        __init__(OEFont self, OEColor color) -> OEFont
        __init__(OEFont self, unsigned int family, unsigned int style, unsigned int size, unsigned int align, OEColor color, double rotangle=0.0) -> OEFont
        __init__(OEFont self, OEFont arg2) -> OEFont
        """
        _oedepict.OEFont_swiginit(self, _oedepict.new_OEFont(*args))
    __swig_destroy__ = _oedepict.delete_OEFont

    def SetFamily(self, arg2: "unsigned int") -> "void":
        r"""SetFamily(OEFont self, unsigned int arg2)"""
        return _oedepict.OEFont_SetFamily(self, arg2)

    def GetFamily(self) -> "unsigned int":
        r"""GetFamily(OEFont self) -> unsigned int"""
        return _oedepict.OEFont_GetFamily(self)

    def SetStyle(self, arg2: "unsigned int") -> "void":
        r"""SetStyle(OEFont self, unsigned int arg2)"""
        return _oedepict.OEFont_SetStyle(self, arg2)

    def GetStyle(self) -> "unsigned int":
        r"""GetStyle(OEFont self) -> unsigned int"""
        return _oedepict.OEFont_GetStyle(self)

    def SetSize(self, arg2: "unsigned int") -> "void":
        r"""SetSize(OEFont self, unsigned int arg2)"""
        return _oedepict.OEFont_SetSize(self, arg2)

    def GetSize(self) -> "unsigned int":
        r"""GetSize(OEFont self) -> unsigned int"""
        return _oedepict.OEFont_GetSize(self)

    def SetAlignment(self, arg2: "unsigned int") -> "void":
        r"""SetAlignment(OEFont self, unsigned int arg2)"""
        return _oedepict.OEFont_SetAlignment(self, arg2)

    def GetAlignment(self) -> "unsigned int":
        r"""GetAlignment(OEFont self) -> unsigned int"""
        return _oedepict.OEFont_GetAlignment(self)

    def SetColor(self, color: "OEColor") -> "void":
        r"""SetColor(OEFont self, OEColor color)"""
        return _oedepict.OEFont_SetColor(self, color)

    def GetColor(self) -> "OESystem::OEColor const &":
        r"""GetColor(OEFont self) -> OEColor"""
        return _oedepict.OEFont_GetColor(self)

    def SetRotationAngle(self, arg2: "double") -> "void":
        r"""SetRotationAngle(OEFont self, double arg2)"""
        return _oedepict.OEFont_SetRotationAngle(self, arg2)

    def GetRotationAngle(self) -> "double":
        r"""GetRotationAngle(OEFont self) -> double"""
        return _oedepict.OEFont_GetRotationAngle(self)

    def SetHyperlink(self, link: "std::string const &") -> "void":
        r"""SetHyperlink(OEFont self, std::string const & link)"""
        return _oedepict.OEFont_SetHyperlink(self, link)

    def HasHyperlink(self) -> "bool":
        r"""HasHyperlink(OEFont self) -> bool"""
        return _oedepict.OEFont_HasHyperlink(self)

    def GetHyperlink(self) -> "std::string const &":
        r"""GetHyperlink(OEFont self) -> std::string const &"""
        return _oedepict.OEFont_GetHyperlink(self)

    def __eq__(self, arg2: "OEFont") -> "bool":
        r"""__eq__(OEFont self, OEFont arg2) -> bool"""
        return _oedepict.OEFont___eq__(self, arg2)

    def __ne__(self, arg2: "OEFont") -> "bool":
        r"""__ne__(OEFont self, OEFont arg2) -> bool"""
        return _oedepict.OEFont___ne__(self, arg2)

# Register OEFont in _oedepict:
_oedepict.OEFont_swigregister(OEFont)

class OEPen(object):
    r"""Proxy of C++ OEDepict::OEPen 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__(OEPen self) -> OEPen
        __init__(OEPen self, OEColor bg, OEColor fg, unsigned int fill=, double linewidth=1.0, unsigned short stipple=) -> OEPen
        __init__(OEPen self, OEPen arg2) -> OEPen
        """
        _oedepict.OEPen_swiginit(self, _oedepict.new_OEPen(*args))
    __swig_destroy__ = _oedepict.delete_OEPen

    def SetBackColor(self, col: "OEColor") -> "void":
        r"""SetBackColor(OEPen self, OEColor col)"""
        return _oedepict.OEPen_SetBackColor(self, col)

    def GetBackColor(self) -> "OESystem::OEColor const &":
        r"""GetBackColor(OEPen self) -> OEColor"""
        return _oedepict.OEPen_GetBackColor(self)

    def SetForeColor(self, col: "OEColor") -> "void":
        r"""SetForeColor(OEPen self, OEColor col)"""
        return _oedepict.OEPen_SetForeColor(self, col)

    def GetForeColor(self) -> "OESystem::OEColor const &":
        r"""GetForeColor(OEPen self) -> OEColor"""
        return _oedepict.OEPen_GetForeColor(self)

    def SetFill(self, f: "unsigned int") -> "void":
        r"""SetFill(OEPen self, unsigned int f)"""
        return _oedepict.OEPen_SetFill(self, f)

    def GetFill(self) -> "unsigned int":
        r"""GetFill(OEPen self) -> unsigned int"""
        return _oedepict.OEPen_GetFill(self)

    def SetLineJoin(self, join: "unsigned int") -> "void":
        r"""SetLineJoin(OEPen self, unsigned int join)"""
        return _oedepict.OEPen_SetLineJoin(self, join)

    def GetLineJoin(self) -> "unsigned int":
        r"""GetLineJoin(OEPen self) -> unsigned int"""
        return _oedepict.OEPen_GetLineJoin(self)

    def SetLineCap(self, cap: "unsigned int") -> "void":
        r"""SetLineCap(OEPen self, unsigned int cap)"""
        return _oedepict.OEPen_SetLineCap(self, cap)

    def GetLineCap(self) -> "unsigned int":
        r"""GetLineCap(OEPen self) -> unsigned int"""
        return _oedepict.OEPen_GetLineCap(self)

    def SetLineWidth(self, w: "double") -> "void":
        r"""SetLineWidth(OEPen self, double w)"""
        return _oedepict.OEPen_SetLineWidth(self, w)

    def GetLineWidth(self) -> "double":
        r"""GetLineWidth(OEPen self) -> double"""
        return _oedepict.OEPen_GetLineWidth(self)

    def SetLineStipple(self, p: "unsigned short") -> "void":
        r"""SetLineStipple(OEPen self, unsigned short p)"""
        return _oedepict.OEPen_SetLineStipple(self, p)

    def GetLineStipple(self) -> "unsigned short":
        r"""GetLineStipple(OEPen self) -> unsigned short"""
        return _oedepict.OEPen_GetLineStipple(self)

    def SetStippleFactor(self, f: "unsigned short") -> "void":
        r"""SetStippleFactor(OEPen self, unsigned short f)"""
        return _oedepict.OEPen_SetStippleFactor(self, f)

    def GetStippleFactor(self) -> "unsigned short":
        r"""GetStippleFactor(OEPen self) -> unsigned short"""
        return _oedepict.OEPen_GetStippleFactor(self)

    def __eq__(self, arg2: "OEPen") -> "bool":
        r"""__eq__(OEPen self, OEPen arg2) -> bool"""
        return _oedepict.OEPen___eq__(self, arg2)

    def __ne__(self, arg2: "OEPen") -> "bool":
        r"""__ne__(OEPen self, OEPen arg2) -> bool"""
        return _oedepict.OEPen___ne__(self, arg2)

# Register OEPen in _oedepict:
_oedepict.OEPen_swigregister(OEPen)
cvar = _oedepict.cvar
OEDefaultFont = cvar.OEDefaultFont

class OE2DPoint(object):
    r"""Proxy of C++ OEDepict::OE2DPoint class."""

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

    def __init__(self, *args):
        r"""
        __init__(OE2DPoint self) -> OE2DPoint
        __init__(OE2DPoint self, double x, double y) -> OE2DPoint
        __init__(OE2DPoint self, OE2DPoint arg2) -> OE2DPoint
        """
        _oedepict.OE2DPoint_swiginit(self, _oedepict.new_OE2DPoint(*args))
    __swig_destroy__ = _oedepict.delete_OE2DPoint

    def SetX(self, x: "double") -> "void":
        r"""SetX(OE2DPoint self, double x)"""
        return _oedepict.OE2DPoint_SetX(self, x)

    def GetX(self) -> "double":
        r"""GetX(OE2DPoint self) -> double"""
        return _oedepict.OE2DPoint_GetX(self)

    def SetY(self, y: "double") -> "void":
        r"""SetY(OE2DPoint self, double y)"""
        return _oedepict.OE2DPoint_SetY(self, y)

    def GetY(self) -> "double":
        r"""GetY(OE2DPoint self) -> double"""
        return _oedepict.OE2DPoint_GetY(self)

    def __add__(self, rhs):
        p = OE2DPoint(self.GetX() + rhs.GetX(),  self.GetY() + rhs.GetY())
        return p



    def __iadd__(self, rhs):
        p = OE2DPoint(self.GetX() + rhs.GetX(), self.GetY() + rhs.GetY())
        return p



    def __sub__(self, rhs):
        p = OE2DPoint(self.GetX() - rhs.GetX(), self.GetY() - rhs.GetY())
        return p



    def __sub__(self, rhs):
        p = OE2DPoint(self.GetX() - rhs.GetX(), self.GetY() - rhs.GetY())
        return p



    def __mul__(self, rhs):
        p = OE2DPoint(self.GetX() * rhs, self.GetY() * rhs)
        return p



    def __mul__(self, rhs):
        p = OE2DPoint(self.GetX() * rhs, self.GetY() * rhs)
        return p



    def __div__(self, rhs):
        p = OE2DPoint(self.GetX() / rhs, self.GetY() / rhs)
        return p



    def __floordiv__(self, rhs):
        p = OE2DPoint(self.GetX() / rhs, self.GetY() / rhs)
        return p



    def __truediv__(self, rhs):
        p = OE2DPoint(self.GetX() / rhs, self.GetY() / rhs)
        return p



    def __idiv__(self, rhs):
        p = OE2DPoint(self.GetX() / rhs, self.GetY() / rhs)
        return p



    def __ifloordiv__(self, rhs):
        p = OE2DPoint(self.GetX() / rhs, self.GetY() / rhs)
        return p



    def __itruediv__(self, rhs):
        p = OE2DPoint(self.GetX() / rhs, self.GetY() / rhs)
        return p



    def __repr__(self) -> "std::string":
        r"""__repr__(OE2DPoint self) -> std::string"""
        return _oedepict.OE2DPoint___repr__(self)

# Register OE2DPoint in _oedepict:
_oedepict.OE2DPoint_swigregister(OE2DPoint)
OEWhiteBoxPen = cvar.OEWhiteBoxPen
OEBlackBoxPen = cvar.OEBlackBoxPen
OEBlueBoxPen = cvar.OEBlueBoxPen
OEGreenBoxPen = cvar.OEGreenBoxPen
OERedBoxPen = cvar.OERedBoxPen
OELightGreyBoxPen = cvar.OELightGreyBoxPen
OEWhitePen = cvar.OEWhitePen
OEBlackPen = cvar.OEBlackPen
OEBluePen = cvar.OEBluePen
OEGreenPen = cvar.OEGreenPen
OERedPen = cvar.OERedPen
OELightGreyPen = cvar.OELightGreyPen
OETransparentPen = cvar.OETransparentPen
OESVGAreaPen = cvar.OESVGAreaPen
OELightBackgroundColor = cvar.OELightBackgroundColor
OEDarkBackgroundColor = cvar.OEDarkBackgroundColor


def OERotateVector(vect: "OE2DPoint", degree: "double") -> "OEDepict::OE2DPoint":
    r"""OERotateVector(OE2DPoint vect, double degree) -> OE2DPoint"""
    return _oedepict.OERotateVector(vect, degree)

def OELengthenVector(vect: "OE2DPoint", length: "double") -> "OEDepict::OE2DPoint":
    r"""OELengthenVector(OE2DPoint vect, double length) -> OE2DPoint"""
    return _oedepict.OELengthenVector(vect, length)

def OEGetDefaultAtomColor(*args) -> "OESystem::OEColor":
    r"""OEGetDefaultAtomColor(unsigned int atomic, unsigned int style=) -> OEColor"""
    return _oedepict.OEGetDefaultAtomColor(*args)
class OE2DPathPoint(object):
    r"""Proxy of C++ OEDepict::OE2DPathPoint 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__(OE2DPathPoint self, OE2DPoint point, unsigned int ptype) -> OE2DPathPoint
        __init__(OE2DPathPoint self, OE2DPathPoint arg2) -> OE2DPathPoint
        """
        _oedepict.OE2DPathPoint_swiginit(self, _oedepict.new_OE2DPathPoint(*args))
    __swig_destroy__ = _oedepict.delete_OE2DPathPoint

    def GetPoint(self) -> "OEDepict::OE2DPoint const &":
        r"""GetPoint(OE2DPathPoint self) -> OE2DPoint"""
        return _oedepict.OE2DPathPoint_GetPoint(self)

    def GetPointType(self) -> "unsigned int":
        r"""GetPointType(OE2DPathPoint self) -> unsigned int"""
        return _oedepict.OE2DPathPoint_GetPointType(self)

# Register OE2DPathPoint in _oedepict:
_oedepict.OE2DPathPoint_swigregister(OE2DPathPoint)

class OE2DPathPointIter(object):
    r"""Proxy of C++ OESystem::OEIter< OEDepict::OE2DPathPoint > 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__(OE2DPathPointIter self) -> OE2DPathPointIter
        __init__(OE2DPathPointIter self, OE2DPathPointIter rhs) -> OE2DPathPointIter
        __init__(OE2DPathPointIter self, OESystem::OEIterBase< OEDepict::OE2DPathPoint > * rhs) -> OE2DPathPointIter
        __init__(OE2DPathPointIter self, OESystem::OEIterBase< OESystem::OEIter< OEDepict::OE2DPathPoint >::NonConstA > * rhs) -> OE2DPathPointIter
        """
        _oedepict.OE2DPathPointIter_swiginit(self, _oedepict.new_OE2DPathPointIter(*args))
    __swig_destroy__ = _oedepict.delete_OE2DPathPointIter

    def Copy(self) -> "OESystem::OEIterBase< OEDepict::OE2DPathPoint > *":
        r"""Copy(OE2DPathPointIter self) -> OESystem::OEIterBase< OEDepict::OE2DPathPoint > *"""
        return _oedepict.OE2DPathPointIter_Copy(self)

    def Push(self, *args) -> "void":
        r"""
        Push(OE2DPathPointIter self, OESystem::OEIterBase< OEDepict::OE2DPathPoint > * ib)
        Push(OE2DPathPointIter self, OE2DPathPointIter iter)
        """
        return _oedepict.OE2DPathPointIter_Push(self, *args)

    def Sort(self, sort_criterion: "OESystem::OEBinaryPredicate< OEDepict::OE2DPathPoint,OEDepict::OE2DPathPoint > const &") -> "void":
        r"""Sort(OE2DPathPointIter self, OESystem::OEBinaryPredicate< OEDepict::OE2DPathPoint,OEDepict::OE2DPathPoint > const & sort_criterion)"""
        return _oedepict.OE2DPathPointIter_Sort(self, sort_criterion)

    def ToFirst(self) -> "OESystem::OEIter< OEDepict::OE2DPathPoint > &":
        r"""ToFirst(OE2DPathPointIter self) -> OE2DPathPointIter"""
        return _oedepict.OE2DPathPointIter_ToFirst(self)

    def ToLast(self) -> "OESystem::OEIter< OEDepict::OE2DPathPoint > &":
        r"""ToLast(OE2DPathPointIter self) -> OE2DPathPointIter"""
        return _oedepict.OE2DPathPointIter_ToLast(self)

    def __ref__(self) -> "OEDepict::OE2DPathPoint &":
        r"""__ref__(OE2DPathPointIter self) -> OE2DPathPoint"""
        return _oedepict.OE2DPathPointIter___ref__(self)

    def IsValid(self):
      return _oedepict.OE2DPathPointIter___nonzero__(self)



    def __iter__(self):
        while self.IsValid():
            ret = self.Target()
            ret._itr = self
            yield ret
            self.Next()



    def next(self) -> "PyObject *":
        r"""next(OE2DPathPointIter self) -> PyObject *"""
        return _oedepict.OE2DPathPointIter_next(self)

    def Target(self) -> "OEDepict::OE2DPathPoint &":
        r"""Target(OE2DPathPointIter self) -> OE2DPathPoint"""
        return _oedepict.OE2DPathPointIter_Target(self)

    def Next(self, *args) -> "OESystem::OEIter< OEDepict::OE2DPathPoint > &":
        r"""
        Next(OE2DPathPointIter self) -> OE2DPathPointIter
        Next(OE2DPathPointIter self, int i) -> OE2DPathPointIter
        """
        return _oedepict.OE2DPathPointIter_Next(self, *args)

    def Prev(self, *args) -> "OESystem::OEIter< OEDepict::OE2DPathPoint > &":
        r"""
        Prev(OE2DPathPointIter self) -> OE2DPathPointIter
        Prev(OE2DPathPointIter self, int i) -> OE2DPathPointIter
        """
        return _oedepict.OE2DPathPointIter_Prev(self, *args)

# Register OE2DPathPointIter in _oedepict:
_oedepict.OE2DPathPointIter_swigregister(OE2DPathPointIter)

class OE2DPath(object):
    r"""Proxy of C++ OEDepict::OE2DPath 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__(OE2DPath self) -> OE2DPath
        __init__(OE2DPath self, OE2DPoint start, bool closed=True) -> OE2DPath
        __init__(OE2DPath self, OE2DPath rhs) -> OE2DPath
        __init__(OE2DPath self, OE2DPath rhs, double scale) -> OE2DPath
        __init__(OE2DPath self, OE2DPath rhs, OE2DPoint offset) -> OE2DPath
        __init__(OE2DPath self, OE2DPath rhs, OE2DPoint center, double degree) -> OE2DPath
        """
        _oedepict.OE2DPath_swiginit(self, _oedepict.new_OE2DPath(*args))
    __swig_destroy__ = _oedepict.delete_OE2DPath

    def IsValid(self) -> "bool":
        r"""IsValid(OE2DPath self) -> bool"""
        return _oedepict.OE2DPath_IsValid(self)

    def AddStartPoint(self, start: "OE2DPoint") -> "void":
        r"""AddStartPoint(OE2DPath self, OE2DPoint start)"""
        return _oedepict.OE2DPath_AddStartPoint(self, start)

    def AddLineSegment(self, end: "OE2DPoint") -> "void":
        r"""AddLineSegment(OE2DPath self, OE2DPoint end)"""
        return _oedepict.OE2DPath_AddLineSegment(self, end)

    def AddCurveSegment(self, c1: "OE2DPoint", c2: "OE2DPoint", end: "OE2DPoint") -> "void":
        r"""AddCurveSegment(OE2DPath self, OE2DPoint c1, OE2DPoint c2, OE2DPoint end)"""
        return _oedepict.OE2DPath_AddCurveSegment(self, c1, c2, end)

    def GetStart(self) -> "OEDepict::OE2DPoint":
        r"""GetStart(OE2DPath self) -> OE2DPoint"""
        return _oedepict.OE2DPath_GetStart(self)

    def GetEnd(self) -> "OEDepict::OE2DPoint":
        r"""GetEnd(OE2DPath self) -> OE2DPoint"""
        return _oedepict.OE2DPath_GetEnd(self)

    def GetPoints(self) -> "OESystem::OEIterBase< OEDepict::OE2DPathPoint > *":
        r"""GetPoints(OE2DPath self) -> OESystem::OEIterBase< OEDepict::OE2DPathPoint > *"""
        return _oedepict.OE2DPath_GetPoints(self)

    def SetClosed(self, closed: "bool") -> "void":
        r"""SetClosed(OE2DPath self, bool closed)"""
        return _oedepict.OE2DPath_SetClosed(self, closed)

    def IsClosed(self) -> "bool":
        r"""IsClosed(OE2DPath self) -> bool"""
        return _oedepict.OE2DPath_IsClosed(self)

# Register OE2DPath in _oedepict:
_oedepict.OE2DPath_swigregister(OE2DPath)

class OESVGClass(object):
    r"""Proxy of C++ OEDepict::OESVGClass 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, parent: "OEImageBase", name: "std::string const &"):
        r"""__init__(OESVGClass self, OEImageBase parent, std::string const & name) -> OESVGClass"""
        _oedepict.OESVGClass_swiginit(self, _oedepict.new_OESVGClass(parent, name))
    __swig_destroy__ = _oedepict.delete_OESVGClass

    def GetName(self) -> "std::string":
        r"""GetName(OESVGClass self) -> std::string"""
        return _oedepict.OESVGClass_GetName(self)

# Register OESVGClass in _oedepict:
_oedepict.OESVGClass_swigregister(OESVGClass)


def OEIsValidSVGClassName(name: "std::string const &") -> "bool":
    r"""OEIsValidSVGClassName(std::string const & name) -> bool"""
    return _oedepict.OEIsValidSVGClassName(name)
class OESVGGroup(object):
    r"""Proxy of C++ OEDepict::OESVGGroup 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, parent: "OEImageBase", id: "std::string const &"):
        r"""__init__(OESVGGroup self, OEImageBase parent, std::string const & id) -> OESVGGroup"""
        _oedepict.OESVGGroup_swiginit(self, _oedepict.new_OESVGGroup(parent, id))
    __swig_destroy__ = _oedepict.delete_OESVGGroup

    def GetId(self) -> "std::string":
        r"""GetId(OESVGGroup self) -> std::string"""
        return _oedepict.OESVGGroup_GetId(self)

    def AddSVGClass(self, svg_class: "OESVGClass") -> "bool":
        r"""AddSVGClass(OESVGGroup self, OESVGClass svg_class) -> bool"""
        return _oedepict.OESVGGroup_AddSVGClass(self, svg_class)

    def IsVisible(self) -> "bool":
        r"""IsVisible(OESVGGroup self) -> bool"""
        return _oedepict.OESVGGroup_IsVisible(self)

# Register OESVGGroup in _oedepict:
_oedepict.OESVGGroup_swigregister(OESVGGroup)


def OEIsValidSVGGroupId(id: "std::string const &") -> "bool":
    r"""OEIsValidSVGGroupId(std::string const & id) -> bool"""
    return _oedepict.OEIsValidSVGGroupId(id)
class OESVGGroupIter(object):
    r"""Proxy of C++ OESystem::OEIter< OEDepict::OESVGGroup > 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__(OESVGGroupIter self) -> OESVGGroupIter
        __init__(OESVGGroupIter self, OESVGGroupIter rhs) -> OESVGGroupIter
        __init__(OESVGGroupIter self, OESystem::OEIterBase< OEDepict::OESVGGroup > * rhs) -> OESVGGroupIter
        __init__(OESVGGroupIter self, OESystem::OEIterBase< OESystem::OEIter< OEDepict::OESVGGroup >::NonConstA > * rhs) -> OESVGGroupIter
        """
        _oedepict.OESVGGroupIter_swiginit(self, _oedepict.new_OESVGGroupIter(*args))
    __swig_destroy__ = _oedepict.delete_OESVGGroupIter

    def Copy(self) -> "OESystem::OEIterBase< OEDepict::OESVGGroup > *":
        r"""Copy(OESVGGroupIter self) -> OESystem::OEIterBase< OEDepict::OESVGGroup > *"""
        return _oedepict.OESVGGroupIter_Copy(self)

    def Push(self, *args) -> "void":
        r"""
        Push(OESVGGroupIter self, OESystem::OEIterBase< OEDepict::OESVGGroup > * ib)
        Push(OESVGGroupIter self, OESVGGroupIter iter)
        """
        return _oedepict.OESVGGroupIter_Push(self, *args)

    def Sort(self, sort_criterion: "OESystem::OEBinaryPredicate< OEDepict::OESVGGroup,OEDepict::OESVGGroup > const &") -> "void":
        r"""Sort(OESVGGroupIter self, OESystem::OEBinaryPredicate< OEDepict::OESVGGroup,OEDepict::OESVGGroup > const & sort_criterion)"""
        return _oedepict.OESVGGroupIter_Sort(self, sort_criterion)

    def ToFirst(self) -> "OESystem::OEIter< OEDepict::OESVGGroup > &":
        r"""ToFirst(OESVGGroupIter self) -> OESVGGroupIter"""
        return _oedepict.OESVGGroupIter_ToFirst(self)

    def ToLast(self) -> "OESystem::OEIter< OEDepict::OESVGGroup > &":
        r"""ToLast(OESVGGroupIter self) -> OESVGGroupIter"""
        return _oedepict.OESVGGroupIter_ToLast(self)

    def __ref__(self) -> "OEDepict::OESVGGroup &":
        r"""__ref__(OESVGGroupIter self) -> OESVGGroup"""
        return _oedepict.OESVGGroupIter___ref__(self)

    def IsValid(self):
      return _oedepict.OESVGGroupIter___nonzero__(self)



    def __iter__(self):
        while self.IsValid():
            ret = self.Target()
            ret._itr = self
            yield ret
            self.Next()



    def next(self) -> "PyObject *":
        r"""next(OESVGGroupIter self) -> PyObject *"""
        return _oedepict.OESVGGroupIter_next(self)

    def Target(self) -> "OEDepict::OESVGGroup &":
        r"""Target(OESVGGroupIter self) -> OESVGGroup"""
        return _oedepict.OESVGGroupIter_Target(self)

    def Next(self, *args) -> "OESystem::OEIter< OEDepict::OESVGGroup > &":
        r"""
        Next(OESVGGroupIter self) -> OESVGGroupIter
        Next(OESVGGroupIter self, int i) -> OESVGGroupIter
        """
        return _oedepict.OESVGGroupIter_Next(self, *args)

    def Prev(self, *args) -> "OESystem::OEIter< OEDepict::OESVGGroup > &":
        r"""
        Prev(OESVGGroupIter self) -> OESVGGroupIter
        Prev(OESVGGroupIter self, int i) -> OESVGGroupIter
        """
        return _oedepict.OESVGGroupIter_Prev(self, *args)

# Register OESVGGroupIter in _oedepict:
_oedepict.OESVGGroupIter_swigregister(OESVGGroupIter)


def OEAddBuiltInHiddenSVGClass(image: "OEImageBase") -> "OEDepict::OESVGClass const *":
    r"""OEAddBuiltInHiddenSVGClass(OEImageBase image) -> OESVGClass"""
    return _oedepict.OEAddBuiltInHiddenSVGClass(image)

def OEGetBuiltInHiddenSVGClass(image: "OEImageBase") -> "OEDepict::OESVGClass const *":
    r"""OEGetBuiltInHiddenSVGClass(OEImageBase image) -> OESVGClass"""
    return _oedepict.OEGetBuiltInHiddenSVGClass(image)

def OEAddBuiltInVisibleSVGClass(image: "OEImageBase") -> "OEDepict::OESVGClass const *":
    r"""OEAddBuiltInVisibleSVGClass(OEImageBase image) -> OESVGClass"""
    return _oedepict.OEAddBuiltInVisibleSVGClass(image)

def OEGetBuiltInVisibleSVGClass(image: "OEImageBase") -> "OEDepict::OESVGClass const *":
    r"""OEGetBuiltInVisibleSVGClass(OEImageBase image) -> OESVGClass"""
    return _oedepict.OEGetBuiltInVisibleSVGClass(image)

def OEAddSVGHover(*args) -> "bool":
    r"""
    OEAddSVGHover(OESVGGroup area, OESVGGroup target) -> bool
    OEAddSVGHover(OESVGGroup area, OESVGGroup targetA, OESVGGroup targetB) -> bool
    """
    return _oedepict.OEAddSVGHover(*args)

def OEAddSVGToggle(area: "OESVGGroup", target: "OESVGGroup", on: "bool"=False) -> "bool":
    r"""OEAddSVGToggle(OESVGGroup area, OESVGGroup target, bool on=False) -> bool"""
    return _oedepict.OEAddSVGToggle(area, target, on)
class OEImageBase(object):
    r"""Proxy of C++ OEDepict::OEImageBase 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, width: "double"=200.0, height: "double"=200.0):
        r"""__init__(OEImageBase self, double width=200.0, double height=200.0) -> OEImageBase"""
        if self.__class__ == OEImageBase:
            _self = None
        else:
            _self = self
        _oedepict.OEImageBase_swiginit(self, _oedepict.new_OEImageBase(_self, width, height))
    __swig_destroy__ = _oedepict.delete_OEImageBase

    def GetHeight(self) -> "double":
        r"""GetHeight(OEImageBase self) -> double"""
        return _oedepict.OEImageBase_GetHeight(self)

    def GetWidth(self) -> "double":
        r"""GetWidth(OEImageBase self) -> double"""
        return _oedepict.OEImageBase_GetWidth(self)

    def DrawPoint(self, p: "OE2DPoint", color: "OEColor") -> "void":
        r"""DrawPoint(OEImageBase self, OE2DPoint p, OEColor color)"""
        return _oedepict.OEImageBase_DrawPoint(self, p, color)

    def Clear(self, *args) -> "void":
        r"""Clear(OEImageBase self, OEColor color=OEWhite)"""
        return _oedepict.OEImageBase_Clear(self, *args)

    def DrawLine(self, bgn: "OE2DPoint", end: "OE2DPoint", pen: "OEPen") -> "void":
        r"""DrawLine(OEImageBase self, OE2DPoint bgn, OE2DPoint end, OEPen pen)"""
        return _oedepict.OEImageBase_DrawLine(self, bgn, end, pen)

    def DrawRectangle(self, tl: "OE2DPoint", br: "OE2DPoint", pen: "OEPen") -> "void":
        r"""DrawRectangle(OEImageBase self, OE2DPoint tl, OE2DPoint br, OEPen pen)"""
        return _oedepict.OEImageBase_DrawRectangle(self, tl, br, pen)

    def DrawArc(self, c: "OE2DPoint", bgnAngle: "double", endAngle: "double", radius: "double", pen: "OEPen") -> "void":
        r"""DrawArc(OEImageBase self, OE2DPoint c, double bgnAngle, double endAngle, double radius, OEPen pen)"""
        return _oedepict.OEImageBase_DrawArc(self, c, bgnAngle, endAngle, radius, pen)

    def DrawPie(self, c: "OE2DPoint", bgnAngle: "double", endAngle: "double", radius: "double", pen: "OEPen") -> "void":
        r"""DrawPie(OEImageBase self, OE2DPoint c, double bgnAngle, double endAngle, double radius, OEPen pen)"""
        return _oedepict.OEImageBase_DrawPie(self, c, bgnAngle, endAngle, radius, pen)

    def DrawCircle(self, c: "OE2DPoint", radius: "double", pen: "OEPen") -> "void":
        r"""DrawCircle(OEImageBase self, OE2DPoint c, double radius, OEPen pen)"""
        return _oedepict.OEImageBase_DrawCircle(self, c, radius, pen)

    def DrawTriangle(self, arg0: "OE2DPoint", arg1: "OE2DPoint", arg2: "OE2DPoint", arg3: "OEPen") -> "void":
        r"""DrawTriangle(OEImageBase self, OE2DPoint arg0, OE2DPoint arg1, OE2DPoint arg2, OEPen arg3)"""
        return _oedepict.OEImageBase_DrawTriangle(self, arg0, arg1, arg2, arg3)

    def DrawPath(self, path: "OE2DPath", pen: "OEPen") -> "void":
        r"""DrawPath(OEImageBase self, OE2DPath path, OEPen pen)"""
        return _oedepict.OEImageBase_DrawPath(self, path, pen)

    def DrawCubicBezier(self, bgn: "OE2DPoint", c1: "OE2DPoint", c2: "OE2DPoint", end: "OE2DPoint", pen: "OEPen") -> "void":
        r"""DrawCubicBezier(OEImageBase self, OE2DPoint bgn, OE2DPoint c1, OE2DPoint c2, OE2DPoint end, OEPen pen)"""
        return _oedepict.OEImageBase_DrawCubicBezier(self, bgn, c1, c2, end, pen)

    def DrawQuadraticBezier(self, bgn: "OE2DPoint", c1: "OE2DPoint", end: "OE2DPoint", pen: "OEPen") -> "void":
        r"""DrawQuadraticBezier(OEImageBase self, OE2DPoint bgn, OE2DPoint c1, OE2DPoint end, OEPen pen)"""
        return _oedepict.OEImageBase_DrawQuadraticBezier(self, bgn, c1, end, pen)

    def DrawText(self, c: "OE2DPoint", text: "std::string const &", font: "OEFont", maxwidth: "double"=0.0) -> "void":
        r"""DrawText(OEImageBase self, OE2DPoint c, std::string const & text, OEFont font, double maxwidth=0.0)"""
        return _oedepict.OEImageBase_DrawText(self, c, text, font, maxwidth)

    def SetMinFontSize(self, fontsize: "unsigned int") -> "void":
        r"""SetMinFontSize(OEImageBase self, unsigned int fontsize)"""
        return _oedepict.OEImageBase_SetMinFontSize(self, fontsize)

    def GetMinFontSize(self) -> "unsigned int":
        r"""GetMinFontSize(OEImageBase self) -> unsigned int"""
        return _oedepict.OEImageBase_GetMinFontSize(self)

    def GetGlobalOffset(self) -> "OEDepict::OE2DPoint const &":
        r"""GetGlobalOffset(OEImageBase self) -> OE2DPoint"""
        return _oedepict.OEImageBase_GetGlobalOffset(self)

    def NewSVGGroup(self, id: "std::string const &") -> "OEDepict::OESVGGroup *":
        r"""NewSVGGroup(OEImageBase self, std::string const & id) -> OESVGGroup"""
        return _oedepict.OEImageBase_NewSVGGroup(self, id)

    def NewSVGClass(self, name: "std::string const &") -> "OEDepict::OESVGClass *":
        r"""NewSVGClass(OEImageBase self, std::string const & name) -> OESVGClass"""
        return _oedepict.OEImageBase_NewSVGClass(self, name)

    def GetSVGGroup(self, id: "std::string const &") -> "OEDepict::OESVGGroup *":
        r"""GetSVGGroup(OEImageBase self, std::string const & id) -> OESVGGroup"""
        return _oedepict.OEImageBase_GetSVGGroup(self, id)

    def GetSVGClass(self, name: "std::string const &") -> "OEDepict::OESVGClass *":
        r"""GetSVGClass(OEImageBase self, std::string const & name) -> OESVGClass"""
        return _oedepict.OEImageBase_GetSVGClass(self, name)

    def GetSVGGroups(self) -> "OESystem::OEIterBase< OEDepict::OESVGGroup > *":
        r"""GetSVGGroups(OEImageBase self) -> OESystem::OEIterBase< OEDepict::OESVGGroup > *"""
        return _oedepict.OEImageBase_GetSVGGroups(self)

    def PushGroup(self, arg0: "OESVGGroup") -> "bool":
        r"""PushGroup(OEImageBase self, OESVGGroup arg0) -> bool"""
        return _oedepict.OEImageBase_PushGroup(self, arg0)

    def PopGroup(self, arg0: "OESVGGroup") -> "bool":
        r"""PopGroup(OEImageBase self, OESVGGroup arg0) -> bool"""
        return _oedepict.OEImageBase_PopGroup(self, arg0)

    def RenderSVGGroup(self, svggroup: "OESVGGroup") -> "bool":
        r"""RenderSVGGroup(OEImageBase self, OESVGGroup svggroup) -> bool"""
        return _oedepict.OEImageBase_RenderSVGGroup(self, svggroup)

    def RenderSVGClass(self, svgclass: "OESVGClass") -> "bool":
        r"""RenderSVGClass(OEImageBase self, OESVGClass svgclass) -> bool"""
        return _oedepict.OEImageBase_RenderSVGClass(self, svgclass)

    def DrawPolygon(self, *args) -> "PyObject *":
        r"""
        DrawPolygon(OEImageBase self, std::vector< OEDepict::OE2DPoint,std::allocator< OEDepict::OE2DPoint > > const & endPoints, OEPen pen)
        DrawPolygon(OEImageBase self, PyObject * points, OEPen pen) -> PyObject *
        """
        return _oedepict.OEImageBase_DrawPolygon(self, *args)
    def __disown__(self):
        self.this.disown()
        _oedepict.disown_OEImageBase(self)
        return weakref.proxy(self)

# Register OEImageBase in _oedepict:
_oedepict.OEImageBase_swigregister(OEImageBase)

class OEImageFileBase(OEImageBase):
    r"""Proxy of C++ OEDepict::OEImageFileBase 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__ = _oedepict.delete_OEImageFileBase

    def GetExtension(self) -> "std::string":
        r"""GetExtension(OEImageFileBase self) -> std::string"""
        return _oedepict.OEImageFileBase_GetExtension(self)

    def Write(self, os: "oeostream") -> "bool":
        r"""Write(OEImageFileBase self, oeostream os) -> bool"""
        return _oedepict.OEImageFileBase_Write(self, os)

    def PushGroup(self, arg2: "OESVGGroup") -> "bool":
        r"""PushGroup(OEImageFileBase self, OESVGGroup arg2) -> bool"""
        return _oedepict.OEImageFileBase_PushGroup(self, arg2)

    def PopGroup(self, arg2: "OESVGGroup") -> "bool":
        r"""PopGroup(OEImageFileBase self, OESVGGroup arg2) -> bool"""
        return _oedepict.OEImageFileBase_PopGroup(self, arg2)

    def IsVisible(self) -> "bool":
        r"""IsVisible(OEImageFileBase self) -> bool"""
        return _oedepict.OEImageFileBase_IsVisible(self)

# Register OEImageFileBase in _oedepict:
_oedepict.OEImageFileBase_swigregister(OEImageFileBase)

class OEImageBaseIter(object):
    r"""Proxy of C++ OESystem::OEIter< OEDepict::OEImageBase > 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__(OEImageBaseIter self) -> OEImageBaseIter
        __init__(OEImageBaseIter self, OEImageBaseIter rhs) -> OEImageBaseIter
        __init__(OEImageBaseIter self, OESystem::OEIterBase< OEDepict::OEImageBase > * rhs) -> OEImageBaseIter
        __init__(OEImageBaseIter self, OESystem::OEIterBase< OESystem::OEIter< OEDepict::OEImageBase >::NonConstA > * rhs) -> OEImageBaseIter
        """
        _oedepict.OEImageBaseIter_swiginit(self, _oedepict.new_OEImageBaseIter(*args))
    __swig_destroy__ = _oedepict.delete_OEImageBaseIter

    def Copy(self) -> "OESystem::OEIterBase< OEDepict::OEImageBase > *":
        r"""Copy(OEImageBaseIter self) -> OESystem::OEIterBase< OEDepict::OEImageBase > *"""
        return _oedepict.OEImageBaseIter_Copy(self)

    def Push(self, *args) -> "void":
        r"""
        Push(OEImageBaseIter self, OESystem::OEIterBase< OEDepict::OEImageBase > * ib)
        Push(OEImageBaseIter self, OEImageBaseIter iter)
        """
        return _oedepict.OEImageBaseIter_Push(self, *args)

    def Sort(self, sort_criterion: "OESystem::OEBinaryPredicate< OEDepict::OEImageBase,OEDepict::OEImageBase > const &") -> "void":
        r"""Sort(OEImageBaseIter self, OESystem::OEBinaryPredicate< OEDepict::OEImageBase,OEDepict::OEImageBase > const & sort_criterion)"""
        return _oedepict.OEImageBaseIter_Sort(self, sort_criterion)

    def ToFirst(self) -> "OESystem::OEIter< OEDepict::OEImageBase > &":
        r"""ToFirst(OEImageBaseIter self) -> OEImageBaseIter"""
        return _oedepict.OEImageBaseIter_ToFirst(self)

    def ToLast(self) -> "OESystem::OEIter< OEDepict::OEImageBase > &":
        r"""ToLast(OEImageBaseIter self) -> OEImageBaseIter"""
        return _oedepict.OEImageBaseIter_ToLast(self)

    def __ref__(self) -> "OEDepict::OEImageBase &":
        r"""__ref__(OEImageBaseIter self) -> OEImageBase"""
        return _oedepict.OEImageBaseIter___ref__(self)

    def IsValid(self):
      return _oedepict.OEImageBaseIter___nonzero__(self)



    def __iter__(self):
        while self.IsValid():
            ret = self.Target()
            ret._itr = self
            yield ret
            self.Next()



    def next(self) -> "PyObject *":
        r"""next(OEImageBaseIter self) -> PyObject *"""
        return _oedepict.OEImageBaseIter_next(self)

    def Target(self) -> "OEDepict::OEImageBase &":
        r"""Target(OEImageBaseIter self) -> OEImageBase"""
        return _oedepict.OEImageBaseIter_Target(self)

    def Next(self, *args) -> "OESystem::OEIter< OEDepict::OEImageBase > &":
        r"""
        Next(OEImageBaseIter self) -> OEImageBaseIter
        Next(OEImageBaseIter self, int i) -> OEImageBaseIter
        """
        return _oedepict.OEImageBaseIter_Next(self, *args)

    def Prev(self, *args) -> "OESystem::OEIter< OEDepict::OEImageBase > &":
        r"""
        Prev(OEImageBaseIter self) -> OEImageBaseIter
        Prev(OEImageBaseIter self, int i) -> OEImageBaseIter
        """
        return _oedepict.OEImageBaseIter_Prev(self, *args)

# Register OEImageBaseIter in _oedepict:
_oedepict.OEImageBaseIter_swigregister(OEImageBaseIter)

class OEImage(OEImageBase):
    r"""Proxy of C++ OEDepict::OEImage 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__(OEImage self, double width, double height, OEColor bgColor=OEWhite) -> OEImage
        __init__(OEImage self, OEImage rhs) -> OEImage
        __init__(OEImage self, OEImage rhs, double scale) -> OEImage
        """
        _oedepict.OEImage_swiginit(self, _oedepict.new_OEImage(*args))
    __swig_destroy__ = _oedepict.delete_OEImage

    def DrawPoint(self, p: "OE2DPoint", color: "OEColor") -> "void":
        r"""DrawPoint(OEImage self, OE2DPoint p, OEColor color)"""
        return _oedepict.OEImage_DrawPoint(self, p, color)

    def Clear(self, color: "OEColor") -> "void":
        r"""Clear(OEImage self, OEColor color)"""
        return _oedepict.OEImage_Clear(self, color)

    def DrawLine(self, bgn: "OE2DPoint", end: "OE2DPoint", pen: "OEPen") -> "void":
        r"""DrawLine(OEImage self, OE2DPoint bgn, OE2DPoint end, OEPen pen)"""
        return _oedepict.OEImage_DrawLine(self, bgn, end, pen)

    def DrawRectangle(self, tl: "OE2DPoint", br: "OE2DPoint", pen: "OEPen") -> "void":
        r"""DrawRectangle(OEImage self, OE2DPoint tl, OE2DPoint br, OEPen pen)"""
        return _oedepict.OEImage_DrawRectangle(self, tl, br, pen)

    def DrawArc(self, center: "OE2DPoint", bgnAngle: "double", endAngle: "double", radius: "double", pen: "OEPen") -> "void":
        r"""DrawArc(OEImage self, OE2DPoint center, double bgnAngle, double endAngle, double radius, OEPen pen)"""
        return _oedepict.OEImage_DrawArc(self, center, bgnAngle, endAngle, radius, pen)

    def DrawPie(self, center: "OE2DPoint", bgnAngle: "double", endAngle: "double", radius: "double", pen: "OEPen") -> "void":
        r"""DrawPie(OEImage self, OE2DPoint center, double bgnAngle, double endAngle, double radius, OEPen pen)"""
        return _oedepict.OEImage_DrawPie(self, center, bgnAngle, endAngle, radius, pen)

    def DrawCircle(self, center: "OE2DPoint", radius: "double", pen: "OEPen") -> "void":
        r"""DrawCircle(OEImage self, OE2DPoint center, double radius, OEPen pen)"""
        return _oedepict.OEImage_DrawCircle(self, center, radius, pen)

    def DrawTriangle(self, pA: "OE2DPoint", pB: "OE2DPoint", pC: "OE2DPoint", pen: "OEPen") -> "void":
        r"""DrawTriangle(OEImage self, OE2DPoint pA, OE2DPoint pB, OE2DPoint pC, OEPen pen)"""
        return _oedepict.OEImage_DrawTriangle(self, pA, pB, pC, pen)

    def DrawPath(self, path: "OE2DPath", pen: "OEPen") -> "void":
        r"""DrawPath(OEImage self, OE2DPath path, OEPen pen)"""
        return _oedepict.OEImage_DrawPath(self, path, pen)

    def DrawCubicBezier(self, bgn: "OE2DPoint", c1: "OE2DPoint", c2: "OE2DPoint", end: "OE2DPoint", pen: "OEPen") -> "void":
        r"""DrawCubicBezier(OEImage self, OE2DPoint bgn, OE2DPoint c1, OE2DPoint c2, OE2DPoint end, OEPen pen)"""
        return _oedepict.OEImage_DrawCubicBezier(self, bgn, c1, c2, end, pen)

    def DrawQuadraticBezier(self, bgn: "OE2DPoint", c1: "OE2DPoint", end: "OE2DPoint", pen: "OEPen") -> "void":
        r"""DrawQuadraticBezier(OEImage self, OE2DPoint bgn, OE2DPoint c1, OE2DPoint end, OEPen pen)"""
        return _oedepict.OEImage_DrawQuadraticBezier(self, bgn, c1, end, pen)

    def DrawText(self, c: "OE2DPoint", text: "std::string const &", font: "OEFont", maxwidth: "double"=0.0) -> "void":
        r"""DrawText(OEImage self, OE2DPoint c, std::string const & text, OEFont font, double maxwidth=0.0)"""
        return _oedepict.OEImage_DrawText(self, c, text, font, maxwidth)

    def GetWidth(self) -> "double":
        r"""GetWidth(OEImage self) -> double"""
        return _oedepict.OEImage_GetWidth(self)

    def GetHeight(self) -> "double":
        r"""GetHeight(OEImage self) -> double"""
        return _oedepict.OEImage_GetHeight(self)

    def IsEmpty(self) -> "bool":
        r"""IsEmpty(OEImage self) -> bool"""
        return _oedepict.OEImage_IsEmpty(self)

    def Render(self, image: "OEImageBase") -> "bool":
        r"""Render(OEImage self, OEImageBase image) -> bool"""
        return _oedepict.OEImage_Render(self, image)

    def RenderLayer(self, *args) -> "bool":
        r"""
        RenderLayer(OEImage self, OEImageBase image) -> bool
        RenderLayer(OEImage self, OEImageBase image, OE2DPoint offset) -> bool
        """
        return _oedepict.OEImage_RenderLayer(self, *args)

    def PushGroup(self, arg2: "OESVGGroup") -> "bool":
        r"""PushGroup(OEImage self, OESVGGroup arg2) -> bool"""
        return _oedepict.OEImage_PushGroup(self, arg2)

    def PopGroup(self, arg2: "OESVGGroup") -> "bool":
        r"""PopGroup(OEImage self, OESVGGroup arg2) -> bool"""
        return _oedepict.OEImage_PopGroup(self, arg2)

    def DrawPolygon(self, *args) -> "PyObject *":
        r"""
        DrawPolygon(OEImage self, std::vector< OEDepict::OE2DPoint,std::allocator< OEDepict::OE2DPoint > > const & points, OEPen pen)
        DrawPolygon(OEImage self, PyObject * points, OEPen pen) -> PyObject *
        """
        return _oedepict.OEImage_DrawPolygon(self, *args)

# Register OEImage in _oedepict:
_oedepict.OEImage_swigregister(OEImage)

class OEImageIter(object):
    r"""Proxy of C++ OESystem::OEIter< OEDepict::OEImage > 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__(OEImageIter self) -> OEImageIter
        __init__(OEImageIter self, OEImageIter rhs) -> OEImageIter
        __init__(OEImageIter self, OESystem::OEIterBase< OEDepict::OEImage > * rhs) -> OEImageIter
        __init__(OEImageIter self, OESystem::OEIterBase< OESystem::OEIter< OEDepict::OEImage >::NonConstA > * rhs) -> OEImageIter
        """
        _oedepict.OEImageIter_swiginit(self, _oedepict.new_OEImageIter(*args))
    __swig_destroy__ = _oedepict.delete_OEImageIter

    def Copy(self) -> "OESystem::OEIterBase< OEDepict::OEImage > *":
        r"""Copy(OEImageIter self) -> OESystem::OEIterBase< OEDepict::OEImage > *"""
        return _oedepict.OEImageIter_Copy(self)

    def Push(self, *args) -> "void":
        r"""
        Push(OEImageIter self, OESystem::OEIterBase< OEDepict::OEImage > * ib)
        Push(OEImageIter self, OEImageIter iter)
        """
        return _oedepict.OEImageIter_Push(self, *args)

    def Sort(self, sort_criterion: "OESystem::OEBinaryPredicate< OEDepict::OEImage,OEDepict::OEImage > const &") -> "void":
        r"""Sort(OEImageIter self, OESystem::OEBinaryPredicate< OEDepict::OEImage,OEDepict::OEImage > const & sort_criterion)"""
        return _oedepict.OEImageIter_Sort(self, sort_criterion)

    def ToFirst(self) -> "OESystem::OEIter< OEDepict::OEImage > &":
        r"""ToFirst(OEImageIter self) -> OEImageIter"""
        return _oedepict.OEImageIter_ToFirst(self)

    def ToLast(self) -> "OESystem::OEIter< OEDepict::OEImage > &":
        r"""ToLast(OEImageIter self) -> OEImageIter"""
        return _oedepict.OEImageIter_ToLast(self)

    def __ref__(self) -> "OEDepict::OEImage &":
        r"""__ref__(OEImageIter self) -> OEImage"""
        return _oedepict.OEImageIter___ref__(self)

    def IsValid(self):
      return _oedepict.OEImageIter___nonzero__(self)



    def __iter__(self):
        while self.IsValid():
            ret = self.Target()
            ret._itr = self
            yield ret
            self.Next()



    def next(self) -> "PyObject *":
        r"""next(OEImageIter self) -> PyObject *"""
        return _oedepict.OEImageIter_next(self)

    def Target(self) -> "OEDepict::OEImage &":
        r"""Target(OEImageIter self) -> OEImage"""
        return _oedepict.OEImageIter_Target(self)

    def Next(self, *args) -> "OESystem::OEIter< OEDepict::OEImage > &":
        r"""
        Next(OEImageIter self) -> OEImageIter
        Next(OEImageIter self, int i) -> OEImageIter
        """
        return _oedepict.OEImageIter_Next(self, *args)

    def Prev(self, *args) -> "OESystem::OEIter< OEDepict::OEImage > &":
        r"""
        Prev(OEImageIter self) -> OEImageIter
        Prev(OEImageIter self, int i) -> OEImageIter
        """
        return _oedepict.OEImageIter_Prev(self, *args)

# Register OEImageIter in _oedepict:
_oedepict.OEImageIter_swigregister(OEImageIter)

class OEImageFileCreatorBase(object):
    r"""Proxy of C++ OEDepict::OEImageFileCreatorBase 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__ = _oedepict.delete_OEImageFileCreatorBase

    def GetExtension(self) -> "std::string const":
        r"""GetExtension(OEImageFileCreatorBase self) -> std::string const"""
        return _oedepict.OEImageFileCreatorBase_GetExtension(self)

    def IsMultiPage(self) -> "bool":
        r"""IsMultiPage(OEImageFileCreatorBase self) -> bool"""
        return _oedepict.OEImageFileCreatorBase_IsMultiPage(self)

    def CreateImage(self, width: "double", height: "double") -> "OEDepict::OEImageFileBase *":
        r"""CreateImage(OEImageFileCreatorBase self, double width, double height) -> OEImageFileBase"""
        return _oedepict.OEImageFileCreatorBase_CreateImage(self, width, height)

    def CreateCopy(self) -> "OEDepict::OEImageFileCreatorBase *":
        r"""CreateCopy(OEImageFileCreatorBase self) -> OEImageFileCreatorBase"""
        return _oedepict.OEImageFileCreatorBase_CreateCopy(self)

# Register OEImageFileCreatorBase in _oedepict:
_oedepict.OEImageFileCreatorBase_swigregister(OEImageFileCreatorBase)


def OERegisterImageFile(arg1: "OEImageFileCreatorBase") -> "bool":
    r"""OERegisterImageFile(OEImageFileCreatorBase arg1) -> bool"""
    return _oedepict.OERegisterImageFile(arg1)

def OERegisterImageFilePtr(creator: "OEImageFileCreatorBase") -> "bool":
    r"""OERegisterImageFilePtr(OEImageFileCreatorBase creator) -> bool"""
    return _oedepict.OERegisterImageFilePtr(creator)

def OEIsRegisteredImageFile(ext: "std::string const &") -> "bool":
    r"""OEIsRegisteredImageFile(std::string const & ext) -> bool"""
    return _oedepict.OEIsRegisteredImageFile(ext)

def OEIsRegisteredMultiPageImageFile(ext: "std::string const &") -> "bool":
    r"""OEIsRegisteredMultiPageImageFile(std::string const & ext) -> bool"""
    return _oedepict.OEIsRegisteredMultiPageImageFile(ext)

def OEGetSupportedImageFileExtensions() -> "OESystem::OEIterBase< std::string const > *":
    r"""OEGetSupportedImageFileExtensions() -> OESystem::OEIterBase< std::string const > *"""
    return _oedepict.OEGetSupportedImageFileExtensions()

def OEGetSupportedMultiPageImageFileExtensions() -> "OESystem::OEIterBase< std::string const > *":
    r"""OEGetSupportedMultiPageImageFileExtensions() -> OESystem::OEIterBase< std::string const > *"""
    return _oedepict.OEGetSupportedMultiPageImageFileExtensions()
class OEDisplayAtomPropBase(object):
    r"""Proxy of C++ OESystem::OEUnaryFunction< OEChem::OEAtomBase,std::string,true,true > class."""

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

    def __call__(self, arg0: "OEAtomBase") -> "std::string":
        r"""__call__(OEDisplayAtomPropBase self, OEAtomBase arg0) -> std::string"""
        return _oedepict.OEDisplayAtomPropBase___call__(self, arg0)

    def CreateCopy(self) -> "OESystem::OEUnaryFunction< OEChem::OEAtomBase,std::string,true,true >::base_type *":
        r"""CreateCopy(OEDisplayAtomPropBase self) -> OEDisplayAtomPropBase"""
        return _oedepict.OEDisplayAtomPropBase_CreateCopy(self)

    def __init__(self):
        r"""__init__(OEDisplayAtomPropBase self) -> OEDisplayAtomPropBase"""
        if self.__class__ == OEDisplayAtomPropBase:
            _self = None
        else:
            _self = self
        _oedepict.OEDisplayAtomPropBase_swiginit(self, _oedepict.new_OEDisplayAtomPropBase(_self, ))
    def __disown__(self):
        self.this.disown()
        _oedepict.disown_OEDisplayAtomPropBase(self)
        return weakref.proxy(self)

# Register OEDisplayAtomPropBase in _oedepict:
_oedepict.OEDisplayAtomPropBase_swigregister(OEDisplayAtomPropBase)

class OEDisplayBondPropBase(object):
    r"""Proxy of C++ OESystem::OEUnaryFunction< OEChem::OEBondBase,std::string,true,true > class."""

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

    def __call__(self, arg0: "OEBondBase") -> "std::string":
        r"""__call__(OEDisplayBondPropBase self, OEBondBase arg0) -> std::string"""
        return _oedepict.OEDisplayBondPropBase___call__(self, arg0)

    def CreateCopy(self) -> "OESystem::OEUnaryFunction< OEChem::OEBondBase,std::string,true,true >::base_type *":
        r"""CreateCopy(OEDisplayBondPropBase self) -> OEDisplayBondPropBase"""
        return _oedepict.OEDisplayBondPropBase_CreateCopy(self)

    def __init__(self):
        r"""__init__(OEDisplayBondPropBase self) -> OEDisplayBondPropBase"""
        if self.__class__ == OEDisplayBondPropBase:
            _self = None
        else:
            _self = self
        _oedepict.OEDisplayBondPropBase_swiginit(self, _oedepict.new_OEDisplayBondPropBase(_self, ))
    def __disown__(self):
        self.this.disown()
        _oedepict.disown_OEDisplayBondPropBase(self)
        return weakref.proxy(self)

# Register OEDisplayBondPropBase in _oedepict:
_oedepict.OEDisplayBondPropBase_swigregister(OEDisplayBondPropBase)

class OEDisplayNoAtomProp(OEDisplayAtomPropBase):
    r"""Proxy of C++ OEDepict::OEDisplayNoAtomProp 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):
        r"""__init__(OEDisplayNoAtomProp self) -> OEDisplayNoAtomProp"""
        _oedepict.OEDisplayNoAtomProp_swiginit(self, _oedepict.new_OEDisplayNoAtomProp())

    def __call__(self, arg2: "OEAtomBase") -> "std::string":
        r"""__call__(OEDisplayNoAtomProp self, OEAtomBase arg2) -> std::string"""
        return _oedepict.OEDisplayNoAtomProp___call__(self, arg2)

    def CreateCopy(self) -> "OEDepict::OEDisplayNoAtomProp::base_type *":
        r"""CreateCopy(OEDisplayNoAtomProp self) -> OEDisplayAtomPropBase"""
        return _oedepict.OEDisplayNoAtomProp_CreateCopy(self)
    __swig_destroy__ = _oedepict.delete_OEDisplayNoAtomProp

# Register OEDisplayNoAtomProp in _oedepict:
_oedepict.OEDisplayNoAtomProp_swigregister(OEDisplayNoAtomProp)

class OEDisplayAtomIdx(OEDisplayAtomPropBase):
    r"""Proxy of C++ OEDepict::OEDisplayAtomIdx 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):
        r"""__init__(OEDisplayAtomIdx self) -> OEDisplayAtomIdx"""
        _oedepict.OEDisplayAtomIdx_swiginit(self, _oedepict.new_OEDisplayAtomIdx())

    def __call__(self, atom: "OEAtomBase") -> "std::string":
        r"""__call__(OEDisplayAtomIdx self, OEAtomBase atom) -> std::string"""
        return _oedepict.OEDisplayAtomIdx___call__(self, atom)

    def CreateCopy(self) -> "OEDepict::OEDisplayAtomIdx::base_type *":
        r"""CreateCopy(OEDisplayAtomIdx self) -> OEDisplayAtomPropBase"""
        return _oedepict.OEDisplayAtomIdx_CreateCopy(self)
    __swig_destroy__ = _oedepict.delete_OEDisplayAtomIdx

# Register OEDisplayAtomIdx in _oedepict:
_oedepict.OEDisplayAtomIdx_swigregister(OEDisplayAtomIdx)

class OEDisplayAtomMapIdx(OEDisplayAtomPropBase):
    r"""Proxy of C++ OEDepict::OEDisplayAtomMapIdx 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):
        r"""__init__(OEDisplayAtomMapIdx self) -> OEDisplayAtomMapIdx"""
        _oedepict.OEDisplayAtomMapIdx_swiginit(self, _oedepict.new_OEDisplayAtomMapIdx())

    def __call__(self, atom: "OEAtomBase") -> "std::string":
        r"""__call__(OEDisplayAtomMapIdx self, OEAtomBase atom) -> std::string"""
        return _oedepict.OEDisplayAtomMapIdx___call__(self, atom)

    def CreateCopy(self) -> "OEDepict::OEDisplayAtomMapIdx::base_type *":
        r"""CreateCopy(OEDisplayAtomMapIdx self) -> OEDisplayAtomPropBase"""
        return _oedepict.OEDisplayAtomMapIdx_CreateCopy(self)
    __swig_destroy__ = _oedepict.delete_OEDisplayAtomMapIdx

# Register OEDisplayAtomMapIdx in _oedepict:
_oedepict.OEDisplayAtomMapIdx_swigregister(OEDisplayAtomMapIdx)

class OEDisplayNoBondProp(OEDisplayBondPropBase):
    r"""Proxy of C++ OEDepict::OEDisplayNoBondProp 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):
        r"""__init__(OEDisplayNoBondProp self) -> OEDisplayNoBondProp"""
        _oedepict.OEDisplayNoBondProp_swiginit(self, _oedepict.new_OEDisplayNoBondProp())

    def __call__(self, arg2: "OEBondBase") -> "std::string":
        r"""__call__(OEDisplayNoBondProp self, OEBondBase arg2) -> std::string"""
        return _oedepict.OEDisplayNoBondProp___call__(self, arg2)

    def CreateCopy(self) -> "OEDepict::OEDisplayNoBondProp::base_type *":
        r"""CreateCopy(OEDisplayNoBondProp self) -> OEDisplayBondPropBase"""
        return _oedepict.OEDisplayNoBondProp_CreateCopy(self)
    __swig_destroy__ = _oedepict.delete_OEDisplayNoBondProp

# Register OEDisplayNoBondProp in _oedepict:
_oedepict.OEDisplayNoBondProp_swigregister(OEDisplayNoBondProp)

class OEDisplayBondIdx(OEDisplayBondPropBase):
    r"""Proxy of C++ OEDepict::OEDisplayBondIdx 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):
        r"""__init__(OEDisplayBondIdx self) -> OEDisplayBondIdx"""
        _oedepict.OEDisplayBondIdx_swiginit(self, _oedepict.new_OEDisplayBondIdx())

    def __call__(self, bond: "OEBondBase") -> "std::string":
        r"""__call__(OEDisplayBondIdx self, OEBondBase bond) -> std::string"""
        return _oedepict.OEDisplayBondIdx___call__(self, bond)

    def CreateCopy(self) -> "OEDepict::OEDisplayBondIdx::base_type *":
        r"""CreateCopy(OEDisplayBondIdx self) -> OEDisplayBondPropBase"""
        return _oedepict.OEDisplayBondIdx_CreateCopy(self)
    __swig_destroy__ = _oedepict.delete_OEDisplayBondIdx

# Register OEDisplayBondIdx in _oedepict:
_oedepict.OEDisplayBondIdx_swigregister(OEDisplayBondIdx)

class OEAtomSVGMarkupBase(object):
    r"""Proxy of C++ OEDepict::OEAtomSVGMarkupBase 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):
        r"""__init__(OEAtomSVGMarkupBase self) -> OEAtomSVGMarkupBase"""
        if self.__class__ == OEAtomSVGMarkupBase:
            _self = None
        else:
            _self = self
        _oedepict.OEAtomSVGMarkupBase_swiginit(self, _oedepict.new_OEAtomSVGMarkupBase(_self, ))
    __swig_destroy__ = _oedepict.delete_OEAtomSVGMarkupBase

    def GetGroupId(self, arg0: "OEAtomBase") -> "std::string":
        r"""GetGroupId(OEAtomSVGMarkupBase self, OEAtomBase arg0) -> std::string"""
        return _oedepict.OEAtomSVGMarkupBase_GetGroupId(self, arg0)

    def GetClassName(self, arg0: "OEAtomBase") -> "std::string":
        r"""GetClassName(OEAtomSVGMarkupBase self, OEAtomBase arg0) -> std::string"""
        return _oedepict.OEAtomSVGMarkupBase_GetClassName(self, arg0)

    def CreateCopy(self) -> "OEDepict::OEAtomSVGMarkupBase *":
        r"""CreateCopy(OEAtomSVGMarkupBase self) -> OEAtomSVGMarkupBase"""
        return _oedepict.OEAtomSVGMarkupBase_CreateCopy(self)
    def __disown__(self):
        self.this.disown()
        _oedepict.disown_OEAtomSVGMarkupBase(self)
        return weakref.proxy(self)

# Register OEAtomSVGMarkupBase in _oedepict:
_oedepict.OEAtomSVGMarkupBase_swigregister(OEAtomSVGMarkupBase)

class OEAtomSVGNoMarkup(OEAtomSVGMarkupBase):
    r"""Proxy of C++ OEDepict::OEAtomSVGNoMarkup 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):
        r"""__init__(OEAtomSVGNoMarkup self) -> OEAtomSVGNoMarkup"""
        _oedepict.OEAtomSVGNoMarkup_swiginit(self, _oedepict.new_OEAtomSVGNoMarkup())
    __swig_destroy__ = _oedepict.delete_OEAtomSVGNoMarkup

    def GetGroupId(self, arg2: "OEAtomBase") -> "std::string":
        r"""GetGroupId(OEAtomSVGNoMarkup self, OEAtomBase arg2) -> std::string"""
        return _oedepict.OEAtomSVGNoMarkup_GetGroupId(self, arg2)

    def GetClassName(self, arg2: "OEAtomBase") -> "std::string":
        r"""GetClassName(OEAtomSVGNoMarkup self, OEAtomBase arg2) -> std::string"""
        return _oedepict.OEAtomSVGNoMarkup_GetClassName(self, arg2)

    def CreateCopy(self) -> "OEDepict::OEAtomSVGMarkupBase *":
        r"""CreateCopy(OEAtomSVGNoMarkup self) -> OEAtomSVGMarkupBase"""
        return _oedepict.OEAtomSVGNoMarkup_CreateCopy(self)

# Register OEAtomSVGNoMarkup in _oedepict:
_oedepict.OEAtomSVGNoMarkup_swigregister(OEAtomSVGNoMarkup)

class OEAtomSVGAtomIdxMarkup(OEAtomSVGMarkupBase):
    r"""Proxy of C++ OEDepict::OEAtomSVGAtomIdxMarkup 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__(OEAtomSVGAtomIdxMarkup self, std::string const prefix="", std::string const classname="atom") -> OEAtomSVGAtomIdxMarkup"""
        _oedepict.OEAtomSVGAtomIdxMarkup_swiginit(self, _oedepict.new_OEAtomSVGAtomIdxMarkup(*args))
    __swig_destroy__ = _oedepict.delete_OEAtomSVGAtomIdxMarkup

    def GetGroupId(self, atom: "OEAtomBase") -> "std::string":
        r"""GetGroupId(OEAtomSVGAtomIdxMarkup self, OEAtomBase atom) -> std::string"""
        return _oedepict.OEAtomSVGAtomIdxMarkup_GetGroupId(self, atom)

    def GetClassName(self, arg2: "OEAtomBase") -> "std::string":
        r"""GetClassName(OEAtomSVGAtomIdxMarkup self, OEAtomBase arg2) -> std::string"""
        return _oedepict.OEAtomSVGAtomIdxMarkup_GetClassName(self, arg2)

    def CreateCopy(self) -> "OEDepict::OEAtomSVGMarkupBase *":
        r"""CreateCopy(OEAtomSVGAtomIdxMarkup self) -> OEAtomSVGMarkupBase"""
        return _oedepict.OEAtomSVGAtomIdxMarkup_CreateCopy(self)

# Register OEAtomSVGAtomIdxMarkup in _oedepict:
_oedepict.OEAtomSVGAtomIdxMarkup_swigregister(OEAtomSVGAtomIdxMarkup)

class OEAtomSVGResidueMarkup(OEAtomSVGMarkupBase):
    r"""Proxy of C++ OEDepict::OEAtomSVGResidueMarkup 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__(OEAtomSVGResidueMarkup self, std::string const prefix="", std::string const classname="ligand-atom", char const separator='-') -> OEAtomSVGResidueMarkup"""
        _oedepict.OEAtomSVGResidueMarkup_swiginit(self, _oedepict.new_OEAtomSVGResidueMarkup(*args))
    __swig_destroy__ = _oedepict.delete_OEAtomSVGResidueMarkup

    def GetGroupId(self, atom: "OEAtomBase") -> "std::string":
        r"""GetGroupId(OEAtomSVGResidueMarkup self, OEAtomBase atom) -> std::string"""
        return _oedepict.OEAtomSVGResidueMarkup_GetGroupId(self, atom)

    def GetClassName(self, arg2: "OEAtomBase") -> "std::string":
        r"""GetClassName(OEAtomSVGResidueMarkup self, OEAtomBase arg2) -> std::string"""
        return _oedepict.OEAtomSVGResidueMarkup_GetClassName(self, arg2)

    def CreateCopy(self) -> "OEDepict::OEAtomSVGMarkupBase *":
        r"""CreateCopy(OEAtomSVGResidueMarkup self) -> OEAtomSVGMarkupBase"""
        return _oedepict.OEAtomSVGResidueMarkup_CreateCopy(self)

# Register OEAtomSVGResidueMarkup in _oedepict:
_oedepict.OEAtomSVGResidueMarkup_swigregister(OEAtomSVGResidueMarkup)

class OEBondSVGMarkupBase(object):
    r"""Proxy of C++ OEDepict::OEBondSVGMarkupBase 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):
        r"""__init__(OEBondSVGMarkupBase self) -> OEBondSVGMarkupBase"""
        if self.__class__ == OEBondSVGMarkupBase:
            _self = None
        else:
            _self = self
        _oedepict.OEBondSVGMarkupBase_swiginit(self, _oedepict.new_OEBondSVGMarkupBase(_self, ))
    __swig_destroy__ = _oedepict.delete_OEBondSVGMarkupBase

    def GetGroupId(self, arg0: "OEBondBase") -> "std::string":
        r"""GetGroupId(OEBondSVGMarkupBase self, OEBondBase arg0) -> std::string"""
        return _oedepict.OEBondSVGMarkupBase_GetGroupId(self, arg0)

    def GetClassName(self, arg0: "OEBondBase") -> "std::string":
        r"""GetClassName(OEBondSVGMarkupBase self, OEBondBase arg0) -> std::string"""
        return _oedepict.OEBondSVGMarkupBase_GetClassName(self, arg0)

    def CreateCopy(self) -> "OEDepict::OEBondSVGMarkupBase *":
        r"""CreateCopy(OEBondSVGMarkupBase self) -> OEBondSVGMarkupBase"""
        return _oedepict.OEBondSVGMarkupBase_CreateCopy(self)
    def __disown__(self):
        self.this.disown()
        _oedepict.disown_OEBondSVGMarkupBase(self)
        return weakref.proxy(self)

# Register OEBondSVGMarkupBase in _oedepict:
_oedepict.OEBondSVGMarkupBase_swigregister(OEBondSVGMarkupBase)

class OEBondSVGNoMarkup(OEBondSVGMarkupBase):
    r"""Proxy of C++ OEDepict::OEBondSVGNoMarkup 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):
        r"""__init__(OEBondSVGNoMarkup self) -> OEBondSVGNoMarkup"""
        _oedepict.OEBondSVGNoMarkup_swiginit(self, _oedepict.new_OEBondSVGNoMarkup())

    def GetGroupId(self, arg2: "OEBondBase") -> "std::string":
        r"""GetGroupId(OEBondSVGNoMarkup self, OEBondBase arg2) -> std::string"""
        return _oedepict.OEBondSVGNoMarkup_GetGroupId(self, arg2)

    def GetClassName(self, arg2: "OEBondBase") -> "std::string":
        r"""GetClassName(OEBondSVGNoMarkup self, OEBondBase arg2) -> std::string"""
        return _oedepict.OEBondSVGNoMarkup_GetClassName(self, arg2)

    def CreateCopy(self) -> "OEDepict::OEBondSVGMarkupBase *":
        r"""CreateCopy(OEBondSVGNoMarkup self) -> OEBondSVGMarkupBase"""
        return _oedepict.OEBondSVGNoMarkup_CreateCopy(self)
    __swig_destroy__ = _oedepict.delete_OEBondSVGNoMarkup

# Register OEBondSVGNoMarkup in _oedepict:
_oedepict.OEBondSVGNoMarkup_swigregister(OEBondSVGNoMarkup)

class OEBondSVGBondIdxMarkup(OEBondSVGMarkupBase):
    r"""Proxy of C++ OEDepict::OEBondSVGBondIdxMarkup 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__(OEBondSVGBondIdxMarkup self, std::string const prefix="", std::string const classname="bond") -> OEBondSVGBondIdxMarkup"""
        _oedepict.OEBondSVGBondIdxMarkup_swiginit(self, _oedepict.new_OEBondSVGBondIdxMarkup(*args))
    __swig_destroy__ = _oedepict.delete_OEBondSVGBondIdxMarkup

    def GetGroupId(self, bond: "OEBondBase") -> "std::string":
        r"""GetGroupId(OEBondSVGBondIdxMarkup self, OEBondBase bond) -> std::string"""
        return _oedepict.OEBondSVGBondIdxMarkup_GetGroupId(self, bond)

    def GetClassName(self, arg2: "OEBondBase") -> "std::string":
        r"""GetClassName(OEBondSVGBondIdxMarkup self, OEBondBase arg2) -> std::string"""
        return _oedepict.OEBondSVGBondIdxMarkup_GetClassName(self, arg2)

    def CreateCopy(self) -> "OEDepict::OEBondSVGMarkupBase *":
        r"""CreateCopy(OEBondSVGBondIdxMarkup self) -> OEBondSVGMarkupBase"""
        return _oedepict.OEBondSVGBondIdxMarkup_CreateCopy(self)

# Register OEBondSVGBondIdxMarkup in _oedepict:
_oedepict.OEBondSVGBondIdxMarkup_swigregister(OEBondSVGBondIdxMarkup)

class OEAtomDisplayBase(oechem.OEBase):
    r"""Proxy of C++ OEDepict::OEAtomDisplayBase 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__ = _oedepict.delete_OEAtomDisplayBase

    def GetAtom(self) -> "OEChem::OEAtomBase const *":
        r"""GetAtom(OEAtomDisplayBase self) -> OEAtomBase"""
        return _oedepict.OEAtomDisplayBase_GetAtom(self)

    def GetDataType(self) -> "void const *":
        r"""GetDataType(OEAtomDisplayBase self) -> void const *"""
        return _oedepict.OEAtomDisplayBase_GetDataType(self)

    def IsDataType(self, arg2: "void const *") -> "bool":
        r"""IsDataType(OEAtomDisplayBase self, void const * arg2) -> bool"""
        return _oedepict.OEAtomDisplayBase_IsDataType(self, arg2)

    def SetVisible(self, visible: "bool") -> "void":
        r"""SetVisible(OEAtomDisplayBase self, bool visible)"""
        return _oedepict.OEAtomDisplayBase_SetVisible(self, visible)

    def IsVisible(self) -> "bool":
        r"""IsVisible(OEAtomDisplayBase self) -> bool"""
        return _oedepict.OEAtomDisplayBase_IsVisible(self)

# Register OEAtomDisplayBase in _oedepict:
_oedepict.OEAtomDisplayBase_swigregister(OEAtomDisplayBase)

class OE2DAtomDisplay(OEAtomDisplayBase):
    r"""Proxy of C++ OEDepict::OE2DAtomDisplay 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__(OE2DAtomDisplay self, OEAtomBase arg2) -> OE2DAtomDisplay
        __init__(OE2DAtomDisplay self, OE2DAtomDisplay rhs) -> OE2DAtomDisplay
        """
        _oedepict.OE2DAtomDisplay_swiginit(self, _oedepict.new_OE2DAtomDisplay(*args))
    __swig_destroy__ = _oedepict.delete_OE2DAtomDisplay

    def GetDataType(self) -> "void const *":
        r"""GetDataType(OE2DAtomDisplay self) -> void const *"""
        return _oedepict.OE2DAtomDisplay_GetDataType(self)

    def IsDataType(self, arg2: "void const *") -> "bool":
        r"""IsDataType(OE2DAtomDisplay self, void const * arg2) -> bool"""
        return _oedepict.OE2DAtomDisplay_IsDataType(self, arg2)

    def CreateCopy(self) -> "OESystem::OEBase *":
        r"""CreateCopy(OE2DAtomDisplay self) -> OEBase"""
        return _oedepict.OE2DAtomDisplay_CreateCopy(self)

    def SetCoords(self, coord: "OE2DPoint") -> "void":
        r"""SetCoords(OE2DAtomDisplay self, OE2DPoint coord)"""
        return _oedepict.OE2DAtomDisplay_SetCoords(self, coord)

    def GetCoords(self) -> "OEDepict::OE2DPoint const &":
        r"""GetCoords(OE2DAtomDisplay self) -> OE2DPoint"""
        return _oedepict.OE2DAtomDisplay_GetCoords(self)

    def SetLabel(self, label: "std::string const &") -> "void":
        r"""SetLabel(OE2DAtomDisplay self, std::string const & label)"""
        return _oedepict.OE2DAtomDisplay_SetLabel(self, label)

    def GetLabel(self) -> "std::string const &":
        r"""GetLabel(OE2DAtomDisplay self) -> std::string const &"""
        return _oedepict.OE2DAtomDisplay_GetLabel(self)

    def HasLabel(self) -> "bool":
        r"""HasLabel(OE2DAtomDisplay self) -> bool"""
        return _oedepict.OE2DAtomDisplay_HasLabel(self)

    def SetLabelFont(self, font: "OEFont") -> "void":
        r"""SetLabelFont(OE2DAtomDisplay self, OEFont font)"""
        return _oedepict.OE2DAtomDisplay_SetLabelFont(self, font)

    def GetLabelFont(self) -> "OEDepict::OEFont const &":
        r"""GetLabelFont(OE2DAtomDisplay self) -> OEFont"""
        return _oedepict.OE2DAtomDisplay_GetLabelFont(self)

    def SetHCount(self, hcount: "unsigned int") -> "void":
        r"""SetHCount(OE2DAtomDisplay self, unsigned int hcount)"""
        return _oedepict.OE2DAtomDisplay_SetHCount(self, hcount)

    def GetHCount(self) -> "unsigned int":
        r"""GetHCount(OE2DAtomDisplay self) -> unsigned int"""
        return _oedepict.OE2DAtomDisplay_GetHCount(self)

    def SetHPosition(self, hpos: "unsigned int") -> "void":
        r"""SetHPosition(OE2DAtomDisplay self, unsigned int hpos)"""
        return _oedepict.OE2DAtomDisplay_SetHPosition(self, hpos)

    def GetHPosition(self) -> "unsigned int":
        r"""GetHPosition(OE2DAtomDisplay self) -> unsigned int"""
        return _oedepict.OE2DAtomDisplay_GetHPosition(self)

    def SetCharge(self, charge: "int") -> "void":
        r"""SetCharge(OE2DAtomDisplay self, int charge)"""
        return _oedepict.OE2DAtomDisplay_SetCharge(self, charge)

    def GetCharge(self) -> "int":
        r"""GetCharge(OE2DAtomDisplay self) -> int"""
        return _oedepict.OE2DAtomDisplay_GetCharge(self)

    def SetMass(self, mass: "unsigned int") -> "void":
        r"""SetMass(OE2DAtomDisplay self, unsigned int mass)"""
        return _oedepict.OE2DAtomDisplay_SetMass(self, mass)

    def GetMass(self) -> "unsigned int":
        r"""GetMass(OE2DAtomDisplay self) -> unsigned int"""
        return _oedepict.OE2DAtomDisplay_GetMass(self)

    def SetRadical(self, radical: "unsigned int") -> "void":
        r"""SetRadical(OE2DAtomDisplay self, unsigned int radical)"""
        return _oedepict.OE2DAtomDisplay_SetRadical(self, radical)

    def GetRadical(self) -> "unsigned int":
        r"""GetRadical(OE2DAtomDisplay self) -> unsigned int"""
        return _oedepict.OE2DAtomDisplay_GetRadical(self)

    def SetPropertyOffset(self, offset: "OE2DPoint") -> "void":
        r"""SetPropertyOffset(OE2DAtomDisplay self, OE2DPoint offset)"""
        return _oedepict.OE2DAtomDisplay_SetPropertyOffset(self, offset)

    def GetPropertyOffset(self) -> "OEDepict::OE2DPoint const &":
        r"""GetPropertyOffset(OE2DAtomDisplay self) -> OE2DPoint"""
        return _oedepict.OE2DAtomDisplay_GetPropertyOffset(self)

    def SetProperty(self, label: "std::string const &") -> "void":
        r"""SetProperty(OE2DAtomDisplay self, std::string const & label)"""
        return _oedepict.OE2DAtomDisplay_SetProperty(self, label)

    def GetProperty(self) -> "std::string const &":
        r"""GetProperty(OE2DAtomDisplay self) -> std::string const &"""
        return _oedepict.OE2DAtomDisplay_GetProperty(self)

    def HasProperty(self) -> "bool":
        r"""HasProperty(OE2DAtomDisplay self) -> bool"""
        return _oedepict.OE2DAtomDisplay_HasProperty(self)

    def SetPropertyFont(self, font: "OEFont") -> "void":
        r"""SetPropertyFont(OE2DAtomDisplay self, OEFont font)"""
        return _oedepict.OE2DAtomDisplay_SetPropertyFont(self, font)

    def GetPropertyFont(self) -> "OEDepict::OEFont const &":
        r"""GetPropertyFont(OE2DAtomDisplay self) -> OEFont"""
        return _oedepict.OE2DAtomDisplay_GetPropertyFont(self)

# Register OE2DAtomDisplay in _oedepict:
_oedepict.OE2DAtomDisplay_swigregister(OE2DAtomDisplay)

class OE2DAtomDisplayIter(object):
    r"""Proxy of C++ OESystem::OEIter< OEDepict::OE2DAtomDisplay > 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__(OE2DAtomDisplayIter self) -> OE2DAtomDisplayIter
        __init__(OE2DAtomDisplayIter self, OE2DAtomDisplayIter rhs) -> OE2DAtomDisplayIter
        __init__(OE2DAtomDisplayIter self, OESystem::OEIterBase< OEDepict::OE2DAtomDisplay > * rhs) -> OE2DAtomDisplayIter
        __init__(OE2DAtomDisplayIter self, OESystem::OEIterBase< OESystem::OEIter< OEDepict::OE2DAtomDisplay >::NonConstA > * rhs) -> OE2DAtomDisplayIter
        """
        _oedepict.OE2DAtomDisplayIter_swiginit(self, _oedepict.new_OE2DAtomDisplayIter(*args))
    __swig_destroy__ = _oedepict.delete_OE2DAtomDisplayIter

    def Copy(self) -> "OESystem::OEIterBase< OEDepict::OE2DAtomDisplay > *":
        r"""Copy(OE2DAtomDisplayIter self) -> OESystem::OEIterBase< OEDepict::OE2DAtomDisplay > *"""
        return _oedepict.OE2DAtomDisplayIter_Copy(self)

    def Push(self, *args) -> "void":
        r"""
        Push(OE2DAtomDisplayIter self, OESystem::OEIterBase< OEDepict::OE2DAtomDisplay > * ib)
        Push(OE2DAtomDisplayIter self, OE2DAtomDisplayIter iter)
        """
        return _oedepict.OE2DAtomDisplayIter_Push(self, *args)

    def Sort(self, sort_criterion: "OESystem::OEBinaryPredicate< OEDepict::OE2DAtomDisplay,OEDepict::OE2DAtomDisplay > const &") -> "void":
        r"""Sort(OE2DAtomDisplayIter self, OESystem::OEBinaryPredicate< OEDepict::OE2DAtomDisplay,OEDepict::OE2DAtomDisplay > const & sort_criterion)"""
        return _oedepict.OE2DAtomDisplayIter_Sort(self, sort_criterion)

    def ToFirst(self) -> "OESystem::OEIter< OEDepict::OE2DAtomDisplay > &":
        r"""ToFirst(OE2DAtomDisplayIter self) -> OE2DAtomDisplayIter"""
        return _oedepict.OE2DAtomDisplayIter_ToFirst(self)

    def ToLast(self) -> "OESystem::OEIter< OEDepict::OE2DAtomDisplay > &":
        r"""ToLast(OE2DAtomDisplayIter self) -> OE2DAtomDisplayIter"""
        return _oedepict.OE2DAtomDisplayIter_ToLast(self)

    def __ref__(self) -> "OEDepict::OE2DAtomDisplay &":
        r"""__ref__(OE2DAtomDisplayIter self) -> OE2DAtomDisplay"""
        return _oedepict.OE2DAtomDisplayIter___ref__(self)

    def IsValid(self):
      return _oedepict.OE2DAtomDisplayIter___nonzero__(self)



    def __iter__(self):
        while self.IsValid():
            ret = self.Target()
            ret._itr = self
            yield ret
            self.Next()



    def next(self) -> "PyObject *":
        r"""next(OE2DAtomDisplayIter self) -> PyObject *"""
        return _oedepict.OE2DAtomDisplayIter_next(self)

    def Target(self) -> "OEDepict::OE2DAtomDisplay &":
        r"""Target(OE2DAtomDisplayIter self) -> OE2DAtomDisplay"""
        return _oedepict.OE2DAtomDisplayIter_Target(self)

    def Next(self, *args) -> "OESystem::OEIter< OEDepict::OE2DAtomDisplay > &":
        r"""
        Next(OE2DAtomDisplayIter self) -> OE2DAtomDisplayIter
        Next(OE2DAtomDisplayIter self, int i) -> OE2DAtomDisplayIter
        """
        return _oedepict.OE2DAtomDisplayIter_Next(self, *args)

    def Prev(self, *args) -> "OESystem::OEIter< OEDepict::OE2DAtomDisplay > &":
        r"""
        Prev(OE2DAtomDisplayIter self) -> OE2DAtomDisplayIter
        Prev(OE2DAtomDisplayIter self, int i) -> OE2DAtomDisplayIter
        """
        return _oedepict.OE2DAtomDisplayIter_Prev(self, *args)

# Register OE2DAtomDisplayIter in _oedepict:
_oedepict.OE2DAtomDisplayIter_swigregister(OE2DAtomDisplayIter)


def GetSWIG_NewPointerObj(*args) -> "PyObject *":
    r"""
    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(OESphere arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEReceptorProteinConstraint arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEReceptorConstraintFeature 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(OE2DPathPoint arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OESVGGroup arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEImageBase arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OEImage arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OE2DAtomDisplay arg, bool owned) -> PyObject
    GetSWIG_NewPointerObj(OE2DBondDisplay arg, bool owned) -> PyObject *
    """
    return _oedepict.GetSWIG_NewPointerObj(*args)
class OEBondDisplayBase(oechem.OEBase):
    r"""Proxy of C++ OEDepict::OEBondDisplayBase 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__ = _oedepict.delete_OEBondDisplayBase

    def GetBond(self) -> "OEChem::OEBondBase const *":
        r"""GetBond(OEBondDisplayBase self) -> OEBondBase"""
        return _oedepict.OEBondDisplayBase_GetBond(self)

    def GetDataType(self) -> "void const *":
        r"""GetDataType(OEBondDisplayBase self) -> void const *"""
        return _oedepict.OEBondDisplayBase_GetDataType(self)

    def IsDataType(self, arg2: "void const *") -> "bool":
        r"""IsDataType(OEBondDisplayBase self, void const * arg2) -> bool"""
        return _oedepict.OEBondDisplayBase_IsDataType(self, arg2)

    def SetVisible(self, visible: "bool") -> "void":
        r"""SetVisible(OEBondDisplayBase self, bool visible)"""
        return _oedepict.OEBondDisplayBase_SetVisible(self, visible)

    def IsVisible(self) -> "bool":
        r"""IsVisible(OEBondDisplayBase self) -> bool"""
        return _oedepict.OEBondDisplayBase_IsVisible(self)

# Register OEBondDisplayBase in _oedepict:
_oedepict.OEBondDisplayBase_swigregister(OEBondDisplayBase)

class OE2DBondDisplay(OEBondDisplayBase):
    r"""Proxy of C++ OEDepict::OE2DBondDisplay 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__(OE2DBondDisplay self, OEBondBase arg2) -> OE2DBondDisplay
        __init__(OE2DBondDisplay self, OE2DBondDisplay rhs) -> OE2DBondDisplay
        """
        _oedepict.OE2DBondDisplay_swiginit(self, _oedepict.new_OE2DBondDisplay(*args))
    __swig_destroy__ = _oedepict.delete_OE2DBondDisplay

    def GetDataType(self) -> "void const *":
        r"""GetDataType(OE2DBondDisplay self) -> void const *"""
        return _oedepict.OE2DBondDisplay_GetDataType(self)

    def IsDataType(self, arg2: "void const *") -> "bool":
        r"""IsDataType(OE2DBondDisplay self, void const * arg2) -> bool"""
        return _oedepict.OE2DBondDisplay_IsDataType(self, arg2)

    def CreateCopy(self) -> "OESystem::OEBase *":
        r"""CreateCopy(OE2DBondDisplay self) -> OEBase"""
        return _oedepict.OE2DBondDisplay_CreateCopy(self)

    def SetDisplayType(self, type: "unsigned int") -> "void":
        r"""SetDisplayType(OE2DBondDisplay self, unsigned int type)"""
        return _oedepict.OE2DBondDisplay_SetDisplayType(self, type)

    def GetDisplayType(self) -> "unsigned int":
        r"""GetDisplayType(OE2DBondDisplay self) -> unsigned int"""
        return _oedepict.OE2DBondDisplay_GetDisplayType(self)

    def SetDisplayPos(self, pos: "unsigned int") -> "void":
        r"""SetDisplayPos(OE2DBondDisplay self, unsigned int pos)"""
        return _oedepict.OE2DBondDisplay_SetDisplayPos(self, pos)

    def GetDisplayPos(self) -> "unsigned int":
        r"""GetDisplayPos(OE2DBondDisplay self) -> unsigned int"""
        return _oedepict.OE2DBondDisplay_GetDisplayPos(self)

    def SetBgnPen(self, pen: "OEPen") -> "void":
        r"""SetBgnPen(OE2DBondDisplay self, OEPen pen)"""
        return _oedepict.OE2DBondDisplay_SetBgnPen(self, pen)

    def GetBgnPen(self) -> "OEDepict::OEPen const &":
        r"""GetBgnPen(OE2DBondDisplay self) -> OEPen"""
        return _oedepict.OE2DBondDisplay_GetBgnPen(self)

    def SetEndPen(self, pen: "OEPen") -> "void":
        r"""SetEndPen(OE2DBondDisplay self, OEPen pen)"""
        return _oedepict.OE2DBondDisplay_SetEndPen(self, pen)

    def GetEndPen(self) -> "OEDepict::OEPen const &":
        r"""GetEndPen(OE2DBondDisplay self) -> OEPen"""
        return _oedepict.OE2DBondDisplay_GetEndPen(self)

    def SetPropertyOffset(self, arg2: "OE2DPoint") -> "void":
        r"""SetPropertyOffset(OE2DBondDisplay self, OE2DPoint arg2)"""
        return _oedepict.OE2DBondDisplay_SetPropertyOffset(self, arg2)

    def GetPropertyOffset(self) -> "OEDepict::OE2DPoint const &":
        r"""GetPropertyOffset(OE2DBondDisplay self) -> OE2DPoint"""
        return _oedepict.OE2DBondDisplay_GetPropertyOffset(self)

    def SetProperty(self, label: "std::string const &") -> "void":
        r"""SetProperty(OE2DBondDisplay self, std::string const & label)"""
        return _oedepict.OE2DBondDisplay_SetProperty(self, label)

    def GetProperty(self) -> "std::string const &":
        r"""GetProperty(OE2DBondDisplay self) -> std::string const &"""
        return _oedepict.OE2DBondDisplay_GetProperty(self)

    def HasProperty(self) -> "bool":
        r"""HasProperty(OE2DBondDisplay self) -> bool"""
        return _oedepict.OE2DBondDisplay_HasProperty(self)

    def SetPropertyFont(self, font: "OEFont") -> "void":
        r"""SetPropertyFont(OE2DBondDisplay self, OEFont font)"""
        return _oedepict.OE2DBondDisplay_SetPropertyFont(self, font)

    def GetPropertyFont(self) -> "OEDepict::OEFont const &":
        r"""GetPropertyFont(OE2DBondDisplay self) -> OEFont"""
        return _oedepict.OE2DBondDisplay_GetPropertyFont(self)

# Register OE2DBondDisplay in _oedepict:
_oedepict.OE2DBondDisplay_swigregister(OE2DBondDisplay)

class OE2DBondDisplayIter(object):
    r"""Proxy of C++ OESystem::OEIter< OEDepict::OE2DBondDisplay > 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__(OE2DBondDisplayIter self) -> OE2DBondDisplayIter
        __init__(OE2DBondDisplayIter self, OE2DBondDisplayIter rhs) -> OE2DBondDisplayIter
        __init__(OE2DBondDisplayIter self, OESystem::OEIterBase< OEDepict::OE2DBondDisplay > * rhs) -> OE2DBondDisplayIter
        __init__(OE2DBondDisplayIter self, OESystem::OEIterBase< OESystem::OEIter< OEDepict::OE2DBondDisplay >::NonConstA > * rhs) -> OE2DBondDisplayIter
        """
        _oedepict.OE2DBondDisplayIter_swiginit(self, _oedepict.new_OE2DBondDisplayIter(*args))
    __swig_destroy__ = _oedepict.delete_OE2DBondDisplayIter

    def Copy(self) -> "OESystem::OEIterBase< OEDepict::OE2DBondDisplay > *":
        r"""Copy(OE2DBondDisplayIter self) -> OESystem::OEIterBase< OEDepict::OE2DBondDisplay > *"""
        return _oedepict.OE2DBondDisplayIter_Copy(self)

    def Push(self, *args) -> "void":
        r"""
        Push(OE2DBondDisplayIter self, OESystem::OEIterBase< OEDepict::OE2DBondDisplay > * ib)
        Push(OE2DBondDisplayIter self, OE2DBondDisplayIter iter)
        """
        return _oedepict.OE2DBondDisplayIter_Push(self, *args)

    def Sort(self, sort_criterion: "OESystem::OEBinaryPredicate< OEDepict::OE2DBondDisplay,OEDepict::OE2DBondDisplay > const &") -> "void":
        r"""Sort(OE2DBondDisplayIter self, OESystem::OEBinaryPredicate< OEDepict::OE2DBondDisplay,OEDepict::OE2DBondDisplay > const & sort_criterion)"""
        return _oedepict.OE2DBondDisplayIter_Sort(self, sort_criterion)

    def ToFirst(self) -> "OESystem::OEIter< OEDepict::OE2DBondDisplay > &":
        r"""ToFirst(OE2DBondDisplayIter self) -> OE2DBondDisplayIter"""
        return _oedepict.OE2DBondDisplayIter_ToFirst(self)

    def ToLast(self) -> "OESystem::OEIter< OEDepict::OE2DBondDisplay > &":
        r"""ToLast(OE2DBondDisplayIter self) -> OE2DBondDisplayIter"""
        return _oedepict.OE2DBondDisplayIter_ToLast(self)

    def __ref__(self) -> "OEDepict::OE2DBondDisplay &":
        r"""__ref__(OE2DBondDisplayIter self) -> OE2DBondDisplay"""
        return _oedepict.OE2DBondDisplayIter___ref__(self)

    def IsValid(self):
      return _oedepict.OE2DBondDisplayIter___nonzero__(self)



    def __iter__(self):
        while self.IsValid():
            ret = self.Target()
            ret._itr = self
            yield ret
            self.Next()



    def next(self) -> "PyObject *":
        r"""next(OE2DBondDisplayIter self) -> PyObject *"""
        return _oedepict.OE2DBondDisplayIter_next(self)

    def Target(self) -> "OEDepict::OE2DBondDisplay &":
        r"""Target(OE2DBondDisplayIter self) -> OE2DBondDisplay"""
        return _oedepict.OE2DBondDisplayIter_Target(self)

    def Next(self, *args) -> "OESystem::OEIter< OEDepict::OE2DBondDisplay > &":
        r"""
        Next(OE2DBondDisplayIter self) -> OE2DBondDisplayIter
        Next(OE2DBondDisplayIter self, int i) -> OE2DBondDisplayIter
        """
        return _oedepict.OE2DBondDisplayIter_Next(self, *args)

    def Prev(self, *args) -> "OESystem::OEIter< OEDepict::OE2DBondDisplay > &":
        r"""
        Prev(OE2DBondDisplayIter self) -> OE2DBondDisplayIter
        Prev(OE2DBondDisplayIter self, int i) -> OE2DBondDisplayIter
        """
        return _oedepict.OE2DBondDisplayIter_Prev(self, *args)

# Register OE2DBondDisplayIter in _oedepict:
_oedepict.OE2DBondDisplayIter_swigregister(OE2DBondDisplayIter)

class OEMolDisplayBase(oechem.OEBase):
    r"""Proxy of C++ OEDepict::OEMolDisplayBase 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__ = _oedepict.delete_OEMolDisplayBase

    def GetDataType(self) -> "void const *":
        r"""GetDataType(OEMolDisplayBase self) -> void const *"""
        return _oedepict.OEMolDisplayBase_GetDataType(self)

    def IsDataType(self, arg2: "void const *") -> "bool":
        r"""IsDataType(OEMolDisplayBase self, void const * arg2) -> bool"""
        return _oedepict.OEMolDisplayBase_IsDataType(self, arg2)

    def GetMolecule(self) -> "OEChem::OEMolBase const *":
        r"""GetMolecule(OEMolDisplayBase self) -> OEMolBase"""
        return _oedepict.OEMolDisplayBase_GetMolecule(self)

# Register OEMolDisplayBase in _oedepict:
_oedepict.OEMolDisplayBase_swigregister(OEMolDisplayBase)

class OE2DMolDisplay(OEMolDisplayBase):
    r"""Proxy of C++ OEDepict::OE2DMolDisplay 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__(OE2DMolDisplay self, OEMolBase arg2) -> OE2DMolDisplay
        __init__(OE2DMolDisplay self, OEMolBase arg2, OE2DMolDisplayOptions arg3) -> OE2DMolDisplay
        __init__(OE2DMolDisplay self, OE2DMolDisplay rhs) -> OE2DMolDisplay
        """
        _oedepict.OE2DMolDisplay_swiginit(self, _oedepict.new_OE2DMolDisplay(*args))
    __swig_destroy__ = _oedepict.delete_OE2DMolDisplay

    def GetDataType(self) -> "void const *":
        r"""GetDataType(OE2DMolDisplay self) -> void const *"""
        return _oedepict.OE2DMolDisplay_GetDataType(self)

    def IsDataType(self, arg2: "void const *") -> "bool":
        r"""IsDataType(OE2DMolDisplay self, void const * arg2) -> bool"""
        return _oedepict.OE2DMolDisplay_IsDataType(self, arg2)

    def CreateCopy(self) -> "OESystem::OEBase *":
        r"""CreateCopy(OE2DMolDisplay self) -> OEBase"""
        return _oedepict.OE2DMolDisplay_CreateCopy(self)

    def GetAtomDisplay(self, *args) -> "OEDepict::OE2DAtomDisplay const *":
        r"""
        GetAtomDisplay(OE2DMolDisplay self, OEAtomBase atom) -> OE2DAtomDisplay
        GetAtomDisplay(OE2DMolDisplay self, OEAtomBase atom) -> OE2DAtomDisplay
        """
        return _oedepict.OE2DMolDisplay_GetAtomDisplay(self, *args)

    def GetBondDisplay(self, *args) -> "OEDepict::OE2DBondDisplay const *":
        r"""
        GetBondDisplay(OE2DMolDisplay self, OEBondBase bond) -> OE2DBondDisplay
        GetBondDisplay(OE2DMolDisplay self, OEBondBase bond) -> OE2DBondDisplay
        """
        return _oedepict.OE2DMolDisplay_GetBondDisplay(self, *args)

    def GetAtomDisplays(self, *args) -> "OESystem::OEIterBase< OEDepict::OE2DAtomDisplay > *":
        r"""
        GetAtomDisplays(OE2DMolDisplay self) -> OESystem::OEIterBase< OEDepict::OE2DAtomDisplay >
        GetAtomDisplays(OE2DMolDisplay self, OEUnaryAtomPred pred) -> OESystem::OEIterBase< OEDepict::OE2DAtomDisplay > *
        """
        return _oedepict.OE2DMolDisplay_GetAtomDisplays(self, *args)

    def GetBondDisplays(self, *args) -> "OESystem::OEIterBase< OEDepict::OE2DBondDisplay > *":
        r"""
        GetBondDisplays(OE2DMolDisplay self) -> OESystem::OEIterBase< OEDepict::OE2DBondDisplay >
        GetBondDisplays(OE2DMolDisplay self, OEUnaryBondPred pred) -> OESystem::OEIterBase< OEDepict::OE2DBondDisplay > *
        """
        return _oedepict.OE2DMolDisplay_GetBondDisplays(self, *args)

    def GetOptions(self) -> "OEDepict::OE2DMolDisplayOptions const &":
        r"""GetOptions(OE2DMolDisplay self) -> OE2DMolDisplayOptions"""
        return _oedepict.OE2DMolDisplay_GetOptions(self)

    def GetWidth(self) -> "double":
        r"""GetWidth(OE2DMolDisplay self) -> double"""
        return _oedepict.OE2DMolDisplay_GetWidth(self)

    def GetHeight(self) -> "double":
        r"""GetHeight(OE2DMolDisplay self) -> double"""
        return _oedepict.OE2DMolDisplay_GetHeight(self)

    def GetScale(self) -> "double":
        r"""GetScale(OE2DMolDisplay self) -> double"""
        return _oedepict.OE2DMolDisplay_GetScale(self)

    def IsValid(self) -> "bool":
        r"""IsValid(OE2DMolDisplay self) -> bool"""
        return _oedepict.OE2DMolDisplay_IsValid(self)

    def GetLayer(self, *args) -> "OEDepict::OEImage const &":
        r"""
        GetLayer(OE2DMolDisplay self, unsigned int position, unsigned int idx=0) -> OEImage
        GetLayer(OE2DMolDisplay self, unsigned int position, unsigned int idx=0) -> OEImage
        """
        return _oedepict.OE2DMolDisplay_GetLayer(self, *args)

# Register OE2DMolDisplay in _oedepict:
_oedepict.OE2DMolDisplay_swigregister(OE2DMolDisplay)


def OEOffsetMolDisplay(*args) -> "void":
    r"""
    OEOffsetMolDisplay(OE2DMolDisplay disp, OE2DPoint offset)
    OEOffsetMolDisplay(OE2DMolDisplay disp, OE2DMolDisplay refdisp)
    """
    return _oedepict.OEOffsetMolDisplay(*args)
class OE2DMolDisplayOptions(object):
    r"""Proxy of C++ OEDepict::OE2DMolDisplayOptions 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__(OE2DMolDisplayOptions self) -> OE2DMolDisplayOptions
        __init__(OE2DMolDisplayOptions self, double scale) -> OE2DMolDisplayOptions
        __init__(OE2DMolDisplayOptions self, double width, double height, double scale) -> OE2DMolDisplayOptions
        __init__(OE2DMolDisplayOptions self, OE2DMolDisplayOptions rhs) -> OE2DMolDisplayOptions
        """
        _oedepict.OE2DMolDisplayOptions_swiginit(self, _oedepict.new_OE2DMolDisplayOptions(*args))
    __swig_destroy__ = _oedepict.delete_OE2DMolDisplayOptions

    def GetWidth(self) -> "double":
        r"""GetWidth(OE2DMolDisplayOptions self) -> double"""
        return _oedepict.OE2DMolDisplayOptions_GetWidth(self)

    def SetWidth(self, width: "double") -> "void":
        r"""SetWidth(OE2DMolDisplayOptions self, double width)"""
        return _oedepict.OE2DMolDisplayOptions_SetWidth(self, width)

    def GetHeight(self) -> "double":
        r"""GetHeight(OE2DMolDisplayOptions self) -> double"""
        return _oedepict.OE2DMolDisplayOptions_GetHeight(self)

    def SetHeight(self, height: "double") -> "void":
        r"""SetHeight(OE2DMolDisplayOptions self, double height)"""
        return _oedepict.OE2DMolDisplayOptions_SetHeight(self, height)

    def GetScale(self) -> "double":
        r"""GetScale(OE2DMolDisplayOptions self) -> double"""
        return _oedepict.OE2DMolDisplayOptions_GetScale(self)

    def SetScale(self, scale: "double") -> "void":
        r"""SetScale(OE2DMolDisplayOptions self, double scale)"""
        return _oedepict.OE2DMolDisplayOptions_SetScale(self, scale)

    def SetDimensions(self, width: "double", height: "double", scale: "double") -> "void":
        r"""SetDimensions(OE2DMolDisplayOptions self, double width, double height, double scale)"""
        return _oedepict.OE2DMolDisplayOptions_SetDimensions(self, width, height, scale)

    def SetAtomColorStyle(self, style: "unsigned int") -> "void":
        r"""SetAtomColorStyle(OE2DMolDisplayOptions self, unsigned int style)"""
        return _oedepict.OE2DMolDisplayOptions_SetAtomColorStyle(self, style)

    def GetAtomColorStyle(self) -> "unsigned int":
        r"""GetAtomColorStyle(OE2DMolDisplayOptions self) -> unsigned int"""
        return _oedepict.OE2DMolDisplayOptions_GetAtomColorStyle(self)

    def SetBondColorStyle(self, style: "unsigned int") -> "void":
        r"""SetBondColorStyle(OE2DMolDisplayOptions self, unsigned int style)"""
        return _oedepict.OE2DMolDisplayOptions_SetBondColorStyle(self, style)

    def GetBondColorStyle(self) -> "unsigned int":
        r"""GetBondColorStyle(OE2DMolDisplayOptions self) -> unsigned int"""
        return _oedepict.OE2DMolDisplayOptions_GetBondColorStyle(self)

    def SetAtomColor(self, atomic: "unsigned int", color: "OEColor") -> "void":
        r"""SetAtomColor(OE2DMolDisplayOptions self, unsigned int atomic, OEColor color)"""
        return _oedepict.OE2DMolDisplayOptions_SetAtomColor(self, atomic, color)

    def GetAtomColor(self, atomic: "unsigned int") -> "OESystem::OEColor const &":
        r"""GetAtomColor(OE2DMolDisplayOptions self, unsigned int atomic) -> OEColor"""
        return _oedepict.OE2DMolDisplayOptions_GetAtomColor(self, atomic)

    def SetBackgroundColor(self, color: "OEColor") -> "void":
        r"""SetBackgroundColor(OE2DMolDisplayOptions self, OEColor color)"""
        return _oedepict.OE2DMolDisplayOptions_SetBackgroundColor(self, color)

    def GetBackgroundColor(self) -> "OESystem::OEColor const &":
        r"""GetBackgroundColor(OE2DMolDisplayOptions self) -> OEColor"""
        return _oedepict.OE2DMolDisplayOptions_GetBackgroundColor(self)

    def SetAtomLabelFont(self, font: "OEFont") -> "void":
        r"""SetAtomLabelFont(OE2DMolDisplayOptions self, OEFont font)"""
        return _oedepict.OE2DMolDisplayOptions_SetAtomLabelFont(self, font)

    def GetAtomLabelFont(self) -> "OEDepict::OEFont const &":
        r"""GetAtomLabelFont(OE2DMolDisplayOptions self) -> OEFont"""
        return _oedepict.OE2DMolDisplayOptions_GetAtomLabelFont(self)

    def SetAtomLabelFontScale(self, scale: "double") -> "void":
        r"""SetAtomLabelFontScale(OE2DMolDisplayOptions self, double scale)"""
        return _oedepict.OE2DMolDisplayOptions_SetAtomLabelFontScale(self, scale)

    def GetAtomLabelFontScale(self) -> "double":
        r"""GetAtomLabelFontScale(OE2DMolDisplayOptions self) -> double"""
        return _oedepict.OE2DMolDisplayOptions_GetAtomLabelFontScale(self)

    def SetSuperAtomLabelFont(self, font: "OEFont") -> "void":
        r"""SetSuperAtomLabelFont(OE2DMolDisplayOptions self, OEFont font)"""
        return _oedepict.OE2DMolDisplayOptions_SetSuperAtomLabelFont(self, font)

    def GetSuperAtomLabelFont(self) -> "OEDepict::OEFont const &":
        r"""GetSuperAtomLabelFont(OE2DMolDisplayOptions self) -> OEFont"""
        return _oedepict.OE2DMolDisplayOptions_GetSuperAtomLabelFont(self)

    def SetProtectiveGroupLabelFont(self, font: "OEFont") -> "void":
        r"""SetProtectiveGroupLabelFont(OE2DMolDisplayOptions self, OEFont font)"""
        return _oedepict.OE2DMolDisplayOptions_SetProtectiveGroupLabelFont(self, font)

    def GetProtectiveGroupLabelFont(self) -> "OEDepict::OEFont const &":
        r"""GetProtectiveGroupLabelFont(OE2DMolDisplayOptions self) -> OEFont"""
        return _oedepict.OE2DMolDisplayOptions_GetProtectiveGroupLabelFont(self)

    def SetAtomPropLabelFont(self, cont: "OEFont") -> "void":
        r"""SetAtomPropLabelFont(OE2DMolDisplayOptions self, OEFont cont)"""
        return _oedepict.OE2DMolDisplayOptions_SetAtomPropLabelFont(self, cont)

    def GetAtomPropLabelFont(self) -> "OEDepict::OEFont const &":
        r"""GetAtomPropLabelFont(OE2DMolDisplayOptions self) -> OEFont"""
        return _oedepict.OE2DMolDisplayOptions_GetAtomPropLabelFont(self)

    def SetAtomPropLabelFontScale(self, scale: "double") -> "void":
        r"""SetAtomPropLabelFontScale(OE2DMolDisplayOptions self, double scale)"""
        return _oedepict.OE2DMolDisplayOptions_SetAtomPropLabelFontScale(self, scale)

    def GetAtomPropLabelFontScale(self) -> "double":
        r"""GetAtomPropLabelFontScale(OE2DMolDisplayOptions self) -> double"""
        return _oedepict.OE2DMolDisplayOptions_GetAtomPropLabelFontScale(self)

    def SetBondPropLabelFont(self, color: "OEFont") -> "void":
        r"""SetBondPropLabelFont(OE2DMolDisplayOptions self, OEFont color)"""
        return _oedepict.OE2DMolDisplayOptions_SetBondPropLabelFont(self, color)

    def GetBondPropLabelFont(self) -> "OEDepict::OEFont const &":
        r"""GetBondPropLabelFont(OE2DMolDisplayOptions self) -> OEFont"""
        return _oedepict.OE2DMolDisplayOptions_GetBondPropLabelFont(self)

    def SetBondPropLabelFontScale(self, scale: "double") -> "void":
        r"""SetBondPropLabelFontScale(OE2DMolDisplayOptions self, double scale)"""
        return _oedepict.OE2DMolDisplayOptions_SetBondPropLabelFontScale(self, scale)

    def GetBondPropLabelFontScale(self) -> "double":
        r"""GetBondPropLabelFontScale(OE2DMolDisplayOptions self) -> double"""
        return _oedepict.OE2DMolDisplayOptions_GetBondPropLabelFontScale(self)

    def SetAromaticStyle(self, style: "unsigned int") -> "void":
        r"""SetAromaticStyle(OE2DMolDisplayOptions self, unsigned int style)"""
        return _oedepict.OE2DMolDisplayOptions_SetAromaticStyle(self, style)

    def GetAromaticStyle(self) -> "unsigned int":
        r"""GetAromaticStyle(OE2DMolDisplayOptions self) -> unsigned int"""
        return _oedepict.OE2DMolDisplayOptions_GetAromaticStyle(self)

    def SetHydrogenStyle(self, style: "unsigned int") -> "void":
        r"""SetHydrogenStyle(OE2DMolDisplayOptions self, unsigned int style)"""
        return _oedepict.OE2DMolDisplayOptions_SetHydrogenStyle(self, style)

    def GetHydrogenStyle(self) -> "unsigned int":
        r"""GetHydrogenStyle(OE2DMolDisplayOptions self) -> unsigned int"""
        return _oedepict.OE2DMolDisplayOptions_GetHydrogenStyle(self)

    def SetAtomStereoStyle(self, style: "unsigned int") -> "void":
        r"""SetAtomStereoStyle(OE2DMolDisplayOptions self, unsigned int style)"""
        return _oedepict.OE2DMolDisplayOptions_SetAtomStereoStyle(self, style)

    def GetAtomStereoStyle(self) -> "unsigned int":
        r"""GetAtomStereoStyle(OE2DMolDisplayOptions self) -> unsigned int"""
        return _oedepict.OE2DMolDisplayOptions_GetAtomStereoStyle(self)

    def SetBondStereoStyle(self, style: "unsigned int") -> "void":
        r"""SetBondStereoStyle(OE2DMolDisplayOptions self, unsigned int style)"""
        return _oedepict.OE2DMolDisplayOptions_SetBondStereoStyle(self, style)

    def GetBondStereoStyle(self) -> "unsigned int":
        r"""GetBondStereoStyle(OE2DMolDisplayOptions self) -> unsigned int"""
        return _oedepict.OE2DMolDisplayOptions_GetBondStereoStyle(self)

    def SetSuperAtomStyle(self, style: "unsigned int") -> "void":
        r"""SetSuperAtomStyle(OE2DMolDisplayOptions self, unsigned int style)"""
        return _oedepict.OE2DMolDisplayOptions_SetSuperAtomStyle(self, style)

    def GetSuperAtomStyle(self) -> "unsigned int":
        r"""GetSuperAtomStyle(OE2DMolDisplayOptions self) -> unsigned int"""
        return _oedepict.OE2DMolDisplayOptions_GetSuperAtomStyle(self)

    def SetProtectiveGroupStyle(self, style: "unsigned int") -> "void":
        r"""SetProtectiveGroupStyle(OE2DMolDisplayOptions self, unsigned int style)"""
        return _oedepict.OE2DMolDisplayOptions_SetProtectiveGroupStyle(self, style)

    def GetProtectiveGroupStyle(self) -> "unsigned int":
        r"""GetProtectiveGroupStyle(OE2DMolDisplayOptions self) -> unsigned int"""
        return _oedepict.OE2DMolDisplayOptions_GetProtectiveGroupStyle(self)

    def HasProtectiveGroupStyle(self, style: "unsigned int") -> "bool":
        r"""HasProtectiveGroupStyle(OE2DMolDisplayOptions self, unsigned int style) -> bool"""
        return _oedepict.OE2DMolDisplayOptions_HasProtectiveGroupStyle(self, style)

    def SetDefaultBondPen(self, pen: "OEPen") -> "void":
        r"""SetDefaultBondPen(OE2DMolDisplayOptions self, OEPen pen)"""
        return _oedepict.OE2DMolDisplayOptions_SetDefaultBondPen(self, pen)

    def GetDefaultBondPen(self) -> "OEDepict::OEPen const &":
        r"""GetDefaultBondPen(OE2DMolDisplayOptions self) -> OEPen"""
        return _oedepict.OE2DMolDisplayOptions_GetDefaultBondPen(self)

    def SetBondWidthScaling(self, scale: "bool") -> "void":
        r"""SetBondWidthScaling(OE2DMolDisplayOptions self, bool scale)"""
        return _oedepict.OE2DMolDisplayOptions_SetBondWidthScaling(self, scale)

    def GetBondWidthScaling(self) -> "bool":
        r"""GetBondWidthScaling(OE2DMolDisplayOptions self) -> bool"""
        return _oedepict.OE2DMolDisplayOptions_GetBondWidthScaling(self)

    def SetBondLineGapScale(self, scale: "double") -> "void":
        r"""SetBondLineGapScale(OE2DMolDisplayOptions self, double scale)"""
        return _oedepict.OE2DMolDisplayOptions_SetBondLineGapScale(self, scale)

    def GetBondLineGapScale(self) -> "double":
        r"""GetBondLineGapScale(OE2DMolDisplayOptions self) -> double"""
        return _oedepict.OE2DMolDisplayOptions_GetBondLineGapScale(self)

    def SetBondLineAtomLabelGapScale(self, scale: "double") -> "void":
        r"""SetBondLineAtomLabelGapScale(OE2DMolDisplayOptions self, double scale)"""
        return _oedepict.OE2DMolDisplayOptions_SetBondLineAtomLabelGapScale(self, scale)

    def GetBondLineAtomLabelGapScale(self) -> "double":
        r"""GetBondLineAtomLabelGapScale(OE2DMolDisplayOptions self) -> double"""
        return _oedepict.OE2DMolDisplayOptions_GetBondLineAtomLabelGapScale(self)

    def SetAtomPropertyFunctor(self, func: "OEDisplayAtomPropBase") -> "void":
        r"""SetAtomPropertyFunctor(OE2DMolDisplayOptions self, OEDisplayAtomPropBase func)"""
        return _oedepict.OE2DMolDisplayOptions_SetAtomPropertyFunctor(self, func)

    def GetAtomPropertyFunctor(self) -> "OEDepict::OEDisplayAtomPropBase const &":
        r"""GetAtomPropertyFunctor(OE2DMolDisplayOptions self) -> OEDisplayAtomPropBase"""
        return _oedepict.OE2DMolDisplayOptions_GetAtomPropertyFunctor(self)

    def SetBondPropertyFunctor(self, func: "OEDisplayBondPropBase") -> "void":
        r"""SetBondPropertyFunctor(OE2DMolDisplayOptions self, OEDisplayBondPropBase func)"""
        return _oedepict.OE2DMolDisplayOptions_SetBondPropertyFunctor(self, func)

    def GetBondPropertyFunctor(self) -> "OEDepict::OEDisplayBondPropBase const &":
        r"""GetBondPropertyFunctor(OE2DMolDisplayOptions self) -> OEDisplayBondPropBase"""
        return _oedepict.OE2DMolDisplayOptions_GetBondPropertyFunctor(self)

    def SetAtomVisibilityFunctor(self, func: "OEUnaryAtomPred") -> "void":
        r"""SetAtomVisibilityFunctor(OE2DMolDisplayOptions self, OEUnaryAtomPred func)"""
        return _oedepict.OE2DMolDisplayOptions_SetAtomVisibilityFunctor(self, func)

    def GetAtomVisibilityFunctor(self) -> "OESystem::OEUnaryPredicate< OEChem::OEAtomBase > const &":
        r"""GetAtomVisibilityFunctor(OE2DMolDisplayOptions self) -> OEUnaryAtomPred"""
        return _oedepict.OE2DMolDisplayOptions_GetAtomVisibilityFunctor(self)

    def SetTitleLocation(self, loc: "unsigned int") -> "void":
        r"""SetTitleLocation(OE2DMolDisplayOptions self, unsigned int loc)"""
        return _oedepict.OE2DMolDisplayOptions_SetTitleLocation(self, loc)

    def GetTitleLocation(self) -> "unsigned int":
        r"""GetTitleLocation(OE2DMolDisplayOptions self) -> unsigned int"""
        return _oedepict.OE2DMolDisplayOptions_GetTitleLocation(self)

    def SetTitleFont(self, font: "OEFont") -> "void":
        r"""SetTitleFont(OE2DMolDisplayOptions self, OEFont font)"""
        return _oedepict.OE2DMolDisplayOptions_SetTitleFont(self, font)

    def GetTitleFont(self) -> "OEDepict::OEFont const &":
        r"""GetTitleFont(OE2DMolDisplayOptions self) -> OEFont"""
        return _oedepict.OE2DMolDisplayOptions_GetTitleFont(self)

    def SetTitleFontScale(self, scale: "double") -> "void":
        r"""SetTitleFontScale(OE2DMolDisplayOptions self, double scale)"""
        return _oedepict.OE2DMolDisplayOptions_SetTitleFontScale(self, scale)

    def GetTitleFontScale(self) -> "double":
        r"""GetTitleFontScale(OE2DMolDisplayOptions self) -> double"""
        return _oedepict.OE2DMolDisplayOptions_GetTitleFontScale(self)

    def SetTitleHeight(self, percent: "double") -> "bool":
        r"""SetTitleHeight(OE2DMolDisplayOptions self, double percent) -> bool"""
        return _oedepict.OE2DMolDisplayOptions_SetTitleHeight(self, percent)

    def GetTitleHeight(self) -> "double":
        r"""GetTitleHeight(OE2DMolDisplayOptions self) -> double"""
        return _oedepict.OE2DMolDisplayOptions_GetTitleHeight(self)

    def SetExplicitAtomLabelAngle(self, angle: "double const") -> "void":
        r"""SetExplicitAtomLabelAngle(OE2DMolDisplayOptions self, double const angle)"""
        return _oedepict.OE2DMolDisplayOptions_SetExplicitAtomLabelAngle(self, angle)

    def GetExplicitAtomLabelAngle(self) -> "double":
        r"""GetExplicitAtomLabelAngle(OE2DMolDisplayOptions self) -> double"""
        return _oedepict.OE2DMolDisplayOptions_GetExplicitAtomLabelAngle(self)

    def SetMargin(self, margin: "unsigned int const", percent: "double const") -> "bool":
        r"""SetMargin(OE2DMolDisplayOptions self, unsigned int const margin, double const percent) -> bool"""
        return _oedepict.OE2DMolDisplayOptions_SetMargin(self, margin, percent)

    def SetMargins(self, percent: "double const") -> "bool":
        r"""SetMargins(OE2DMolDisplayOptions self, double const percent) -> bool"""
        return _oedepict.OE2DMolDisplayOptions_SetMargins(self, percent)

    def GetMargin(self, margin: "unsigned int const") -> "double":
        r"""GetMargin(OE2DMolDisplayOptions self, unsigned int const margin) -> double"""
        return _oedepict.OE2DMolDisplayOptions_GetMargin(self, margin)

    def SetAtomSVGMarkupFunctor(self, func: "OEAtomSVGMarkupBase") -> "void":
        r"""SetAtomSVGMarkupFunctor(OE2DMolDisplayOptions self, OEAtomSVGMarkupBase func)"""
        return _oedepict.OE2DMolDisplayOptions_SetAtomSVGMarkupFunctor(self, func)

    def GetAtomSVGMarkupFunctor(self) -> "OEDepict::OEAtomSVGMarkupBase const &":
        r"""GetAtomSVGMarkupFunctor(OE2DMolDisplayOptions self) -> OEAtomSVGMarkupBase"""
        return _oedepict.OE2DMolDisplayOptions_GetAtomSVGMarkupFunctor(self)

    def SetBondSVGMarkupFunctor(self, func: "OEBondSVGMarkupBase") -> "void":
        r"""SetBondSVGMarkupFunctor(OE2DMolDisplayOptions self, OEBondSVGMarkupBase func)"""
        return _oedepict.OE2DMolDisplayOptions_SetBondSVGMarkupFunctor(self, func)

    def GetBondSVGMarkupFunctor(self) -> "OEDepict::OEBondSVGMarkupBase const &":
        r"""GetBondSVGMarkupFunctor(OE2DMolDisplayOptions self) -> OEBondSVGMarkupBase"""
        return _oedepict.OE2DMolDisplayOptions_GetBondSVGMarkupFunctor(self)

# Register OE2DMolDisplayOptions in _oedepict:
_oedepict.OE2DMolDisplayOptions_swigregister(OE2DMolDisplayOptions)


def OEConfigure2DMolDisplayOptions(*args) -> "bool":
    r"""OEConfigure2DMolDisplayOptions(OEInterface itf, unsigned int config=) -> bool"""
    return _oedepict.OEConfigure2DMolDisplayOptions(*args)

def OESetup2DMolDisplayOptions(arg1: "OE2DMolDisplayOptions", itf: "OEInterface") -> "bool":
    r"""OESetup2DMolDisplayOptions(OE2DMolDisplayOptions arg1, OEInterface itf) -> bool"""
    return _oedepict.OESetup2DMolDisplayOptions(arg1, itf)

def OEConfigureImageOptions(*args) -> "bool":
    r"""OEConfigureImageOptions(OEInterface itf, unsigned int config=) -> bool"""
    return _oedepict.OEConfigureImageOptions(*args)

def OEConfigureImageWidth(*args) -> "bool":
    r"""OEConfigureImageWidth(OEInterface itf, double defwidth=0.0, std::string arg3=, std::string alias="-w") -> bool"""
    return _oedepict.OEConfigureImageWidth(*args)

def OEConfigureImageHeight(*args) -> "bool":
    r"""OEConfigureImageHeight(OEInterface itf, double defheight=0.0, std::string arg3=, std::string alias="-h") -> bool"""
    return _oedepict.OEConfigureImageHeight(*args)

def OEGetImageWidth(*args) -> "double":
    r"""OEGetImageWidth(OEInterface itf, std::string name=) -> double"""
    return _oedepict.OEGetImageWidth(*args)

def OEGetImageHeight(*args) -> "double":
    r"""OEGetImageHeight(OEInterface itf, std::string name=) -> double"""
    return _oedepict.OEGetImageHeight(*args)
class OEPrepareDepictionOptions(object):
    r"""Proxy of C++ OEDepict::OEPrepareDepictionOptions 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__(OEPrepareDepictionOptions self, bool clearcoords=False, bool suppressH=True) -> OEPrepareDepictionOptions
        __init__(OEPrepareDepictionOptions self, OEPrepareDepictionOptions rhs) -> OEPrepareDepictionOptions
        """
        _oedepict.OEPrepareDepictionOptions_swiginit(self, _oedepict.new_OEPrepareDepictionOptions(*args))
    __swig_destroy__ = _oedepict.delete_OEPrepareDepictionOptions

    def SetClearCoords(self, arg2: "bool") -> "void":
        r"""SetClearCoords(OEPrepareDepictionOptions self, bool arg2)"""
        return _oedepict.OEPrepareDepictionOptions_SetClearCoords(self, arg2)

    def GetClearCoords(self) -> "bool":
        r"""GetClearCoords(OEPrepareDepictionOptions self) -> bool"""
        return _oedepict.OEPrepareDepictionOptions_GetClearCoords(self)

    def SetSuppressHydrogens(self, arg2: "bool") -> "void":
        r"""SetSuppressHydrogens(OEPrepareDepictionOptions self, bool arg2)"""
        return _oedepict.OEPrepareDepictionOptions_SetSuppressHydrogens(self, arg2)

    def GetSuppressHydrogens(self) -> "bool":
        r"""GetSuppressHydrogens(OEPrepareDepictionOptions self) -> bool"""
        return _oedepict.OEPrepareDepictionOptions_GetSuppressHydrogens(self)

    def SetAddDepictionHydrogens(self, arg2: "bool") -> "void":
        r"""SetAddDepictionHydrogens(OEPrepareDepictionOptions self, bool arg2)"""
        return _oedepict.OEPrepareDepictionOptions_SetAddDepictionHydrogens(self, arg2)

    def GetAddDepictionHydrogens(self) -> "bool":
        r"""GetAddDepictionHydrogens(OEPrepareDepictionOptions self) -> bool"""
        return _oedepict.OEPrepareDepictionOptions_GetAddDepictionHydrogens(self)

    def SetPerceiveBondStereo(self, arg2: "bool") -> "void":
        r"""SetPerceiveBondStereo(OEPrepareDepictionOptions self, bool arg2)"""
        return _oedepict.OEPrepareDepictionOptions_SetPerceiveBondStereo(self, arg2)

    def GetPerceiveBondStereo(self) -> "bool":
        r"""GetPerceiveBondStereo(OEPrepareDepictionOptions self) -> bool"""
        return _oedepict.OEPrepareDepictionOptions_GetPerceiveBondStereo(self)

    def SetDepictOrientation(self, arg2: "unsigned int") -> "void":
        r"""SetDepictOrientation(OEPrepareDepictionOptions self, unsigned int arg2)"""
        return _oedepict.OEPrepareDepictionOptions_SetDepictOrientation(self, arg2)

    def GetDepictOrientation(self) -> "unsigned int":
        r"""GetDepictOrientation(OEPrepareDepictionOptions self) -> unsigned int"""
        return _oedepict.OEPrepareDepictionOptions_GetDepictOrientation(self)

# Register OEPrepareDepictionOptions in _oedepict:
_oedepict.OEPrepareDepictionOptions_swigregister(OEPrepareDepictionOptions)


def OEConfigurePrepareDepictionOptions(*args) -> "bool":
    r"""OEConfigurePrepareDepictionOptions(OEInterface arg1, unsigned int config=) -> bool"""
    return _oedepict.OEConfigurePrepareDepictionOptions(*args)

def OESetupPrepareDepictionOptions(arg1: "OEPrepareDepictionOptions", itf: "OEInterface") -> "bool":
    r"""OESetupPrepareDepictionOptions(OEPrepareDepictionOptions arg1, OEInterface itf) -> bool"""
    return _oedepict.OESetupPrepareDepictionOptions(arg1, itf)

def PyOEWriteImageToString(extension: "char const *", image: "OEImage") -> "PyObject *":
    r"""PyOEWriteImageToString(char const * extension, OEImage image) -> PyObject *"""
    return _oedepict.PyOEWriteImageToString(extension, image)

def OEWriteImageToString(extension: "char const *", image: "OEImage") -> "PyObject *":
    r"""OEWriteImageToString(char const * extension, OEImage image) -> PyObject *"""
    return _oedepict.OEWriteImageToString(extension, image)

def OEWriteImageToBytes(extension: "char const *", image: "OEImage") -> "PyObject *":
    r"""OEWriteImageToBytes(char const * extension, OEImage image) -> PyObject *"""
    return _oedepict.OEWriteImageToBytes(extension, image)

def PyOERenderMoleculeToString(*args) -> "PyObject *":
    r"""
    PyOERenderMoleculeToString(char const * extension, OE2DMolDisplay disp, bool clearbg) -> PyObject
    PyOERenderMoleculeToString(char const * extension, OEMolBase mol, bool clearbg) -> PyObject *
    """
    return _oedepict.PyOERenderMoleculeToString(*args)

def OERenderMoleculeToString(*args) -> "PyObject *":
    r"""
    OERenderMoleculeToString(char const * extension, OE2DMolDisplay disp, bool clearbg=True) -> PyObject
    OERenderMoleculeToString(char const * extension, OEMolBase mol, bool clearbg=True) -> PyObject
    """
    return _oedepict.OERenderMoleculeToString(*args)

def OERenderMoleculeToBytes(*args) -> "PyObject *":
    r"""
    OERenderMoleculeToBytes(char const * extension, OE2DMolDisplay disp, bool clearbg=True) -> PyObject
    OERenderMoleculeToBytes(char const * extension, OEMolBase mol, bool clearbg=True) -> PyObject
    """
    return _oedepict.OERenderMoleculeToBytes(*args)

def OESuppressNonDepictionHydrogens(mol: "OEMolBase") -> "bool":
    r"""OESuppressNonDepictionHydrogens(OEMolBase mol) -> bool"""
    return _oedepict.OESuppressNonDepictionHydrogens(mol)

def OEPrepareDepiction(*args) -> "bool":
    r"""
    OEPrepareDepiction(OEMolBase mol, bool clearcoords=False, bool suppressH=True) -> bool
    OEPrepareDepiction(OEMolBase mol, OEPrepareDepictionOptions opts) -> bool
    """
    return _oedepict.OEPrepareDepiction(*args)

def OEGetMoleculeScale(mol: "OEMolBase", opts: "OE2DMolDisplayOptions") -> "double":
    r"""OEGetMoleculeScale(OEMolBase mol, OE2DMolDisplayOptions opts) -> double"""
    return _oedepict.OEGetMoleculeScale(mol, opts)

def OERenderMolecule(*args) -> "bool":
    r"""
    OERenderMolecule(std::string const & filename, OEMolBase mol, bool clearbackground=True) -> bool
    OERenderMolecule(std::string const & filename, OE2DMolDisplay disp, bool clearbackground=True) -> bool
    OERenderMolecule(oeostream os, std::string const & extension, OEMolBase mol, bool clearbackground=True) -> bool
    OERenderMolecule(oeostream os, std::string const & extension, OE2DMolDisplay disp, bool clearbackground=True) -> bool
    OERenderMolecule(OEImageBase image, OEMolBase mol, bool clearbackground=True) -> bool
    OERenderMolecule(OEImageBase image, OE2DMolDisplay disp, bool clearbackground=True) -> bool
    """
    return _oedepict.OERenderMolecule(*args)

def OEWriteImage(*args) -> "bool":
    r"""
    OEWriteImage(std::string const & filename, OEImage image) -> bool
    OEWriteImage(oeostream os, std::string const & extension, OEImage image) -> bool
    """
    return _oedepict.OEWriteImage(*args)

def OEDrawReactionArrow(image: "OEImageBase", bgn: "OE2DPoint", end: "OE2DPoint", pen: "OEPen") -> "void":
    r"""OEDrawReactionArrow(OEImageBase image, OE2DPoint bgn, OE2DPoint end, OEPen pen)"""
    return _oedepict.OEDrawReactionArrow(image, bgn, end, pen)

def OEDrawResonanceArrow(image: "OEImageBase", bgn: "OE2DPoint", end: "OE2DPoint", pen: "OEPen") -> "void":
    r"""OEDrawResonanceArrow(OEImageBase image, OE2DPoint bgn, OE2DPoint end, OEPen pen)"""
    return _oedepict.OEDrawResonanceArrow(image, bgn, end, pen)

def OEDrawEquilibriumArrow(image: "OEImageBase", bgn: "OE2DPoint", end: "OE2DPoint", pen: "OEPen") -> "void":
    r"""OEDrawEquilibriumArrow(OEImageBase image, OE2DPoint bgn, OE2DPoint end, OEPen pen)"""
    return _oedepict.OEDrawEquilibriumArrow(image, bgn, end, pen)

def OEDrawCurvedArrow(image: "OEImageBase", center: "OE2DPoint", bgnAngle: "double", endAngle: "double", radius: "double", clockwise: "bool", pen: "OEPen") -> "void":
    r"""OEDrawCurvedArrow(OEImageBase image, OE2DPoint center, double bgnAngle, double endAngle, double radius, bool clockwise, OEPen pen)"""
    return _oedepict.OEDrawCurvedArrow(image, center, bgnAngle, endAngle, radius, clockwise, pen)

def OEDrawChevronArrow(image: "OEImageBase", bgn: "OE2DPoint", end: "OE2DPoint", pen: "OEPen", arrowWidth: "double"=5.0, gapScale: "double"=2.0) -> "void":
    r"""OEDrawChevronArrow(OEImageBase image, OE2DPoint bgn, OE2DPoint end, OEPen pen, double arrowWidth=5.0, double gapScale=2.0)"""
    return _oedepict.OEDrawChevronArrow(image, bgn, end, pen, arrowWidth, gapScale)

def OEGetCenter(image: "OEImageBase") -> "OEDepict::OE2DPoint":
    r"""OEGetCenter(OEImageBase image) -> OE2DPoint"""
    return _oedepict.OEGetCenter(image)

def OEDrawBorder(image: "OEImageBase", arg2: "OEPen") -> "void":
    r"""OEDrawBorder(OEImageBase image, OEPen arg2)"""
    return _oedepict.OEDrawBorder(image, arg2)

def OEDrawCurvedBorder(image: "OEImageBase", pen: "OEPen", radius: "double") -> "void":
    r"""OEDrawCurvedBorder(OEImageBase image, OEPen pen, double radius)"""
    return _oedepict.OEDrawCurvedBorder(image, pen, radius)

def OEDrawCurvedRectangle(image: "OEImageBase", tl: "OE2DPoint", br: "OE2DPoint", pen: "OEPen", radius: "double") -> "void":
    r"""OEDrawCurvedRectangle(OEImageBase image, OE2DPoint tl, OE2DPoint br, OEPen pen, double radius)"""
    return _oedepict.OEDrawCurvedRectangle(image, tl, br, pen, radius)

def OEDrawTextToCenter(image: "OEImageBase", text: "std::string const &", font: "OEFont") -> "void":
    r"""OEDrawTextToCenter(OEImageBase image, std::string const & text, OEFont font)"""
    return _oedepict.OEDrawTextToCenter(image, text, font)

def OEDrawText(image: "OEImageBase", text: "std::string const &", font: "OEFont", padding: "double"=5.0) -> "void":
    r"""OEDrawText(OEImageBase image, std::string const & text, OEFont font, double padding=5.0)"""
    return _oedepict.OEDrawText(image, text, font, padding)

def OEAddOpenEyeIcon(*args) -> "void":
    r"""
    OEAddOpenEyeIcon(OE2DMolDisplay disp, unsigned int loc=, double scale=1.0)
    OEAddOpenEyeIcon(OEImageBase image, unsigned int loc=, double scale=1.0)
    """
    return _oedepict.OEAddOpenEyeIcon(*args)

def OEAddInteractiveIcon(*args) -> "void":
    r"""
    OEAddInteractiveIcon(OE2DMolDisplay disp, unsigned int loc=, double scale=1.0)
    OEAddInteractiveIcon(OEImageBase image, unsigned int loc=, double scale=1.0)
    """
    return _oedepict.OEAddInteractiveIcon(*args)

def OEAddWatermark(*args) -> "void":
    r"""
    OEAddWatermark(OE2DMolDisplay disp, std::string const & text, double scale=1.0)
    OEAddWatermark(OEImageBase image, std::string const & text, double scale=1.0)
    """
    return _oedepict.OEAddWatermark(*args)
class OEAlignmentOptions(object):
    r"""Proxy of C++ OEDepict::OEAlignmentOptions 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__(OEAlignmentOptions self) -> OEAlignmentOptions
        __init__(OEAlignmentOptions self, bool rotateBonds, bool clearcoords, bool suppressH) -> OEAlignmentOptions
        __init__(OEAlignmentOptions self, OEAlignmentOptions arg2) -> OEAlignmentOptions
        """
        _oedepict.OEAlignmentOptions_swiginit(self, _oedepict.new_OEAlignmentOptions(*args))
    __swig_destroy__ = _oedepict.delete_OEAlignmentOptions

    def SetRotateAroundBonds(self, r: "bool") -> "void":
        r"""SetRotateAroundBonds(OEAlignmentOptions self, bool r)"""
        return _oedepict.OEAlignmentOptions_SetRotateAroundBonds(self, r)

    def GetRotateAroundBonds(self) -> "bool":
        r"""GetRotateAroundBonds(OEAlignmentOptions self) -> bool"""
        return _oedepict.OEAlignmentOptions_GetRotateAroundBonds(self)

    def SetClearCoords(self, c: "bool") -> "void":
        r"""SetClearCoords(OEAlignmentOptions self, bool c)"""
        return _oedepict.OEAlignmentOptions_SetClearCoords(self, c)

    def GetClearCoords(self) -> "bool":
        r"""GetClearCoords(OEAlignmentOptions self) -> bool"""
        return _oedepict.OEAlignmentOptions_GetClearCoords(self)

    def SetFixedCoords(self, f: "bool") -> "void":
        r"""SetFixedCoords(OEAlignmentOptions self, bool f)"""
        return _oedepict.OEAlignmentOptions_SetFixedCoords(self, f)

    def GetFixedCoords(self) -> "bool":
        r"""GetFixedCoords(OEAlignmentOptions self) -> bool"""
        return _oedepict.OEAlignmentOptions_GetFixedCoords(self)

    def SetSuppressHydrogens(self, s: "bool") -> "void":
        r"""SetSuppressHydrogens(OEAlignmentOptions self, bool s)"""
        return _oedepict.OEAlignmentOptions_SetSuppressHydrogens(self, s)

    def GetSuppressHydrogens(self) -> "bool":
        r"""GetSuppressHydrogens(OEAlignmentOptions self) -> bool"""
        return _oedepict.OEAlignmentOptions_GetSuppressHydrogens(self)

    def SetAddDepictionHydrogens(self, a: "bool") -> "void":
        r"""SetAddDepictionHydrogens(OEAlignmentOptions self, bool a)"""
        return _oedepict.OEAlignmentOptions_SetAddDepictionHydrogens(self, a)

    def GetAddDepictionHydrogens(self) -> "bool":
        r"""GetAddDepictionHydrogens(OEAlignmentOptions self) -> bool"""
        return _oedepict.OEAlignmentOptions_GetAddDepictionHydrogens(self)

    def SetRMSDCutoff(self, r: "double") -> "void":
        r"""SetRMSDCutoff(OEAlignmentOptions self, double r)"""
        return _oedepict.OEAlignmentOptions_SetRMSDCutoff(self, r)

    def GetRMSDCutoff(self) -> "double":
        r"""GetRMSDCutoff(OEAlignmentOptions self) -> double"""
        return _oedepict.OEAlignmentOptions_GetRMSDCutoff(self)

    def SetMaxBondRotations(self, m: "unsigned int") -> "void":
        r"""SetMaxBondRotations(OEAlignmentOptions self, unsigned int m)"""
        return _oedepict.OEAlignmentOptions_SetMaxBondRotations(self, m)

    def GetMaxBondRotations(self) -> "unsigned int":
        r"""GetMaxBondRotations(OEAlignmentOptions self) -> unsigned int"""
        return _oedepict.OEAlignmentOptions_GetMaxBondRotations(self)

    def SetMaxPatternMatches(self, m: "unsigned int") -> "void":
        r"""SetMaxPatternMatches(OEAlignmentOptions self, unsigned int m)"""
        return _oedepict.OEAlignmentOptions_SetMaxPatternMatches(self, m)

    def GetMaxPatternMatches(self) -> "unsigned int":
        r"""GetMaxPatternMatches(OEAlignmentOptions self) -> unsigned int"""
        return _oedepict.OEAlignmentOptions_GetMaxPatternMatches(self)

    def SetMaxAllowedAtomPairClashes(self, m: "unsigned int") -> "void":
        r"""SetMaxAllowedAtomPairClashes(OEAlignmentOptions self, unsigned int m)"""
        return _oedepict.OEAlignmentOptions_SetMaxAllowedAtomPairClashes(self, m)

    def GetMaxAllowedAtomPairClashes(self) -> "unsigned int":
        r"""GetMaxAllowedAtomPairClashes(OEAlignmentOptions self) -> unsigned int"""
        return _oedepict.OEAlignmentOptions_GetMaxAllowedAtomPairClashes(self)

# Register OEAlignmentOptions in _oedepict:
_oedepict.OEAlignmentOptions_swigregister(OEAlignmentOptions)

class OEAlignmentResult(oechem.OEMatchBase):
    r"""Proxy of C++ OEDepict::OEAlignmentResult 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__(OEAlignmentResult self) -> OEAlignmentResult
        __init__(OEAlignmentResult self, OEMatchBase rhs) -> OEAlignmentResult
        __init__(OEAlignmentResult self, OEAlignmentResult rhs) -> OEAlignmentResult
        """
        _oedepict.OEAlignmentResult_swiginit(self, _oedepict.new_OEAlignmentResult(*args))
    __swig_destroy__ = _oedepict.delete_OEAlignmentResult

    def IsValid(self) -> "bool":
        r"""IsValid(OEAlignmentResult self) -> bool"""
        return _oedepict.OEAlignmentResult_IsValid(self)

    def Clear(self) -> "void":
        r"""Clear(OEAlignmentResult self)"""
        return _oedepict.OEAlignmentResult_Clear(self)

    def CreateCopy(self) -> "OEChem::OEMatchBase *":
        r"""CreateCopy(OEAlignmentResult self) -> OEMatchBase"""
        return _oedepict.OEAlignmentResult_CreateCopy(self)

    def NumAtoms(self) -> "unsigned int":
        r"""NumAtoms(OEAlignmentResult self) -> unsigned int"""
        return _oedepict.OEAlignmentResult_NumAtoms(self)

    def NumBonds(self) -> "unsigned int":
        r"""NumBonds(OEAlignmentResult self) -> unsigned int"""
        return _oedepict.OEAlignmentResult_NumBonds(self)

    def GetAtoms(self) -> "OESystem::OEIterBase< OEChem::OEMatchPair< OEChem::OEAtomBase > > *":
        r"""GetAtoms(OEAlignmentResult self) -> OESystem::OEIterBase< OEChem::OEMatchPair< OEChem::OEAtomBase > > *"""
        return _oedepict.OEAlignmentResult_GetAtoms(self)

    def GetBonds(self) -> "OESystem::OEIterBase< OEChem::OEMatchPair< OEChem::OEBondBase > > *":
        r"""GetBonds(OEAlignmentResult self) -> OESystem::OEIterBase< OEChem::OEMatchPair< OEChem::OEBondBase > > *"""
        return _oedepict.OEAlignmentResult_GetBonds(self)

    def GetRMSD(self) -> "double":
        r"""GetRMSD(OEAlignmentResult self) -> double"""
        return _oedepict.OEAlignmentResult_GetRMSD(self)

# Register OEAlignmentResult in _oedepict:
_oedepict.OEAlignmentResult_swigregister(OEAlignmentResult)


def OEPrepareAlignedDepiction(*args) -> "OEDepict::OEAlignmentResult":
    r"""
    OEPrepareAlignedDepiction(OEMolBase fitmol, OEMolBase refmol, OEMatchBase match, bool clearCoords=True, bool suppressH=True) -> bool
    OEPrepareAlignedDepiction(OEMolBase fitmol, OEMolBase refmol, OEMatchBase match, OEAlignmentOptions opts) -> bool
    OEPrepareAlignedDepiction(OEMolBase fitmol, OEMCSSearch mcss, OEAlignmentOptions opts=OEDepict::OEAlignmentOptions()) -> OEAlignmentResult
    OEPrepareAlignedDepiction(OEMolBase fitmol, OESubSearch subsrc, OEAlignmentOptions opts=OEDepict::OEAlignmentOptions()) -> OEAlignmentResult
    OEPrepareAlignedDepiction(OEMolBase fitmol, OEMolBase refmol, OESystem::OEIter< OEChem::OEMatchBase const > & miter, OEAlignmentOptions opts=OEDepict::OEAlignmentOptions()) -> OEAlignmentResult
    """
    return _oedepict.OEPrepareAlignedDepiction(*args)

def OEPrepareMultiAlignedDepiction(fitmol: "OEMolBase", refmol: "OEMolBase", miter: "OEMatchBaseIter") -> "bool":
    r"""OEPrepareMultiAlignedDepiction(OEMolBase fitmol, OEMolBase refmol, OEMatchBaseIter miter) -> bool"""
    return _oedepict.OEPrepareMultiAlignedDepiction(fitmol, refmol, miter)

def OEEstimateTextWidth(text: "std::string const &", font: "OEFont") -> "double":
    r"""OEEstimateTextWidth(std::string const & text, OEFont font) -> double"""
    return _oedepict.OEEstimateTextWidth(text, font)

def OEReduceFontSizeToFit(text: "std::string const &", font: "OEFont", minfontsize: "unsigned int", maxwidth: "double") -> "unsigned int":
    r"""OEReduceFontSizeToFit(std::string const & text, OEFont font, unsigned int minfontsize, double maxwidth) -> unsigned int"""
    return _oedepict.OEReduceFontSizeToFit(text, font, minfontsize, maxwidth)
class OENearestAtom(object):
    r"""Proxy of C++ OEDepict::OENearestAtom 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__(OENearestAtom self) -> OENearestAtom
        __init__(OENearestAtom self, OEAtomBase atom, double dist) -> OENearestAtom
        __init__(OENearestAtom self, OEAtomBase atom, double dist, OE2DPoint pos) -> OENearestAtom
        __init__(OENearestAtom self, OENearestAtom arg2) -> OENearestAtom
        """
        _oedepict.OENearestAtom_swiginit(self, _oedepict.new_OENearestAtom(*args))
    __swig_destroy__ = _oedepict.delete_OENearestAtom

    def GetAtom(self) -> "OEChem::OEAtomBase const *":
        r"""GetAtom(OENearestAtom self) -> OEAtomBase"""
        return _oedepict.OENearestAtom_GetAtom(self)

    def GetDist(self) -> "double":
        r"""GetDist(OENearestAtom self) -> double"""
        return _oedepict.OENearestAtom_GetDist(self)

    def GetDisplayPosition(self) -> "OEDepict::OE2DPoint const &":
        r"""GetDisplayPosition(OENearestAtom self) -> OE2DPoint"""
        return _oedepict.OENearestAtom_GetDisplayPosition(self)

    def IsValid(self) -> "bool":
        r"""IsValid(OENearestAtom self) -> bool"""
        return _oedepict.OENearestAtom_IsValid(self)

# Register OENearestAtom in _oedepict:
_oedepict.OENearestAtom_swigregister(OENearestAtom)

class OENearestBond(object):
    r"""Proxy of C++ OEDepict::OENearestBond 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__(OENearestBond self) -> OENearestBond
        __init__(OENearestBond self, OEBondBase bond, double dist) -> OENearestBond
        __init__(OENearestBond self, OEBondBase bond, double dist, OE2DPoint pos) -> OENearestBond
        __init__(OENearestBond self, OENearestBond arg2) -> OENearestBond
        """
        _oedepict.OENearestBond_swiginit(self, _oedepict.new_OENearestBond(*args))
    __swig_destroy__ = _oedepict.delete_OENearestBond

    def GetBond(self) -> "OEChem::OEBondBase const *":
        r"""GetBond(OENearestBond self) -> OEBondBase"""
        return _oedepict.OENearestBond_GetBond(self)

    def GetDist(self) -> "double":
        r"""GetDist(OENearestBond self) -> double"""
        return _oedepict.OENearestBond_GetDist(self)

    def GetDisplayPosition(self) -> "OEDepict::OE2DPoint const &":
        r"""GetDisplayPosition(OENearestBond self) -> OE2DPoint"""
        return _oedepict.OENearestBond_GetDisplayPosition(self)

    def IsValid(self) -> "bool":
        r"""IsValid(OENearestBond self) -> bool"""
        return _oedepict.OENearestBond_IsValid(self)

# Register OENearestBond in _oedepict:
_oedepict.OENearestBond_swigregister(OENearestBond)


def OEGetNearestAtom(disp: "OE2DMolDisplay", p: "OE2DPoint") -> "OEDepict::OENearestAtom":
    r"""OEGetNearestAtom(OE2DMolDisplay disp, OE2DPoint p) -> OENearestAtom"""
    return _oedepict.OEGetNearestAtom(disp, p)

def OEGetNearestBond(disp: "OE2DMolDisplay", p: "OE2DPoint") -> "OEDepict::OENearestBond":
    r"""OEGetNearestBond(OE2DMolDisplay disp, OE2DPoint p) -> OENearestBond"""
    return _oedepict.OEGetNearestBond(disp, p)

def OEGetNearbyAtom(disp: "OE2DMolDisplay", p: "OE2DPoint", radiusscale: "double"=1.0) -> "OEDepict::OENearestAtom":
    r"""OEGetNearbyAtom(OE2DMolDisplay disp, OE2DPoint p, double radiusscale=1.0) -> OENearestAtom"""
    return _oedepict.OEGetNearbyAtom(disp, p, radiusscale)

def OEGetNearbyBond(disp: "OE2DMolDisplay", p: "OE2DPoint", radiusscale: "double"=1.0) -> "OEDepict::OENearestBond":
    r"""OEGetNearbyBond(OE2DMolDisplay disp, OE2DPoint p, double radiusscale=1.0) -> OENearestBond"""
    return _oedepict.OEGetNearbyBond(disp, p, radiusscale)

def OEGetMoleculeCoords(disp: "OE2DMolDisplay", p: "OE2DPoint") -> "OEDepict::OE2DPoint":
    r"""OEGetMoleculeCoords(OE2DMolDisplay disp, OE2DPoint p) -> OE2DPoint"""
    return _oedepict.OEGetMoleculeCoords(disp, p)

def OEGetDisplayCoords(disp: "OE2DMolDisplay", p: "OE2DPoint") -> "OEDepict::OE2DPoint":
    r"""OEGetDisplayCoords(OE2DMolDisplay disp, OE2DPoint p) -> OE2DPoint"""
    return _oedepict.OEGetDisplayCoords(disp, p)

def OEGetAverageBondLengthInDispCoords(disp: "OE2DMolDisplay") -> "double":
    r"""OEGetAverageBondLengthInDispCoords(OE2DMolDisplay disp) -> double"""
    return _oedepict.OEGetAverageBondLengthInDispCoords(disp)
class OEImageFrame(OEImageBase):
    r"""Proxy of C++ OEDepict::OEImageFrame 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__(OEImageFrame self, OEImageBase parent, double width, double height, OE2DPoint offset) -> OEImageFrame
        __init__(OEImageFrame self, OEImageBase parent, double padding) -> OEImageFrame
        """
        _oedepict.OEImageFrame_swiginit(self, _oedepict.new_OEImageFrame(*args))
    __swig_destroy__ = _oedepict.delete_OEImageFrame

    def GetWidth(self) -> "double":
        r"""GetWidth(OEImageFrame self) -> double"""
        return _oedepict.OEImageFrame_GetWidth(self)

    def GetHeight(self) -> "double":
        r"""GetHeight(OEImageFrame self) -> double"""
        return _oedepict.OEImageFrame_GetHeight(self)

    def GetOffset(self) -> "OEDepict::OE2DPoint const &":
        r"""GetOffset(OEImageFrame self) -> OE2DPoint"""
        return _oedepict.OEImageFrame_GetOffset(self)

    def DrawPoint(self, p: "OE2DPoint", color: "OEColor") -> "void":
        r"""DrawPoint(OEImageFrame self, OE2DPoint p, OEColor color)"""
        return _oedepict.OEImageFrame_DrawPoint(self, p, color)

    def Clear(self, arg2: "OEColor") -> "void":
        r"""Clear(OEImageFrame self, OEColor arg2)"""
        return _oedepict.OEImageFrame_Clear(self, arg2)

    def DrawLine(self, bgn: "OE2DPoint", end: "OE2DPoint", pen: "OEPen") -> "void":
        r"""DrawLine(OEImageFrame self, OE2DPoint bgn, OE2DPoint end, OEPen pen)"""
        return _oedepict.OEImageFrame_DrawLine(self, bgn, end, pen)

    def DrawRectangle(self, tl: "OE2DPoint", br: "OE2DPoint", pen: "OEPen") -> "void":
        r"""DrawRectangle(OEImageFrame self, OE2DPoint tl, OE2DPoint br, OEPen pen)"""
        return _oedepict.OEImageFrame_DrawRectangle(self, tl, br, pen)

    def DrawArc(self, c: "OE2DPoint", bgnAngle: "double", endAngle: "double", rad: "double", pen: "OEPen") -> "void":
        r"""DrawArc(OEImageFrame self, OE2DPoint c, double bgnAngle, double endAngle, double rad, OEPen pen)"""
        return _oedepict.OEImageFrame_DrawArc(self, c, bgnAngle, endAngle, rad, pen)

    def DrawPie(self, c: "OE2DPoint", bgnAngle: "double", endAngle: "double", rad: "double", pen: "OEPen") -> "void":
        r"""DrawPie(OEImageFrame self, OE2DPoint c, double bgnAngle, double endAngle, double rad, OEPen pen)"""
        return _oedepict.OEImageFrame_DrawPie(self, c, bgnAngle, endAngle, rad, pen)

    def DrawCircle(self, c: "OE2DPoint", rad: "double", pen: "OEPen") -> "void":
        r"""DrawCircle(OEImageFrame self, OE2DPoint c, double rad, OEPen pen)"""
        return _oedepict.OEImageFrame_DrawCircle(self, c, rad, pen)

    def DrawTriangle(self, arg2: "OE2DPoint", arg3: "OE2DPoint", arg4: "OE2DPoint", arg5: "OEPen") -> "void":
        r"""DrawTriangle(OEImageFrame self, OE2DPoint arg2, OE2DPoint arg3, OE2DPoint arg4, OEPen arg5)"""
        return _oedepict.OEImageFrame_DrawTriangle(self, arg2, arg3, arg4, arg5)

    def DrawPath(self, path: "OE2DPath", pen: "OEPen") -> "void":
        r"""DrawPath(OEImageFrame self, OE2DPath path, OEPen pen)"""
        return _oedepict.OEImageFrame_DrawPath(self, path, pen)

    def DrawCubicBezier(self, bgn: "OE2DPoint", c1: "OE2DPoint", c2: "OE2DPoint", end: "OE2DPoint", pen: "OEPen") -> "void":
        r"""DrawCubicBezier(OEImageFrame self, OE2DPoint bgn, OE2DPoint c1, OE2DPoint c2, OE2DPoint end, OEPen pen)"""
        return _oedepict.OEImageFrame_DrawCubicBezier(self, bgn, c1, c2, end, pen)

    def DrawQuadraticBezier(self, bgn: "OE2DPoint", c1: "OE2DPoint", end: "OE2DPoint", pen: "OEPen") -> "void":
        r"""DrawQuadraticBezier(OEImageFrame self, OE2DPoint bgn, OE2DPoint c1, OE2DPoint end, OEPen pen)"""
        return _oedepict.OEImageFrame_DrawQuadraticBezier(self, bgn, c1, end, pen)

    def DrawText(self, c: "OE2DPoint", text: "std::string const &", font: "OEFont", maxwidth: "double"=0.0) -> "void":
        r"""DrawText(OEImageFrame self, OE2DPoint c, std::string const & text, OEFont font, double maxwidth=0.0)"""
        return _oedepict.OEImageFrame_DrawText(self, c, text, font, maxwidth)

    def NewSVGGroup(self, id: "std::string const &") -> "OEDepict::OESVGGroup *":
        r"""NewSVGGroup(OEImageFrame self, std::string const & id) -> OESVGGroup"""
        return _oedepict.OEImageFrame_NewSVGGroup(self, id)

    def NewSVGClass(self, name: "std::string const &") -> "OEDepict::OESVGClass *":
        r"""NewSVGClass(OEImageFrame self, std::string const & name) -> OESVGClass"""
        return _oedepict.OEImageFrame_NewSVGClass(self, name)

    def GetSVGGroup(self, id: "std::string const &") -> "OEDepict::OESVGGroup *":
        r"""GetSVGGroup(OEImageFrame self, std::string const & id) -> OESVGGroup"""
        return _oedepict.OEImageFrame_GetSVGGroup(self, id)

    def GetSVGClass(self, name: "std::string const &") -> "OEDepict::OESVGClass *":
        r"""GetSVGClass(OEImageFrame self, std::string const & name) -> OESVGClass"""
        return _oedepict.OEImageFrame_GetSVGClass(self, name)

    def PushGroup(self, arg2: "OESVGGroup") -> "bool":
        r"""PushGroup(OEImageFrame self, OESVGGroup arg2) -> bool"""
        return _oedepict.OEImageFrame_PushGroup(self, arg2)

    def PopGroup(self, arg2: "OESVGGroup") -> "bool":
        r"""PopGroup(OEImageFrame self, OESVGGroup arg2) -> bool"""
        return _oedepict.OEImageFrame_PopGroup(self, arg2)

    def DrawPolygon(self, *args) -> "PyObject *":
        r"""
        DrawPolygon(OEImageFrame self, std::vector< OEDepict::OE2DPoint,std::allocator< OEDepict::OE2DPoint > > const & p, OEPen pen)
        DrawPolygon(OEImageFrame self, PyObject * points, OEPen pen) -> PyObject *
        """
        return _oedepict.OEImageFrame_DrawPolygon(self, *args)

# Register OEImageFrame in _oedepict:
_oedepict.OEImageFrame_swigregister(OEImageFrame)

class OEImageGrid(object):
    r"""Proxy of C++ OEDepict::OEImageGrid 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, image: "OEImageBase", rows: "unsigned int", cols: "unsigned int"):
        r"""__init__(OEImageGrid self, OEImageBase image, unsigned int rows, unsigned int cols) -> OEImageGrid"""
        _oedepict.OEImageGrid_swiginit(self, _oedepict.new_OEImageGrid(image, rows, cols))
    __swig_destroy__ = _oedepict.delete_OEImageGrid

    def NumRows(self) -> "unsigned int":
        r"""NumRows(OEImageGrid self) -> unsigned int"""
        return _oedepict.OEImageGrid_NumRows(self)

    def NumCols(self) -> "unsigned int":
        r"""NumCols(OEImageGrid self) -> unsigned int"""
        return _oedepict.OEImageGrid_NumCols(self)

    def GetCellWidth(self) -> "double":
        r"""GetCellWidth(OEImageGrid self) -> double"""
        return _oedepict.OEImageGrid_GetCellWidth(self)

    def GetCellHeight(self) -> "double":
        r"""GetCellHeight(OEImageGrid self) -> double"""
        return _oedepict.OEImageGrid_GetCellHeight(self)

    def SetMargin(self, margin: "unsigned int", size: "double") -> "bool":
        r"""SetMargin(OEImageGrid self, unsigned int margin, double size) -> bool"""
        return _oedepict.OEImageGrid_SetMargin(self, margin, size)

    def SetMargins(self, size: "double") -> "bool":
        r"""SetMargins(OEImageGrid self, double size) -> bool"""
        return _oedepict.OEImageGrid_SetMargins(self, size)

    def GetMargin(self, margin: "unsigned int") -> "double":
        r"""GetMargin(OEImageGrid self, unsigned int margin) -> double"""
        return _oedepict.OEImageGrid_GetMargin(self, margin)

    def SetCellGap(self, size: "double") -> "bool":
        r"""SetCellGap(OEImageGrid self, double size) -> bool"""
        return _oedepict.OEImageGrid_SetCellGap(self, size)

    def GetCellGap(self) -> "double":
        r"""GetCellGap(OEImageGrid self) -> double"""
        return _oedepict.OEImageGrid_GetCellGap(self)

    def GetCell(self, row: "unsigned int", col: "unsigned int") -> "OEDepict::OEImageBase *":
        r"""GetCell(OEImageGrid self, unsigned int row, unsigned int col) -> OEImageBase"""
        return _oedepict.OEImageGrid_GetCell(self, row, col)

    def GetCells(self, row: "unsigned int"=0, col: "unsigned int"=0) -> "OESystem::OEIterBase< OEDepict::OEImageBase > *":
        r"""GetCells(OEImageGrid self, unsigned int row=0, unsigned int col=0) -> OESystem::OEIterBase< OEDepict::OEImageBase >"""
        return _oedepict.OEImageGrid_GetCells(self, row, col)

# Register OEImageGrid in _oedepict:
_oedepict.OEImageGrid_swigregister(OEImageGrid)


def OEConfigureImageGridParams(*args) -> "bool":
    r"""OEConfigureImageGridParams(OEInterface itf, unsigned int config=) -> bool"""
    return _oedepict.OEConfigureImageGridParams(*args)

def OEGetImageGridNumRows(*args) -> "unsigned int":
    r"""OEGetImageGridNumRows(OEInterface itf, std::string name=) -> unsigned int"""
    return _oedepict.OEGetImageGridNumRows(*args)

def OEGetImageGridNumColumns(*args) -> "unsigned int":
    r"""OEGetImageGridNumColumns(OEInterface itf, std::string name=) -> unsigned int"""
    return _oedepict.OEGetImageGridNumColumns(*args)

def OEConfigureImageGridNumRows(*args) -> "bool":
    r"""
    OEConfigureImageGridNumRows(OEInterface itf, std::string name=, std::string alias="-rows") -> bool
    OEConfigureImageGridNumRows(OEInterface itf, unsigned int defnumrows, std::string arg3=, std::string alias="-rows") -> bool
    """
    return _oedepict.OEConfigureImageGridNumRows(*args)

def OEConfigureImageGridNumColumns(*args) -> "bool":
    r"""
    OEConfigureImageGridNumColumns(OEInterface itf, std::string name=, std::string alias="-cols") -> bool
    OEConfigureImageGridNumColumns(OEInterface itf, unsigned int defnumcols, std::string arg3=, std::string alias="-cols") -> bool
    """
    return _oedepict.OEConfigureImageGridNumColumns(*args)
class OEImageTableOptions(object):
    r"""Proxy of C++ OEDepict::OEImageTableOptions 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__(OEImageTableOptions self, unsigned int rows, unsigned int cols, unsigned int style=) -> OEImageTableOptions
        __init__(OEImageTableOptions self, OEImageTableOptions arg2) -> OEImageTableOptions
        """
        _oedepict.OEImageTableOptions_swiginit(self, _oedepict.new_OEImageTableOptions(*args))
    __swig_destroy__ = _oedepict.delete_OEImageTableOptions

    def NumRows(self) -> "unsigned int":
        r"""NumRows(OEImageTableOptions self) -> unsigned int"""
        return _oedepict.OEImageTableOptions_NumRows(self)

    def NumColumns(self) -> "unsigned int":
        r"""NumColumns(OEImageTableOptions self) -> unsigned int"""
        return _oedepict.OEImageTableOptions_NumColumns(self)

    def SetRowHeights(self, arg2: "OEUIntVector") -> "bool":
        r"""SetRowHeights(OEImageTableOptions self, OEUIntVector arg2) -> bool"""
        return _oedepict.OEImageTableOptions_SetRowHeights(self, arg2)

    def SetColumnWidths(self, arg2: "OEUIntVector") -> "bool":
        r"""SetColumnWidths(OEImageTableOptions self, OEUIntVector arg2) -> bool"""
        return _oedepict.OEImageTableOptions_SetColumnWidths(self, arg2)

    def HasStubColumn(self) -> "bool":
        r"""HasStubColumn(OEImageTableOptions self) -> bool"""
        return _oedepict.OEImageTableOptions_HasStubColumn(self)

    def SetStubColumn(self, has: "bool") -> "bool":
        r"""SetStubColumn(OEImageTableOptions self, bool has) -> bool"""
        return _oedepict.OEImageTableOptions_SetStubColumn(self, has)

    def HasHeader(self) -> "bool":
        r"""HasHeader(OEImageTableOptions self) -> bool"""
        return _oedepict.OEImageTableOptions_HasHeader(self)

    def SetHeader(self, has: "bool") -> "bool":
        r"""SetHeader(OEImageTableOptions self, bool has) -> bool"""
        return _oedepict.OEImageTableOptions_SetHeader(self, has)

    def SetMargin(self, margin: "unsigned int", percent: "double") -> "bool":
        r"""SetMargin(OEImageTableOptions self, unsigned int margin, double percent) -> bool"""
        return _oedepict.OEImageTableOptions_SetMargin(self, margin, percent)

    def SetMargins(self, percent: "double") -> "bool":
        r"""SetMargins(OEImageTableOptions self, double percent) -> bool"""
        return _oedepict.OEImageTableOptions_SetMargins(self, percent)

    def GetMargin(self, margin: "unsigned int") -> "double":
        r"""GetMargin(OEImageTableOptions self, unsigned int margin) -> double"""
        return _oedepict.OEImageTableOptions_GetMargin(self, margin)

    def GetCellColor(self, even: "bool"=True) -> "OESystem::OEColor const":
        r"""GetCellColor(OEImageTableOptions self, bool even=True) -> OEColor"""
        return _oedepict.OEImageTableOptions_GetCellColor(self, even)

    def SetCellColor(self, arg2: "OEColor", even: "bool"=True) -> "void":
        r"""SetCellColor(OEImageTableOptions self, OEColor arg2, bool even=True)"""
        return _oedepict.OEImageTableOptions_SetCellColor(self, arg2, even)

    def GetStubColumnColor(self) -> "OESystem::OEColor const":
        r"""GetStubColumnColor(OEImageTableOptions self) -> OEColor"""
        return _oedepict.OEImageTableOptions_GetStubColumnColor(self)

    def SetStubColumnColor(self, arg2: "OEColor") -> "void":
        r"""SetStubColumnColor(OEImageTableOptions self, OEColor arg2)"""
        return _oedepict.OEImageTableOptions_SetStubColumnColor(self, arg2)

    def GetHeaderColor(self) -> "OESystem::OEColor const":
        r"""GetHeaderColor(OEImageTableOptions self) -> OEColor"""
        return _oedepict.OEImageTableOptions_GetHeaderColor(self)

    def SetHeaderColor(self, arg2: "OEColor") -> "void":
        r"""SetHeaderColor(OEImageTableOptions self, OEColor arg2)"""
        return _oedepict.OEImageTableOptions_SetHeaderColor(self, arg2)

    def SetBaseFontSize(self, fsize: "unsigned int") -> "void":
        r"""SetBaseFontSize(OEImageTableOptions self, unsigned int fsize)"""
        return _oedepict.OEImageTableOptions_SetBaseFontSize(self, fsize)

    def GetCellFont(self) -> "OEDepict::OEFont const":
        r"""GetCellFont(OEImageTableOptions self) -> OEFont"""
        return _oedepict.OEImageTableOptions_GetCellFont(self)

    def SetCellFont(self, arg2: "OEFont") -> "void":
        r"""SetCellFont(OEImageTableOptions self, OEFont arg2)"""
        return _oedepict.OEImageTableOptions_SetCellFont(self, arg2)

    def GetStubColumnFont(self) -> "OEDepict::OEFont const":
        r"""GetStubColumnFont(OEImageTableOptions self) -> OEFont"""
        return _oedepict.OEImageTableOptions_GetStubColumnFont(self)

    def SetStubColumnFont(self, arg2: "OEFont") -> "void":
        r"""SetStubColumnFont(OEImageTableOptions self, OEFont arg2)"""
        return _oedepict.OEImageTableOptions_SetStubColumnFont(self, arg2)

    def GetHeaderFont(self) -> "OEDepict::OEFont const":
        r"""GetHeaderFont(OEImageTableOptions self) -> OEFont"""
        return _oedepict.OEImageTableOptions_GetHeaderFont(self)

    def SetHeaderFont(self, arg2: "OEFont") -> "void":
        r"""SetHeaderFont(OEImageTableOptions self, OEFont arg2)"""
        return _oedepict.OEImageTableOptions_SetHeaderFont(self, arg2)

    def GetCellBorderPen(self) -> "OEDepict::OEPen const &":
        r"""GetCellBorderPen(OEImageTableOptions self) -> OEPen"""
        return _oedepict.OEImageTableOptions_GetCellBorderPen(self)

    def SetCellBorderPen(self, p: "OEPen") -> "void":
        r"""SetCellBorderPen(OEImageTableOptions self, OEPen p)"""
        return _oedepict.OEImageTableOptions_SetCellBorderPen(self, p)

# Register OEImageTableOptions in _oedepict:
_oedepict.OEImageTableOptions_swigregister(OEImageTableOptions)

class OEImageTable(object):
    r"""Proxy of C++ OEDepict::OEImageTable 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, image: "OEImageBase", opts: "OEImageTableOptions"):
        r"""__init__(OEImageTable self, OEImageBase image, OEImageTableOptions opts) -> OEImageTable"""
        _oedepict.OEImageTable_swiginit(self, _oedepict.new_OEImageTable(image, opts))
    __swig_destroy__ = _oedepict.delete_OEImageTable

    def GetOptions(self) -> "OEDepict::OEImageTableOptions const &":
        r"""GetOptions(OEImageTable self) -> OEImageTableOptions"""
        return _oedepict.OEImageTable_GetOptions(self)

    def NumRows(self, onlybody: "bool"=False) -> "unsigned int":
        r"""NumRows(OEImageTable self, bool onlybody=False) -> unsigned int"""
        return _oedepict.OEImageTable_NumRows(self, onlybody)

    def NumColumns(self, onlybody: "bool"=False) -> "unsigned int":
        r"""NumColumns(OEImageTable self, bool onlybody=False) -> unsigned int"""
        return _oedepict.OEImageTable_NumColumns(self, onlybody)

    def GetStubColumnCell(self, row: "unsigned int") -> "OEDepict::OEImageBase *":
        r"""GetStubColumnCell(OEImageTable self, unsigned int row) -> OEImageBase"""
        return _oedepict.OEImageTable_GetStubColumnCell(self, row)

    def GetHeaderCell(self, col: "unsigned int", skipstub: "bool"=True) -> "OEDepict::OEImageBase *":
        r"""GetHeaderCell(OEImageTable self, unsigned int col, bool skipstub=True) -> OEImageBase"""
        return _oedepict.OEImageTable_GetHeaderCell(self, col, skipstub)

    def GetCell(self, row: "unsigned int", col: "unsigned int") -> "OEDepict::OEImageBase *":
        r"""GetCell(OEImageTable self, unsigned int row, unsigned int col) -> OEImageBase"""
        return _oedepict.OEImageTable_GetCell(self, row, col)

    def GetBodyCell(self, row: "unsigned int", col: "unsigned int") -> "OEDepict::OEImageBase *":
        r"""GetBodyCell(OEImageTable self, unsigned int row, unsigned int col) -> OEImageBase"""
        return _oedepict.OEImageTable_GetBodyCell(self, row, col)

    def GetStubColumnCells(self) -> "OESystem::OEIterBase< OEDepict::OEImageBase > *":
        r"""GetStubColumnCells(OEImageTable self) -> OESystem::OEIterBase< OEDepict::OEImageBase > *"""
        return _oedepict.OEImageTable_GetStubColumnCells(self)

    def GetHeaderCells(self, skipstub: "bool"=True) -> "OESystem::OEIterBase< OEDepict::OEImageBase > *":
        r"""GetHeaderCells(OEImageTable self, bool skipstub=True) -> OESystem::OEIterBase< OEDepict::OEImageBase >"""
        return _oedepict.OEImageTable_GetHeaderCells(self, skipstub)

    def GetCells(self, row: "unsigned int"=0, col: "unsigned int"=0) -> "OESystem::OEIterBase< OEDepict::OEImageBase > *":
        r"""GetCells(OEImageTable self, unsigned int row=0, unsigned int col=0) -> OESystem::OEIterBase< OEDepict::OEImageBase >"""
        return _oedepict.OEImageTable_GetCells(self, row, col)

    def GetBodyCells(self, row: "unsigned int"=0, col: "unsigned int"=0) -> "OESystem::OEIterBase< OEDepict::OEImageBase > *":
        r"""GetBodyCells(OEImageTable self, unsigned int row=0, unsigned int col=0) -> OESystem::OEIterBase< OEDepict::OEImageBase >"""
        return _oedepict.OEImageTable_GetBodyCells(self, row, col)

    def DrawText(self, cell: "OEImageBase", text: "std::string const &", padding: "double"=5.0) -> "bool":
        r"""DrawText(OEImageTable self, OEImageBase cell, std::string const & text, double padding=5.0) -> bool"""
        return _oedepict.OEImageTable_DrawText(self, cell, text, padding)

# Register OEImageTable in _oedepict:
_oedepict.OEImageTable_swigregister(OEImageTable)

class OELegendLayoutOptions(object):
    r"""Proxy of C++ OEDepict::OELegendLayoutOptions 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__(OELegendLayoutOptions self, unsigned int layout=, unsigned int color=, unsigned int inter=) -> OELegendLayoutOptions
        __init__(OELegendLayoutOptions self, OELegendLayoutOptions arg2) -> OELegendLayoutOptions
        """
        _oedepict.OELegendLayoutOptions_swiginit(self, _oedepict.new_OELegendLayoutOptions(*args))
    __swig_destroy__ = _oedepict.delete_OELegendLayoutOptions

    def GetLayoutStyle(self) -> "unsigned int":
        r"""GetLayoutStyle(OELegendLayoutOptions self) -> unsigned int"""
        return _oedepict.OELegendLayoutOptions_GetLayoutStyle(self)

    def GetColorStyle(self) -> "unsigned int":
        r"""GetColorStyle(OELegendLayoutOptions self) -> unsigned int"""
        return _oedepict.OELegendLayoutOptions_GetColorStyle(self)

    def GetInteractiveStyle(self) -> "unsigned int":
        r"""GetInteractiveStyle(OELegendLayoutOptions self) -> unsigned int"""
        return _oedepict.OELegendLayoutOptions_GetInteractiveStyle(self)

    def SetButtonWidthScale(self, s: "double") -> "void":
        r"""SetButtonWidthScale(OELegendLayoutOptions self, double s)"""
        return _oedepict.OELegendLayoutOptions_SetButtonWidthScale(self, s)

    def GetButtonWidthScale(self) -> "double":
        r"""GetButtonWidthScale(OELegendLayoutOptions self) -> double"""
        return _oedepict.OELegendLayoutOptions_GetButtonWidthScale(self)

    def SetButtonHeightScale(self, s: "double") -> "void":
        r"""SetButtonHeightScale(OELegendLayoutOptions self, double s)"""
        return _oedepict.OELegendLayoutOptions_SetButtonHeightScale(self, s)

    def GetButtonHeightScale(self) -> "double":
        r"""GetButtonHeightScale(OELegendLayoutOptions self) -> double"""
        return _oedepict.OELegendLayoutOptions_GetButtonHeightScale(self)

    def SetMargin(self, margin: "unsigned int", percent: "double") -> "bool":
        r"""SetMargin(OELegendLayoutOptions self, unsigned int margin, double percent) -> bool"""
        return _oedepict.OELegendLayoutOptions_SetMargin(self, margin, percent)

    def SetMargins(self, percent: "double") -> "bool":
        r"""SetMargins(OELegendLayoutOptions self, double percent) -> bool"""
        return _oedepict.OELegendLayoutOptions_SetMargins(self, percent)

    def GetMargin(self, percent: "unsigned int") -> "double":
        r"""GetMargin(OELegendLayoutOptions self, unsigned int percent) -> double"""
        return _oedepict.OELegendLayoutOptions_GetMargin(self, percent)

    def SetButtonPen(self, pen: "OEPen", on: "bool") -> "void":
        r"""SetButtonPen(OELegendLayoutOptions self, OEPen pen, bool on)"""
        return _oedepict.OELegendLayoutOptions_SetButtonPen(self, pen, on)

    def GetButtonPen(self, on: "bool") -> "OEDepict::OEPen const &":
        r"""GetButtonPen(OELegendLayoutOptions self, bool on) -> OEPen"""
        return _oedepict.OELegendLayoutOptions_GetButtonPen(self, on)

    def SetButtonFont(self, font: "OEFont") -> "void":
        r"""SetButtonFont(OELegendLayoutOptions self, OEFont font)"""
        return _oedepict.OELegendLayoutOptions_SetButtonFont(self, font)

    def GetButtonFont(self) -> "OEDepict::OEFont const &":
        r"""GetButtonFont(OELegendLayoutOptions self) -> OEFont"""
        return _oedepict.OELegendLayoutOptions_GetButtonFont(self)

    def SetLegendBoxPen(self, pen: "OEPen") -> "void":
        r"""SetLegendBoxPen(OELegendLayoutOptions self, OEPen pen)"""
        return _oedepict.OELegendLayoutOptions_SetLegendBoxPen(self, pen)

    def GetLegendBoxPen(self) -> "OEDepict::OEPen const &":
        r"""GetLegendBoxPen(OELegendLayoutOptions self) -> OEPen"""
        return _oedepict.OELegendLayoutOptions_GetLegendBoxPen(self)

# Register OELegendLayoutOptions in _oedepict:
_oedepict.OELegendLayoutOptions_swigregister(OELegendLayoutOptions)

class OELegendLayout(object):
    r"""Proxy of C++ OEDepict::OELegendLayout 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, image: "OEImageBase", buttontext: "std::string const &", opts: "OELegendLayoutOptions"):
        r"""__init__(OELegendLayout self, OEImageBase image, std::string const & buttontext, OELegendLayoutOptions opts) -> OELegendLayout"""
        _oedepict.OELegendLayout_swiginit(self, _oedepict.new_OELegendLayout(image, buttontext, opts))
    __swig_destroy__ = _oedepict.delete_OELegendLayout

    def GetLegendArea(self) -> "OEDepict::OEImage &":
        r"""GetLegendArea(OELegendLayout self) -> OEImage"""
        return _oedepict.OELegendLayout_GetLegendArea(self)

    def GetOptions(self) -> "OEDepict::OELegendLayoutOptions const &":
        r"""GetOptions(OELegendLayout self) -> OELegendLayoutOptions"""
        return _oedepict.OELegendLayout_GetOptions(self)

    def Render(self) -> "bool":
        r"""Render(OELegendLayout self) -> bool"""
        return _oedepict.OELegendLayout_Render(self)

# Register OELegendLayout in _oedepict:
_oedepict.OELegendLayout_swigregister(OELegendLayout)


def OEDrawLegendLayout(layout: "OELegendLayout") -> "bool":
    r"""OEDrawLegendLayout(OELegendLayout layout) -> bool"""
    return _oedepict.OEDrawLegendLayout(layout)
class OEHighlightBase(object):
    r"""Proxy of C++ OEDepict::OEHighlightBase 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):
        r"""__init__(OEHighlightBase self) -> OEHighlightBase"""
        if self.__class__ == OEHighlightBase:
            _self = None
        else:
            _self = self
        _oedepict.OEHighlightBase_swiginit(self, _oedepict.new_OEHighlightBase(_self, ))
    __swig_destroy__ = _oedepict.delete_OEHighlightBase

    def CreateCopy(self, *args):
        try:
            return _oedepict.OEHighlightBase_CreateCopy(self, *args)
        except RuntimeError:
            try:
                return self.__class__().__disown__()
            except:
                raise RuntimeError("CreateCopy must be specialized for %s" % self.__class__.__name__)


    def __disown__(self):
        self.this.disown()
        _oedepict.disown_OEHighlightBase(self)
        return weakref.proxy(self)

# Register OEHighlightBase in _oedepict:
_oedepict.OEHighlightBase_swigregister(OEHighlightBase)

class OEHighlightByColor(OEHighlightBase):
    r"""Proxy of C++ OEDepict::OEHighlightByColor 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__(OEHighlightByColor self, OEColor color, double lineWidthScale=1.5, bool atomExternalHighlight=False) -> OEHighlightByColor
        __init__(OEHighlightByColor self, OEHighlightByColor rhs) -> OEHighlightByColor
        """
        _oedepict.OEHighlightByColor_swiginit(self, _oedepict.new_OEHighlightByColor(*args))
    __swig_destroy__ = _oedepict.delete_OEHighlightByColor

    def CreateCopy(self, *args):
        try:
            return _oedepict.OEHighlightByColor_CreateCopy(self, *args)
        except RuntimeError:
            try:
                return self.__class__().__disown__()
            except:
                raise RuntimeError("CreateCopy must be specialized for %s" % self.__class__.__name__)



    def GetColor(self) -> "OESystem::OEColor const &":
        r"""GetColor(OEHighlightByColor self) -> OEColor"""
        return _oedepict.OEHighlightByColor_GetColor(self)

    def SetColor(self, color: "OEColor") -> "void":
        r"""SetColor(OEHighlightByColor self, OEColor color)"""
        return _oedepict.OEHighlightByColor_SetColor(self, color)

    def GetLineWidthScale(self) -> "double":
        r"""GetLineWidthScale(OEHighlightByColor self) -> double"""
        return _oedepict.OEHighlightByColor_GetLineWidthScale(self)

    def SetLineWidthScale(self, lineWidthScale: "double") -> "void":
        r"""SetLineWidthScale(OEHighlightByColor self, double lineWidthScale)"""
        return _oedepict.OEHighlightByColor_SetLineWidthScale(self, lineWidthScale)

    def GetAtomExternalHighlight(self) -> "bool":
        r"""GetAtomExternalHighlight(OEHighlightByColor self) -> bool"""
        return _oedepict.OEHighlightByColor_GetAtomExternalHighlight(self)

    def SetAtomExternalHighlight(self, atomexternal: "bool") -> "void":
        r"""SetAtomExternalHighlight(OEHighlightByColor self, bool atomexternal)"""
        return _oedepict.OEHighlightByColor_SetAtomExternalHighlight(self, atomexternal)

# Register OEHighlightByColor in _oedepict:
_oedepict.OEHighlightByColor_swigregister(OEHighlightByColor)

class OEHighlightByStick(OEHighlightBase):
    r"""Proxy of C++ OEDepict::OEHighlightByStick 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__(OEHighlightByStick self, OEColor color, double stickWidthScale=3.0, bool monochrome=True, double atomExternalHighlightRatio=0.0) -> OEHighlightByStick
        __init__(OEHighlightByStick self, OEHighlightByStick rhs) -> OEHighlightByStick
        """
        _oedepict.OEHighlightByStick_swiginit(self, _oedepict.new_OEHighlightByStick(*args))
    __swig_destroy__ = _oedepict.delete_OEHighlightByStick

    def CreateCopy(self, *args):
        try:
            return _oedepict.OEHighlightByStick_CreateCopy(self, *args)
        except RuntimeError:
            try:
                return self.__class__().__disown__()
            except:
                raise RuntimeError("CreateCopy must be specialized for %s" % self.__class__.__name__)



    def GetColor(self) -> "OESystem::OEColor const &":
        r"""GetColor(OEHighlightByStick self) -> OEColor"""
        return _oedepict.OEHighlightByStick_GetColor(self)

    def SetColor(self, color: "OEColor") -> "void":
        r"""SetColor(OEHighlightByStick self, OEColor color)"""
        return _oedepict.OEHighlightByStick_SetColor(self, color)

    def GetStickWidthScale(self) -> "double":
        r"""GetStickWidthScale(OEHighlightByStick self) -> double"""
        return _oedepict.OEHighlightByStick_GetStickWidthScale(self)

    def SetStickWidthScale(self, stickWidthScale: "double") -> "void":
        r"""SetStickWidthScale(OEHighlightByStick self, double stickWidthScale)"""
        return _oedepict.OEHighlightByStick_SetStickWidthScale(self, stickWidthScale)

    def GetAtomLabelMonochrome(self) -> "bool":
        r"""GetAtomLabelMonochrome(OEHighlightByStick self) -> bool"""
        return _oedepict.OEHighlightByStick_GetAtomLabelMonochrome(self)

    def SetAtomLabelMonochrome(self, monochrome: "bool") -> "void":
        r"""SetAtomLabelMonochrome(OEHighlightByStick self, bool monochrome)"""
        return _oedepict.OEHighlightByStick_SetAtomLabelMonochrome(self, monochrome)

    def GetAtomExternalHighlightRatio(self) -> "double":
        r"""GetAtomExternalHighlightRatio(OEHighlightByStick self) -> double"""
        return _oedepict.OEHighlightByStick_GetAtomExternalHighlightRatio(self)

    def SetAtomExternalHighlightRatio(self, ratio: "double") -> "void":
        r"""SetAtomExternalHighlightRatio(OEHighlightByStick self, double ratio)"""
        return _oedepict.OEHighlightByStick_SetAtomExternalHighlightRatio(self, ratio)

# Register OEHighlightByStick in _oedepict:
_oedepict.OEHighlightByStick_swigregister(OEHighlightByStick)

class OEHighlightByBallAndStick(OEHighlightBase):
    r"""Proxy of C++ OEDepict::OEHighlightByBallAndStick 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__(OEHighlightByBallAndStick self, OEColor color, double stickWidthScale=3.0, double ballRadiusScale=3.0, bool monochrome=True) -> OEHighlightByBallAndStick
        __init__(OEHighlightByBallAndStick self, OEHighlightByBallAndStick rhs) -> OEHighlightByBallAndStick
        """
        _oedepict.OEHighlightByBallAndStick_swiginit(self, _oedepict.new_OEHighlightByBallAndStick(*args))
    __swig_destroy__ = _oedepict.delete_OEHighlightByBallAndStick

    def CreateCopy(self, *args):
        try:
            return _oedepict.OEHighlightByBallAndStick_CreateCopy(self, *args)
        except RuntimeError:
            try:
                return self.__class__().__disown__()
            except:
                raise RuntimeError("CreateCopy must be specialized for %s" % self.__class__.__name__)



    def GetColor(self) -> "OESystem::OEColor const &":
        r"""GetColor(OEHighlightByBallAndStick self) -> OEColor"""
        return _oedepict.OEHighlightByBallAndStick_GetColor(self)

    def SetColor(self, color: "OEColor") -> "void":
        r"""SetColor(OEHighlightByBallAndStick self, OEColor color)"""
        return _oedepict.OEHighlightByBallAndStick_SetColor(self, color)

    def GetStickWidthScale(self) -> "double":
        r"""GetStickWidthScale(OEHighlightByBallAndStick self) -> double"""
        return _oedepict.OEHighlightByBallAndStick_GetStickWidthScale(self)

    def SetStickWidthScale(self, stickWidthScale: "double") -> "void":
        r"""SetStickWidthScale(OEHighlightByBallAndStick self, double stickWidthScale)"""
        return _oedepict.OEHighlightByBallAndStick_SetStickWidthScale(self, stickWidthScale)

    def GetBallRadiusScale(self) -> "double":
        r"""GetBallRadiusScale(OEHighlightByBallAndStick self) -> double"""
        return _oedepict.OEHighlightByBallAndStick_GetBallRadiusScale(self)

    def SetBallRadiusScale(self, ballRadiusScale: "double") -> "void":
        r"""SetBallRadiusScale(OEHighlightByBallAndStick self, double ballRadiusScale)"""
        return _oedepict.OEHighlightByBallAndStick_SetBallRadiusScale(self, ballRadiusScale)

    def GetAtomLabelMonochrome(self) -> "bool":
        r"""GetAtomLabelMonochrome(OEHighlightByBallAndStick self) -> bool"""
        return _oedepict.OEHighlightByBallAndStick_GetAtomLabelMonochrome(self)

    def SetAtomLabelMonochrome(self, monochrome: "bool") -> "void":
        r"""SetAtomLabelMonochrome(OEHighlightByBallAndStick self, bool monochrome)"""
        return _oedepict.OEHighlightByBallAndStick_SetAtomLabelMonochrome(self, monochrome)

# Register OEHighlightByBallAndStick in _oedepict:
_oedepict.OEHighlightByBallAndStick_swigregister(OEHighlightByBallAndStick)

class OEHighlightByCogwheel(OEHighlightBase):
    r"""Proxy of C++ OEDepict::OEHighlightByCogwheel 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__(OEHighlightByCogwheel self, OEColor color, double lineWidthScale=1.5, double stickWidthScale=2.0, double ballRadiusScale=2.0, bool innerContour=True, bool monochrome=True) -> OEHighlightByCogwheel
        __init__(OEHighlightByCogwheel self, OEHighlightByCogwheel rhs) -> OEHighlightByCogwheel
        """
        _oedepict.OEHighlightByCogwheel_swiginit(self, _oedepict.new_OEHighlightByCogwheel(*args))
    __swig_destroy__ = _oedepict.delete_OEHighlightByCogwheel

    def CreateCopy(self, *args):
        try:
            return _oedepict.OEHighlightByCogwheel_CreateCopy(self, *args)
        except RuntimeError:
            try:
                return self.__class__().__disown__()
            except:
                raise RuntimeError("CreateCopy must be specialized for %s" % self.__class__.__name__)



    def GetColor(self) -> "OESystem::OEColor const &":
        r"""GetColor(OEHighlightByCogwheel self) -> OEColor"""
        return _oedepict.OEHighlightByCogwheel_GetColor(self)

    def SetColor(self, color: "OEColor") -> "void":
        r"""SetColor(OEHighlightByCogwheel self, OEColor color)"""
        return _oedepict.OEHighlightByCogwheel_SetColor(self, color)

    def GetLineWidthScale(self) -> "double":
        r"""GetLineWidthScale(OEHighlightByCogwheel self) -> double"""
        return _oedepict.OEHighlightByCogwheel_GetLineWidthScale(self)

    def SetLineWidthScale(self, lineWidthScale: "double") -> "void":
        r"""SetLineWidthScale(OEHighlightByCogwheel self, double lineWidthScale)"""
        return _oedepict.OEHighlightByCogwheel_SetLineWidthScale(self, lineWidthScale)

    def GetStickWidthScale(self) -> "double":
        r"""GetStickWidthScale(OEHighlightByCogwheel self) -> double"""
        return _oedepict.OEHighlightByCogwheel_GetStickWidthScale(self)

    def SetStickWidthScale(self, stickWidthScale: "double") -> "void":
        r"""SetStickWidthScale(OEHighlightByCogwheel self, double stickWidthScale)"""
        return _oedepict.OEHighlightByCogwheel_SetStickWidthScale(self, stickWidthScale)

    def GetBallRadiusScale(self) -> "double":
        r"""GetBallRadiusScale(OEHighlightByCogwheel self) -> double"""
        return _oedepict.OEHighlightByCogwheel_GetBallRadiusScale(self)

    def SetBallRadiusScale(self, ballRadiusScale: "double") -> "void":
        r"""SetBallRadiusScale(OEHighlightByCogwheel self, double ballRadiusScale)"""
        return _oedepict.OEHighlightByCogwheel_SetBallRadiusScale(self, ballRadiusScale)

    def GetInnerContour(self) -> "bool":
        r"""GetInnerContour(OEHighlightByCogwheel self) -> bool"""
        return _oedepict.OEHighlightByCogwheel_GetInnerContour(self)

    def SetInnerContour(self, innerContour: "bool") -> "void":
        r"""SetInnerContour(OEHighlightByCogwheel self, bool innerContour)"""
        return _oedepict.OEHighlightByCogwheel_SetInnerContour(self, innerContour)

    def GetAtomLabelMonochrome(self) -> "bool":
        r"""GetAtomLabelMonochrome(OEHighlightByCogwheel self) -> bool"""
        return _oedepict.OEHighlightByCogwheel_GetAtomLabelMonochrome(self)

    def SetAtomLabelMonochrome(self, monochrome: "bool") -> "void":
        r"""SetAtomLabelMonochrome(OEHighlightByCogwheel self, bool monochrome)"""
        return _oedepict.OEHighlightByCogwheel_SetAtomLabelMonochrome(self, monochrome)

# Register OEHighlightByCogwheel in _oedepict:
_oedepict.OEHighlightByCogwheel_swigregister(OEHighlightByCogwheel)

class OEHighlightByLasso(OEHighlightBase):
    r"""Proxy of C++ OEDepict::OEHighlightByLasso 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__(OEHighlightByLasso self, OEColor color, double lassoScale=3.0, bool monochrome=True, bool considerAtomLabelBox=False, unsigned int position=, double lws=1.0) -> OEHighlightByLasso
        __init__(OEHighlightByLasso self, OEHighlightByLasso rhs) -> OEHighlightByLasso
        """
        _oedepict.OEHighlightByLasso_swiginit(self, _oedepict.new_OEHighlightByLasso(*args))

    def CreateCopy(self, *args):
        try:
            return _oedepict.OEHighlightByLasso_CreateCopy(self, *args)
        except RuntimeError:
            try:
                return self.__class__().__disown__()
            except:
                raise RuntimeError("CreateCopy must be specialized for %s" % self.__class__.__name__)


    __swig_destroy__ = _oedepict.delete_OEHighlightByLasso

    def GetColor(self) -> "OESystem::OEColor const &":
        r"""GetColor(OEHighlightByLasso self) -> OEColor"""
        return _oedepict.OEHighlightByLasso_GetColor(self)

    def SetColor(self, color: "OEColor") -> "void":
        r"""SetColor(OEHighlightByLasso self, OEColor color)"""
        return _oedepict.OEHighlightByLasso_SetColor(self, color)

    def GetPen(self) -> "OEDepict::OEPen const &":
        r"""GetPen(OEHighlightByLasso self) -> OEPen"""
        return _oedepict.OEHighlightByLasso_GetPen(self)

    def SetPen(self, pen: "OEPen") -> "void":
        r"""SetPen(OEHighlightByLasso self, OEPen pen)"""
        return _oedepict.OEHighlightByLasso_SetPen(self, pen)

    def GetLassoScale(self) -> "double":
        r"""GetLassoScale(OEHighlightByLasso self) -> double"""
        return _oedepict.OEHighlightByLasso_GetLassoScale(self)

    def SetLassoScale(self, lassoScale: "double") -> "void":
        r"""SetLassoScale(OEHighlightByLasso self, double lassoScale)"""
        return _oedepict.OEHighlightByLasso_SetLassoScale(self, lassoScale)

    def GetAtomLabelMonochrome(self) -> "bool":
        r"""GetAtomLabelMonochrome(OEHighlightByLasso self) -> bool"""
        return _oedepict.OEHighlightByLasso_GetAtomLabelMonochrome(self)

    def SetAtomLabelMonochrome(self, monochrome: "bool") -> "void":
        r"""SetAtomLabelMonochrome(OEHighlightByLasso self, bool monochrome)"""
        return _oedepict.OEHighlightByLasso_SetAtomLabelMonochrome(self, monochrome)

    def GetConsiderAtomLabelBoundingBox(self) -> "bool":
        r"""GetConsiderAtomLabelBoundingBox(OEHighlightByLasso self) -> bool"""
        return _oedepict.OEHighlightByLasso_GetConsiderAtomLabelBoundingBox(self)

    def SetConsiderAtomLabelBoundingBox(self, consider: "bool") -> "void":
        r"""SetConsiderAtomLabelBoundingBox(OEHighlightByLasso self, bool consider)"""
        return _oedepict.OEHighlightByLasso_SetConsiderAtomLabelBoundingBox(self, consider)

    def GetPosition(self) -> "unsigned int":
        r"""GetPosition(OEHighlightByLasso self) -> unsigned int"""
        return _oedepict.OEHighlightByLasso_GetPosition(self)

    def SetPosition(self, arg2: "unsigned int") -> "void":
        r"""SetPosition(OEHighlightByLasso self, unsigned int arg2)"""
        return _oedepict.OEHighlightByLasso_SetPosition(self, arg2)

    def GetLineWidthScale(self) -> "double":
        r"""GetLineWidthScale(OEHighlightByLasso self) -> double"""
        return _oedepict.OEHighlightByLasso_GetLineWidthScale(self)

    def SetLineWidthScale(self, lineWidthScale: "double") -> "void":
        r"""SetLineWidthScale(OEHighlightByLasso self, double lineWidthScale)"""
        return _oedepict.OEHighlightByLasso_SetLineWidthScale(self, lineWidthScale)

# Register OEHighlightByLasso in _oedepict:
_oedepict.OEHighlightByLasso_swigregister(OEHighlightByLasso)


def OEAddHighlighting(*args) -> "void":
    r"""
    OEAddHighlighting(OE2DMolDisplay disp, OEColor color, unsigned int style, OEMatchBase match)
    OEAddHighlighting(OE2DMolDisplay disp, OEColor color, unsigned int style, OEAtomBondSet abset)
    OEAddHighlighting(OE2DMolDisplay disp, OEColor color, unsigned int style, OEUnaryAtomPred atompred)
    OEAddHighlighting(OE2DMolDisplay disp, OEColor color, unsigned int style, OEUnaryBondPred bondpred)
    OEAddHighlighting(OE2DMolDisplay disp, OEColor color, unsigned int style, OEUnaryAtomPred atompred, OEUnaryBondPred bondpred)
    OEAddHighlighting(OE2DMolDisplay disp, OEColor color, unsigned int style, OESubSearch subsearch)
    OEAddHighlighting(OE2DMolDisplay disp, OEHighlightBase highlight, OEMatchBase match)
    OEAddHighlighting(OE2DMolDisplay disp, OEHighlightBase highlight, OEAtomBondSet abset)
    OEAddHighlighting(OE2DMolDisplay disp, OEHighlightBase highlight, OEUnaryAtomPred atompred)
    OEAddHighlighting(OE2DMolDisplay disp, OEHighlightBase highlight, OEUnaryBondPred bondpred)
    OEAddHighlighting(OE2DMolDisplay disp, OEHighlightBase highlight, OEUnaryAtomPred atompred, OEUnaryBondPred bondpred)
    OEAddHighlighting(OE2DMolDisplay disp, OEHighlightBase highlight, OESubSearch subsearch)
    """
    return _oedepict.OEAddHighlighting(*args)

def OEDrawHighlighting(image: "OEImageBase", disp: "OE2DMolDisplay", highlight: "OEHighlightBase", abset: "OEAtomBondSet") -> "void":
    r"""OEDrawHighlighting(OEImageBase image, OE2DMolDisplay disp, OEHighlightBase highlight, OEAtomBondSet abset)"""
    return _oedepict.OEDrawHighlighting(image, disp, highlight, abset)

def OEConfigureHighlightParams(*args) -> "bool":
    r"""OEConfigureHighlightParams(OEInterface itf, unsigned int config=) -> bool"""
    return _oedepict.OEConfigureHighlightParams(*args)

def OEGetHighlightStyle(*args) -> "unsigned int":
    r"""OEGetHighlightStyle(OEInterface itf, std::string name=) -> unsigned int"""
    return _oedepict.OEGetHighlightStyle(*args)

def OEGetHighlightColor(*args) -> "OESystem::OEColor":
    r"""OEGetHighlightColor(OEInterface itf, std::string name=) -> OEColor"""
    return _oedepict.OEGetHighlightColor(*args)

def OEConfigureHighlightStyle(*args) -> "bool":
    r"""OEConfigureHighlightStyle(OEInterface itf, std::string name=, std::string alias="-hstyle") -> bool"""
    return _oedepict.OEConfigureHighlightStyle(*args)

def OEConfigureHighlightColor(*args) -> "bool":
    r"""OEConfigureHighlightColor(OEInterface itf, std::string name=, std::string alias="-hcolor") -> bool"""
    return _oedepict.OEConfigureHighlightColor(*args)

def OEConfigureColor(*args) -> "bool":
    r"""OEConfigureColor(OEInterface itf, std::string const & name, std::string const & alias, std::string const & brief, std::string defcolor="red") -> bool"""
    return _oedepict.OEConfigureColor(*args)

def OEGetColor(itf: "OEInterface", name: "std::string const &") -> "OESystem::OEColor":
    r"""OEGetColor(OEInterface itf, std::string const & name) -> OEColor"""
    return _oedepict.OEGetColor(itf, name)
class OEHighlightOverlayBase(object):
    r"""Proxy of C++ OEDepict::OEHighlightOverlayBase 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):
        r"""__init__(OEHighlightOverlayBase self) -> OEHighlightOverlayBase"""
        if self.__class__ == OEHighlightOverlayBase:
            _self = None
        else:
            _self = self
        _oedepict.OEHighlightOverlayBase_swiginit(self, _oedepict.new_OEHighlightOverlayBase(_self, ))
    __swig_destroy__ = _oedepict.delete_OEHighlightOverlayBase

    def GetColors(self) -> "OESystem::OEIterBase< OESystem::OEColor > *":
        r"""GetColors(OEHighlightOverlayBase self) -> OESystem::OEIterBase< OESystem::OEColor > *"""
        return _oedepict.OEHighlightOverlayBase_GetColors(self)

    def SetColors(self, colors: "OEColorIter") -> "void":
        r"""SetColors(OEHighlightOverlayBase self, OEColorIter colors)"""
        return _oedepict.OEHighlightOverlayBase_SetColors(self, colors)
    def __disown__(self):
        self.this.disown()
        _oedepict.disown_OEHighlightOverlayBase(self)
        return weakref.proxy(self)

# Register OEHighlightOverlayBase in _oedepict:
_oedepict.OEHighlightOverlayBase_swigregister(OEHighlightOverlayBase)

class OEHighlightOverlayByBallAndStick(OEHighlightOverlayBase):
    r"""Proxy of C++ OEDepict::OEHighlightOverlayByBallAndStick 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__(OEHighlightOverlayByBallAndStick self, OEColorIter colors, double stickWidthScale=3.0, double ballRadiusScale=3.0, bool monochrome=True) -> OEHighlightOverlayByBallAndStick
        __init__(OEHighlightOverlayByBallAndStick self, OEHighlightOverlayByBallAndStick rhs) -> OEHighlightOverlayByBallAndStick
        """
        _oedepict.OEHighlightOverlayByBallAndStick_swiginit(self, _oedepict.new_OEHighlightOverlayByBallAndStick(*args))
    __swig_destroy__ = _oedepict.delete_OEHighlightOverlayByBallAndStick

    def GetStickWidthScale(self) -> "double":
        r"""GetStickWidthScale(OEHighlightOverlayByBallAndStick self) -> double"""
        return _oedepict.OEHighlightOverlayByBallAndStick_GetStickWidthScale(self)

    def SetStickWidthScale(self, stickWidthScale: "double") -> "void":
        r"""SetStickWidthScale(OEHighlightOverlayByBallAndStick self, double stickWidthScale)"""
        return _oedepict.OEHighlightOverlayByBallAndStick_SetStickWidthScale(self, stickWidthScale)

    def GetBallRadiusScale(self) -> "double":
        r"""GetBallRadiusScale(OEHighlightOverlayByBallAndStick self) -> double"""
        return _oedepict.OEHighlightOverlayByBallAndStick_GetBallRadiusScale(self)

    def SetBallRadiusScale(self, ballRadiusScale: "double") -> "void":
        r"""SetBallRadiusScale(OEHighlightOverlayByBallAndStick self, double ballRadiusScale)"""
        return _oedepict.OEHighlightOverlayByBallAndStick_SetBallRadiusScale(self, ballRadiusScale)

    def GetAtomLabelMonochrome(self) -> "bool":
        r"""GetAtomLabelMonochrome(OEHighlightOverlayByBallAndStick self) -> bool"""
        return _oedepict.OEHighlightOverlayByBallAndStick_GetAtomLabelMonochrome(self)

    def SetAtomLabelMonochrome(self, monochrome: "bool") -> "void":
        r"""SetAtomLabelMonochrome(OEHighlightOverlayByBallAndStick self, bool monochrome)"""
        return _oedepict.OEHighlightOverlayByBallAndStick_SetAtomLabelMonochrome(self, monochrome)

# Register OEHighlightOverlayByBallAndStick in _oedepict:
_oedepict.OEHighlightOverlayByBallAndStick_swigregister(OEHighlightOverlayByBallAndStick)


def OEAddHighlightOverlay(*args) -> "PyObject *":
    r"""
    OEAddHighlightOverlay(OE2DMolDisplay disp, OEHighlightOverlayBase highlight, OEMatchBaseIter matches)
    OEAddHighlightOverlay(OE2DMolDisplay disp, OEHighlightOverlayBase highlight, OEAtomBondSetIter absets)
    OEAddHighlightOverlay(OE2DMolDisplay disp, OEHighlightOverlayBase highlight, OEAtomBondSetVector absets)
    OEAddHighlightOverlay(OE2DMolDisplay disp, OEHighlightOverlayBase highlight, PyObject * input) -> PyObject *
    """
    return _oedepict.OEAddHighlightOverlay(*args)
class OEHighlightLabel(object):
    r"""Proxy of C++ OEDepict::OEHighlightLabel 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__(OEHighlightLabel self, std::string const & text) -> OEHighlightLabel
        __init__(OEHighlightLabel self, std::string const & text, OEFont font) -> OEHighlightLabel
        __init__(OEHighlightLabel self, std::string const & text, OEColor color) -> OEHighlightLabel
        __init__(OEHighlightLabel self, OEHighlightLabel arg2) -> OEHighlightLabel
        """
        _oedepict.OEHighlightLabel_swiginit(self, _oedepict.new_OEHighlightLabel(*args))
    __swig_destroy__ = _oedepict.delete_OEHighlightLabel

    def GetText(self) -> "std::string":
        r"""GetText(OEHighlightLabel self) -> std::string"""
        return _oedepict.OEHighlightLabel_GetText(self)

    def GetFont(self) -> "OEDepict::OEFont const &":
        r"""GetFont(OEHighlightLabel self) -> OEFont"""
        return _oedepict.OEHighlightLabel_GetFont(self)

    def SetFont(self, font: "OEFont") -> "void":
        r"""SetFont(OEHighlightLabel self, OEFont font)"""
        return _oedepict.OEHighlightLabel_SetFont(self, font)

    def GetBoundingBoxPen(self) -> "OEDepict::OEPen const &":
        r"""GetBoundingBoxPen(OEHighlightLabel self) -> OEPen"""
        return _oedepict.OEHighlightLabel_GetBoundingBoxPen(self)

    def SetBoundingBoxPen(self, pen: "OEPen") -> "void":
        r"""SetBoundingBoxPen(OEHighlightLabel self, OEPen pen)"""
        return _oedepict.OEHighlightLabel_SetBoundingBoxPen(self, pen)

    def GetFontScale(self) -> "double":
        r"""GetFontScale(OEHighlightLabel self) -> double"""
        return _oedepict.OEHighlightLabel_GetFontScale(self)

    def SetFontScale(self, scale: "double") -> "void":
        r"""SetFontScale(OEHighlightLabel self, double scale)"""
        return _oedepict.OEHighlightLabel_SetFontScale(self, scale)

# Register OEHighlightLabel in _oedepict:
_oedepict.OEHighlightLabel_swigregister(OEHighlightLabel)


def OEAddLabel(*args) -> "void":
    r"""
    OEAddLabel(OE2DMolDisplay disp, OEHighlightLabel label, OEMatchBase match)
    OEAddLabel(OE2DMolDisplay disp, OEHighlightLabel label, OEAtomBondSet abset)
    OEAddLabel(OE2DMolDisplay disp, OEHighlightLabel label, OEUnaryAtomPred atompred)
    OEAddLabel(OEImageBase image, OE2DPoint center, OEHighlightLabel label)
    """
    return _oedepict.OEAddLabel(*args)

def OEGetLabelPosition(*args) -> "OEDepict::OE2DPoint":
    r"""
    OEGetLabelPosition(OE2DMolDisplay disp, OEHighlightLabel label, OEMatchBase match) -> OE2DPoint
    OEGetLabelPosition(OE2DMolDisplay disp, OEHighlightLabel label, OEAtomBondSet abset) -> OE2DPoint
    OEGetLabelPosition(OE2DMolDisplay disp, OEHighlightLabel label, OEUnaryAtomPred atompred) -> OE2DPoint
    """
    return _oedepict.OEGetLabelPosition(*args)

def OEGetPageWidth(size: "unsigned int const") -> "double":
    r"""OEGetPageWidth(unsigned int const size) -> double"""
    return _oedepict.OEGetPageWidth(size)

def OEGetPageHeight(size: "unsigned int const") -> "double":
    r"""OEGetPageHeight(unsigned int const size) -> double"""
    return _oedepict.OEGetPageHeight(size)
class OEMultiPageImageFile(object):
    r"""Proxy of C++ OEDepict::OEMultiPageImageFile 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__(OEMultiPageImageFile self, unsigned int orientation, unsigned int imagesize) -> OEMultiPageImageFile
        __init__(OEMultiPageImageFile self, double width, double height) -> OEMultiPageImageFile
        """
        _oedepict.OEMultiPageImageFile_swiginit(self, _oedepict.new_OEMultiPageImageFile(*args))
    __swig_destroy__ = _oedepict.delete_OEMultiPageImageFile

    def NumPages(self) -> "unsigned int":
        r"""NumPages(OEMultiPageImageFile self) -> unsigned int"""
        return _oedepict.OEMultiPageImageFile_NumPages(self)

    def NewPage(self) -> "OEDepict::OEImage &":
        r"""NewPage(OEMultiPageImageFile self) -> OEImage"""
        return _oedepict.OEMultiPageImageFile_NewPage(self)

    def GetPage(self, *args) -> "OEDepict::OEImage const *":
        r"""
        GetPage(OEMultiPageImageFile self, unsigned int page) -> OEImage
        GetPage(OEMultiPageImageFile self, unsigned int page) -> OEImage
        """
        return _oedepict.OEMultiPageImageFile_GetPage(self, *args)

    def GetPages(self, *args) -> "OESystem::OEIterBase< OEDepict::OEImage const > *":
        r"""
        GetPages(OEMultiPageImageFile self) -> OESystem::OEIterBase< OEDepict::OEImage >
        GetPages(OEMultiPageImageFile self) -> OESystem::OEIterBase< OEDepict::OEImage const > *
        """
        return _oedepict.OEMultiPageImageFile_GetPages(self, *args)

    def GetPageWidth(self) -> "double":
        r"""GetPageWidth(OEMultiPageImageFile self) -> double"""
        return _oedepict.OEMultiPageImageFile_GetPageWidth(self)

    def GetPageHeight(self) -> "double":
        r"""GetPageHeight(OEMultiPageImageFile self) -> double"""
        return _oedepict.OEMultiPageImageFile_GetPageHeight(self)

    def GetOrientation(self) -> "unsigned int":
        r"""GetOrientation(OEMultiPageImageFile self) -> unsigned int"""
        return _oedepict.OEMultiPageImageFile_GetOrientation(self)

# Register OEMultiPageImageFile in _oedepict:
_oedepict.OEMultiPageImageFile_swigregister(OEMultiPageImageFile)


def OEWriteMultiPageImage(*args) -> "bool":
    r"""
    OEWriteMultiPageImage(std::string const & filename, OEMultiPageImageFile image) -> bool
    OEWriteMultiPageImage(oeostream os, std::string const & extension, OEMultiPageImageFile image) -> bool
    """
    return _oedepict.OEWriteMultiPageImage(*args)

def OEConfigureMultiPageParams(*args) -> "bool":
    r"""OEConfigureMultiPageParams(OEInterface itf, unsigned int config=) -> bool"""
    return _oedepict.OEConfigureMultiPageParams(*args)

def OEGetMultiPageSize(*args) -> "unsigned int":
    r"""OEGetMultiPageSize(OEInterface itf, std::string name=) -> unsigned int"""
    return _oedepict.OEGetMultiPageSize(*args)

def OEGetMultiPageOrientation(*args) -> "unsigned int":
    r"""OEGetMultiPageOrientation(OEInterface itf, std::string name=) -> unsigned int"""
    return _oedepict.OEGetMultiPageOrientation(*args)

def OEConfigureMultiPageSize(*args) -> "bool":
    r"""OEConfigureMultiPageSize(OEInterface itf, std::string name=, std::string alias="-psize") -> bool"""
    return _oedepict.OEConfigureMultiPageSize(*args)

def OEConfigureMultiPageOrientation(*args) -> "bool":
    r"""OEConfigureMultiPageOrientation(OEInterface itf, std::string name=, std::string alias="-pori") -> bool"""
    return _oedepict.OEConfigureMultiPageOrientation(*args)
class OEReport(object):
    r"""Proxy of C++ OEDepict::OEReport 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__(OEReport self, unsigned int rowsperpage, unsigned int colsperpage) -> OEReport
        __init__(OEReport self, OEReportOptions opts) -> OEReport
        """
        _oedepict.OEReport_swiginit(self, _oedepict.new_OEReport(*args))
    __swig_destroy__ = _oedepict.delete_OEReport

    def NumRowsPerPage(self) -> "unsigned int":
        r"""NumRowsPerPage(OEReport self) -> unsigned int"""
        return _oedepict.OEReport_NumRowsPerPage(self)

    def NumColsPerPage(self) -> "unsigned int":
        r"""NumColsPerPage(OEReport self) -> unsigned int"""
        return _oedepict.OEReport_NumColsPerPage(self)

    def GetPageWidth(self) -> "double":
        r"""GetPageWidth(OEReport self) -> double"""
        return _oedepict.OEReport_GetPageWidth(self)

    def GetPageHeight(self) -> "double":
        r"""GetPageHeight(OEReport self) -> double"""
        return _oedepict.OEReport_GetPageHeight(self)

    def GetCellWidth(self) -> "double":
        r"""GetCellWidth(OEReport self) -> double"""
        return _oedepict.OEReport_GetCellWidth(self)

    def GetCellHeight(self) -> "double":
        r"""GetCellHeight(OEReport self) -> double"""
        return _oedepict.OEReport_GetCellHeight(self)

    def GetHeaderHeight(self) -> "double":
        r"""GetHeaderHeight(OEReport self) -> double"""
        return _oedepict.OEReport_GetHeaderHeight(self)

    def GetHeaderWidth(self) -> "double":
        r"""GetHeaderWidth(OEReport self) -> double"""
        return _oedepict.OEReport_GetHeaderWidth(self)

    def GetFooterHeight(self) -> "double":
        r"""GetFooterHeight(OEReport self) -> double"""
        return _oedepict.OEReport_GetFooterHeight(self)

    def GetFooterWidth(self) -> "double":
        r"""GetFooterWidth(OEReport self) -> double"""
        return _oedepict.OEReport_GetFooterWidth(self)

    def NewBody(self) -> "OEDepict::OEImageBase *":
        r"""NewBody(OEReport self) -> OEImageBase"""
        return _oedepict.OEReport_NewBody(self)

    def NewCell(self) -> "OEDepict::OEImageBase *":
        r"""NewCell(OEReport self) -> OEImageBase"""
        return _oedepict.OEReport_NewCell(self)

    def NumPages(self) -> "unsigned int":
        r"""NumPages(OEReport self) -> unsigned int"""
        return _oedepict.OEReport_NumPages(self)

    def NumBodyPages(self) -> "unsigned int":
        r"""NumBodyPages(OEReport self) -> unsigned int"""
        return _oedepict.OEReport_NumBodyPages(self)

    def NumGridPages(self) -> "unsigned int":
        r"""NumGridPages(OEReport self) -> unsigned int"""
        return _oedepict.OEReport_NumGridPages(self)

    def IsBodyPage(self, page: "unsigned int") -> "bool":
        r"""IsBodyPage(OEReport self, unsigned int page) -> bool"""
        return _oedepict.OEReport_IsBodyPage(self, page)

    def IsGridPage(self, page: "unsigned int") -> "bool":
        r"""IsGridPage(OEReport self, unsigned int page) -> bool"""
        return _oedepict.OEReport_IsGridPage(self, page)

    def GetPage(self, page: "unsigned int") -> "OEDepict::OEImageBase *":
        r"""GetPage(OEReport self, unsigned int page) -> OEImageBase"""
        return _oedepict.OEReport_GetPage(self, page)

    def GetPages(self) -> "OESystem::OEIterBase< OEDepict::OEImageBase > *":
        r"""GetPages(OEReport self) -> OESystem::OEIterBase< OEDepict::OEImageBase > *"""
        return _oedepict.OEReport_GetPages(self)

    def GetBody(self, page: "unsigned int") -> "OEDepict::OEImageBase *":
        r"""GetBody(OEReport self, unsigned int page) -> OEImageBase"""
        return _oedepict.OEReport_GetBody(self, page)

    def GetBodies(self) -> "OESystem::OEIterBase< OEDepict::OEImageBase > *":
        r"""GetBodies(OEReport self) -> OESystem::OEIterBase< OEDepict::OEImageBase > *"""
        return _oedepict.OEReport_GetBodies(self)

    def GetCell(self, page: "unsigned int", row: "unsigned int", col: "unsigned int") -> "OEDepict::OEImageBase *":
        r"""GetCell(OEReport self, unsigned int page, unsigned int row, unsigned int col) -> OEImageBase"""
        return _oedepict.OEReport_GetCell(self, page, row, col)

    def GetCells(self, page: "unsigned int"=0, row: "unsigned int"=0, col: "unsigned int"=0) -> "OESystem::OEIterBase< OEDepict::OEImageBase > *":
        r"""GetCells(OEReport self, unsigned int page=0, unsigned int row=0, unsigned int col=0) -> OESystem::OEIterBase< OEDepict::OEImageBase >"""
        return _oedepict.OEReport_GetCells(self, page, row, col)

    def GetHeader(self, page: "unsigned int") -> "OEDepict::OEImageBase *":
        r"""GetHeader(OEReport self, unsigned int page) -> OEImageBase"""
        return _oedepict.OEReport_GetHeader(self, page)

    def GetHeaders(self) -> "OESystem::OEIterBase< OEDepict::OEImageBase > *":
        r"""GetHeaders(OEReport self) -> OESystem::OEIterBase< OEDepict::OEImageBase > *"""
        return _oedepict.OEReport_GetHeaders(self)

    def GetFooter(self, page: "unsigned int") -> "OEDepict::OEImageBase *":
        r"""GetFooter(OEReport self, unsigned int page) -> OEImageBase"""
        return _oedepict.OEReport_GetFooter(self, page)

    def GetFooters(self) -> "OESystem::OEIterBase< OEDepict::OEImageBase > *":
        r"""GetFooters(OEReport self) -> OESystem::OEIterBase< OEDepict::OEImageBase > *"""
        return _oedepict.OEReport_GetFooters(self)

    def GetOptions(self) -> "OEDepict::OEReportOptions const &":
        r"""GetOptions(OEReport self) -> OEReportOptions"""
        return _oedepict.OEReport_GetOptions(self)

# Register OEReport in _oedepict:
_oedepict.OEReport_swigregister(OEReport)


def PyOEWriteReportToString(extension: "char const *", report: "OEReport", page: "unsigned int") -> "PyObject *":
    r"""PyOEWriteReportToString(char const * extension, OEReport report, unsigned int page) -> PyObject *"""
    return _oedepict.PyOEWriteReportToString(extension, report, page)

def OEWriteReportToString(extension: "char const *", report: "OEReport", page: "unsigned int"=0) -> "PyObject *":
    r"""OEWriteReportToString(char const * extension, OEReport report, unsigned int page=0) -> PyObject"""
    return _oedepict.OEWriteReportToString(extension, report, page)

def OEWriteReportToBytes(extension: "char const *", report: "OEReport", page: "unsigned int"=0) -> "PyObject *":
    r"""OEWriteReportToBytes(char const * extension, OEReport report, unsigned int page=0) -> PyObject"""
    return _oedepict.OEWriteReportToBytes(extension, report, page)

def OEWriteReport(*args) -> "bool":
    r"""
    OEWriteReport(std::string const & filename, OEReport report, unsigned int page=0) -> bool
    OEWriteReport(oeostream os, std::string const & extension, OEReport report, unsigned int page=0) -> bool
    """
    return _oedepict.OEWriteReport(*args)

def OEWriteReportPageByPage(filename: "std::string const &", report: "OEReport") -> "bool":
    r"""OEWriteReportPageByPage(std::string const & filename, OEReport report) -> bool"""
    return _oedepict.OEWriteReportPageByPage(filename, report)
class OEReportOptions(object):
    r"""Proxy of C++ OEDepict::OEReportOptions 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__(OEReportOptions self, unsigned int rowsperpage=3, unsigned int colsperpage=2) -> OEReportOptions
        __init__(OEReportOptions self, OEReportOptions rhs) -> OEReportOptions
        """
        _oedepict.OEReportOptions_swiginit(self, _oedepict.new_OEReportOptions(*args))
    __swig_destroy__ = _oedepict.delete_OEReportOptions

    def NumRowsPerPage(self) -> "unsigned int":
        r"""NumRowsPerPage(OEReportOptions self) -> unsigned int"""
        return _oedepict.OEReportOptions_NumRowsPerPage(self)

    def NumColsPerPage(self) -> "unsigned int":
        r"""NumColsPerPage(OEReportOptions self) -> unsigned int"""
        return _oedepict.OEReportOptions_NumColsPerPage(self)

    def SetPageWidth(self, width: "double") -> "void":
        r"""SetPageWidth(OEReportOptions self, double width)"""
        return _oedepict.OEReportOptions_SetPageWidth(self, width)

    def SetPageHeight(self, height: "double") -> "void":
        r"""SetPageHeight(OEReportOptions self, double height)"""
        return _oedepict.OEReportOptions_SetPageHeight(self, height)

    def SetPageOrientation(self, orientation: "unsigned int") -> "void":
        r"""SetPageOrientation(OEReportOptions self, unsigned int orientation)"""
        return _oedepict.OEReportOptions_SetPageOrientation(self, orientation)

    def SetPageSize(self, pagesize: "unsigned int") -> "void":
        r"""SetPageSize(OEReportOptions self, unsigned int pagesize)"""
        return _oedepict.OEReportOptions_SetPageSize(self, pagesize)

    def GetPageWidth(self) -> "double":
        r"""GetPageWidth(OEReportOptions self) -> double"""
        return _oedepict.OEReportOptions_GetPageWidth(self)

    def GetPageHeight(self) -> "double":
        r"""GetPageHeight(OEReportOptions self) -> double"""
        return _oedepict.OEReportOptions_GetPageHeight(self)

    def GetCellWidth(self) -> "double":
        r"""GetCellWidth(OEReportOptions self) -> double"""
        return _oedepict.OEReportOptions_GetCellWidth(self)

    def GetCellHeight(self) -> "double":
        r"""GetCellHeight(OEReportOptions self) -> double"""
        return _oedepict.OEReportOptions_GetCellHeight(self)

    def SetPageMargin(self, margin: "unsigned int", size: "double") -> "void":
        r"""SetPageMargin(OEReportOptions self, unsigned int margin, double size)"""
        return _oedepict.OEReportOptions_SetPageMargin(self, margin, size)

    def SetPageMargins(self, size: "double") -> "void":
        r"""SetPageMargins(OEReportOptions self, double size)"""
        return _oedepict.OEReportOptions_SetPageMargins(self, size)

    def GetPageMargin(self, margin: "unsigned int") -> "double":
        r"""GetPageMargin(OEReportOptions self, unsigned int margin) -> double"""
        return _oedepict.OEReportOptions_GetPageMargin(self, margin)

    def SetCellGap(self, size: "double") -> "void":
        r"""SetCellGap(OEReportOptions self, double size)"""
        return _oedepict.OEReportOptions_SetCellGap(self, size)

    def GetCellGap(self) -> "double":
        r"""GetCellGap(OEReportOptions self) -> double"""
        return _oedepict.OEReportOptions_GetCellGap(self)

    def SetHeaderHeight(self, height: "double") -> "void":
        r"""SetHeaderHeight(OEReportOptions self, double height)"""
        return _oedepict.OEReportOptions_SetHeaderHeight(self, height)

    def GetHeaderWidth(self) -> "double":
        r"""GetHeaderWidth(OEReportOptions self) -> double"""
        return _oedepict.OEReportOptions_GetHeaderWidth(self)

    def GetHeaderHeight(self) -> "double":
        r"""GetHeaderHeight(OEReportOptions self) -> double"""
        return _oedepict.OEReportOptions_GetHeaderHeight(self)

    def SetFooterHeight(self, height: "double") -> "void":
        r"""SetFooterHeight(OEReportOptions self, double height)"""
        return _oedepict.OEReportOptions_SetFooterHeight(self, height)

    def GetFooterWidth(self) -> "double":
        r"""GetFooterWidth(OEReportOptions self) -> double"""
        return _oedepict.OEReportOptions_GetFooterWidth(self)

    def GetFooterHeight(self) -> "double":
        r"""GetFooterHeight(OEReportOptions self) -> double"""
        return _oedepict.OEReportOptions_GetFooterHeight(self)

    def GetImpl(self, *args) -> "OEDepict::OEReportOptionsImpl const *":
        r"""
        GetImpl(OEReportOptions self) -> OEDepict::OEReportOptionsImpl
        GetImpl(OEReportOptions self) -> OEDepict::OEReportOptionsImpl const *
        """
        return _oedepict.OEReportOptions_GetImpl(self, *args)

# Register OEReportOptions in _oedepict:
_oedepict.OEReportOptions_swigregister(OEReportOptions)


def OEConfigureReportOptions(*args) -> "bool":
    r"""OEConfigureReportOptions(OEInterface itf, unsigned int config=) -> bool"""
    return _oedepict.OEConfigureReportOptions(*args)

def OESetupReportOptions(opts: "OEReportOptions", itf: "OEInterface") -> "bool":
    r"""OESetupReportOptions(OEReportOptions opts, OEInterface itf) -> bool"""
    return _oedepict.OESetupReportOptions(opts, itf)

def OEAnnotateDepictionProblems(disp: "OE2DMolDisplay") -> "bool":
    r"""OEAnnotateDepictionProblems(OE2DMolDisplay disp) -> bool"""
    return _oedepict.OEAnnotateDepictionProblems(disp)

def OEAnnotateValenceProblems(disp: "OE2DMolDisplay") -> "bool":
    r"""OEAnnotateValenceProblems(OE2DMolDisplay disp) -> bool"""
    return _oedepict.OEAnnotateValenceProblems(disp)

def OEDrawSVGHoverText(*args) -> "bool":
    r"""
    OEDrawSVGHoverText(OE2DMolDisplay arg1, OE2DAtomDisplay arg2, std::string const & text, OEFont font) -> bool
    OEDrawSVGHoverText(OE2DMolDisplay arg1, OE2DBondDisplay arg2, std::string const & text, OEFont font) -> bool
    """
    return _oedepict.OEDrawSVGHoverText(*args)

def OEDrawSVGToggleText(*args) -> "bool":
    r"""
    OEDrawSVGToggleText(OE2DMolDisplay arg1, OE2DAtomDisplay arg2, std::string const & text, OEFont font) -> bool
    OEDrawSVGToggleText(OE2DMolDisplay arg1, OE2DBondDisplay arg2, std::string const & text, OEFont font) -> bool
    """
    return _oedepict.OEDrawSVGToggleText(*args)

def OEAddSVGClickEvent(*args) -> "bool":
    r"""
    OEAddSVGClickEvent(OE2DMolDisplay arg1, OE2DAtomDisplay arg2, std::string const & message) -> bool
    OEAddSVGClickEvent(OE2DMolDisplay arg1, OE2DBondDisplay arg2, std::string const & message) -> bool
    OEAddSVGClickEvent(OESVGGroup svggroup, std::string const & message) -> bool
    """
    return _oedepict.OEAddSVGClickEvent(*args)

def OEWrite2DRingDictionaryReport(*args) -> "bool":
    r"""
    OEWrite2DRingDictionaryReport(std::string const & filename, OE2DRingDictionary rtd, OEReportOptions opts) -> bool
    OEWrite2DRingDictionaryReport(oeostream os, std::string const & extension, OE2DRingDictionary rtd, OEReportOptions opts) -> bool
    """
    return _oedepict.OEWrite2DRingDictionaryReport(*args)

def OEDepictCoordinates(mol: "OEMolBase") -> "bool":
    r"""OEDepictCoordinates(OEMolBase mol) -> bool"""
    return _oedepict.OEDepictCoordinates(mol)

def OEHasDepictionHydrogens(arg1: "OEAtomBase") -> "bool":
    r"""OEHasDepictionHydrogens(OEAtomBase arg1) -> bool"""
    return _oedepict.OEHasDepictionHydrogens(arg1)

def OEAddDepictionHydrogens(mol: "OEMolBase") -> "bool":
    r"""OEAddDepictionHydrogens(OEMolBase mol) -> bool"""
    return _oedepict.OEAddDepictionHydrogens(mol)

def OEDepictSmilesAtomCount(buffer: "char const *") -> "unsigned int":
    r"""OEDepictSmilesAtomCount(char const * buffer) -> unsigned int"""
    return _oedepict.OEDepictSmilesAtomCount(buffer)

def OEDepictFixedCoordinates(*args) -> "bool":
    r"""
    OEDepictFixedCoordinates(OEMolBase mol, unsigned char * fixed) -> bool
    OEDepictFixedCoordinates(OEMolBase mol, PyObject * input) -> bool
    """
    return _oedepict.OEDepictFixedCoordinates(*args)
OE_OEDEPICT_VERSION = _oedepict.OE_OEDEPICT_VERSION


def OEDepictGetRelease() -> "char const *":
    r"""OEDepictGetRelease() -> char const *"""
    return _oedepict.OEDepictGetRelease()

def OEDepictGetVersion() -> "unsigned int":
    r"""OEDepictGetVersion() -> unsigned int"""
    return _oedepict.OEDepictGetVersion()

def OEDepictGetArch() -> "char const *":
    r"""OEDepictGetArch() -> char const *"""
    return _oedepict.OEDepictGetArch()

def OEDepictGetPlatform() -> "char const *":
    r"""OEDepictGetPlatform() -> char const *"""
    return _oedepict.OEDepictGetPlatform()

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

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

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


