# This file was automatically generated by SWIG (http://www.swig.org).
# Version 3.0.12
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

from sys import version_info as _swig_python_version_info
if _swig_python_version_info >= (2, 7, 0):
    def swig_import_helper():
        import importlib
        pkg = __name__.rpartition('.')[0]
        mname = '.'.join((pkg, '_mapscript')).lstrip('.')
        try:
            return importlib.import_module(mname)
        except ImportError:
            return importlib.import_module('_mapscript')
    _mapscript = swig_import_helper()
    del swig_import_helper
elif _swig_python_version_info >= (2, 6, 0):
    def swig_import_helper():
        from os.path import dirname
        import imp
        fp = None
        try:
            fp, pathname, description = imp.find_module('_mapscript', [dirname(__file__)])
        except ImportError:
            import _mapscript
            return _mapscript
        try:
            _mod = imp.load_module('_mapscript', fp, pathname, description)
        finally:
            if fp is not None:
                fp.close()
        return _mod
    _mapscript = swig_import_helper()
    del swig_import_helper
else:
    import _mapscript
del _swig_python_version_info

try:
    _swig_property = property
except NameError:
    pass  # Python < 2.2 doesn't have 'property'.

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_setattr_nondynamic(self, class_type, name, value, static=1):
    if (name == "thisown"):
        return self.this.own(value)
    if (name == "this"):
        if type(value).__name__ == 'SwigPyObject':
            self.__dict__[name] = value
            return
    method = class_type.__swig_setmethods__.get(name, None)
    if method:
        return method(self, value)
    if (not static):
        if _newclass:
            object.__setattr__(self, name, value)
        else:
            self.__dict__[name] = value
    else:
        raise AttributeError("You cannot add attributes to %s" % self)


def _swig_setattr(self, class_type, name, value):
    return _swig_setattr_nondynamic(self, class_type, name, value, 0)


def _swig_getattr(self, class_type, name):
    if (name == "thisown"):
        return self.this.own()
    method = class_type.__swig_getmethods__.get(name, None)
    if method:
        return method(self)
    raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name))


def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)

try:
    _object = object
    _newclass = 1
except __builtin__.Exception:
    class _object:
        pass
    _newclass = 0

class intarray(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, intarray, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, intarray, name)
    __repr__ = _swig_repr

    def __init__(self, nelements: 'size_t'):
        this = _mapscript.new_intarray(nelements)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_intarray
    __del__ = lambda self: None

    def __getitem__(self, index: 'size_t') -> "int":
        return _mapscript.intarray___getitem__(self, index)

    def __setitem__(self, index: 'size_t', value: 'int') -> "void":
        return _mapscript.intarray___setitem__(self, index, value)

    def cast(self) -> "int *":
        return _mapscript.intarray_cast(self)
    if _newclass:
        frompointer = staticmethod(_mapscript.intarray_frompointer)
    else:
        frompointer = _mapscript.intarray_frompointer
intarray_swigregister = _mapscript.intarray_swigregister
intarray_swigregister(intarray)

def intarray_frompointer(t: 'int *') -> "intarray *":
    return _mapscript.intarray_frompointer(t)
intarray_frompointer = _mapscript.intarray_frompointer


MapServerError = _mapscript.MapServerError
MapServerChildError = _mapscript.MapServerChildError

MS_TRUE = _mapscript.MS_TRUE
MS_FALSE = _mapscript.MS_FALSE
MS_UNKNOWN = _mapscript.MS_UNKNOWN
MS_ON = _mapscript.MS_ON
MS_OFF = _mapscript.MS_OFF
MS_DEFAULT = _mapscript.MS_DEFAULT
MS_EMBED = _mapscript.MS_EMBED
MS_DELETE = _mapscript.MS_DELETE
MS_YES = _mapscript.MS_YES
MS_NO = _mapscript.MS_NO
MS_LAYER_ALLOCSIZE = _mapscript.MS_LAYER_ALLOCSIZE
MS_CLASS_ALLOCSIZE = _mapscript.MS_CLASS_ALLOCSIZE
MS_STYLE_ALLOCSIZE = _mapscript.MS_STYLE_ALLOCSIZE
MS_LABEL_ALLOCSIZE = _mapscript.MS_LABEL_ALLOCSIZE
MS_MAX_LABEL_PRIORITY = _mapscript.MS_MAX_LABEL_PRIORITY
MS_MAX_LABEL_FONTS = _mapscript.MS_MAX_LABEL_FONTS
MS_DEFAULT_LABEL_PRIORITY = _mapscript.MS_DEFAULT_LABEL_PRIORITY
MS_LABEL_FORCE_GROUP = _mapscript.MS_LABEL_FORCE_GROUP
MS_RENDER_WITH_SWF = _mapscript.MS_RENDER_WITH_SWF
MS_RENDER_WITH_RAWDATA = _mapscript.MS_RENDER_WITH_RAWDATA
MS_RENDER_WITH_IMAGEMAP = _mapscript.MS_RENDER_WITH_IMAGEMAP
MS_RENDER_WITH_TEMPLATE = _mapscript.MS_RENDER_WITH_TEMPLATE
MS_RENDER_WITH_OGR = _mapscript.MS_RENDER_WITH_OGR
MS_RENDER_WITH_PLUGIN = _mapscript.MS_RENDER_WITH_PLUGIN
MS_RENDER_WITH_CAIRO_RASTER = _mapscript.MS_RENDER_WITH_CAIRO_RASTER
MS_RENDER_WITH_CAIRO_PDF = _mapscript.MS_RENDER_WITH_CAIRO_PDF
MS_RENDER_WITH_CAIRO_SVG = _mapscript.MS_RENDER_WITH_CAIRO_SVG
MS_RENDER_WITH_OGL = _mapscript.MS_RENDER_WITH_OGL
MS_RENDER_WITH_AGG = _mapscript.MS_RENDER_WITH_AGG
MS_RENDER_WITH_KML = _mapscript.MS_RENDER_WITH_KML
MS_RENDER_WITH_UTFGRID = _mapscript.MS_RENDER_WITH_UTFGRID
MS_RENDER_WITH_MVT = _mapscript.MS_RENDER_WITH_MVT
MS_FILE_MAP = _mapscript.MS_FILE_MAP
MS_FILE_SYMBOL = _mapscript.MS_FILE_SYMBOL
MS_INCHES = _mapscript.MS_INCHES
MS_FEET = _mapscript.MS_FEET
MS_MILES = _mapscript.MS_MILES
MS_METERS = _mapscript.MS_METERS
MS_KILOMETERS = _mapscript.MS_KILOMETERS
MS_DD = _mapscript.MS_DD
MS_PIXELS = _mapscript.MS_PIXELS
MS_PERCENTAGES = _mapscript.MS_PERCENTAGES
MS_NAUTICALMILES = _mapscript.MS_NAUTICALMILES
MS_SHAPE_POINT = _mapscript.MS_SHAPE_POINT
MS_SHAPE_LINE = _mapscript.MS_SHAPE_LINE
MS_SHAPE_POLYGON = _mapscript.MS_SHAPE_POLYGON
MS_SHAPE_NULL = _mapscript.MS_SHAPE_NULL
MS_LAYER_POINT = _mapscript.MS_LAYER_POINT
MS_LAYER_LINE = _mapscript.MS_LAYER_LINE
MS_LAYER_POLYGON = _mapscript.MS_LAYER_POLYGON
MS_LAYER_RASTER = _mapscript.MS_LAYER_RASTER
MS_LAYER_ANNOTATION = _mapscript.MS_LAYER_ANNOTATION
MS_LAYER_QUERY = _mapscript.MS_LAYER_QUERY
MS_LAYER_CIRCLE = _mapscript.MS_LAYER_CIRCLE
MS_LAYER_TILEINDEX = _mapscript.MS_LAYER_TILEINDEX
MS_LAYER_CHART = _mapscript.MS_LAYER_CHART
MS_TRUETYPE = _mapscript.MS_TRUETYPE
MS_BITMAP = _mapscript.MS_BITMAP
MS_POSITIONS_LENGTH = _mapscript.MS_POSITIONS_LENGTH
MS_UL = _mapscript.MS_UL
MS_LR = _mapscript.MS_LR
MS_UR = _mapscript.MS_UR
MS_LL = _mapscript.MS_LL
MS_CR = _mapscript.MS_CR
MS_CL = _mapscript.MS_CL
MS_UC = _mapscript.MS_UC
MS_LC = _mapscript.MS_LC
MS_CC = _mapscript.MS_CC
MS_AUTO = _mapscript.MS_AUTO
MS_XY = _mapscript.MS_XY
MS_NONE = _mapscript.MS_NONE
MS_AUTO2 = _mapscript.MS_AUTO2
MS_FOLLOW = _mapscript.MS_FOLLOW
MS_TINY = _mapscript.MS_TINY
MS_SMALL = _mapscript.MS_SMALL
MS_MEDIUM = _mapscript.MS_MEDIUM
MS_LARGE = _mapscript.MS_LARGE
MS_GIANT = _mapscript.MS_GIANT
MS_NORMAL = _mapscript.MS_NORMAL
MS_HILITE = _mapscript.MS_HILITE
MS_SELECTED = _mapscript.MS_SELECTED
MS_INLINE = _mapscript.MS_INLINE
MS_SHAPEFILE = _mapscript.MS_SHAPEFILE
MS_TILED_SHAPEFILE = _mapscript.MS_TILED_SHAPEFILE
MS_UNUSED_2 = _mapscript.MS_UNUSED_2
MS_OGR = _mapscript.MS_OGR
MS_UNUSED_1 = _mapscript.MS_UNUSED_1
MS_POSTGIS = _mapscript.MS_POSTGIS
MS_WMS = _mapscript.MS_WMS
MS_ORACLESPATIAL = _mapscript.MS_ORACLESPATIAL
MS_WFS = _mapscript.MS_WFS
MS_GRATICULE = _mapscript.MS_GRATICULE
MS_MYSQL = _mapscript.MS_MYSQL
MS_RASTER = _mapscript.MS_RASTER
MS_PLUGIN = _mapscript.MS_PLUGIN
MS_UNION = _mapscript.MS_UNION
MS_UVRASTER = _mapscript.MS_UVRASTER
MS_CONTOUR = _mapscript.MS_CONTOUR
MS_KERNELDENSITY = _mapscript.MS_KERNELDENSITY
MS_DB_XBASE = _mapscript.MS_DB_XBASE
MS_DB_CSV = _mapscript.MS_DB_CSV
MS_DB_MYSQL = _mapscript.MS_DB_MYSQL
MS_DB_ORACLE = _mapscript.MS_DB_ORACLE
MS_DB_POSTGRES = _mapscript.MS_DB_POSTGRES
MS_JOIN_ONE_TO_ONE = _mapscript.MS_JOIN_ONE_TO_ONE
MS_JOIN_ONE_TO_MANY = _mapscript.MS_JOIN_ONE_TO_MANY
MS_SINGLE = _mapscript.MS_SINGLE
MS_MULTIPLE = _mapscript.MS_MULTIPLE
MS_QUERY_SINGLE = _mapscript.MS_QUERY_SINGLE
MS_QUERY_MULTIPLE = _mapscript.MS_QUERY_MULTIPLE
MS_QUERY_IS_NULL = _mapscript.MS_QUERY_IS_NULL
MS_QUERY_BY_POINT = _mapscript.MS_QUERY_BY_POINT
MS_QUERY_BY_RECT = _mapscript.MS_QUERY_BY_RECT
MS_QUERY_BY_SHAPE = _mapscript.MS_QUERY_BY_SHAPE
MS_QUERY_BY_ATTRIBUTE = _mapscript.MS_QUERY_BY_ATTRIBUTE
MS_QUERY_BY_INDEX = _mapscript.MS_QUERY_BY_INDEX
MS_QUERY_BY_FILTER = _mapscript.MS_QUERY_BY_FILTER
MS_ALIGN_DEFAULT = _mapscript.MS_ALIGN_DEFAULT
MS_ALIGN_LEFT = _mapscript.MS_ALIGN_LEFT
MS_ALIGN_CENTER = _mapscript.MS_ALIGN_CENTER
MS_ALIGN_RIGHT = _mapscript.MS_ALIGN_RIGHT
MS_CJC_NONE = _mapscript.MS_CJC_NONE
MS_CJC_BEVEL = _mapscript.MS_CJC_BEVEL
MS_CJC_BUTT = _mapscript.MS_CJC_BUTT
MS_CJC_MITER = _mapscript.MS_CJC_MITER
MS_CJC_ROUND = _mapscript.MS_CJC_ROUND
MS_CJC_SQUARE = _mapscript.MS_CJC_SQUARE
MS_CJC_TRIANGLE = _mapscript.MS_CJC_TRIANGLE
MS_CJC_DEFAULT_JOIN_MAXSIZE = _mapscript.MS_CJC_DEFAULT_JOIN_MAXSIZE
MS_SUCCESS = _mapscript.MS_SUCCESS
MS_FAILURE = _mapscript.MS_FAILURE
MS_DONE = _mapscript.MS_DONE
MS_IMAGEMODE_PC256 = _mapscript.MS_IMAGEMODE_PC256
MS_IMAGEMODE_RGB = _mapscript.MS_IMAGEMODE_RGB
MS_IMAGEMODE_RGBA = _mapscript.MS_IMAGEMODE_RGBA
MS_IMAGEMODE_INT16 = _mapscript.MS_IMAGEMODE_INT16
MS_IMAGEMODE_FLOAT32 = _mapscript.MS_IMAGEMODE_FLOAT32
MS_IMAGEMODE_BYTE = _mapscript.MS_IMAGEMODE_BYTE
MS_IMAGEMODE_FEATURE = _mapscript.MS_IMAGEMODE_FEATURE
MS_IMAGEMODE_NULL = _mapscript.MS_IMAGEMODE_NULL
MS_GEOS_EQUALS = _mapscript.MS_GEOS_EQUALS
MS_GEOS_DISJOINT = _mapscript.MS_GEOS_DISJOINT
MS_GEOS_TOUCHES = _mapscript.MS_GEOS_TOUCHES
MS_GEOS_OVERLAPS = _mapscript.MS_GEOS_OVERLAPS
MS_GEOS_CROSSES = _mapscript.MS_GEOS_CROSSES
MS_GEOS_INTERSECTS = _mapscript.MS_GEOS_INTERSECTS
MS_GEOS_WITHIN = _mapscript.MS_GEOS_WITHIN
MS_GEOS_CONTAINS = _mapscript.MS_GEOS_CONTAINS
MS_GEOS_BEYOND = _mapscript.MS_GEOS_BEYOND
MS_GEOS_DWITHIN = _mapscript.MS_GEOS_DWITHIN
MS_TRANSFORM_NONE = _mapscript.MS_TRANSFORM_NONE
MS_TRANSFORM_ROUND = _mapscript.MS_TRANSFORM_ROUND
MS_TRANSFORM_SNAPTOGRID = _mapscript.MS_TRANSFORM_SNAPTOGRID
MS_TRANSFORM_FULLRESOLUTION = _mapscript.MS_TRANSFORM_FULLRESOLUTION
MS_TRANSFORM_SIMPLIFY = _mapscript.MS_TRANSFORM_SIMPLIFY
MS_COMPOP_CLEAR = _mapscript.MS_COMPOP_CLEAR
MS_COMPOP_SRC = _mapscript.MS_COMPOP_SRC
MS_COMPOP_DST = _mapscript.MS_COMPOP_DST
MS_COMPOP_SRC_OVER = _mapscript.MS_COMPOP_SRC_OVER
MS_COMPOP_DST_OVER = _mapscript.MS_COMPOP_DST_OVER
MS_COMPOP_SRC_IN = _mapscript.MS_COMPOP_SRC_IN
MS_COMPOP_DST_IN = _mapscript.MS_COMPOP_DST_IN
MS_COMPOP_SRC_OUT = _mapscript.MS_COMPOP_SRC_OUT
MS_COMPOP_DST_OUT = _mapscript.MS_COMPOP_DST_OUT
MS_COMPOP_SRC_ATOP = _mapscript.MS_COMPOP_SRC_ATOP
MS_COMPOP_DST_ATOP = _mapscript.MS_COMPOP_DST_ATOP
MS_COMPOP_XOR = _mapscript.MS_COMPOP_XOR
MS_COMPOP_PLUS = _mapscript.MS_COMPOP_PLUS
MS_COMPOP_MINUS = _mapscript.MS_COMPOP_MINUS
MS_COMPOP_MULTIPLY = _mapscript.MS_COMPOP_MULTIPLY
MS_COMPOP_SCREEN = _mapscript.MS_COMPOP_SCREEN
MS_COMPOP_OVERLAY = _mapscript.MS_COMPOP_OVERLAY
MS_COMPOP_DARKEN = _mapscript.MS_COMPOP_DARKEN
MS_COMPOP_LIGHTEN = _mapscript.MS_COMPOP_LIGHTEN
MS_COMPOP_COLOR_DODGE = _mapscript.MS_COMPOP_COLOR_DODGE
MS_COMPOP_COLOR_BURN = _mapscript.MS_COMPOP_COLOR_BURN
MS_COMPOP_HARD_LIGHT = _mapscript.MS_COMPOP_HARD_LIGHT
MS_COMPOP_SOFT_LIGHT = _mapscript.MS_COMPOP_SOFT_LIGHT
MS_COMPOP_DIFFERENCE = _mapscript.MS_COMPOP_DIFFERENCE
MS_COMPOP_EXCLUSION = _mapscript.MS_COMPOP_EXCLUSION
MS_COMPOP_CONTRAST = _mapscript.MS_COMPOP_CONTRAST
MS_COMPOP_INVERT = _mapscript.MS_COMPOP_INVERT
MS_COMPOP_INVERT_RGB = _mapscript.MS_COMPOP_INVERT_RGB
class CompositingFilter(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, CompositingFilter, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, CompositingFilter, name)
    __repr__ = _swig_repr
    __swig_setmethods__["filter"] = _mapscript.CompositingFilter_filter_set
    __swig_getmethods__["filter"] = _mapscript.CompositingFilter_filter_get
    if _newclass:
        filter = _swig_property(_mapscript.CompositingFilter_filter_get, _mapscript.CompositingFilter_filter_set)
    __swig_setmethods__["next"] = _mapscript.CompositingFilter_next_set
    __swig_getmethods__["next"] = _mapscript.CompositingFilter_next_get
    if _newclass:
        next = _swig_property(_mapscript.CompositingFilter_next_get, _mapscript.CompositingFilter_next_set)

    def __init__(self):
        this = _mapscript.new_CompositingFilter()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_CompositingFilter
    __del__ = lambda self: None
CompositingFilter_swigregister = _mapscript.CompositingFilter_swigregister
CompositingFilter_swigregister(CompositingFilter)

class LayerCompositer(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, LayerCompositer, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, LayerCompositer, name)
    __repr__ = _swig_repr
    __swig_setmethods__["comp_op"] = _mapscript.LayerCompositer_comp_op_set
    __swig_getmethods__["comp_op"] = _mapscript.LayerCompositer_comp_op_get
    if _newclass:
        comp_op = _swig_property(_mapscript.LayerCompositer_comp_op_get, _mapscript.LayerCompositer_comp_op_set)
    __swig_setmethods__["opacity"] = _mapscript.LayerCompositer_opacity_set
    __swig_getmethods__["opacity"] = _mapscript.LayerCompositer_opacity_get
    if _newclass:
        opacity = _swig_property(_mapscript.LayerCompositer_opacity_get, _mapscript.LayerCompositer_opacity_set)
    __swig_setmethods__["filter"] = _mapscript.LayerCompositer_filter_set
    __swig_getmethods__["filter"] = _mapscript.LayerCompositer_filter_get
    if _newclass:
        filter = _swig_property(_mapscript.LayerCompositer_filter_get, _mapscript.LayerCompositer_filter_set)
    __swig_setmethods__["next"] = _mapscript.LayerCompositer_next_set
    __swig_getmethods__["next"] = _mapscript.LayerCompositer_next_get
    if _newclass:
        next = _swig_property(_mapscript.LayerCompositer_next_get, _mapscript.LayerCompositer_next_set)

    def __init__(self):
        this = _mapscript.new_LayerCompositer()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_LayerCompositer
    __del__ = lambda self: None
LayerCompositer_swigregister = _mapscript.LayerCompositer_swigregister
LayerCompositer_swigregister(LayerCompositer)

MS_STYLE_BINDING_LENGTH = _mapscript.MS_STYLE_BINDING_LENGTH
MS_STYLE_BINDING_SIZE = _mapscript.MS_STYLE_BINDING_SIZE
MS_STYLE_BINDING_WIDTH = _mapscript.MS_STYLE_BINDING_WIDTH
MS_STYLE_BINDING_ANGLE = _mapscript.MS_STYLE_BINDING_ANGLE
MS_STYLE_BINDING_COLOR = _mapscript.MS_STYLE_BINDING_COLOR
MS_STYLE_BINDING_OUTLINECOLOR = _mapscript.MS_STYLE_BINDING_OUTLINECOLOR
MS_STYLE_BINDING_SYMBOL = _mapscript.MS_STYLE_BINDING_SYMBOL
MS_STYLE_BINDING_OUTLINEWIDTH = _mapscript.MS_STYLE_BINDING_OUTLINEWIDTH
MS_STYLE_BINDING_OPACITY = _mapscript.MS_STYLE_BINDING_OPACITY
MS_STYLE_BINDING_OFFSET_X = _mapscript.MS_STYLE_BINDING_OFFSET_X
MS_STYLE_BINDING_OFFSET_Y = _mapscript.MS_STYLE_BINDING_OFFSET_Y
MS_STYLE_BINDING_POLAROFFSET_PIXEL = _mapscript.MS_STYLE_BINDING_POLAROFFSET_PIXEL
MS_STYLE_BINDING_POLAROFFSET_ANGLE = _mapscript.MS_STYLE_BINDING_POLAROFFSET_ANGLE
MS_LABEL_BINDING_LENGTH = _mapscript.MS_LABEL_BINDING_LENGTH
MS_LABEL_BINDING_SIZE = _mapscript.MS_LABEL_BINDING_SIZE
MS_LABEL_BINDING_ANGLE = _mapscript.MS_LABEL_BINDING_ANGLE
MS_LABEL_BINDING_COLOR = _mapscript.MS_LABEL_BINDING_COLOR
MS_LABEL_BINDING_OUTLINECOLOR = _mapscript.MS_LABEL_BINDING_OUTLINECOLOR
MS_LABEL_BINDING_FONT = _mapscript.MS_LABEL_BINDING_FONT
MS_LABEL_BINDING_PRIORITY = _mapscript.MS_LABEL_BINDING_PRIORITY
MS_LABEL_BINDING_POSITION = _mapscript.MS_LABEL_BINDING_POSITION
MS_LABEL_BINDING_SHADOWSIZEX = _mapscript.MS_LABEL_BINDING_SHADOWSIZEX
MS_LABEL_BINDING_SHADOWSIZEY = _mapscript.MS_LABEL_BINDING_SHADOWSIZEY
class fontSetObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, fontSetObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, fontSetObj, name)
    __repr__ = _swig_repr
    __swig_getmethods__["filename"] = _mapscript.fontSetObj_filename_get
    if _newclass:
        filename = _swig_property(_mapscript.fontSetObj_filename_get)
    __swig_getmethods__["numfonts"] = _mapscript.fontSetObj_numfonts_get
    if _newclass:
        numfonts = _swig_property(_mapscript.fontSetObj_numfonts_get)
    __swig_getmethods__["fonts"] = _mapscript.fontSetObj_fonts_get
    if _newclass:
        fonts = _swig_property(_mapscript.fontSetObj_fonts_get)

    def __init__(self):
        this = _mapscript.new_fontSetObj()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_fontSetObj
    __del__ = lambda self: None
fontSetObj_swigregister = _mapscript.fontSetObj_swigregister
fontSetObj_swigregister(fontSetObj)

MS_TOKEN_LOGICAL_AND = _mapscript.MS_TOKEN_LOGICAL_AND
MS_TOKEN_LOGICAL_OR = _mapscript.MS_TOKEN_LOGICAL_OR
MS_TOKEN_LOGICAL_NOT = _mapscript.MS_TOKEN_LOGICAL_NOT
MS_TOKEN_LITERAL_NUMBER = _mapscript.MS_TOKEN_LITERAL_NUMBER
MS_TOKEN_LITERAL_STRING = _mapscript.MS_TOKEN_LITERAL_STRING
MS_TOKEN_LITERAL_TIME = _mapscript.MS_TOKEN_LITERAL_TIME
MS_TOKEN_LITERAL_SHAPE = _mapscript.MS_TOKEN_LITERAL_SHAPE
MS_TOKEN_LITERAL_BOOLEAN = _mapscript.MS_TOKEN_LITERAL_BOOLEAN
MS_TOKEN_COMPARISON_EQ = _mapscript.MS_TOKEN_COMPARISON_EQ
MS_TOKEN_COMPARISON_NE = _mapscript.MS_TOKEN_COMPARISON_NE
MS_TOKEN_COMPARISON_GT = _mapscript.MS_TOKEN_COMPARISON_GT
MS_TOKEN_COMPARISON_LT = _mapscript.MS_TOKEN_COMPARISON_LT
MS_TOKEN_COMPARISON_LE = _mapscript.MS_TOKEN_COMPARISON_LE
MS_TOKEN_COMPARISON_GE = _mapscript.MS_TOKEN_COMPARISON_GE
MS_TOKEN_COMPARISON_IEQ = _mapscript.MS_TOKEN_COMPARISON_IEQ
MS_TOKEN_COMPARISON_RE = _mapscript.MS_TOKEN_COMPARISON_RE
MS_TOKEN_COMPARISON_IRE = _mapscript.MS_TOKEN_COMPARISON_IRE
MS_TOKEN_COMPARISON_IN = _mapscript.MS_TOKEN_COMPARISON_IN
MS_TOKEN_COMPARISON_LIKE = _mapscript.MS_TOKEN_COMPARISON_LIKE
MS_TOKEN_COMPARISON_INTERSECTS = _mapscript.MS_TOKEN_COMPARISON_INTERSECTS
MS_TOKEN_COMPARISON_DISJOINT = _mapscript.MS_TOKEN_COMPARISON_DISJOINT
MS_TOKEN_COMPARISON_TOUCHES = _mapscript.MS_TOKEN_COMPARISON_TOUCHES
MS_TOKEN_COMPARISON_OVERLAPS = _mapscript.MS_TOKEN_COMPARISON_OVERLAPS
MS_TOKEN_COMPARISON_CROSSES = _mapscript.MS_TOKEN_COMPARISON_CROSSES
MS_TOKEN_COMPARISON_WITHIN = _mapscript.MS_TOKEN_COMPARISON_WITHIN
MS_TOKEN_COMPARISON_CONTAINS = _mapscript.MS_TOKEN_COMPARISON_CONTAINS
MS_TOKEN_COMPARISON_EQUALS = _mapscript.MS_TOKEN_COMPARISON_EQUALS
MS_TOKEN_COMPARISON_BEYOND = _mapscript.MS_TOKEN_COMPARISON_BEYOND
MS_TOKEN_COMPARISON_DWITHIN = _mapscript.MS_TOKEN_COMPARISON_DWITHIN
MS_TOKEN_FUNCTION_LENGTH = _mapscript.MS_TOKEN_FUNCTION_LENGTH
MS_TOKEN_FUNCTION_TOSTRING = _mapscript.MS_TOKEN_FUNCTION_TOSTRING
MS_TOKEN_FUNCTION_COMMIFY = _mapscript.MS_TOKEN_FUNCTION_COMMIFY
MS_TOKEN_FUNCTION_AREA = _mapscript.MS_TOKEN_FUNCTION_AREA
MS_TOKEN_FUNCTION_ROUND = _mapscript.MS_TOKEN_FUNCTION_ROUND
MS_TOKEN_FUNCTION_FROMTEXT = _mapscript.MS_TOKEN_FUNCTION_FROMTEXT
MS_TOKEN_FUNCTION_BUFFER = _mapscript.MS_TOKEN_FUNCTION_BUFFER
MS_TOKEN_FUNCTION_DIFFERENCE = _mapscript.MS_TOKEN_FUNCTION_DIFFERENCE
MS_TOKEN_FUNCTION_SIMPLIFY = _mapscript.MS_TOKEN_FUNCTION_SIMPLIFY
MS_TOKEN_FUNCTION_SIMPLIFYPT = _mapscript.MS_TOKEN_FUNCTION_SIMPLIFYPT
MS_TOKEN_FUNCTION_GENERALIZE = _mapscript.MS_TOKEN_FUNCTION_GENERALIZE
MS_TOKEN_FUNCTION_SMOOTHSIA = _mapscript.MS_TOKEN_FUNCTION_SMOOTHSIA
MS_TOKEN_FUNCTION_JAVASCRIPT = _mapscript.MS_TOKEN_FUNCTION_JAVASCRIPT
MS_TOKEN_FUNCTION_UPPER = _mapscript.MS_TOKEN_FUNCTION_UPPER
MS_TOKEN_FUNCTION_LOWER = _mapscript.MS_TOKEN_FUNCTION_LOWER
MS_TOKEN_FUNCTION_INITCAP = _mapscript.MS_TOKEN_FUNCTION_INITCAP
MS_TOKEN_FUNCTION_FIRSTCAP = _mapscript.MS_TOKEN_FUNCTION_FIRSTCAP
MS_TOKEN_BINDING_DOUBLE = _mapscript.MS_TOKEN_BINDING_DOUBLE
MS_TOKEN_BINDING_INTEGER = _mapscript.MS_TOKEN_BINDING_INTEGER
MS_TOKEN_BINDING_STRING = _mapscript.MS_TOKEN_BINDING_STRING
MS_TOKEN_BINDING_TIME = _mapscript.MS_TOKEN_BINDING_TIME
MS_TOKEN_BINDING_SHAPE = _mapscript.MS_TOKEN_BINDING_SHAPE
MS_TOKEN_BINDING_MAP_CELLSIZE = _mapscript.MS_TOKEN_BINDING_MAP_CELLSIZE
MS_TOKEN_BINDING_DATA_CELLSIZE = _mapscript.MS_TOKEN_BINDING_DATA_CELLSIZE
MS_PARSE_TYPE_BOOLEAN = _mapscript.MS_PARSE_TYPE_BOOLEAN
MS_PARSE_TYPE_STRING = _mapscript.MS_PARSE_TYPE_STRING
MS_PARSE_TYPE_SHAPE = _mapscript.MS_PARSE_TYPE_SHAPE
class clusterObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, clusterObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, clusterObj, name)
    __repr__ = _swig_repr
    __swig_setmethods__["maxdistance"] = _mapscript.clusterObj_maxdistance_set
    __swig_getmethods__["maxdistance"] = _mapscript.clusterObj_maxdistance_get
    if _newclass:
        maxdistance = _swig_property(_mapscript.clusterObj_maxdistance_get, _mapscript.clusterObj_maxdistance_set)
    __swig_setmethods__["buffer"] = _mapscript.clusterObj_buffer_set
    __swig_getmethods__["buffer"] = _mapscript.clusterObj_buffer_get
    if _newclass:
        buffer = _swig_property(_mapscript.clusterObj_buffer_get, _mapscript.clusterObj_buffer_set)
    __swig_setmethods__["region"] = _mapscript.clusterObj_region_set
    __swig_getmethods__["region"] = _mapscript.clusterObj_region_get
    if _newclass:
        region = _swig_property(_mapscript.clusterObj_region_get, _mapscript.clusterObj_region_set)

    def updateFromString(self, snippet: 'char *') -> "int":
        return _mapscript.clusterObj_updateFromString(self, snippet)

    def convertToString(self) -> "char *":
        return _mapscript.clusterObj_convertToString(self)

    def setGroup(self, group: 'char *') -> "int":
        return _mapscript.clusterObj_setGroup(self, group)

    def getGroupString(self) -> "char *":
        return _mapscript.clusterObj_getGroupString(self)

    def setFilter(self, filter: 'char *') -> "int":
        return _mapscript.clusterObj_setFilter(self, filter)

    def getFilterString(self) -> "char *":
        return _mapscript.clusterObj_getFilterString(self)

    def __init__(self):
        this = _mapscript.new_clusterObj()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_clusterObj
    __del__ = lambda self: None
clusterObj_swigregister = _mapscript.clusterObj_swigregister
clusterObj_swigregister(clusterObj)

class outputFormatObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, outputFormatObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, outputFormatObj, name)
    __repr__ = _swig_repr
    __swig_getmethods__["numformatoptions"] = _mapscript.outputFormatObj_numformatoptions_get
    if _newclass:
        numformatoptions = _swig_property(_mapscript.outputFormatObj_numformatoptions_get)
    __swig_setmethods__["name"] = _mapscript.outputFormatObj_name_set
    __swig_getmethods__["name"] = _mapscript.outputFormatObj_name_get
    if _newclass:
        name = _swig_property(_mapscript.outputFormatObj_name_get, _mapscript.outputFormatObj_name_set)
    __swig_setmethods__["mimetype"] = _mapscript.outputFormatObj_mimetype_set
    __swig_getmethods__["mimetype"] = _mapscript.outputFormatObj_mimetype_get
    if _newclass:
        mimetype = _swig_property(_mapscript.outputFormatObj_mimetype_get, _mapscript.outputFormatObj_mimetype_set)
    __swig_setmethods__["driver"] = _mapscript.outputFormatObj_driver_set
    __swig_getmethods__["driver"] = _mapscript.outputFormatObj_driver_get
    if _newclass:
        driver = _swig_property(_mapscript.outputFormatObj_driver_get, _mapscript.outputFormatObj_driver_set)
    __swig_setmethods__["extension"] = _mapscript.outputFormatObj_extension_set
    __swig_getmethods__["extension"] = _mapscript.outputFormatObj_extension_get
    if _newclass:
        extension = _swig_property(_mapscript.outputFormatObj_extension_get, _mapscript.outputFormatObj_extension_set)
    __swig_setmethods__["renderer"] = _mapscript.outputFormatObj_renderer_set
    __swig_getmethods__["renderer"] = _mapscript.outputFormatObj_renderer_get
    if _newclass:
        renderer = _swig_property(_mapscript.outputFormatObj_renderer_get, _mapscript.outputFormatObj_renderer_set)
    __swig_setmethods__["imagemode"] = _mapscript.outputFormatObj_imagemode_set
    __swig_getmethods__["imagemode"] = _mapscript.outputFormatObj_imagemode_get
    if _newclass:
        imagemode = _swig_property(_mapscript.outputFormatObj_imagemode_get, _mapscript.outputFormatObj_imagemode_set)
    __swig_setmethods__["transparent"] = _mapscript.outputFormatObj_transparent_set
    __swig_getmethods__["transparent"] = _mapscript.outputFormatObj_transparent_get
    if _newclass:
        transparent = _swig_property(_mapscript.outputFormatObj_transparent_get, _mapscript.outputFormatObj_transparent_set)
    __swig_setmethods__["bands"] = _mapscript.outputFormatObj_bands_set
    __swig_getmethods__["bands"] = _mapscript.outputFormatObj_bands_get
    if _newclass:
        bands = _swig_property(_mapscript.outputFormatObj_bands_get, _mapscript.outputFormatObj_bands_set)
    __swig_setmethods__["inmapfile"] = _mapscript.outputFormatObj_inmapfile_set
    __swig_getmethods__["inmapfile"] = _mapscript.outputFormatObj_inmapfile_get
    if _newclass:
        inmapfile = _swig_property(_mapscript.outputFormatObj_inmapfile_get, _mapscript.outputFormatObj_inmapfile_set)

    def __init__(self, driver: 'char const *', name: 'char *'=None):
        this = _mapscript.new_outputFormatObj(driver, name)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_outputFormatObj
    __del__ = lambda self: None

    def setExtension(self, extension: 'char const *') -> "void":
        return _mapscript.outputFormatObj_setExtension(self, extension)

    def setMimetype(self, mimetype: 'char const *') -> "void":
        return _mapscript.outputFormatObj_setMimetype(self, mimetype)

    def setOption(self, key: 'char const *', value: 'char const *') -> "void":
        return _mapscript.outputFormatObj_setOption(self, key, value)

    def validate(self) -> "int":
        return _mapscript.outputFormatObj_validate(self)

    def getOption(self, *args) -> "char *":
        return _mapscript.outputFormatObj_getOption(self, *args)

    def getOptionAt(self, i: 'int') -> "char *":
        return _mapscript.outputFormatObj_getOptionAt(self, i)

    def attachDevice(self, device: 'void *') -> "void":
        return _mapscript.outputFormatObj_attachDevice(self, device)
outputFormatObj_swigregister = _mapscript.outputFormatObj_swigregister
outputFormatObj_swigregister(outputFormatObj)

MS_NOOVERRIDE = _mapscript.MS_NOOVERRIDE
class queryMapObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, queryMapObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, queryMapObj, name)
    __repr__ = _swig_repr
    __swig_setmethods__["height"] = _mapscript.queryMapObj_height_set
    __swig_getmethods__["height"] = _mapscript.queryMapObj_height_get
    if _newclass:
        height = _swig_property(_mapscript.queryMapObj_height_get, _mapscript.queryMapObj_height_set)
    __swig_setmethods__["width"] = _mapscript.queryMapObj_width_set
    __swig_getmethods__["width"] = _mapscript.queryMapObj_width_get
    if _newclass:
        width = _swig_property(_mapscript.queryMapObj_width_get, _mapscript.queryMapObj_width_set)
    __swig_setmethods__["status"] = _mapscript.queryMapObj_status_set
    __swig_getmethods__["status"] = _mapscript.queryMapObj_status_get
    if _newclass:
        status = _swig_property(_mapscript.queryMapObj_status_get, _mapscript.queryMapObj_status_set)
    __swig_setmethods__["style"] = _mapscript.queryMapObj_style_set
    __swig_getmethods__["style"] = _mapscript.queryMapObj_style_get
    if _newclass:
        style = _swig_property(_mapscript.queryMapObj_style_get, _mapscript.queryMapObj_style_set)
    __swig_setmethods__["color"] = _mapscript.queryMapObj_color_set
    __swig_getmethods__["color"] = _mapscript.queryMapObj_color_get
    if _newclass:
        color = _swig_property(_mapscript.queryMapObj_color_get, _mapscript.queryMapObj_color_set)

    def updateFromString(self, snippet: 'char *') -> "int":
        return _mapscript.queryMapObj_updateFromString(self, snippet)

    def convertToString(self) -> "char *":
        return _mapscript.queryMapObj_convertToString(self)

    def __init__(self):
        this = _mapscript.new_queryMapObj()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_queryMapObj
    __del__ = lambda self: None
queryMapObj_swigregister = _mapscript.queryMapObj_swigregister
queryMapObj_swigregister(queryMapObj)

class webObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, webObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, webObj, name)
    __repr__ = _swig_repr
    __swig_setmethods__["log"] = _mapscript.webObj_log_set
    __swig_getmethods__["log"] = _mapscript.webObj_log_get
    if _newclass:
        log = _swig_property(_mapscript.webObj_log_get, _mapscript.webObj_log_set)
    __swig_setmethods__["imagepath"] = _mapscript.webObj_imagepath_set
    __swig_getmethods__["imagepath"] = _mapscript.webObj_imagepath_get
    if _newclass:
        imagepath = _swig_property(_mapscript.webObj_imagepath_get, _mapscript.webObj_imagepath_set)
    __swig_setmethods__["imageurl"] = _mapscript.webObj_imageurl_set
    __swig_getmethods__["imageurl"] = _mapscript.webObj_imageurl_get
    if _newclass:
        imageurl = _swig_property(_mapscript.webObj_imageurl_get, _mapscript.webObj_imageurl_set)
    __swig_setmethods__["temppath"] = _mapscript.webObj_temppath_set
    __swig_getmethods__["temppath"] = _mapscript.webObj_temppath_get
    if _newclass:
        temppath = _swig_property(_mapscript.webObj_temppath_get, _mapscript.webObj_temppath_set)
    __swig_getmethods__["map"] = _mapscript.webObj_map_get
    if _newclass:
        map = _swig_property(_mapscript.webObj_map_get)
    __swig_setmethods__["template"] = _mapscript.webObj_template_set
    __swig_getmethods__["template"] = _mapscript.webObj_template_get
    if _newclass:
        template = _swig_property(_mapscript.webObj_template_get, _mapscript.webObj_template_set)
    __swig_setmethods__["header"] = _mapscript.webObj_header_set
    __swig_getmethods__["header"] = _mapscript.webObj_header_get
    if _newclass:
        header = _swig_property(_mapscript.webObj_header_get, _mapscript.webObj_header_set)
    __swig_setmethods__["footer"] = _mapscript.webObj_footer_set
    __swig_getmethods__["footer"] = _mapscript.webObj_footer_get
    if _newclass:
        footer = _swig_property(_mapscript.webObj_footer_get, _mapscript.webObj_footer_set)
    __swig_setmethods__["empty"] = _mapscript.webObj_empty_set
    __swig_getmethods__["empty"] = _mapscript.webObj_empty_get
    if _newclass:
        empty = _swig_property(_mapscript.webObj_empty_get, _mapscript.webObj_empty_set)
    __swig_setmethods__["error"] = _mapscript.webObj_error_set
    __swig_getmethods__["error"] = _mapscript.webObj_error_get
    if _newclass:
        error = _swig_property(_mapscript.webObj_error_get, _mapscript.webObj_error_set)
    __swig_setmethods__["extent"] = _mapscript.webObj_extent_set
    __swig_getmethods__["extent"] = _mapscript.webObj_extent_get
    if _newclass:
        extent = _swig_property(_mapscript.webObj_extent_get, _mapscript.webObj_extent_set)
    __swig_setmethods__["minscaledenom"] = _mapscript.webObj_minscaledenom_set
    __swig_getmethods__["minscaledenom"] = _mapscript.webObj_minscaledenom_get
    if _newclass:
        minscaledenom = _swig_property(_mapscript.webObj_minscaledenom_get, _mapscript.webObj_minscaledenom_set)
    __swig_setmethods__["maxscaledenom"] = _mapscript.webObj_maxscaledenom_set
    __swig_getmethods__["maxscaledenom"] = _mapscript.webObj_maxscaledenom_get
    if _newclass:
        maxscaledenom = _swig_property(_mapscript.webObj_maxscaledenom_get, _mapscript.webObj_maxscaledenom_set)
    __swig_setmethods__["mintemplate"] = _mapscript.webObj_mintemplate_set
    __swig_getmethods__["mintemplate"] = _mapscript.webObj_mintemplate_get
    if _newclass:
        mintemplate = _swig_property(_mapscript.webObj_mintemplate_get, _mapscript.webObj_mintemplate_set)
    __swig_setmethods__["maxtemplate"] = _mapscript.webObj_maxtemplate_set
    __swig_getmethods__["maxtemplate"] = _mapscript.webObj_maxtemplate_get
    if _newclass:
        maxtemplate = _swig_property(_mapscript.webObj_maxtemplate_get, _mapscript.webObj_maxtemplate_set)
    __swig_setmethods__["queryformat"] = _mapscript.webObj_queryformat_set
    __swig_getmethods__["queryformat"] = _mapscript.webObj_queryformat_get
    if _newclass:
        queryformat = _swig_property(_mapscript.webObj_queryformat_get, _mapscript.webObj_queryformat_set)
    __swig_setmethods__["legendformat"] = _mapscript.webObj_legendformat_set
    __swig_getmethods__["legendformat"] = _mapscript.webObj_legendformat_get
    if _newclass:
        legendformat = _swig_property(_mapscript.webObj_legendformat_get, _mapscript.webObj_legendformat_set)
    __swig_setmethods__["browseformat"] = _mapscript.webObj_browseformat_set
    __swig_getmethods__["browseformat"] = _mapscript.webObj_browseformat_get
    if _newclass:
        browseformat = _swig_property(_mapscript.webObj_browseformat_get, _mapscript.webObj_browseformat_set)
    __swig_getmethods__["metadata"] = _mapscript.webObj_metadata_get
    if _newclass:
        metadata = _swig_property(_mapscript.webObj_metadata_get)
    __swig_getmethods__["validation"] = _mapscript.webObj_validation_get
    if _newclass:
        validation = _swig_property(_mapscript.webObj_validation_get)

    def __init__(self):
        this = _mapscript.new_webObj()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_webObj
    __del__ = lambda self: None

    def updateFromString(self, snippet: 'char *') -> "int":
        return _mapscript.webObj_updateFromString(self, snippet)

    def convertToString(self) -> "char *":
        return _mapscript.webObj_convertToString(self)
webObj_swigregister = _mapscript.webObj_swigregister
webObj_swigregister(webObj)

class styleObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, styleObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, styleObj, name)
    __repr__ = _swig_repr
    __swig_getmethods__["refcount"] = _mapscript.styleObj_refcount_get
    if _newclass:
        refcount = _swig_property(_mapscript.styleObj_refcount_get)
    __swig_setmethods__["autoangle"] = _mapscript.styleObj_autoangle_set
    __swig_getmethods__["autoangle"] = _mapscript.styleObj_autoangle_get
    if _newclass:
        autoangle = _swig_property(_mapscript.styleObj_autoangle_get, _mapscript.styleObj_autoangle_set)
    __swig_setmethods__["color"] = _mapscript.styleObj_color_set
    __swig_getmethods__["color"] = _mapscript.styleObj_color_get
    if _newclass:
        color = _swig_property(_mapscript.styleObj_color_get, _mapscript.styleObj_color_set)
    __swig_setmethods__["backgroundcolor"] = _mapscript.styleObj_backgroundcolor_set
    __swig_getmethods__["backgroundcolor"] = _mapscript.styleObj_backgroundcolor_get
    if _newclass:
        backgroundcolor = _swig_property(_mapscript.styleObj_backgroundcolor_get, _mapscript.styleObj_backgroundcolor_set)
    __swig_setmethods__["outlinecolor"] = _mapscript.styleObj_outlinecolor_set
    __swig_getmethods__["outlinecolor"] = _mapscript.styleObj_outlinecolor_get
    if _newclass:
        outlinecolor = _swig_property(_mapscript.styleObj_outlinecolor_get, _mapscript.styleObj_outlinecolor_set)
    __swig_setmethods__["opacity"] = _mapscript.styleObj_opacity_set
    __swig_getmethods__["opacity"] = _mapscript.styleObj_opacity_get
    if _newclass:
        opacity = _swig_property(_mapscript.styleObj_opacity_get, _mapscript.styleObj_opacity_set)
    __swig_setmethods__["mincolor"] = _mapscript.styleObj_mincolor_set
    __swig_getmethods__["mincolor"] = _mapscript.styleObj_mincolor_get
    if _newclass:
        mincolor = _swig_property(_mapscript.styleObj_mincolor_get, _mapscript.styleObj_mincolor_set)
    __swig_setmethods__["maxcolor"] = _mapscript.styleObj_maxcolor_set
    __swig_getmethods__["maxcolor"] = _mapscript.styleObj_maxcolor_get
    if _newclass:
        maxcolor = _swig_property(_mapscript.styleObj_maxcolor_get, _mapscript.styleObj_maxcolor_set)
    __swig_setmethods__["minvalue"] = _mapscript.styleObj_minvalue_set
    __swig_getmethods__["minvalue"] = _mapscript.styleObj_minvalue_get
    if _newclass:
        minvalue = _swig_property(_mapscript.styleObj_minvalue_get, _mapscript.styleObj_minvalue_set)
    __swig_setmethods__["maxvalue"] = _mapscript.styleObj_maxvalue_set
    __swig_getmethods__["maxvalue"] = _mapscript.styleObj_maxvalue_get
    if _newclass:
        maxvalue = _swig_property(_mapscript.styleObj_maxvalue_get, _mapscript.styleObj_maxvalue_set)
    __swig_setmethods__["rangeitem"] = _mapscript.styleObj_rangeitem_set
    __swig_getmethods__["rangeitem"] = _mapscript.styleObj_rangeitem_get
    if _newclass:
        rangeitem = _swig_property(_mapscript.styleObj_rangeitem_get, _mapscript.styleObj_rangeitem_set)
    __swig_setmethods__["rangeitemindex"] = _mapscript.styleObj_rangeitemindex_set
    __swig_getmethods__["rangeitemindex"] = _mapscript.styleObj_rangeitemindex_get
    if _newclass:
        rangeitemindex = _swig_property(_mapscript.styleObj_rangeitemindex_get, _mapscript.styleObj_rangeitemindex_set)
    __swig_setmethods__["symbol"] = _mapscript.styleObj_symbol_set
    __swig_getmethods__["symbol"] = _mapscript.styleObj_symbol_get
    if _newclass:
        symbol = _swig_property(_mapscript.styleObj_symbol_get, _mapscript.styleObj_symbol_set)
    __swig_setmethods__["symbolname"] = _mapscript.styleObj_symbolname_set
    __swig_getmethods__["symbolname"] = _mapscript.styleObj_symbolname_get
    if _newclass:
        symbolname = _swig_property(_mapscript.styleObj_symbolname_get, _mapscript.styleObj_symbolname_set)
    __swig_setmethods__["size"] = _mapscript.styleObj_size_set
    __swig_getmethods__["size"] = _mapscript.styleObj_size_get
    if _newclass:
        size = _swig_property(_mapscript.styleObj_size_get, _mapscript.styleObj_size_set)
    __swig_setmethods__["minsize"] = _mapscript.styleObj_minsize_set
    __swig_getmethods__["minsize"] = _mapscript.styleObj_minsize_get
    if _newclass:
        minsize = _swig_property(_mapscript.styleObj_minsize_get, _mapscript.styleObj_minsize_set)
    __swig_setmethods__["maxsize"] = _mapscript.styleObj_maxsize_set
    __swig_getmethods__["maxsize"] = _mapscript.styleObj_maxsize_get
    if _newclass:
        maxsize = _swig_property(_mapscript.styleObj_maxsize_get, _mapscript.styleObj_maxsize_set)
    __swig_getmethods__["patternlength"] = _mapscript.styleObj_patternlength_get
    if _newclass:
        patternlength = _swig_property(_mapscript.styleObj_patternlength_get)
    __swig_setmethods__["gap"] = _mapscript.styleObj_gap_set
    __swig_getmethods__["gap"] = _mapscript.styleObj_gap_get
    if _newclass:
        gap = _swig_property(_mapscript.styleObj_gap_get, _mapscript.styleObj_gap_set)
    __swig_setmethods__["initialgap"] = _mapscript.styleObj_initialgap_set
    __swig_getmethods__["initialgap"] = _mapscript.styleObj_initialgap_get
    if _newclass:
        initialgap = _swig_property(_mapscript.styleObj_initialgap_get, _mapscript.styleObj_initialgap_set)
    __swig_setmethods__["position"] = _mapscript.styleObj_position_set
    __swig_getmethods__["position"] = _mapscript.styleObj_position_get
    if _newclass:
        position = _swig_property(_mapscript.styleObj_position_get, _mapscript.styleObj_position_set)
    __swig_setmethods__["linecap"] = _mapscript.styleObj_linecap_set
    __swig_getmethods__["linecap"] = _mapscript.styleObj_linecap_get
    if _newclass:
        linecap = _swig_property(_mapscript.styleObj_linecap_get, _mapscript.styleObj_linecap_set)
    __swig_setmethods__["linejoin"] = _mapscript.styleObj_linejoin_set
    __swig_getmethods__["linejoin"] = _mapscript.styleObj_linejoin_get
    if _newclass:
        linejoin = _swig_property(_mapscript.styleObj_linejoin_get, _mapscript.styleObj_linejoin_set)
    __swig_setmethods__["linejoinmaxsize"] = _mapscript.styleObj_linejoinmaxsize_set
    __swig_getmethods__["linejoinmaxsize"] = _mapscript.styleObj_linejoinmaxsize_get
    if _newclass:
        linejoinmaxsize = _swig_property(_mapscript.styleObj_linejoinmaxsize_get, _mapscript.styleObj_linejoinmaxsize_set)
    __swig_setmethods__["width"] = _mapscript.styleObj_width_set
    __swig_getmethods__["width"] = _mapscript.styleObj_width_get
    if _newclass:
        width = _swig_property(_mapscript.styleObj_width_get, _mapscript.styleObj_width_set)
    __swig_setmethods__["outlinewidth"] = _mapscript.styleObj_outlinewidth_set
    __swig_getmethods__["outlinewidth"] = _mapscript.styleObj_outlinewidth_get
    if _newclass:
        outlinewidth = _swig_property(_mapscript.styleObj_outlinewidth_get, _mapscript.styleObj_outlinewidth_set)
    __swig_setmethods__["minwidth"] = _mapscript.styleObj_minwidth_set
    __swig_getmethods__["minwidth"] = _mapscript.styleObj_minwidth_get
    if _newclass:
        minwidth = _swig_property(_mapscript.styleObj_minwidth_get, _mapscript.styleObj_minwidth_set)
    __swig_setmethods__["maxwidth"] = _mapscript.styleObj_maxwidth_set
    __swig_getmethods__["maxwidth"] = _mapscript.styleObj_maxwidth_get
    if _newclass:
        maxwidth = _swig_property(_mapscript.styleObj_maxwidth_get, _mapscript.styleObj_maxwidth_set)
    __swig_setmethods__["offsetx"] = _mapscript.styleObj_offsetx_set
    __swig_getmethods__["offsetx"] = _mapscript.styleObj_offsetx_get
    if _newclass:
        offsetx = _swig_property(_mapscript.styleObj_offsetx_get, _mapscript.styleObj_offsetx_set)
    __swig_setmethods__["offsety"] = _mapscript.styleObj_offsety_set
    __swig_getmethods__["offsety"] = _mapscript.styleObj_offsety_get
    if _newclass:
        offsety = _swig_property(_mapscript.styleObj_offsety_get, _mapscript.styleObj_offsety_set)
    __swig_setmethods__["polaroffsetpixel"] = _mapscript.styleObj_polaroffsetpixel_set
    __swig_getmethods__["polaroffsetpixel"] = _mapscript.styleObj_polaroffsetpixel_get
    if _newclass:
        polaroffsetpixel = _swig_property(_mapscript.styleObj_polaroffsetpixel_get, _mapscript.styleObj_polaroffsetpixel_set)
    __swig_setmethods__["polaroffsetangle"] = _mapscript.styleObj_polaroffsetangle_set
    __swig_getmethods__["polaroffsetangle"] = _mapscript.styleObj_polaroffsetangle_get
    if _newclass:
        polaroffsetangle = _swig_property(_mapscript.styleObj_polaroffsetangle_get, _mapscript.styleObj_polaroffsetangle_set)
    __swig_setmethods__["angle"] = _mapscript.styleObj_angle_set
    __swig_getmethods__["angle"] = _mapscript.styleObj_angle_get
    if _newclass:
        angle = _swig_property(_mapscript.styleObj_angle_get, _mapscript.styleObj_angle_set)
    __swig_setmethods__["minscaledenom"] = _mapscript.styleObj_minscaledenom_set
    __swig_getmethods__["minscaledenom"] = _mapscript.styleObj_minscaledenom_get
    if _newclass:
        minscaledenom = _swig_property(_mapscript.styleObj_minscaledenom_get, _mapscript.styleObj_minscaledenom_set)
    __swig_setmethods__["maxscaledenom"] = _mapscript.styleObj_maxscaledenom_set
    __swig_getmethods__["maxscaledenom"] = _mapscript.styleObj_maxscaledenom_get
    if _newclass:
        maxscaledenom = _swig_property(_mapscript.styleObj_maxscaledenom_get, _mapscript.styleObj_maxscaledenom_set)

    def __init__(self, parent_class: 'classObj'=None):
        this = _mapscript.new_styleObj(parent_class)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_styleObj
    __del__ = lambda self: None

    def updateFromString(self, snippet: 'char *') -> "int":
        return _mapscript.styleObj_updateFromString(self, snippet)

    def convertToString(self) -> "char *":
        return _mapscript.styleObj_convertToString(self)

    def clone(self) -> "styleObj *":
        return _mapscript.styleObj_clone(self)

    def setSymbolByName(self, map: 'mapObj', symbolname: 'char *') -> "int":
        return _mapscript.styleObj_setSymbolByName(self, map, symbolname)

    def removeBinding(self, binding: 'int') -> "int":
        return _mapscript.styleObj_removeBinding(self, binding)

    def setBinding(self, binding: 'int', item: 'char *') -> "int":
        return _mapscript.styleObj_setBinding(self, binding, item)

    def getBinding(self, binding: 'int') -> "char *":
        return _mapscript.styleObj_getBinding(self, binding)

    def getGeomTransform(self) -> "char *":
        return _mapscript.styleObj_getGeomTransform(self)

    def setGeomTransform(self, transform: 'char *') -> "void":
        return _mapscript.styleObj_setGeomTransform(self, transform)

    def pattern_set(self, nListSize: 'int') -> "void":
        return _mapscript.styleObj_pattern_set(self, nListSize)

    def pattern_get(self) -> "void":
        return _mapscript.styleObj_pattern_get(self)

    def patternlength_set2(self, patternlength: 'int') -> "void":
        return _mapscript.styleObj_patternlength_set2(self, patternlength)


    __swig_setmethods__["patternlength"] = _mapscript.styleObj_patternlength_set2
    __swig_getmethods__["patternlength"] = _mapscript.styleObj_patternlength_get
    if _newclass:patternlength = _swig_property(_mapscript.styleObj_patternlength_get, _mapscript.styleObj_patternlength_set2)

    __swig_setmethods__["pattern"] = _mapscript.styleObj_pattern_set
    __swig_getmethods__["pattern"] = _mapscript.styleObj_pattern_get
    if _newclass:pattern = _swig_property(_mapscript.styleObj_pattern_get, _mapscript.styleObj_pattern_set)

styleObj_swigregister = _mapscript.styleObj_swigregister
styleObj_swigregister(styleObj)

MS_STYLE_SINGLE_SIDED_OFFSET = _mapscript.MS_STYLE_SINGLE_SIDED_OFFSET
MS_STYLE_DOUBLE_SIDED_OFFSET = _mapscript.MS_STYLE_DOUBLE_SIDED_OFFSET
class labelLeaderObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, labelLeaderObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, labelLeaderObj, name)
    __repr__ = _swig_repr
    __swig_setmethods__["maxdistance"] = _mapscript.labelLeaderObj_maxdistance_set
    __swig_getmethods__["maxdistance"] = _mapscript.labelLeaderObj_maxdistance_get
    if _newclass:
        maxdistance = _swig_property(_mapscript.labelLeaderObj_maxdistance_get, _mapscript.labelLeaderObj_maxdistance_set)
    __swig_setmethods__["gridstep"] = _mapscript.labelLeaderObj_gridstep_set
    __swig_getmethods__["gridstep"] = _mapscript.labelLeaderObj_gridstep_get
    if _newclass:
        gridstep = _swig_property(_mapscript.labelLeaderObj_gridstep_get, _mapscript.labelLeaderObj_gridstep_set)
    __swig_getmethods__["numstyles"] = _mapscript.labelLeaderObj_numstyles_get
    if _newclass:
        numstyles = _swig_property(_mapscript.labelLeaderObj_numstyles_get)

    def __init__(self):
        this = _mapscript.new_labelLeaderObj()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_labelLeaderObj
    __del__ = lambda self: None
labelLeaderObj_swigregister = _mapscript.labelLeaderObj_swigregister
labelLeaderObj_swigregister(labelLeaderObj)

class labelObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, labelObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, labelObj, name)
    __repr__ = _swig_repr
    __swig_getmethods__["refcount"] = _mapscript.labelObj_refcount_get
    if _newclass:
        refcount = _swig_property(_mapscript.labelObj_refcount_get)
    __swig_setmethods__["font"] = _mapscript.labelObj_font_set
    __swig_getmethods__["font"] = _mapscript.labelObj_font_get
    if _newclass:
        font = _swig_property(_mapscript.labelObj_font_get, _mapscript.labelObj_font_set)
    __swig_setmethods__["color"] = _mapscript.labelObj_color_set
    __swig_getmethods__["color"] = _mapscript.labelObj_color_get
    if _newclass:
        color = _swig_property(_mapscript.labelObj_color_get, _mapscript.labelObj_color_set)
    __swig_setmethods__["outlinecolor"] = _mapscript.labelObj_outlinecolor_set
    __swig_getmethods__["outlinecolor"] = _mapscript.labelObj_outlinecolor_get
    if _newclass:
        outlinecolor = _swig_property(_mapscript.labelObj_outlinecolor_get, _mapscript.labelObj_outlinecolor_set)
    __swig_setmethods__["outlinewidth"] = _mapscript.labelObj_outlinewidth_set
    __swig_getmethods__["outlinewidth"] = _mapscript.labelObj_outlinewidth_get
    if _newclass:
        outlinewidth = _swig_property(_mapscript.labelObj_outlinewidth_get, _mapscript.labelObj_outlinewidth_set)
    __swig_setmethods__["shadowcolor"] = _mapscript.labelObj_shadowcolor_set
    __swig_getmethods__["shadowcolor"] = _mapscript.labelObj_shadowcolor_get
    if _newclass:
        shadowcolor = _swig_property(_mapscript.labelObj_shadowcolor_get, _mapscript.labelObj_shadowcolor_set)
    __swig_setmethods__["shadowsizex"] = _mapscript.labelObj_shadowsizex_set
    __swig_getmethods__["shadowsizex"] = _mapscript.labelObj_shadowsizex_get
    if _newclass:
        shadowsizex = _swig_property(_mapscript.labelObj_shadowsizex_get, _mapscript.labelObj_shadowsizex_set)
    __swig_setmethods__["shadowsizey"] = _mapscript.labelObj_shadowsizey_set
    __swig_getmethods__["shadowsizey"] = _mapscript.labelObj_shadowsizey_get
    if _newclass:
        shadowsizey = _swig_property(_mapscript.labelObj_shadowsizey_get, _mapscript.labelObj_shadowsizey_set)
    __swig_setmethods__["size"] = _mapscript.labelObj_size_set
    __swig_getmethods__["size"] = _mapscript.labelObj_size_get
    if _newclass:
        size = _swig_property(_mapscript.labelObj_size_get, _mapscript.labelObj_size_set)
    __swig_setmethods__["minsize"] = _mapscript.labelObj_minsize_set
    __swig_getmethods__["minsize"] = _mapscript.labelObj_minsize_get
    if _newclass:
        minsize = _swig_property(_mapscript.labelObj_minsize_get, _mapscript.labelObj_minsize_set)
    __swig_setmethods__["maxsize"] = _mapscript.labelObj_maxsize_set
    __swig_getmethods__["maxsize"] = _mapscript.labelObj_maxsize_get
    if _newclass:
        maxsize = _swig_property(_mapscript.labelObj_maxsize_get, _mapscript.labelObj_maxsize_set)
    __swig_setmethods__["position"] = _mapscript.labelObj_position_set
    __swig_getmethods__["position"] = _mapscript.labelObj_position_get
    if _newclass:
        position = _swig_property(_mapscript.labelObj_position_get, _mapscript.labelObj_position_set)
    __swig_setmethods__["offsetx"] = _mapscript.labelObj_offsetx_set
    __swig_getmethods__["offsetx"] = _mapscript.labelObj_offsetx_get
    if _newclass:
        offsetx = _swig_property(_mapscript.labelObj_offsetx_get, _mapscript.labelObj_offsetx_set)
    __swig_setmethods__["offsety"] = _mapscript.labelObj_offsety_set
    __swig_getmethods__["offsety"] = _mapscript.labelObj_offsety_get
    if _newclass:
        offsety = _swig_property(_mapscript.labelObj_offsety_get, _mapscript.labelObj_offsety_set)
    __swig_setmethods__["angle"] = _mapscript.labelObj_angle_set
    __swig_getmethods__["angle"] = _mapscript.labelObj_angle_get
    if _newclass:
        angle = _swig_property(_mapscript.labelObj_angle_get, _mapscript.labelObj_angle_set)
    __swig_setmethods__["anglemode"] = _mapscript.labelObj_anglemode_set
    __swig_getmethods__["anglemode"] = _mapscript.labelObj_anglemode_get
    if _newclass:
        anglemode = _swig_property(_mapscript.labelObj_anglemode_get, _mapscript.labelObj_anglemode_set)
    __swig_setmethods__["buffer"] = _mapscript.labelObj_buffer_set
    __swig_getmethods__["buffer"] = _mapscript.labelObj_buffer_get
    if _newclass:
        buffer = _swig_property(_mapscript.labelObj_buffer_get, _mapscript.labelObj_buffer_set)
    __swig_setmethods__["align"] = _mapscript.labelObj_align_set
    __swig_getmethods__["align"] = _mapscript.labelObj_align_get
    if _newclass:
        align = _swig_property(_mapscript.labelObj_align_get, _mapscript.labelObj_align_set)
    __swig_setmethods__["wrap"] = _mapscript.labelObj_wrap_set
    __swig_getmethods__["wrap"] = _mapscript.labelObj_wrap_get
    if _newclass:
        wrap = _swig_property(_mapscript.labelObj_wrap_get, _mapscript.labelObj_wrap_set)
    __swig_setmethods__["maxlength"] = _mapscript.labelObj_maxlength_set
    __swig_getmethods__["maxlength"] = _mapscript.labelObj_maxlength_get
    if _newclass:
        maxlength = _swig_property(_mapscript.labelObj_maxlength_get, _mapscript.labelObj_maxlength_set)
    __swig_setmethods__["minlength"] = _mapscript.labelObj_minlength_set
    __swig_getmethods__["minlength"] = _mapscript.labelObj_minlength_get
    if _newclass:
        minlength = _swig_property(_mapscript.labelObj_minlength_get, _mapscript.labelObj_minlength_set)
    __swig_setmethods__["space_size_10"] = _mapscript.labelObj_space_size_10_set
    __swig_getmethods__["space_size_10"] = _mapscript.labelObj_space_size_10_get
    if _newclass:
        space_size_10 = _swig_property(_mapscript.labelObj_space_size_10_get, _mapscript.labelObj_space_size_10_set)
    __swig_setmethods__["minfeaturesize"] = _mapscript.labelObj_minfeaturesize_set
    __swig_getmethods__["minfeaturesize"] = _mapscript.labelObj_minfeaturesize_get
    if _newclass:
        minfeaturesize = _swig_property(_mapscript.labelObj_minfeaturesize_get, _mapscript.labelObj_minfeaturesize_set)
    __swig_setmethods__["autominfeaturesize"] = _mapscript.labelObj_autominfeaturesize_set
    __swig_getmethods__["autominfeaturesize"] = _mapscript.labelObj_autominfeaturesize_get
    if _newclass:
        autominfeaturesize = _swig_property(_mapscript.labelObj_autominfeaturesize_get, _mapscript.labelObj_autominfeaturesize_set)
    __swig_setmethods__["minscaledenom"] = _mapscript.labelObj_minscaledenom_set
    __swig_getmethods__["minscaledenom"] = _mapscript.labelObj_minscaledenom_get
    if _newclass:
        minscaledenom = _swig_property(_mapscript.labelObj_minscaledenom_get, _mapscript.labelObj_minscaledenom_set)
    __swig_setmethods__["maxscaledenom"] = _mapscript.labelObj_maxscaledenom_set
    __swig_getmethods__["maxscaledenom"] = _mapscript.labelObj_maxscaledenom_get
    if _newclass:
        maxscaledenom = _swig_property(_mapscript.labelObj_maxscaledenom_get, _mapscript.labelObj_maxscaledenom_set)
    __swig_setmethods__["mindistance"] = _mapscript.labelObj_mindistance_set
    __swig_getmethods__["mindistance"] = _mapscript.labelObj_mindistance_get
    if _newclass:
        mindistance = _swig_property(_mapscript.labelObj_mindistance_get, _mapscript.labelObj_mindistance_set)
    __swig_setmethods__["repeatdistance"] = _mapscript.labelObj_repeatdistance_set
    __swig_getmethods__["repeatdistance"] = _mapscript.labelObj_repeatdistance_get
    if _newclass:
        repeatdistance = _swig_property(_mapscript.labelObj_repeatdistance_get, _mapscript.labelObj_repeatdistance_set)
    __swig_setmethods__["maxoverlapangle"] = _mapscript.labelObj_maxoverlapangle_set
    __swig_getmethods__["maxoverlapangle"] = _mapscript.labelObj_maxoverlapangle_get
    if _newclass:
        maxoverlapangle = _swig_property(_mapscript.labelObj_maxoverlapangle_get, _mapscript.labelObj_maxoverlapangle_set)
    __swig_setmethods__["partials"] = _mapscript.labelObj_partials_set
    __swig_getmethods__["partials"] = _mapscript.labelObj_partials_get
    if _newclass:
        partials = _swig_property(_mapscript.labelObj_partials_get, _mapscript.labelObj_partials_set)
    __swig_setmethods__["force"] = _mapscript.labelObj_force_set
    __swig_getmethods__["force"] = _mapscript.labelObj_force_get
    if _newclass:
        force = _swig_property(_mapscript.labelObj_force_get, _mapscript.labelObj_force_set)
    __swig_setmethods__["encoding"] = _mapscript.labelObj_encoding_set
    __swig_getmethods__["encoding"] = _mapscript.labelObj_encoding_get
    if _newclass:
        encoding = _swig_property(_mapscript.labelObj_encoding_get, _mapscript.labelObj_encoding_set)
    __swig_setmethods__["priority"] = _mapscript.labelObj_priority_set
    __swig_getmethods__["priority"] = _mapscript.labelObj_priority_get
    if _newclass:
        priority = _swig_property(_mapscript.labelObj_priority_get, _mapscript.labelObj_priority_set)
    __swig_setmethods__["numstyles"] = _mapscript.labelObj_numstyles_set
    __swig_getmethods__["numstyles"] = _mapscript.labelObj_numstyles_get
    if _newclass:
        numstyles = _swig_property(_mapscript.labelObj_numstyles_get, _mapscript.labelObj_numstyles_set)
    __swig_setmethods__["leader"] = _mapscript.labelObj_leader_set
    __swig_getmethods__["leader"] = _mapscript.labelObj_leader_get
    if _newclass:
        leader = _swig_property(_mapscript.labelObj_leader_get, _mapscript.labelObj_leader_set)

    def __init__(self):
        this = _mapscript.new_labelObj()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_labelObj
    __del__ = lambda self: None

    def updateFromString(self, snippet: 'char *') -> "int":
        return _mapscript.labelObj_updateFromString(self, snippet)

    def convertToString(self) -> "char *":
        return _mapscript.labelObj_convertToString(self)

    def removeBinding(self, binding: 'int') -> "int":
        return _mapscript.labelObj_removeBinding(self, binding)

    def getBinding(self, binding: 'int') -> "char *":
        return _mapscript.labelObj_getBinding(self, binding)

    def setBinding(self, binding: 'int', item: 'char *') -> "int":
        return _mapscript.labelObj_setBinding(self, binding, item)

    def setExpression(self, expression: 'char *') -> "int":
        return _mapscript.labelObj_setExpression(self, expression)

    def getExpressionString(self) -> "char *":
        return _mapscript.labelObj_getExpressionString(self)

    def setText(self, text: 'char *') -> "int":
        return _mapscript.labelObj_setText(self, text)

    def getTextString(self) -> "char *":
        return _mapscript.labelObj_getTextString(self)

    def getStyle(self, i: 'int') -> "styleObj *":
        return _mapscript.labelObj_getStyle(self, i)

    def insertStyle(self, style: 'styleObj', index: 'int'=-1) -> "int":
        return _mapscript.labelObj_insertStyle(self, style, index)

    def removeStyle(self, index: 'int') -> "styleObj *":
        return _mapscript.labelObj_removeStyle(self, index)

    def moveStyleUp(self, index: 'int') -> "int":
        return _mapscript.labelObj_moveStyleUp(self, index)

    def moveStyleDown(self, index: 'int') -> "int":
        return _mapscript.labelObj_moveStyleDown(self, index)
labelObj_swigregister = _mapscript.labelObj_swigregister
labelObj_swigregister(labelObj)

MS_LABEL_PERPENDICULAR_OFFSET = _mapscript.MS_LABEL_PERPENDICULAR_OFFSET
MS_LABEL_PERPENDICULAR_TOP_OFFSET = _mapscript.MS_LABEL_PERPENDICULAR_TOP_OFFSET
class classObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, classObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, classObj, name)
    __repr__ = _swig_repr
    __swig_setmethods__["status"] = _mapscript.classObj_status_set
    __swig_getmethods__["status"] = _mapscript.classObj_status_get
    if _newclass:
        status = _swig_property(_mapscript.classObj_status_get, _mapscript.classObj_status_set)
    __swig_getmethods__["numstyles"] = _mapscript.classObj_numstyles_get
    if _newclass:
        numstyles = _swig_property(_mapscript.classObj_numstyles_get)
    __swig_setmethods__["numlabels"] = _mapscript.classObj_numlabels_set
    __swig_getmethods__["numlabels"] = _mapscript.classObj_numlabels_get
    if _newclass:
        numlabels = _swig_property(_mapscript.classObj_numlabels_get, _mapscript.classObj_numlabels_set)
    __swig_setmethods__["name"] = _mapscript.classObj_name_set
    __swig_getmethods__["name"] = _mapscript.classObj_name_get
    if _newclass:
        name = _swig_property(_mapscript.classObj_name_get, _mapscript.classObj_name_set)
    __swig_setmethods__["title"] = _mapscript.classObj_title_set
    __swig_getmethods__["title"] = _mapscript.classObj_title_get
    if _newclass:
        title = _swig_property(_mapscript.classObj_title_get, _mapscript.classObj_title_set)
    __swig_setmethods__["template"] = _mapscript.classObj_template_set
    __swig_getmethods__["template"] = _mapscript.classObj_template_get
    if _newclass:
        template = _swig_property(_mapscript.classObj_template_get, _mapscript.classObj_template_set)
    __swig_getmethods__["metadata"] = _mapscript.classObj_metadata_get
    if _newclass:
        metadata = _swig_property(_mapscript.classObj_metadata_get)
    __swig_getmethods__["validation"] = _mapscript.classObj_validation_get
    if _newclass:
        validation = _swig_property(_mapscript.classObj_validation_get)
    __swig_setmethods__["minscaledenom"] = _mapscript.classObj_minscaledenom_set
    __swig_getmethods__["minscaledenom"] = _mapscript.classObj_minscaledenom_get
    if _newclass:
        minscaledenom = _swig_property(_mapscript.classObj_minscaledenom_get, _mapscript.classObj_minscaledenom_set)
    __swig_setmethods__["maxscaledenom"] = _mapscript.classObj_maxscaledenom_set
    __swig_getmethods__["maxscaledenom"] = _mapscript.classObj_maxscaledenom_get
    if _newclass:
        maxscaledenom = _swig_property(_mapscript.classObj_maxscaledenom_get, _mapscript.classObj_maxscaledenom_set)
    __swig_setmethods__["minfeaturesize"] = _mapscript.classObj_minfeaturesize_set
    __swig_getmethods__["minfeaturesize"] = _mapscript.classObj_minfeaturesize_get
    if _newclass:
        minfeaturesize = _swig_property(_mapscript.classObj_minfeaturesize_get, _mapscript.classObj_minfeaturesize_set)
    __swig_getmethods__["refcount"] = _mapscript.classObj_refcount_get
    if _newclass:
        refcount = _swig_property(_mapscript.classObj_refcount_get)
    __swig_getmethods__["layer"] = _mapscript.classObj_layer_get
    if _newclass:
        layer = _swig_property(_mapscript.classObj_layer_get)
    __swig_setmethods__["debug"] = _mapscript.classObj_debug_set
    __swig_getmethods__["debug"] = _mapscript.classObj_debug_get
    if _newclass:
        debug = _swig_property(_mapscript.classObj_debug_get, _mapscript.classObj_debug_set)
    __swig_setmethods__["keyimage"] = _mapscript.classObj_keyimage_set
    __swig_getmethods__["keyimage"] = _mapscript.classObj_keyimage_get
    if _newclass:
        keyimage = _swig_property(_mapscript.classObj_keyimage_get, _mapscript.classObj_keyimage_set)
    __swig_setmethods__["group"] = _mapscript.classObj_group_set
    __swig_getmethods__["group"] = _mapscript.classObj_group_get
    if _newclass:
        group = _swig_property(_mapscript.classObj_group_get, _mapscript.classObj_group_set)
    __swig_setmethods__["leader"] = _mapscript.classObj_leader_set
    __swig_getmethods__["leader"] = _mapscript.classObj_leader_get
    if _newclass:
        leader = _swig_property(_mapscript.classObj_leader_get, _mapscript.classObj_leader_set)

    def __init__(self, layer: 'layerObj'=None):
        this = _mapscript.new_classObj(layer)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
        if 1:
                    self.p_layer =None
                    try:
        # python 2.5
                        if args and len(args)!=0: 
                            self.p_layer=args[0]
                    except NameError:
        # python 2.6
                        if layer: 
                            self.p_layer=layer



    __swig_destroy__ = _mapscript.delete_classObj
    __del__ = lambda self: None

    def updateFromString(self, snippet: 'char *') -> "int":
        return _mapscript.classObj_updateFromString(self, snippet)

    def convertToString(self) -> "char *":
        return _mapscript.classObj_convertToString(self)

    def clone(self) -> "classObj *":
        return _mapscript.classObj_clone(self)

    def setExpression(self, expression: 'char *') -> "int":
        return _mapscript.classObj_setExpression(self, expression)

    def getExpressionString(self) -> "char *":
        return _mapscript.classObj_getExpressionString(self)

    def setText(self, text: 'char *') -> "int":
        return _mapscript.classObj_setText(self, text)

    def getTextString(self) -> "char *":
        return _mapscript.classObj_getTextString(self)

    def getMetaData(self, name: 'char *') -> "char *":
        return _mapscript.classObj_getMetaData(self, name)

    def setMetaData(self, name: 'char *', value: 'char *') -> "int":
        return _mapscript.classObj_setMetaData(self, name, value)

    def getFirstMetaDataKey(self) -> "char *":
        return _mapscript.classObj_getFirstMetaDataKey(self)

    def getNextMetaDataKey(self, lastkey: 'char *') -> "char *":
        return _mapscript.classObj_getNextMetaDataKey(self, lastkey)

    def drawLegendIcon(self, map: 'mapObj', layer: 'layerObj', width: 'int', height: 'int', dstImage: 'imageObj', dstX: 'int', dstY: 'int') -> "int":
        return _mapscript.classObj_drawLegendIcon(self, map, layer, width, height, dstImage, dstX, dstY)

    def createLegendIcon(self, map: 'mapObj', layer: 'layerObj', width: 'int', height: 'int') -> "imageObj *":
        return _mapscript.classObj_createLegendIcon(self, map, layer, width, height)

    def getLabel(self, i: 'int') -> "labelObj *":
        return _mapscript.classObj_getLabel(self, i)

    def addLabel(self, label: 'labelObj') -> "int":
        return _mapscript.classObj_addLabel(self, label)

    def removeLabel(self, index: 'int') -> "labelObj *":
        return _mapscript.classObj_removeLabel(self, index)

    def getStyle(self, i: 'int') -> "styleObj *":
        return _mapscript.classObj_getStyle(self, i)

    def insertStyle(self, style: 'styleObj', index: 'int'=-1) -> "int":
        return _mapscript.classObj_insertStyle(self, style, index)

    def removeStyle(self, index: 'int') -> "styleObj *":
        return _mapscript.classObj_removeStyle(self, index)

    def moveStyleUp(self, index: 'int') -> "int":
        return _mapscript.classObj_moveStyleUp(self, index)

    def moveStyleDown(self, index: 'int') -> "int":
        return _mapscript.classObj_moveStyleDown(self, index)
classObj_swigregister = _mapscript.classObj_swigregister
classObj_swigregister(classObj)

class labelCacheMemberObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, labelCacheMemberObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, labelCacheMemberObj, name)
    __repr__ = _swig_repr
    __swig_getmethods__["textsymbols"] = _mapscript.labelCacheMemberObj_textsymbols_get
    if _newclass:
        textsymbols = _swig_property(_mapscript.labelCacheMemberObj_textsymbols_get)
    __swig_getmethods__["numtextsymbols"] = _mapscript.labelCacheMemberObj_numtextsymbols_get
    if _newclass:
        numtextsymbols = _swig_property(_mapscript.labelCacheMemberObj_numtextsymbols_get)
    __swig_getmethods__["layerindex"] = _mapscript.labelCacheMemberObj_layerindex_get
    if _newclass:
        layerindex = _swig_property(_mapscript.labelCacheMemberObj_layerindex_get)
    __swig_getmethods__["classindex"] = _mapscript.labelCacheMemberObj_classindex_get
    if _newclass:
        classindex = _swig_property(_mapscript.labelCacheMemberObj_classindex_get)
    __swig_getmethods__["point"] = _mapscript.labelCacheMemberObj_point_get
    if _newclass:
        point = _swig_property(_mapscript.labelCacheMemberObj_point_get)
    __swig_getmethods__["bbox"] = _mapscript.labelCacheMemberObj_bbox_get
    if _newclass:
        bbox = _swig_property(_mapscript.labelCacheMemberObj_bbox_get)
    __swig_getmethods__["status"] = _mapscript.labelCacheMemberObj_status_get
    if _newclass:
        status = _swig_property(_mapscript.labelCacheMemberObj_status_get)
    __swig_getmethods__["markerid"] = _mapscript.labelCacheMemberObj_markerid_get
    if _newclass:
        markerid = _swig_property(_mapscript.labelCacheMemberObj_markerid_get)
    __swig_getmethods__["leaderline"] = _mapscript.labelCacheMemberObj_leaderline_get
    if _newclass:
        leaderline = _swig_property(_mapscript.labelCacheMemberObj_leaderline_get)
    __swig_getmethods__["leaderbbox"] = _mapscript.labelCacheMemberObj_leaderbbox_get
    if _newclass:
        leaderbbox = _swig_property(_mapscript.labelCacheMemberObj_leaderbbox_get)

    def __init__(self):
        this = _mapscript.new_labelCacheMemberObj()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_labelCacheMemberObj
    __del__ = lambda self: None
labelCacheMemberObj_swigregister = _mapscript.labelCacheMemberObj_swigregister
labelCacheMemberObj_swigregister(labelCacheMemberObj)

class markerCacheMemberObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, markerCacheMemberObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, markerCacheMemberObj, name)
    __repr__ = _swig_repr
    __swig_getmethods__["id"] = _mapscript.markerCacheMemberObj_id_get
    if _newclass:
        id = _swig_property(_mapscript.markerCacheMemberObj_id_get)
    __swig_getmethods__["bounds"] = _mapscript.markerCacheMemberObj_bounds_get
    if _newclass:
        bounds = _swig_property(_mapscript.markerCacheMemberObj_bounds_get)

    def __init__(self):
        this = _mapscript.new_markerCacheMemberObj()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_markerCacheMemberObj
    __del__ = lambda self: None
markerCacheMemberObj_swigregister = _mapscript.markerCacheMemberObj_swigregister
markerCacheMemberObj_swigregister(markerCacheMemberObj)

class labelCacheSlotObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, labelCacheSlotObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, labelCacheSlotObj, name)
    __repr__ = _swig_repr
    __swig_getmethods__["labels"] = _mapscript.labelCacheSlotObj_labels_get
    if _newclass:
        labels = _swig_property(_mapscript.labelCacheSlotObj_labels_get)
    __swig_getmethods__["numlabels"] = _mapscript.labelCacheSlotObj_numlabels_get
    if _newclass:
        numlabels = _swig_property(_mapscript.labelCacheSlotObj_numlabels_get)
    __swig_getmethods__["cachesize"] = _mapscript.labelCacheSlotObj_cachesize_get
    if _newclass:
        cachesize = _swig_property(_mapscript.labelCacheSlotObj_cachesize_get)
    __swig_getmethods__["markers"] = _mapscript.labelCacheSlotObj_markers_get
    if _newclass:
        markers = _swig_property(_mapscript.labelCacheSlotObj_markers_get)
    __swig_getmethods__["nummarkers"] = _mapscript.labelCacheSlotObj_nummarkers_get
    if _newclass:
        nummarkers = _swig_property(_mapscript.labelCacheSlotObj_nummarkers_get)
    __swig_getmethods__["markercachesize"] = _mapscript.labelCacheSlotObj_markercachesize_get
    if _newclass:
        markercachesize = _swig_property(_mapscript.labelCacheSlotObj_markercachesize_get)

    def __init__(self):
        this = _mapscript.new_labelCacheSlotObj()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_labelCacheSlotObj
    __del__ = lambda self: None
labelCacheSlotObj_swigregister = _mapscript.labelCacheSlotObj_swigregister
labelCacheSlotObj_swigregister(labelCacheSlotObj)

class labelCacheObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, labelCacheObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, labelCacheObj, name)
    __repr__ = _swig_repr
    __swig_getmethods__["slots"] = _mapscript.labelCacheObj_slots_get
    if _newclass:
        slots = _swig_property(_mapscript.labelCacheObj_slots_get)
    __swig_getmethods__["gutter"] = _mapscript.labelCacheObj_gutter_get
    if _newclass:
        gutter = _swig_property(_mapscript.labelCacheObj_gutter_get)
    __swig_getmethods__["rendered_text_symbols"] = _mapscript.labelCacheObj_rendered_text_symbols_get
    if _newclass:
        rendered_text_symbols = _swig_property(_mapscript.labelCacheObj_rendered_text_symbols_get)
    __swig_getmethods__["num_allocated_rendered_members"] = _mapscript.labelCacheObj_num_allocated_rendered_members_get
    if _newclass:
        num_allocated_rendered_members = _swig_property(_mapscript.labelCacheObj_num_allocated_rendered_members_get)
    __swig_getmethods__["num_rendered_members"] = _mapscript.labelCacheObj_num_rendered_members_get
    if _newclass:
        num_rendered_members = _swig_property(_mapscript.labelCacheObj_num_rendered_members_get)

    def freeCache(self) -> "void":
        return _mapscript.labelCacheObj_freeCache(self)

    def __init__(self):
        this = _mapscript.new_labelCacheObj()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_labelCacheObj
    __del__ = lambda self: None
labelCacheObj_swigregister = _mapscript.labelCacheObj_swigregister
labelCacheObj_swigregister(labelCacheObj)

class resultObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, resultObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, resultObj, name)
    __repr__ = _swig_repr
    __swig_getmethods__["shapeindex"] = _mapscript.resultObj_shapeindex_get
    if _newclass:
        shapeindex = _swig_property(_mapscript.resultObj_shapeindex_get)
    __swig_getmethods__["tileindex"] = _mapscript.resultObj_tileindex_get
    if _newclass:
        tileindex = _swig_property(_mapscript.resultObj_tileindex_get)
    __swig_getmethods__["resultindex"] = _mapscript.resultObj_resultindex_get
    if _newclass:
        resultindex = _swig_property(_mapscript.resultObj_resultindex_get)
    __swig_getmethods__["classindex"] = _mapscript.resultObj_classindex_get
    if _newclass:
        classindex = _swig_property(_mapscript.resultObj_classindex_get)

    def __init__(self, shapeindex: 'long'):
        this = _mapscript.new_resultObj(shapeindex)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_resultObj
    __del__ = lambda self: None
resultObj_swigregister = _mapscript.resultObj_swigregister
resultObj_swigregister(resultObj)

class resultCacheObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, resultCacheObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, resultCacheObj, name)
    __repr__ = _swig_repr
    __swig_getmethods__["numresults"] = _mapscript.resultCacheObj_numresults_get
    if _newclass:
        numresults = _swig_property(_mapscript.resultCacheObj_numresults_get)
    __swig_getmethods__["bounds"] = _mapscript.resultCacheObj_bounds_get
    if _newclass:
        bounds = _swig_property(_mapscript.resultCacheObj_bounds_get)
    __swig_setmethods__["usegetshape"] = _mapscript.resultCacheObj_usegetshape_set
    __swig_getmethods__["usegetshape"] = _mapscript.resultCacheObj_usegetshape_get
    if _newclass:
        usegetshape = _swig_property(_mapscript.resultCacheObj_usegetshape_get, _mapscript.resultCacheObj_usegetshape_set)

    def getResult(self, i: 'int') -> "resultObj *":
        return _mapscript.resultCacheObj_getResult(self, i)

    def __init__(self):
        this = _mapscript.new_resultCacheObj()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_resultCacheObj
    __del__ = lambda self: None
resultCacheObj_swigregister = _mapscript.resultCacheObj_swigregister
resultCacheObj_swigregister(resultCacheObj)

class symbolSetObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, symbolSetObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, symbolSetObj, name)
    __repr__ = _swig_repr
    __swig_setmethods__["filename"] = _mapscript.symbolSetObj_filename_set
    __swig_getmethods__["filename"] = _mapscript.symbolSetObj_filename_get
    if _newclass:
        filename = _swig_property(_mapscript.symbolSetObj_filename_get, _mapscript.symbolSetObj_filename_set)
    __swig_setmethods__["imagecachesize"] = _mapscript.symbolSetObj_imagecachesize_set
    __swig_getmethods__["imagecachesize"] = _mapscript.symbolSetObj_imagecachesize_get
    if _newclass:
        imagecachesize = _swig_property(_mapscript.symbolSetObj_imagecachesize_get, _mapscript.symbolSetObj_imagecachesize_set)
    __swig_getmethods__["numsymbols"] = _mapscript.symbolSetObj_numsymbols_get
    if _newclass:
        numsymbols = _swig_property(_mapscript.symbolSetObj_numsymbols_get)
    __swig_getmethods__["maxsymbols"] = _mapscript.symbolSetObj_maxsymbols_get
    if _newclass:
        maxsymbols = _swig_property(_mapscript.symbolSetObj_maxsymbols_get)

    def __init__(self, symbolfile: 'char const *'=None):
        this = _mapscript.new_symbolSetObj(symbolfile)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_symbolSetObj
    __del__ = lambda self: None

    def getSymbol(self, i: 'int') -> "symbolObj *":
        return _mapscript.symbolSetObj_getSymbol(self, i)

    def getSymbolByName(self, symbolname: 'char *') -> "symbolObj *":
        return _mapscript.symbolSetObj_getSymbolByName(self, symbolname)

    def index(self, symbolname: 'char *') -> "int":
        return _mapscript.symbolSetObj_index(self, symbolname)

    def appendSymbol(self, symbol: 'symbolObj') -> "int":
        return _mapscript.symbolSetObj_appendSymbol(self, symbol)

    def removeSymbol(self, index: 'int') -> "symbolObj *":
        return _mapscript.symbolSetObj_removeSymbol(self, index)

    def save(self, filename: 'char const *') -> "int":
        return _mapscript.symbolSetObj_save(self, filename)
symbolSetObj_swigregister = _mapscript.symbolSetObj_swigregister
symbolSetObj_swigregister(symbolSetObj)

class referenceMapObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, referenceMapObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, referenceMapObj, name)
    __repr__ = _swig_repr
    __swig_setmethods__["extent"] = _mapscript.referenceMapObj_extent_set
    __swig_getmethods__["extent"] = _mapscript.referenceMapObj_extent_get
    if _newclass:
        extent = _swig_property(_mapscript.referenceMapObj_extent_get, _mapscript.referenceMapObj_extent_set)
    __swig_setmethods__["height"] = _mapscript.referenceMapObj_height_set
    __swig_getmethods__["height"] = _mapscript.referenceMapObj_height_get
    if _newclass:
        height = _swig_property(_mapscript.referenceMapObj_height_get, _mapscript.referenceMapObj_height_set)
    __swig_setmethods__["width"] = _mapscript.referenceMapObj_width_set
    __swig_getmethods__["width"] = _mapscript.referenceMapObj_width_get
    if _newclass:
        width = _swig_property(_mapscript.referenceMapObj_width_get, _mapscript.referenceMapObj_width_set)
    __swig_setmethods__["color"] = _mapscript.referenceMapObj_color_set
    __swig_getmethods__["color"] = _mapscript.referenceMapObj_color_get
    if _newclass:
        color = _swig_property(_mapscript.referenceMapObj_color_get, _mapscript.referenceMapObj_color_set)
    __swig_setmethods__["outlinecolor"] = _mapscript.referenceMapObj_outlinecolor_set
    __swig_getmethods__["outlinecolor"] = _mapscript.referenceMapObj_outlinecolor_get
    if _newclass:
        outlinecolor = _swig_property(_mapscript.referenceMapObj_outlinecolor_get, _mapscript.referenceMapObj_outlinecolor_set)
    __swig_setmethods__["image"] = _mapscript.referenceMapObj_image_set
    __swig_getmethods__["image"] = _mapscript.referenceMapObj_image_get
    if _newclass:
        image = _swig_property(_mapscript.referenceMapObj_image_get, _mapscript.referenceMapObj_image_set)
    __swig_setmethods__["status"] = _mapscript.referenceMapObj_status_set
    __swig_getmethods__["status"] = _mapscript.referenceMapObj_status_get
    if _newclass:
        status = _swig_property(_mapscript.referenceMapObj_status_get, _mapscript.referenceMapObj_status_set)
    __swig_setmethods__["marker"] = _mapscript.referenceMapObj_marker_set
    __swig_getmethods__["marker"] = _mapscript.referenceMapObj_marker_get
    if _newclass:
        marker = _swig_property(_mapscript.referenceMapObj_marker_get, _mapscript.referenceMapObj_marker_set)
    __swig_setmethods__["markername"] = _mapscript.referenceMapObj_markername_set
    __swig_getmethods__["markername"] = _mapscript.referenceMapObj_markername_get
    if _newclass:
        markername = _swig_property(_mapscript.referenceMapObj_markername_get, _mapscript.referenceMapObj_markername_set)
    __swig_setmethods__["markersize"] = _mapscript.referenceMapObj_markersize_set
    __swig_getmethods__["markersize"] = _mapscript.referenceMapObj_markersize_get
    if _newclass:
        markersize = _swig_property(_mapscript.referenceMapObj_markersize_get, _mapscript.referenceMapObj_markersize_set)
    __swig_setmethods__["minboxsize"] = _mapscript.referenceMapObj_minboxsize_set
    __swig_getmethods__["minboxsize"] = _mapscript.referenceMapObj_minboxsize_get
    if _newclass:
        minboxsize = _swig_property(_mapscript.referenceMapObj_minboxsize_get, _mapscript.referenceMapObj_minboxsize_set)
    __swig_setmethods__["maxboxsize"] = _mapscript.referenceMapObj_maxboxsize_set
    __swig_getmethods__["maxboxsize"] = _mapscript.referenceMapObj_maxboxsize_get
    if _newclass:
        maxboxsize = _swig_property(_mapscript.referenceMapObj_maxboxsize_get, _mapscript.referenceMapObj_maxboxsize_set)
    __swig_getmethods__["map"] = _mapscript.referenceMapObj_map_get
    if _newclass:
        map = _swig_property(_mapscript.referenceMapObj_map_get)

    def updateFromString(self, snippet: 'char *') -> "int":
        return _mapscript.referenceMapObj_updateFromString(self, snippet)

    def convertToString(self) -> "char *":
        return _mapscript.referenceMapObj_convertToString(self)

    def __init__(self):
        this = _mapscript.new_referenceMapObj()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_referenceMapObj
    __del__ = lambda self: None
referenceMapObj_swigregister = _mapscript.referenceMapObj_swigregister
referenceMapObj_swigregister(referenceMapObj)

class scalebarObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, scalebarObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, scalebarObj, name)
    __repr__ = _swig_repr
    __swig_setmethods__["imagecolor"] = _mapscript.scalebarObj_imagecolor_set
    __swig_getmethods__["imagecolor"] = _mapscript.scalebarObj_imagecolor_get
    if _newclass:
        imagecolor = _swig_property(_mapscript.scalebarObj_imagecolor_get, _mapscript.scalebarObj_imagecolor_set)
    __swig_setmethods__["height"] = _mapscript.scalebarObj_height_set
    __swig_getmethods__["height"] = _mapscript.scalebarObj_height_get
    if _newclass:
        height = _swig_property(_mapscript.scalebarObj_height_get, _mapscript.scalebarObj_height_set)
    __swig_setmethods__["width"] = _mapscript.scalebarObj_width_set
    __swig_getmethods__["width"] = _mapscript.scalebarObj_width_get
    if _newclass:
        width = _swig_property(_mapscript.scalebarObj_width_get, _mapscript.scalebarObj_width_set)
    __swig_setmethods__["style"] = _mapscript.scalebarObj_style_set
    __swig_getmethods__["style"] = _mapscript.scalebarObj_style_get
    if _newclass:
        style = _swig_property(_mapscript.scalebarObj_style_get, _mapscript.scalebarObj_style_set)
    __swig_setmethods__["intervals"] = _mapscript.scalebarObj_intervals_set
    __swig_getmethods__["intervals"] = _mapscript.scalebarObj_intervals_get
    if _newclass:
        intervals = _swig_property(_mapscript.scalebarObj_intervals_get, _mapscript.scalebarObj_intervals_set)
    __swig_setmethods__["label"] = _mapscript.scalebarObj_label_set
    __swig_getmethods__["label"] = _mapscript.scalebarObj_label_get
    if _newclass:
        label = _swig_property(_mapscript.scalebarObj_label_get, _mapscript.scalebarObj_label_set)
    __swig_setmethods__["color"] = _mapscript.scalebarObj_color_set
    __swig_getmethods__["color"] = _mapscript.scalebarObj_color_get
    if _newclass:
        color = _swig_property(_mapscript.scalebarObj_color_get, _mapscript.scalebarObj_color_set)
    __swig_setmethods__["backgroundcolor"] = _mapscript.scalebarObj_backgroundcolor_set
    __swig_getmethods__["backgroundcolor"] = _mapscript.scalebarObj_backgroundcolor_get
    if _newclass:
        backgroundcolor = _swig_property(_mapscript.scalebarObj_backgroundcolor_get, _mapscript.scalebarObj_backgroundcolor_set)
    __swig_setmethods__["outlinecolor"] = _mapscript.scalebarObj_outlinecolor_set
    __swig_getmethods__["outlinecolor"] = _mapscript.scalebarObj_outlinecolor_get
    if _newclass:
        outlinecolor = _swig_property(_mapscript.scalebarObj_outlinecolor_get, _mapscript.scalebarObj_outlinecolor_set)
    __swig_setmethods__["units"] = _mapscript.scalebarObj_units_set
    __swig_getmethods__["units"] = _mapscript.scalebarObj_units_get
    if _newclass:
        units = _swig_property(_mapscript.scalebarObj_units_get, _mapscript.scalebarObj_units_set)
    __swig_setmethods__["status"] = _mapscript.scalebarObj_status_set
    __swig_getmethods__["status"] = _mapscript.scalebarObj_status_get
    if _newclass:
        status = _swig_property(_mapscript.scalebarObj_status_get, _mapscript.scalebarObj_status_set)
    __swig_setmethods__["position"] = _mapscript.scalebarObj_position_set
    __swig_getmethods__["position"] = _mapscript.scalebarObj_position_get
    if _newclass:
        position = _swig_property(_mapscript.scalebarObj_position_get, _mapscript.scalebarObj_position_set)
    __swig_setmethods__["postlabelcache"] = _mapscript.scalebarObj_postlabelcache_set
    __swig_getmethods__["postlabelcache"] = _mapscript.scalebarObj_postlabelcache_get
    if _newclass:
        postlabelcache = _swig_property(_mapscript.scalebarObj_postlabelcache_get, _mapscript.scalebarObj_postlabelcache_set)
    __swig_setmethods__["align"] = _mapscript.scalebarObj_align_set
    __swig_getmethods__["align"] = _mapscript.scalebarObj_align_get
    if _newclass:
        align = _swig_property(_mapscript.scalebarObj_align_get, _mapscript.scalebarObj_align_set)
    __swig_setmethods__["offsetx"] = _mapscript.scalebarObj_offsetx_set
    __swig_getmethods__["offsetx"] = _mapscript.scalebarObj_offsetx_get
    if _newclass:
        offsetx = _swig_property(_mapscript.scalebarObj_offsetx_get, _mapscript.scalebarObj_offsetx_set)
    __swig_setmethods__["offsety"] = _mapscript.scalebarObj_offsety_set
    __swig_getmethods__["offsety"] = _mapscript.scalebarObj_offsety_get
    if _newclass:
        offsety = _swig_property(_mapscript.scalebarObj_offsety_get, _mapscript.scalebarObj_offsety_set)

    def updateFromString(self, snippet: 'char *') -> "int":
        return _mapscript.scalebarObj_updateFromString(self, snippet)

    def convertToString(self) -> "char *":
        return _mapscript.scalebarObj_convertToString(self)

    def __init__(self):
        this = _mapscript.new_scalebarObj()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_scalebarObj
    __del__ = lambda self: None
scalebarObj_swigregister = _mapscript.scalebarObj_swigregister
scalebarObj_swigregister(scalebarObj)

class legendObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, legendObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, legendObj, name)
    __repr__ = _swig_repr
    __swig_setmethods__["imagecolor"] = _mapscript.legendObj_imagecolor_set
    __swig_getmethods__["imagecolor"] = _mapscript.legendObj_imagecolor_get
    if _newclass:
        imagecolor = _swig_property(_mapscript.legendObj_imagecolor_get, _mapscript.legendObj_imagecolor_set)
    __swig_getmethods__["label"] = _mapscript.legendObj_label_get
    if _newclass:
        label = _swig_property(_mapscript.legendObj_label_get)
    __swig_setmethods__["keysizex"] = _mapscript.legendObj_keysizex_set
    __swig_getmethods__["keysizex"] = _mapscript.legendObj_keysizex_get
    if _newclass:
        keysizex = _swig_property(_mapscript.legendObj_keysizex_get, _mapscript.legendObj_keysizex_set)
    __swig_setmethods__["keysizey"] = _mapscript.legendObj_keysizey_set
    __swig_getmethods__["keysizey"] = _mapscript.legendObj_keysizey_get
    if _newclass:
        keysizey = _swig_property(_mapscript.legendObj_keysizey_get, _mapscript.legendObj_keysizey_set)
    __swig_setmethods__["keyspacingx"] = _mapscript.legendObj_keyspacingx_set
    __swig_getmethods__["keyspacingx"] = _mapscript.legendObj_keyspacingx_get
    if _newclass:
        keyspacingx = _swig_property(_mapscript.legendObj_keyspacingx_get, _mapscript.legendObj_keyspacingx_set)
    __swig_setmethods__["keyspacingy"] = _mapscript.legendObj_keyspacingy_set
    __swig_getmethods__["keyspacingy"] = _mapscript.legendObj_keyspacingy_get
    if _newclass:
        keyspacingy = _swig_property(_mapscript.legendObj_keyspacingy_get, _mapscript.legendObj_keyspacingy_set)
    __swig_setmethods__["outlinecolor"] = _mapscript.legendObj_outlinecolor_set
    __swig_getmethods__["outlinecolor"] = _mapscript.legendObj_outlinecolor_get
    if _newclass:
        outlinecolor = _swig_property(_mapscript.legendObj_outlinecolor_get, _mapscript.legendObj_outlinecolor_set)
    __swig_setmethods__["status"] = _mapscript.legendObj_status_set
    __swig_getmethods__["status"] = _mapscript.legendObj_status_get
    if _newclass:
        status = _swig_property(_mapscript.legendObj_status_get, _mapscript.legendObj_status_set)
    __swig_setmethods__["height"] = _mapscript.legendObj_height_set
    __swig_getmethods__["height"] = _mapscript.legendObj_height_get
    if _newclass:
        height = _swig_property(_mapscript.legendObj_height_get, _mapscript.legendObj_height_set)
    __swig_setmethods__["width"] = _mapscript.legendObj_width_set
    __swig_getmethods__["width"] = _mapscript.legendObj_width_get
    if _newclass:
        width = _swig_property(_mapscript.legendObj_width_get, _mapscript.legendObj_width_set)
    __swig_setmethods__["position"] = _mapscript.legendObj_position_set
    __swig_getmethods__["position"] = _mapscript.legendObj_position_get
    if _newclass:
        position = _swig_property(_mapscript.legendObj_position_get, _mapscript.legendObj_position_set)
    __swig_setmethods__["postlabelcache"] = _mapscript.legendObj_postlabelcache_set
    __swig_getmethods__["postlabelcache"] = _mapscript.legendObj_postlabelcache_get
    if _newclass:
        postlabelcache = _swig_property(_mapscript.legendObj_postlabelcache_get, _mapscript.legendObj_postlabelcache_set)
    __swig_setmethods__["template"] = _mapscript.legendObj_template_set
    __swig_getmethods__["template"] = _mapscript.legendObj_template_get
    if _newclass:
        template = _swig_property(_mapscript.legendObj_template_get, _mapscript.legendObj_template_set)
    __swig_getmethods__["map"] = _mapscript.legendObj_map_get
    if _newclass:
        map = _swig_property(_mapscript.legendObj_map_get)

    def updateFromString(self, snippet: 'char *') -> "int":
        return _mapscript.legendObj_updateFromString(self, snippet)

    def convertToString(self) -> "char *":
        return _mapscript.legendObj_convertToString(self)

    def __init__(self):
        this = _mapscript.new_legendObj()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_legendObj
    __del__ = lambda self: None
legendObj_swigregister = _mapscript.legendObj_swigregister
legendObj_swigregister(legendObj)

class imageObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, imageObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, imageObj, name)
    __repr__ = _swig_repr
    __swig_getmethods__["width"] = _mapscript.imageObj_width_get
    if _newclass:
        width = _swig_property(_mapscript.imageObj_width_get)
    __swig_getmethods__["height"] = _mapscript.imageObj_height_get
    if _newclass:
        height = _swig_property(_mapscript.imageObj_height_get)
    __swig_getmethods__["resolution"] = _mapscript.imageObj_resolution_get
    if _newclass:
        resolution = _swig_property(_mapscript.imageObj_resolution_get)
    __swig_getmethods__["resolutionfactor"] = _mapscript.imageObj_resolutionfactor_get
    if _newclass:
        resolutionfactor = _swig_property(_mapscript.imageObj_resolutionfactor_get)
    __swig_getmethods__["imagepath"] = _mapscript.imageObj_imagepath_get
    if _newclass:
        imagepath = _swig_property(_mapscript.imageObj_imagepath_get)
    __swig_getmethods__["imageurl"] = _mapscript.imageObj_imageurl_get
    if _newclass:
        imageurl = _swig_property(_mapscript.imageObj_imageurl_get)
    __swig_getmethods__["format"] = _mapscript.imageObj_format_get
    if _newclass:
        format = _swig_property(_mapscript.imageObj_format_get)

    def __init__(self, *args):
        this = _mapscript.new_imageObj(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_imageObj
    __del__ = lambda self: None

    def save(self, filename: 'char *', map: 'mapObj'=None) -> "void":
        return _mapscript.imageObj_save(self, filename, map)

    def getBytes(self) -> "gdBuffer":
        return _mapscript.imageObj_getBytes(self)

    def getSize(self) -> "int":
        return _mapscript.imageObj_getSize(self)

    def write(self, *args) -> "int":
        return _mapscript.imageObj_write(self, *args)

    def saveToString(self) -> "PyObject *":
        return _mapscript.imageObj_saveToString(self)
imageObj_swigregister = _mapscript.imageObj_swigregister
imageObj_swigregister(imageObj)

class scaleTokenEntryObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, scaleTokenEntryObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, scaleTokenEntryObj, name)
    __repr__ = _swig_repr
    __swig_setmethods__["minscale"] = _mapscript.scaleTokenEntryObj_minscale_set
    __swig_getmethods__["minscale"] = _mapscript.scaleTokenEntryObj_minscale_get
    if _newclass:
        minscale = _swig_property(_mapscript.scaleTokenEntryObj_minscale_get, _mapscript.scaleTokenEntryObj_minscale_set)
    __swig_setmethods__["maxscale"] = _mapscript.scaleTokenEntryObj_maxscale_set
    __swig_getmethods__["maxscale"] = _mapscript.scaleTokenEntryObj_maxscale_get
    if _newclass:
        maxscale = _swig_property(_mapscript.scaleTokenEntryObj_maxscale_get, _mapscript.scaleTokenEntryObj_maxscale_set)
    __swig_setmethods__["value"] = _mapscript.scaleTokenEntryObj_value_set
    __swig_getmethods__["value"] = _mapscript.scaleTokenEntryObj_value_get
    if _newclass:
        value = _swig_property(_mapscript.scaleTokenEntryObj_value_get, _mapscript.scaleTokenEntryObj_value_set)

    def __init__(self):
        this = _mapscript.new_scaleTokenEntryObj()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_scaleTokenEntryObj
    __del__ = lambda self: None
scaleTokenEntryObj_swigregister = _mapscript.scaleTokenEntryObj_swigregister
scaleTokenEntryObj_swigregister(scaleTokenEntryObj)

class scaleTokenObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, scaleTokenObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, scaleTokenObj, name)
    __repr__ = _swig_repr
    __swig_setmethods__["name"] = _mapscript.scaleTokenObj_name_set
    __swig_getmethods__["name"] = _mapscript.scaleTokenObj_name_get
    if _newclass:
        name = _swig_property(_mapscript.scaleTokenObj_name_get, _mapscript.scaleTokenObj_name_set)
    __swig_setmethods__["n_entries"] = _mapscript.scaleTokenObj_n_entries_set
    __swig_getmethods__["n_entries"] = _mapscript.scaleTokenObj_n_entries_get
    if _newclass:
        n_entries = _swig_property(_mapscript.scaleTokenObj_n_entries_get, _mapscript.scaleTokenObj_n_entries_set)
    __swig_setmethods__["tokens"] = _mapscript.scaleTokenObj_tokens_set
    __swig_getmethods__["tokens"] = _mapscript.scaleTokenObj_tokens_get
    if _newclass:
        tokens = _swig_property(_mapscript.scaleTokenObj_tokens_get, _mapscript.scaleTokenObj_tokens_set)

    def __init__(self):
        this = _mapscript.new_scaleTokenObj()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_scaleTokenObj
    __del__ = lambda self: None
scaleTokenObj_swigregister = _mapscript.scaleTokenObj_swigregister
scaleTokenObj_swigregister(scaleTokenObj)

class layerObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, layerObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, layerObj, name)
    __repr__ = _swig_repr
    __swig_setmethods__["classitem"] = _mapscript.layerObj_classitem_set
    __swig_getmethods__["classitem"] = _mapscript.layerObj_classitem_get
    if _newclass:
        classitem = _swig_property(_mapscript.layerObj_classitem_get, _mapscript.layerObj_classitem_set)
    __swig_getmethods__["refcount"] = _mapscript.layerObj_refcount_get
    if _newclass:
        refcount = _swig_property(_mapscript.layerObj_refcount_get)
    __swig_getmethods__["numclasses"] = _mapscript.layerObj_numclasses_get
    if _newclass:
        numclasses = _swig_property(_mapscript.layerObj_numclasses_get)
    __swig_getmethods__["maxclasses"] = _mapscript.layerObj_maxclasses_get
    if _newclass:
        maxclasses = _swig_property(_mapscript.layerObj_maxclasses_get)
    __swig_getmethods__["index"] = _mapscript.layerObj_index_get
    if _newclass:
        index = _swig_property(_mapscript.layerObj_index_get)
    __swig_getmethods__["map"] = _mapscript.layerObj_map_get
    if _newclass:
        map = _swig_property(_mapscript.layerObj_map_get)
    __swig_setmethods__["header"] = _mapscript.layerObj_header_set
    __swig_getmethods__["header"] = _mapscript.layerObj_header_get
    if _newclass:
        header = _swig_property(_mapscript.layerObj_header_get, _mapscript.layerObj_header_set)
    __swig_setmethods__["footer"] = _mapscript.layerObj_footer_set
    __swig_getmethods__["footer"] = _mapscript.layerObj_footer_get
    if _newclass:
        footer = _swig_property(_mapscript.layerObj_footer_get, _mapscript.layerObj_footer_set)
    __swig_setmethods__["template"] = _mapscript.layerObj_template_set
    __swig_getmethods__["template"] = _mapscript.layerObj_template_get
    if _newclass:
        template = _swig_property(_mapscript.layerObj_template_get, _mapscript.layerObj_template_set)
    __swig_setmethods__["name"] = _mapscript.layerObj_name_set
    __swig_getmethods__["name"] = _mapscript.layerObj_name_get
    if _newclass:
        name = _swig_property(_mapscript.layerObj_name_get, _mapscript.layerObj_name_set)
    __swig_setmethods__["group"] = _mapscript.layerObj_group_set
    __swig_getmethods__["group"] = _mapscript.layerObj_group_get
    if _newclass:
        group = _swig_property(_mapscript.layerObj_group_get, _mapscript.layerObj_group_set)
    __swig_setmethods__["status"] = _mapscript.layerObj_status_set
    __swig_getmethods__["status"] = _mapscript.layerObj_status_get
    if _newclass:
        status = _swig_property(_mapscript.layerObj_status_get, _mapscript.layerObj_status_set)
    __swig_setmethods__["data"] = _mapscript.layerObj_data_set
    __swig_getmethods__["data"] = _mapscript.layerObj_data_get
    if _newclass:
        data = _swig_property(_mapscript.layerObj_data_get, _mapscript.layerObj_data_set)
    __swig_setmethods__["type"] = _mapscript.layerObj_type_set
    __swig_getmethods__["type"] = _mapscript.layerObj_type_get
    if _newclass:
        type = _swig_property(_mapscript.layerObj_type_get, _mapscript.layerObj_type_set)
    __swig_setmethods__["tolerance"] = _mapscript.layerObj_tolerance_set
    __swig_getmethods__["tolerance"] = _mapscript.layerObj_tolerance_get
    if _newclass:
        tolerance = _swig_property(_mapscript.layerObj_tolerance_get, _mapscript.layerObj_tolerance_set)
    __swig_setmethods__["toleranceunits"] = _mapscript.layerObj_toleranceunits_set
    __swig_getmethods__["toleranceunits"] = _mapscript.layerObj_toleranceunits_get
    if _newclass:
        toleranceunits = _swig_property(_mapscript.layerObj_toleranceunits_get, _mapscript.layerObj_toleranceunits_set)
    __swig_setmethods__["symbolscaledenom"] = _mapscript.layerObj_symbolscaledenom_set
    __swig_getmethods__["symbolscaledenom"] = _mapscript.layerObj_symbolscaledenom_get
    if _newclass:
        symbolscaledenom = _swig_property(_mapscript.layerObj_symbolscaledenom_get, _mapscript.layerObj_symbolscaledenom_set)
    __swig_setmethods__["minscaledenom"] = _mapscript.layerObj_minscaledenom_set
    __swig_getmethods__["minscaledenom"] = _mapscript.layerObj_minscaledenom_get
    if _newclass:
        minscaledenom = _swig_property(_mapscript.layerObj_minscaledenom_get, _mapscript.layerObj_minscaledenom_set)
    __swig_setmethods__["maxscaledenom"] = _mapscript.layerObj_maxscaledenom_set
    __swig_getmethods__["maxscaledenom"] = _mapscript.layerObj_maxscaledenom_get
    if _newclass:
        maxscaledenom = _swig_property(_mapscript.layerObj_maxscaledenom_get, _mapscript.layerObj_maxscaledenom_set)
    __swig_setmethods__["minfeaturesize"] = _mapscript.layerObj_minfeaturesize_set
    __swig_getmethods__["minfeaturesize"] = _mapscript.layerObj_minfeaturesize_get
    if _newclass:
        minfeaturesize = _swig_property(_mapscript.layerObj_minfeaturesize_get, _mapscript.layerObj_minfeaturesize_set)
    __swig_setmethods__["labelminscaledenom"] = _mapscript.layerObj_labelminscaledenom_set
    __swig_getmethods__["labelminscaledenom"] = _mapscript.layerObj_labelminscaledenom_get
    if _newclass:
        labelminscaledenom = _swig_property(_mapscript.layerObj_labelminscaledenom_get, _mapscript.layerObj_labelminscaledenom_set)
    __swig_setmethods__["labelmaxscaledenom"] = _mapscript.layerObj_labelmaxscaledenom_set
    __swig_getmethods__["labelmaxscaledenom"] = _mapscript.layerObj_labelmaxscaledenom_get
    if _newclass:
        labelmaxscaledenom = _swig_property(_mapscript.layerObj_labelmaxscaledenom_get, _mapscript.layerObj_labelmaxscaledenom_set)
    __swig_setmethods__["mingeowidth"] = _mapscript.layerObj_mingeowidth_set
    __swig_getmethods__["mingeowidth"] = _mapscript.layerObj_mingeowidth_get
    if _newclass:
        mingeowidth = _swig_property(_mapscript.layerObj_mingeowidth_get, _mapscript.layerObj_mingeowidth_set)
    __swig_setmethods__["maxgeowidth"] = _mapscript.layerObj_maxgeowidth_set
    __swig_getmethods__["maxgeowidth"] = _mapscript.layerObj_maxgeowidth_get
    if _newclass:
        maxgeowidth = _swig_property(_mapscript.layerObj_maxgeowidth_get, _mapscript.layerObj_maxgeowidth_set)
    __swig_setmethods__["sizeunits"] = _mapscript.layerObj_sizeunits_set
    __swig_getmethods__["sizeunits"] = _mapscript.layerObj_sizeunits_get
    if _newclass:
        sizeunits = _swig_property(_mapscript.layerObj_sizeunits_get, _mapscript.layerObj_sizeunits_set)
    __swig_setmethods__["maxfeatures"] = _mapscript.layerObj_maxfeatures_set
    __swig_getmethods__["maxfeatures"] = _mapscript.layerObj_maxfeatures_get
    if _newclass:
        maxfeatures = _swig_property(_mapscript.layerObj_maxfeatures_get, _mapscript.layerObj_maxfeatures_set)
    __swig_setmethods__["startindex"] = _mapscript.layerObj_startindex_set
    __swig_getmethods__["startindex"] = _mapscript.layerObj_startindex_get
    if _newclass:
        startindex = _swig_property(_mapscript.layerObj_startindex_get, _mapscript.layerObj_startindex_set)
    __swig_setmethods__["offsite"] = _mapscript.layerObj_offsite_set
    __swig_getmethods__["offsite"] = _mapscript.layerObj_offsite_get
    if _newclass:
        offsite = _swig_property(_mapscript.layerObj_offsite_get, _mapscript.layerObj_offsite_set)
    __swig_setmethods__["transform"] = _mapscript.layerObj_transform_set
    __swig_getmethods__["transform"] = _mapscript.layerObj_transform_get
    if _newclass:
        transform = _swig_property(_mapscript.layerObj_transform_get, _mapscript.layerObj_transform_set)
    __swig_setmethods__["labelcache"] = _mapscript.layerObj_labelcache_set
    __swig_getmethods__["labelcache"] = _mapscript.layerObj_labelcache_get
    if _newclass:
        labelcache = _swig_property(_mapscript.layerObj_labelcache_get, _mapscript.layerObj_labelcache_set)
    __swig_setmethods__["postlabelcache"] = _mapscript.layerObj_postlabelcache_set
    __swig_getmethods__["postlabelcache"] = _mapscript.layerObj_postlabelcache_get
    if _newclass:
        postlabelcache = _swig_property(_mapscript.layerObj_postlabelcache_get, _mapscript.layerObj_postlabelcache_set)
    __swig_setmethods__["labelitem"] = _mapscript.layerObj_labelitem_set
    __swig_getmethods__["labelitem"] = _mapscript.layerObj_labelitem_get
    if _newclass:
        labelitem = _swig_property(_mapscript.layerObj_labelitem_get, _mapscript.layerObj_labelitem_set)
    __swig_setmethods__["tileitem"] = _mapscript.layerObj_tileitem_set
    __swig_getmethods__["tileitem"] = _mapscript.layerObj_tileitem_get
    if _newclass:
        tileitem = _swig_property(_mapscript.layerObj_tileitem_get, _mapscript.layerObj_tileitem_set)
    __swig_setmethods__["tileindex"] = _mapscript.layerObj_tileindex_set
    __swig_getmethods__["tileindex"] = _mapscript.layerObj_tileindex_get
    if _newclass:
        tileindex = _swig_property(_mapscript.layerObj_tileindex_get, _mapscript.layerObj_tileindex_set)
    __swig_setmethods__["tilesrs"] = _mapscript.layerObj_tilesrs_set
    __swig_getmethods__["tilesrs"] = _mapscript.layerObj_tilesrs_get
    if _newclass:
        tilesrs = _swig_property(_mapscript.layerObj_tilesrs_get, _mapscript.layerObj_tilesrs_set)
    __swig_setmethods__["units"] = _mapscript.layerObj_units_set
    __swig_getmethods__["units"] = _mapscript.layerObj_units_get
    if _newclass:
        units = _swig_property(_mapscript.layerObj_units_get, _mapscript.layerObj_units_set)
    __swig_setmethods__["connection"] = _mapscript.layerObj_connection_set
    __swig_getmethods__["connection"] = _mapscript.layerObj_connection_get
    if _newclass:
        connection = _swig_property(_mapscript.layerObj_connection_get, _mapscript.layerObj_connection_set)
    __swig_setmethods__["plugin_library"] = _mapscript.layerObj_plugin_library_set
    __swig_getmethods__["plugin_library"] = _mapscript.layerObj_plugin_library_get
    if _newclass:
        plugin_library = _swig_property(_mapscript.layerObj_plugin_library_get, _mapscript.layerObj_plugin_library_set)
    __swig_setmethods__["plugin_library_original"] = _mapscript.layerObj_plugin_library_original_set
    __swig_getmethods__["plugin_library_original"] = _mapscript.layerObj_plugin_library_original_get
    if _newclass:
        plugin_library_original = _swig_property(_mapscript.layerObj_plugin_library_original_get, _mapscript.layerObj_plugin_library_original_set)
    __swig_setmethods__["connectiontype"] = _mapscript.layerObj_connectiontype_set
    __swig_getmethods__["connectiontype"] = _mapscript.layerObj_connectiontype_get
    if _newclass:
        connectiontype = _swig_property(_mapscript.layerObj_connectiontype_get, _mapscript.layerObj_connectiontype_set)
    __swig_getmethods__["numitems"] = _mapscript.layerObj_numitems_get
    if _newclass:
        numitems = _swig_property(_mapscript.layerObj_numitems_get)
    __swig_setmethods__["bandsitem"] = _mapscript.layerObj_bandsitem_set
    __swig_getmethods__["bandsitem"] = _mapscript.layerObj_bandsitem_get
    if _newclass:
        bandsitem = _swig_property(_mapscript.layerObj_bandsitem_get, _mapscript.layerObj_bandsitem_set)
    __swig_setmethods__["filteritem"] = _mapscript.layerObj_filteritem_set
    __swig_getmethods__["filteritem"] = _mapscript.layerObj_filteritem_get
    if _newclass:
        filteritem = _swig_property(_mapscript.layerObj_filteritem_get, _mapscript.layerObj_filteritem_set)
    __swig_setmethods__["styleitem"] = _mapscript.layerObj_styleitem_set
    __swig_getmethods__["styleitem"] = _mapscript.layerObj_styleitem_get
    if _newclass:
        styleitem = _swig_property(_mapscript.layerObj_styleitem_get, _mapscript.layerObj_styleitem_set)
    __swig_setmethods__["requires"] = _mapscript.layerObj_requires_set
    __swig_getmethods__["requires"] = _mapscript.layerObj_requires_get
    if _newclass:
        requires = _swig_property(_mapscript.layerObj_requires_get, _mapscript.layerObj_requires_set)
    __swig_setmethods__["labelrequires"] = _mapscript.layerObj_labelrequires_set
    __swig_getmethods__["labelrequires"] = _mapscript.layerObj_labelrequires_get
    if _newclass:
        labelrequires = _swig_property(_mapscript.layerObj_labelrequires_get, _mapscript.layerObj_labelrequires_set)
    __swig_getmethods__["metadata"] = _mapscript.layerObj_metadata_get
    if _newclass:
        metadata = _swig_property(_mapscript.layerObj_metadata_get)
    __swig_getmethods__["validation"] = _mapscript.layerObj_validation_get
    if _newclass:
        validation = _swig_property(_mapscript.layerObj_validation_get)
    __swig_getmethods__["bindvals"] = _mapscript.layerObj_bindvals_get
    if _newclass:
        bindvals = _swig_property(_mapscript.layerObj_bindvals_get)
    __swig_getmethods__["cluster"] = _mapscript.layerObj_cluster_get
    if _newclass:
        cluster = _swig_property(_mapscript.layerObj_cluster_get)
    __swig_setmethods__["dump"] = _mapscript.layerObj_dump_set
    __swig_getmethods__["dump"] = _mapscript.layerObj_dump_get
    if _newclass:
        dump = _swig_property(_mapscript.layerObj_dump_get, _mapscript.layerObj_dump_set)
    __swig_setmethods__["debug"] = _mapscript.layerObj_debug_set
    __swig_getmethods__["debug"] = _mapscript.layerObj_debug_get
    if _newclass:
        debug = _swig_property(_mapscript.layerObj_debug_get, _mapscript.layerObj_debug_set)
    __swig_getmethods__["extent"] = _mapscript.layerObj_extent_get
    if _newclass:
        extent = _swig_property(_mapscript.layerObj_extent_get)
    __swig_getmethods__["numprocessing"] = _mapscript.layerObj_numprocessing_get
    if _newclass:
        numprocessing = _swig_property(_mapscript.layerObj_numprocessing_get)
    __swig_getmethods__["numjoins"] = _mapscript.layerObj_numjoins_get
    if _newclass:
        numjoins = _swig_property(_mapscript.layerObj_numjoins_get)
    __swig_setmethods__["classgroup"] = _mapscript.layerObj_classgroup_set
    __swig_getmethods__["classgroup"] = _mapscript.layerObj_classgroup_get
    if _newclass:
        classgroup = _swig_property(_mapscript.layerObj_classgroup_get, _mapscript.layerObj_classgroup_set)
    __swig_setmethods__["mask"] = _mapscript.layerObj_mask_set
    __swig_getmethods__["mask"] = _mapscript.layerObj_mask_get
    if _newclass:
        mask = _swig_property(_mapscript.layerObj_mask_get, _mapscript.layerObj_mask_set)
    __swig_setmethods__["encoding"] = _mapscript.layerObj_encoding_set
    __swig_getmethods__["encoding"] = _mapscript.layerObj_encoding_get
    if _newclass:
        encoding = _swig_property(_mapscript.layerObj_encoding_get, _mapscript.layerObj_encoding_set)
    __swig_setmethods__["utfitem"] = _mapscript.layerObj_utfitem_set
    __swig_getmethods__["utfitem"] = _mapscript.layerObj_utfitem_get
    if _newclass:
        utfitem = _swig_property(_mapscript.layerObj_utfitem_get, _mapscript.layerObj_utfitem_set)
    __swig_setmethods__["utfitemindex"] = _mapscript.layerObj_utfitemindex_set
    __swig_getmethods__["utfitemindex"] = _mapscript.layerObj_utfitemindex_get
    if _newclass:
        utfitemindex = _swig_property(_mapscript.layerObj_utfitemindex_get, _mapscript.layerObj_utfitemindex_set)
    __swig_setmethods__["utfdata"] = _mapscript.layerObj_utfdata_set
    __swig_getmethods__["utfdata"] = _mapscript.layerObj_utfdata_get
    if _newclass:
        utfdata = _swig_property(_mapscript.layerObj_utfdata_get, _mapscript.layerObj_utfdata_set)
    __swig_setmethods__["compositer"] = _mapscript.layerObj_compositer_set
    __swig_getmethods__["compositer"] = _mapscript.layerObj_compositer_get
    if _newclass:
        compositer = _swig_property(_mapscript.layerObj_compositer_get, _mapscript.layerObj_compositer_set)

    def __init__(self, map: 'mapObj'=None):
        this = _mapscript.new_layerObj(map)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
        if 1:
                    self.p_map=None
                    try:
        # python 2.5
                        if args and len(args)!=0: 
                            self.p_map=args[0]
                    except NameError:
        # python 2.6
                        if map: 
                            self.p_map=map




    def setOpacity(self, opacity: 'int') -> "void":
        return _mapscript.layerObj_setOpacity(self, opacity)

    def getOpacity(self) -> "int":
        return _mapscript.layerObj_getOpacity(self)
    __swig_destroy__ = _mapscript.delete_layerObj
    __del__ = lambda self: None

    def clone(self) -> "layerObj *":
        return _mapscript.layerObj_clone(self)

    def updateFromString(self, snippet: 'char *') -> "int":
        return _mapscript.layerObj_updateFromString(self, snippet)

    def convertToString(self) -> "char *":
        return _mapscript.layerObj_convertToString(self)

    def insertClass(*args):
        actualIndex=_mapscript.layerObj_insertClass(*args)
        args[1].p_layer=args[0]
        return actualIndex


    def removeClass(self, index: 'int') -> "classObj *":
        return _mapscript.layerObj_removeClass(self, index)

    def open(self) -> "int":
        return _mapscript.layerObj_open(self)

    def whichShapes(self, rect: 'rectObj') -> "int":
        return _mapscript.layerObj_whichShapes(self, rect)

    def nextShape(self) -> "shapeObj *":
        return _mapscript.layerObj_nextShape(self)

    def close(self) -> "void":
        return _mapscript.layerObj_close(self)

    def getShape(self, record: 'resultObj') -> "shapeObj *":
        return _mapscript.layerObj_getShape(self, record)

    def getNumResults(self) -> "int":
        return _mapscript.layerObj_getNumResults(self)

    def getResultsBounds(self) -> "rectObj *":
        return _mapscript.layerObj_getResultsBounds(self)

    def getResult(self, i: 'int') -> "resultObj *":
        return _mapscript.layerObj_getResult(self, i)

    def getClass(*args):
        clazz = _mapscript.layerObj_getClass(*args)
        if clazz:
            if args and len(args)!=0:
                clazz.p_layer=args[0]
            else:
                clazz.p_layer=None
        return clazz


    def getItem(self, i: 'int') -> "char *":
        return _mapscript.layerObj_getItem(self, i)

    def setItems(self, items: 'char **', numitems: 'int') -> "int":
        return _mapscript.layerObj_setItems(self, items, numitems)

    def draw(self, map: 'mapObj', image: 'imageObj') -> "int":
        return _mapscript.layerObj_draw(self, map, image)

    def drawQuery(self, map: 'mapObj', image: 'imageObj') -> "int":
        return _mapscript.layerObj_drawQuery(self, map, image)

    def queryByFilter(self, map: 'mapObj', string: 'char *') -> "int":
        return _mapscript.layerObj_queryByFilter(self, map, string)

    def queryByAttributes(self, map: 'mapObj', qitem: 'char *', qstring: 'char *', mode: 'int') -> "int":
        return _mapscript.layerObj_queryByAttributes(self, map, qitem, qstring, mode)

    def queryByPoint(self, map: 'mapObj', point: 'pointObj', mode: 'int', buffer: 'double') -> "int":
        return _mapscript.layerObj_queryByPoint(self, map, point, mode, buffer)

    def queryByRect(self, map: 'mapObj', rect: 'rectObj') -> "int":
        return _mapscript.layerObj_queryByRect(self, map, rect)

    def queryByFeatures(self, map: 'mapObj', slayer: 'int') -> "int":
        return _mapscript.layerObj_queryByFeatures(self, map, slayer)

    def queryByShape(self, map: 'mapObj', shape: 'shapeObj') -> "int":
        return _mapscript.layerObj_queryByShape(self, map, shape)

    def queryByIndex(self, map: 'mapObj', tileindex: 'int', shapeindex: 'int', bAddToQuery: 'int'=0) -> "int":
        return _mapscript.layerObj_queryByIndex(self, map, tileindex, shapeindex, bAddToQuery)

    def getResults(self) -> "resultCacheObj *":
        return _mapscript.layerObj_getResults(self)

    def setFilter(self, filter: 'char *') -> "int":
        return _mapscript.layerObj_setFilter(self, filter)

    def getFilterString(self) -> "char *":
        return _mapscript.layerObj_getFilterString(self)

    def setWKTProjection(self, wkt: 'char *') -> "int":
        return _mapscript.layerObj_setWKTProjection(self, wkt)

    def getProjection(self) -> "char *":
        return _mapscript.layerObj_getProjection(self)

    def setProjection(self, proj4: 'char *') -> "int":
        return _mapscript.layerObj_setProjection(self, proj4)

    def addFeature(self, shape: 'shapeObj') -> "int":
        return _mapscript.layerObj_addFeature(self, shape)

    def getNumFeatures(self) -> "int":
        return _mapscript.layerObj_getNumFeatures(self)

    def getExtent(self) -> "rectObj *":
        return _mapscript.layerObj_getExtent(self)

    def setExtent(self, minx: 'double'=-1.0, miny: 'double'=-1.0, maxx: 'double'=-1.0, maxy: 'double'=-1.0) -> "int":
        return _mapscript.layerObj_setExtent(self, minx, miny, maxx, maxy)

    def getMetaData(self, name: 'char *') -> "char *":
        return _mapscript.layerObj_getMetaData(self, name)

    def setMetaData(self, name: 'char *', value: 'char *') -> "int":
        return _mapscript.layerObj_setMetaData(self, name, value)

    def removeMetaData(self, name: 'char *') -> "int":
        return _mapscript.layerObj_removeMetaData(self, name)

    def getFirstMetaDataKey(self) -> "char *":
        return _mapscript.layerObj_getFirstMetaDataKey(self)

    def getNextMetaDataKey(self, lastkey: 'char *') -> "char *":
        return _mapscript.layerObj_getNextMetaDataKey(self, lastkey)

    def getWMSFeatureInfoURL(self, map: 'mapObj', click_x: 'int', click_y: 'int', feature_count: 'int', info_format: 'char *') -> "char *":
        return _mapscript.layerObj_getWMSFeatureInfoURL(self, map, click_x, click_y, feature_count, info_format)

    def executeWFSGetFeature(self, layer: 'layerObj') -> "char *":
        return _mapscript.layerObj_executeWFSGetFeature(self, layer)

    def applySLD(self, sld: 'char *', stylelayer: 'char *') -> "int":
        return _mapscript.layerObj_applySLD(self, sld, stylelayer)

    def applySLDURL(self, sld: 'char *', stylelayer: 'char *') -> "int":
        return _mapscript.layerObj_applySLDURL(self, sld, stylelayer)

    def generateSLD(self) -> "char *":
        return _mapscript.layerObj_generateSLD(self)

    def isVisible(self) -> "int":
        return _mapscript.layerObj_isVisible(self)

    def moveClassUp(self, index: 'int') -> "int":
        return _mapscript.layerObj_moveClassUp(self, index)

    def moveClassDown(self, index: 'int') -> "int":
        return _mapscript.layerObj_moveClassDown(self, index)

    def setProcessingKey(self, key: 'char const *', value: 'char const *') -> "void":
        return _mapscript.layerObj_setProcessingKey(self, key, value)

    def setProcessing(self, directive: 'char const *') -> "void":
        return _mapscript.layerObj_setProcessing(self, directive)

    def addProcessing(self, directive: 'char const *') -> "void":
        return _mapscript.layerObj_addProcessing(self, directive)

    def getProcessing(self, index: 'int') -> "char *":
        return _mapscript.layerObj_getProcessing(self, index)

    def getProcessingKey(self, key: 'char const *') -> "char *":
        return _mapscript.layerObj_getProcessingKey(self, key)

    def clearProcessing(self) -> "int":
        return _mapscript.layerObj_clearProcessing(self)

    def setConnectionType(self, connectiontype: 'int', library_str: 'char const *') -> "int":
        return _mapscript.layerObj_setConnectionType(self, connectiontype, library_str)

    def getClassIndex(self, map: 'mapObj', shape: 'shapeObj', classgroup: 'int *'=None, numclasses: 'int'=0) -> "int":
        return _mapscript.layerObj_getClassIndex(self, map, shape, classgroup, numclasses)

    def getGeomTransform(self) -> "char *":
        return _mapscript.layerObj_getGeomTransform(self)

    def setGeomTransform(self, transform: 'char *') -> "void":
        return _mapscript.layerObj_setGeomTransform(self, transform)

    def getItemType(self, i: 'int') -> "char *":
        """
        getItemType(layerObj self, int i) -> char *

        Parameters
        ----------
        i: int


        Returns the requested item's field type.
        A layer must be open to retrieve the item definition. 

        Pass in the attribute index to retrieve the type. The 
        layer's numitems property contains the number of items 
        available, and the first item is index zero.
        """
        return _mapscript.layerObj_getItemType(self, i)



    def getItemDefinitions(self):
        """
        **Python MapScript only**

        Return item (field) names and their types if available.
        Field types are specified using GML metadata and can be one of the following:

        ``Integer|Long|Real|Character|Date|Boolean``

        """
        item_names = [self.getItem(idx) for idx in range(0, self.numitems)]
        item_types = [self.getItemType(idx) for idx in range(0, self.numitems)]
        return zip(item_names, item_types)


layerObj_swigregister = _mapscript.layerObj_swigregister
layerObj_swigregister(layerObj)

class mapObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, mapObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, mapObj, name)
    __repr__ = _swig_repr
    __swig_setmethods__["name"] = _mapscript.mapObj_name_set
    __swig_getmethods__["name"] = _mapscript.mapObj_name_get
    if _newclass:
        name = _swig_property(_mapscript.mapObj_name_get, _mapscript.mapObj_name_set)
    __swig_setmethods__["status"] = _mapscript.mapObj_status_set
    __swig_getmethods__["status"] = _mapscript.mapObj_status_get
    if _newclass:
        status = _swig_property(_mapscript.mapObj_status_get, _mapscript.mapObj_status_set)
    __swig_setmethods__["height"] = _mapscript.mapObj_height_set
    __swig_getmethods__["height"] = _mapscript.mapObj_height_get
    if _newclass:
        height = _swig_property(_mapscript.mapObj_height_get, _mapscript.mapObj_height_set)
    __swig_setmethods__["width"] = _mapscript.mapObj_width_set
    __swig_getmethods__["width"] = _mapscript.mapObj_width_get
    if _newclass:
        width = _swig_property(_mapscript.mapObj_width_get, _mapscript.mapObj_width_set)
    __swig_setmethods__["maxsize"] = _mapscript.mapObj_maxsize_set
    __swig_getmethods__["maxsize"] = _mapscript.mapObj_maxsize_get
    if _newclass:
        maxsize = _swig_property(_mapscript.mapObj_maxsize_get, _mapscript.mapObj_maxsize_set)
    __swig_getmethods__["refcount"] = _mapscript.mapObj_refcount_get
    if _newclass:
        refcount = _swig_property(_mapscript.mapObj_refcount_get)
    __swig_getmethods__["numlayers"] = _mapscript.mapObj_numlayers_get
    if _newclass:
        numlayers = _swig_property(_mapscript.mapObj_numlayers_get)
    __swig_getmethods__["maxlayers"] = _mapscript.mapObj_maxlayers_get
    if _newclass:
        maxlayers = _swig_property(_mapscript.mapObj_maxlayers_get)
    __swig_getmethods__["symbolset"] = _mapscript.mapObj_symbolset_get
    if _newclass:
        symbolset = _swig_property(_mapscript.mapObj_symbolset_get)
    __swig_getmethods__["fontset"] = _mapscript.mapObj_fontset_get
    if _newclass:
        fontset = _swig_property(_mapscript.mapObj_fontset_get)
    __swig_getmethods__["labelcache"] = _mapscript.mapObj_labelcache_get
    if _newclass:
        labelcache = _swig_property(_mapscript.mapObj_labelcache_get)
    __swig_setmethods__["transparent"] = _mapscript.mapObj_transparent_set
    __swig_getmethods__["transparent"] = _mapscript.mapObj_transparent_get
    if _newclass:
        transparent = _swig_property(_mapscript.mapObj_transparent_get, _mapscript.mapObj_transparent_set)
    __swig_setmethods__["interlace"] = _mapscript.mapObj_interlace_set
    __swig_getmethods__["interlace"] = _mapscript.mapObj_interlace_get
    if _newclass:
        interlace = _swig_property(_mapscript.mapObj_interlace_get, _mapscript.mapObj_interlace_set)
    __swig_setmethods__["imagequality"] = _mapscript.mapObj_imagequality_set
    __swig_getmethods__["imagequality"] = _mapscript.mapObj_imagequality_get
    if _newclass:
        imagequality = _swig_property(_mapscript.mapObj_imagequality_get, _mapscript.mapObj_imagequality_set)
    __swig_setmethods__["extent"] = _mapscript.mapObj_extent_set
    __swig_getmethods__["extent"] = _mapscript.mapObj_extent_get
    if _newclass:
        extent = _swig_property(_mapscript.mapObj_extent_get, _mapscript.mapObj_extent_set)
    __swig_setmethods__["cellsize"] = _mapscript.mapObj_cellsize_set
    __swig_getmethods__["cellsize"] = _mapscript.mapObj_cellsize_get
    if _newclass:
        cellsize = _swig_property(_mapscript.mapObj_cellsize_get, _mapscript.mapObj_cellsize_set)
    __swig_setmethods__["units"] = _mapscript.mapObj_units_set
    __swig_getmethods__["units"] = _mapscript.mapObj_units_get
    if _newclass:
        units = _swig_property(_mapscript.mapObj_units_get, _mapscript.mapObj_units_set)
    __swig_setmethods__["scaledenom"] = _mapscript.mapObj_scaledenom_set
    __swig_getmethods__["scaledenom"] = _mapscript.mapObj_scaledenom_get
    if _newclass:
        scaledenom = _swig_property(_mapscript.mapObj_scaledenom_get, _mapscript.mapObj_scaledenom_set)
    __swig_setmethods__["resolution"] = _mapscript.mapObj_resolution_set
    __swig_getmethods__["resolution"] = _mapscript.mapObj_resolution_get
    if _newclass:
        resolution = _swig_property(_mapscript.mapObj_resolution_get, _mapscript.mapObj_resolution_set)
    __swig_setmethods__["defresolution"] = _mapscript.mapObj_defresolution_set
    __swig_getmethods__["defresolution"] = _mapscript.mapObj_defresolution_get
    if _newclass:
        defresolution = _swig_property(_mapscript.mapObj_defresolution_get, _mapscript.mapObj_defresolution_set)
    __swig_setmethods__["shapepath"] = _mapscript.mapObj_shapepath_set
    __swig_getmethods__["shapepath"] = _mapscript.mapObj_shapepath_get
    if _newclass:
        shapepath = _swig_property(_mapscript.mapObj_shapepath_get, _mapscript.mapObj_shapepath_set)
    __swig_setmethods__["mappath"] = _mapscript.mapObj_mappath_set
    __swig_getmethods__["mappath"] = _mapscript.mapObj_mappath_get
    if _newclass:
        mappath = _swig_property(_mapscript.mapObj_mappath_get, _mapscript.mapObj_mappath_set)
    __swig_setmethods__["imagecolor"] = _mapscript.mapObj_imagecolor_set
    __swig_getmethods__["imagecolor"] = _mapscript.mapObj_imagecolor_get
    if _newclass:
        imagecolor = _swig_property(_mapscript.mapObj_imagecolor_get, _mapscript.mapObj_imagecolor_set)
    __swig_getmethods__["numoutputformats"] = _mapscript.mapObj_numoutputformats_get
    if _newclass:
        numoutputformats = _swig_property(_mapscript.mapObj_numoutputformats_get)
    __swig_getmethods__["outputformat"] = _mapscript.mapObj_outputformat_get
    if _newclass:
        outputformat = _swig_property(_mapscript.mapObj_outputformat_get)
    __swig_getmethods__["imagetype"] = _mapscript.mapObj_imagetype_get
    if _newclass:
        imagetype = _swig_property(_mapscript.mapObj_imagetype_get)
    __swig_getmethods__["reference"] = _mapscript.mapObj_reference_get
    if _newclass:
        reference = _swig_property(_mapscript.mapObj_reference_get)
    __swig_getmethods__["scalebar"] = _mapscript.mapObj_scalebar_get
    if _newclass:
        scalebar = _swig_property(_mapscript.mapObj_scalebar_get)
    __swig_getmethods__["legend"] = _mapscript.mapObj_legend_get
    if _newclass:
        legend = _swig_property(_mapscript.mapObj_legend_get)
    __swig_getmethods__["querymap"] = _mapscript.mapObj_querymap_get
    if _newclass:
        querymap = _swig_property(_mapscript.mapObj_querymap_get)
    __swig_getmethods__["web"] = _mapscript.mapObj_web_get
    if _newclass:
        web = _swig_property(_mapscript.mapObj_web_get)
    __swig_setmethods__["layerorder"] = _mapscript.mapObj_layerorder_set
    __swig_getmethods__["layerorder"] = _mapscript.mapObj_layerorder_get
    if _newclass:
        layerorder = _swig_property(_mapscript.mapObj_layerorder_get, _mapscript.mapObj_layerorder_set)
    __swig_setmethods__["debug"] = _mapscript.mapObj_debug_set
    __swig_getmethods__["debug"] = _mapscript.mapObj_debug_get
    if _newclass:
        debug = _swig_property(_mapscript.mapObj_debug_get, _mapscript.mapObj_debug_set)
    __swig_setmethods__["datapattern"] = _mapscript.mapObj_datapattern_set
    __swig_getmethods__["datapattern"] = _mapscript.mapObj_datapattern_get
    if _newclass:
        datapattern = _swig_property(_mapscript.mapObj_datapattern_get, _mapscript.mapObj_datapattern_set)
    __swig_setmethods__["templatepattern"] = _mapscript.mapObj_templatepattern_set
    __swig_getmethods__["templatepattern"] = _mapscript.mapObj_templatepattern_get
    if _newclass:
        templatepattern = _swig_property(_mapscript.mapObj_templatepattern_get, _mapscript.mapObj_templatepattern_set)
    __swig_getmethods__["configoptions"] = _mapscript.mapObj_configoptions_get
    if _newclass:
        configoptions = _swig_property(_mapscript.mapObj_configoptions_get)

    def __init__(self, *args):
        this = _mapscript.new_mapObj(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_mapObj
    __del__ = lambda self: None

    def clone(self) -> "mapObj *":
        return _mapscript.mapObj_clone(self)

    def insertLayer(*args):
        actualIndex=_mapscript.mapObj_insertLayer(*args)
        args[1].p_map=args[0]
        return actualIndex


    def removeLayer(self, index: 'int') -> "layerObj *":
        return _mapscript.mapObj_removeLayer(self, index)

    def setExtent(self, minx: 'double', miny: 'double', maxx: 'double', maxy: 'double') -> "int":
        return _mapscript.mapObj_setExtent(self, minx, miny, maxx, maxy)

    def offsetExtent(self, x: 'double', y: 'double') -> "int":
        return _mapscript.mapObj_offsetExtent(self, x, y)

    def scaleExtent(self, zoomfactor: 'double', minscaledenom: 'double', maxscaledenom: 'double') -> "int":
        return _mapscript.mapObj_scaleExtent(self, zoomfactor, minscaledenom, maxscaledenom)

    def setCenter(self, center: 'pointObj') -> "int":
        return _mapscript.mapObj_setCenter(self, center)

    def setSize(self, width: 'int', height: 'int') -> "int":
        return _mapscript.mapObj_setSize(self, width, height)

    def setRotation(self, rotation_angle: 'double') -> "int":
        return _mapscript.mapObj_setRotation(self, rotation_angle)

    def getLayer(*args):
        layer = _mapscript.mapObj_getLayer(*args)
        if layer:
            if args and len(args)!=0:
                layer.p_map=args[0]
            else:
                layer.p_map=None
        return layer


    def getLayerByName(*args):
        layer = _mapscript.mapObj_getLayerByName(*args)
        if layer:
            if args and len(args)!=0:
                layer.p_map=args[0]
            else:
                layer.p_map=None
        return layer


    def getSymbolByName(self, name: 'char *') -> "int":
        return _mapscript.mapObj_getSymbolByName(self, name)

    def prepareQuery(self) -> "void":
        return _mapscript.mapObj_prepareQuery(self)

    def prepareImage(self) -> "imageObj *":
        return _mapscript.mapObj_prepareImage(self)

    def setImageType(self, imagetype: 'char *') -> "void":
        return _mapscript.mapObj_setImageType(self, imagetype)

    def selectOutputFormat(self, imagetype: 'char *') -> "void":
        return _mapscript.mapObj_selectOutputFormat(self, imagetype)

    def getOutputFormat(self, i: 'int') -> "outputFormatObj *":
        return _mapscript.mapObj_getOutputFormat(self, i)

    def setOutputFormat(self, format: 'outputFormatObj') -> "void":
        return _mapscript.mapObj_setOutputFormat(self, format)

    def draw(self) -> "imageObj *":
        return _mapscript.mapObj_draw(self)

    def drawQuery(self) -> "imageObj *":
        return _mapscript.mapObj_drawQuery(self)

    def drawLegend(self) -> "imageObj *":
        return _mapscript.mapObj_drawLegend(self)

    def drawScalebar(self) -> "imageObj *":
        return _mapscript.mapObj_drawScalebar(self)

    def drawReferenceMap(self) -> "imageObj *":
        return _mapscript.mapObj_drawReferenceMap(self)

    def embedScalebar(self, image: 'imageObj') -> "int":
        return _mapscript.mapObj_embedScalebar(self, image)

    def embedLegend(self, image: 'imageObj') -> "int":
        return _mapscript.mapObj_embedLegend(self, image)

    def drawLabelCache(self, image: 'imageObj') -> "int":
        return _mapscript.mapObj_drawLabelCache(self, image)

    def queryByFilter(self, string: 'char *') -> "int":
        return _mapscript.mapObj_queryByFilter(self, string)

    def queryByPoint(self, point: 'pointObj', mode: 'int', buffer: 'double') -> "int":
        return _mapscript.mapObj_queryByPoint(self, point, mode, buffer)

    def queryByRect(self, rect: 'rectObj') -> "int":
        return _mapscript.mapObj_queryByRect(self, rect)

    def queryByFeatures(self, slayer: 'int') -> "int":
        return _mapscript.mapObj_queryByFeatures(self, slayer)

    def queryByShape(self, shape: 'shapeObj') -> "int":
        return _mapscript.mapObj_queryByShape(self, shape)

    def setWKTProjection(self, wkt: 'char *') -> "int":
        return _mapscript.mapObj_setWKTProjection(self, wkt)

    def getProjection(self) -> "char *":
        return _mapscript.mapObj_getProjection(self)

    def setProjection(self, proj4: 'char *') -> "int":
        return _mapscript.mapObj_setProjection(self, proj4)

    def save(self, filename: 'char *') -> "int":
        return _mapscript.mapObj_save(self, filename)

    def saveQuery(self, filename: 'char *', results: 'int'=0) -> "int":
        return _mapscript.mapObj_saveQuery(self, filename, results)

    def loadQuery(self, filename: 'char *') -> "int":
        return _mapscript.mapObj_loadQuery(self, filename)

    def freeQuery(self, qlayer: 'int'=-1) -> "void":
        return _mapscript.mapObj_freeQuery(self, qlayer)

    def saveQueryAsGML(self, *args) -> "int":
        return _mapscript.mapObj_saveQueryAsGML(self, *args)

    def getMetaData(self, name: 'char *') -> "char *":
        return _mapscript.mapObj_getMetaData(self, name)

    def setMetaData(self, name: 'char *', value: 'char *') -> "int":
        return _mapscript.mapObj_setMetaData(self, name, value)

    def removeMetaData(self, name: 'char *') -> "int":
        return _mapscript.mapObj_removeMetaData(self, name)

    def getFirstMetaDataKey(self) -> "char *":
        return _mapscript.mapObj_getFirstMetaDataKey(self)

    def getNextMetaDataKey(self, lastkey: 'char *') -> "char *":
        return _mapscript.mapObj_getNextMetaDataKey(self, lastkey)

    def setSymbolSet(self, szFileName: 'char *') -> "int":
        return _mapscript.mapObj_setSymbolSet(self, szFileName)

    def getNumSymbols(self) -> "int":
        return _mapscript.mapObj_getNumSymbols(self)

    def setFontSet(self, filename: 'char *') -> "int":
        return _mapscript.mapObj_setFontSet(self, filename)

    def saveMapContext(self, szFileName: 'char *') -> "int":
        return _mapscript.mapObj_saveMapContext(self, szFileName)

    def loadMapContext(self, szFileName: 'char *', useUniqueNames: 'int'=0) -> "int":
        return _mapscript.mapObj_loadMapContext(self, szFileName, useUniqueNames)

    def moveLayerUp(self, layerindex: 'int') -> "int":
        return _mapscript.mapObj_moveLayerUp(self, layerindex)

    def moveLayerDown(self, layerindex: 'int') -> "int":
        return _mapscript.mapObj_moveLayerDown(self, layerindex)

    def getLayersDrawingOrder(self) -> "intarray *":
        return _mapscript.mapObj_getLayersDrawingOrder(self)

    def setLayersDrawingOrder(self, panIndexes: 'int *') -> "int":
        return _mapscript.mapObj_setLayersDrawingOrder(self, panIndexes)

    def setConfigOption(self, key: 'char *', value: 'char *') -> "void":
        return _mapscript.mapObj_setConfigOption(self, key, value)

    def getConfigOption(self, key: 'char *') -> "char *":
        return _mapscript.mapObj_getConfigOption(self, key)

    def applyConfigOptions(self) -> "void":
        return _mapscript.mapObj_applyConfigOptions(self)

    def applySLD(self, sld: 'char *') -> "int":
        return _mapscript.mapObj_applySLD(self, sld)

    def applySLDURL(self, sld: 'char *') -> "int":
        return _mapscript.mapObj_applySLDURL(self, sld)

    def generateSLD(self) -> "char *":
        return _mapscript.mapObj_generateSLD(self)

    def processTemplate(self, bGenerateImages: 'int', names: 'char **', values: 'char **', numentries: 'int') -> "char *":
        return _mapscript.mapObj_processTemplate(self, bGenerateImages, names, values, numentries)

    def processLegendTemplate(self, names: 'char **', values: 'char **', numentries: 'int') -> "char *":
        return _mapscript.mapObj_processLegendTemplate(self, names, values, numentries)

    def processQueryTemplate(self, names: 'char **', values: 'char **', numentries: 'int') -> "char *":
        return _mapscript.mapObj_processQueryTemplate(self, names, values, numentries)

    def getOutputFormatByName(self, name: 'char *') -> "outputFormatObj *":
        return _mapscript.mapObj_getOutputFormatByName(self, name)

    def appendOutputFormat(self, format: 'outputFormatObj') -> "int":
        return _mapscript.mapObj_appendOutputFormat(self, format)

    def removeOutputFormat(self, name: 'char *') -> "int":
        return _mapscript.mapObj_removeOutputFormat(self, name)

    def loadOWSParameters(self, *args) -> "int":
        return _mapscript.mapObj_loadOWSParameters(self, *args)

    def OWSDispatch(self, req: 'OWSRequest') -> "int":
        return _mapscript.mapObj_OWSDispatch(self, req)

    def convertToString(self) -> "char *":
        return _mapscript.mapObj_convertToString(self)

    def zoomPoint(self, zoomfactor: 'int', poPixPos: 'pointObj', width: 'int', height: 'int', poGeorefExt: 'rectObj', poMaxGeorefExt: 'rectObj') -> "int":
        return _mapscript.mapObj_zoomPoint(self, zoomfactor, poPixPos, width, height, poGeorefExt, poMaxGeorefExt)

    def zoomRectangle(self, poPixRect: 'rectObj', width: 'int', height: 'int', poGeorefExt: 'rectObj', poMaxGeorefExt: 'rectObj') -> "int":
        return _mapscript.mapObj_zoomRectangle(self, poPixRect, width, height, poGeorefExt, poMaxGeorefExt)

    def zoomScale(self, scale: 'double', poPixPos: 'pointObj', width: 'int', height: 'int', poGeorefExt: 'rectObj', poMaxGeorefExt: 'rectObj') -> "int":
        return _mapscript.mapObj_zoomScale(self, scale, poPixPos, width, height, poGeorefExt, poMaxGeorefExt)

    def getLayerOrder(self) -> "PyObject *":
        return _mapscript.mapObj_getLayerOrder(self)

    def setLayerOrder(self, order: 'PyObject *') -> "int":
        return _mapscript.mapObj_setLayerOrder(self, order)

    def getSize(self) -> "PyObject *":
        return _mapscript.mapObj_getSize(self)


    def get_height(self):
        return self.getSize()[1] # <-- second member is the height

    def get_width(self):
        return self.getSize()[0] # <-- first member is the width

    def set_height(self, value):
        return self.setSize(self.getSize()[0], value)

    def set_width(self, value):
        return self.setSize(value, self.getSize()[1])

    width = property(get_width, set_width)
    height = property(get_height, set_height)


mapObj_swigregister = _mapscript.mapObj_swigregister
mapObj_swigregister(mapObj)


def msSaveImage(map: 'mapObj', img: 'imageObj', filename: 'char const *') -> "int":
    return _mapscript.msSaveImage(map, img, filename)
msSaveImage = _mapscript.msSaveImage

def msFreeImage(img: 'imageObj') -> "void":
    return _mapscript.msFreeImage(img)
msFreeImage = _mapscript.msFreeImage

def msSetup() -> "int":
    return _mapscript.msSetup()
msSetup = _mapscript.msSetup

def msCleanup() -> "void":
    return _mapscript.msCleanup()
msCleanup = _mapscript.msCleanup

def msLoadMapFromString(buffer: 'char *', new_mappath: 'char *') -> "mapObj *":
    return _mapscript.msLoadMapFromString(buffer, new_mappath)
msLoadMapFromString = _mapscript.msLoadMapFromString
MS_VERSION_MAJOR = _mapscript.MS_VERSION_MAJOR
MS_VERSION_MINOR = _mapscript.MS_VERSION_MINOR
MS_VERSION_REV = _mapscript.MS_VERSION_REV
MS_VERSION = _mapscript.MS_VERSION
MS_VERSION_NUM = _mapscript.MS_VERSION_NUM
class rectObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, rectObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, rectObj, name)
    __repr__ = _swig_repr
    __swig_setmethods__["minx"] = _mapscript.rectObj_minx_set
    __swig_getmethods__["minx"] = _mapscript.rectObj_minx_get
    if _newclass:
        minx = _swig_property(_mapscript.rectObj_minx_get, _mapscript.rectObj_minx_set)
    __swig_setmethods__["miny"] = _mapscript.rectObj_miny_set
    __swig_getmethods__["miny"] = _mapscript.rectObj_miny_get
    if _newclass:
        miny = _swig_property(_mapscript.rectObj_miny_get, _mapscript.rectObj_miny_set)
    __swig_setmethods__["maxx"] = _mapscript.rectObj_maxx_set
    __swig_getmethods__["maxx"] = _mapscript.rectObj_maxx_get
    if _newclass:
        maxx = _swig_property(_mapscript.rectObj_maxx_get, _mapscript.rectObj_maxx_set)
    __swig_setmethods__["maxy"] = _mapscript.rectObj_maxy_set
    __swig_getmethods__["maxy"] = _mapscript.rectObj_maxy_get
    if _newclass:
        maxy = _swig_property(_mapscript.rectObj_maxy_get, _mapscript.rectObj_maxy_set)

    def __init__(self, minx: 'double'=-1.0, miny: 'double'=-1.0, maxx: 'double'=-1.0, maxy: 'double'=-1.0, imageunits: 'int'=0):
        this = _mapscript.new_rectObj(minx, miny, maxx, maxy, imageunits)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_rectObj
    __del__ = lambda self: None

    def project(self, projin: 'projectionObj', projout: 'projectionObj') -> "int":
        return _mapscript.rectObj_project(self, projin, projout)

    def fit(self, width: 'int', height: 'int') -> "double":
        return _mapscript.rectObj_fit(self, width, height)

    def draw(self, map: 'mapObj', layer: 'layerObj', image: 'imageObj', classindex: 'int', text: 'char *') -> "int":
        return _mapscript.rectObj_draw(self, map, layer, image, classindex, text)

    def getCenter(self) -> "pointObj *":
        return _mapscript.rectObj_getCenter(self)

    def toPolygon(self) -> "shapeObj *":
        return _mapscript.rectObj_toPolygon(self)

    def toString(self) -> "char *":
        return _mapscript.rectObj_toString(self)


    def __str__(self):
        return self.toString()

    def __contains__(self, item):
        item_type = item.__class__.__name__
        if item_type == "pointObj":
            if item.x >= self.minx and item.x <= self.maxx \
            and item.y >= self.miny and item.y <= self.maxy:
                return True
            else:
                return False
        else:
            raise TypeError('__contains__ does not yet handle %s' % (item_type))


rectObj_swigregister = _mapscript.rectObj_swigregister
rectObj_swigregister(rectObj)

class pointObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, pointObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, pointObj, name)
    __repr__ = _swig_repr
    __swig_setmethods__["x"] = _mapscript.pointObj_x_set
    __swig_getmethods__["x"] = _mapscript.pointObj_x_get
    if _newclass:
        x = _swig_property(_mapscript.pointObj_x_get, _mapscript.pointObj_x_set)
    __swig_setmethods__["y"] = _mapscript.pointObj_y_set
    __swig_getmethods__["y"] = _mapscript.pointObj_y_get
    if _newclass:
        y = _swig_property(_mapscript.pointObj_y_get, _mapscript.pointObj_y_set)

    def __init__(self, x: 'double'=0.0, y: 'double'=0.0, z: 'double'=0.0, m: 'double'=-2e38):
        this = _mapscript.new_pointObj(x, y, z, m)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_pointObj
    __del__ = lambda self: None

    def project(self, projin: 'projectionObj', projout: 'projectionObj') -> "int":
        return _mapscript.pointObj_project(self, projin, projout)

    def draw(self, map: 'mapObj', layer: 'layerObj', image: 'imageObj', classindex: 'int', text: 'char *') -> "int":
        return _mapscript.pointObj_draw(self, map, layer, image, classindex, text)

    def distanceToPoint(self, point: 'pointObj') -> "double":
        return _mapscript.pointObj_distanceToPoint(self, point)

    def distanceToSegment(self, a: 'pointObj', b: 'pointObj') -> "double":
        return _mapscript.pointObj_distanceToSegment(self, a, b)

    def distanceToShape(self, shape: 'shapeObj') -> "double":
        return _mapscript.pointObj_distanceToShape(self, shape)

    def setXY(self, x: 'double', y: 'double', m: 'double'=-2e38) -> "int":
        return _mapscript.pointObj_setXY(self, x, y, m)

    def setXYZ(self, x: 'double', y: 'double', z: 'double', m: 'double'=-2e38) -> "int":
        return _mapscript.pointObj_setXYZ(self, x, y, z, m)

    def setXYZM(self, x: 'double', y: 'double', z: 'double', m: 'double') -> "int":
        return _mapscript.pointObj_setXYZM(self, x, y, z, m)

    def toString(self) -> "char *":
        return _mapscript.pointObj_toString(self)

    def toShape(self) -> "shapeObj *":
        return _mapscript.pointObj_toShape(self)


    def __str__(self):
        return self.toString()

    @property
    def __geo_interface__(self):

        if hasattr(self, "z"):
            coords = (self.x, self.y, self.z)
        else:
            coords = (self.x, self.y)

        return {"type": "Point", "coordinates": coords}


pointObj_swigregister = _mapscript.pointObj_swigregister
pointObj_swigregister(pointObj)

class lineObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, lineObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, lineObj, name)
    __repr__ = _swig_repr
    __swig_getmethods__["numpoints"] = _mapscript.lineObj_numpoints_get
    if _newclass:
        numpoints = _swig_property(_mapscript.lineObj_numpoints_get)

    def __init__(self):
        this = _mapscript.new_lineObj()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_lineObj
    __del__ = lambda self: None

    def project(self, projin: 'projectionObj', projout: 'projectionObj') -> "int":
        return _mapscript.lineObj_project(self, projin, projout)

    def get(self, i: 'int') -> "pointObj *":
        return _mapscript.lineObj_get(self, i)

    def add(self, p: 'pointObj') -> "int":
        return _mapscript.lineObj_add(self, p)

    def set(self, i: 'int', p: 'pointObj') -> "int":
        return _mapscript.lineObj_set(self, i, p)


    @property
    def __geo_interface__(self):

        coords = []

        for idx in range(0, self.numpoints):
            pt = self.get(idx)
            geom = pt.__geo_interface__
            coords.append(geom["coordinates"])

        return {"type": "LineString", "coordinates": coords}


lineObj_swigregister = _mapscript.lineObj_swigregister
lineObj_swigregister(lineObj)

class shapeObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, shapeObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, shapeObj, name)
    __repr__ = _swig_repr
    __swig_getmethods__["numlines"] = _mapscript.shapeObj_numlines_get
    if _newclass:
        numlines = _swig_property(_mapscript.shapeObj_numlines_get)
    __swig_getmethods__["numvalues"] = _mapscript.shapeObj_numvalues_get
    if _newclass:
        numvalues = _swig_property(_mapscript.shapeObj_numvalues_get)
    __swig_setmethods__["bounds"] = _mapscript.shapeObj_bounds_set
    __swig_getmethods__["bounds"] = _mapscript.shapeObj_bounds_get
    if _newclass:
        bounds = _swig_property(_mapscript.shapeObj_bounds_get, _mapscript.shapeObj_bounds_set)
    __swig_setmethods__["type"] = _mapscript.shapeObj_type_set
    __swig_getmethods__["type"] = _mapscript.shapeObj_type_get
    if _newclass:
        type = _swig_property(_mapscript.shapeObj_type_get, _mapscript.shapeObj_type_set)
    __swig_setmethods__["index"] = _mapscript.shapeObj_index_set
    __swig_getmethods__["index"] = _mapscript.shapeObj_index_get
    if _newclass:
        index = _swig_property(_mapscript.shapeObj_index_get, _mapscript.shapeObj_index_set)
    __swig_setmethods__["tileindex"] = _mapscript.shapeObj_tileindex_set
    __swig_getmethods__["tileindex"] = _mapscript.shapeObj_tileindex_get
    if _newclass:
        tileindex = _swig_property(_mapscript.shapeObj_tileindex_get, _mapscript.shapeObj_tileindex_set)
    __swig_setmethods__["classindex"] = _mapscript.shapeObj_classindex_set
    __swig_getmethods__["classindex"] = _mapscript.shapeObj_classindex_get
    if _newclass:
        classindex = _swig_property(_mapscript.shapeObj_classindex_get, _mapscript.shapeObj_classindex_set)
    __swig_setmethods__["text"] = _mapscript.shapeObj_text_set
    __swig_getmethods__["text"] = _mapscript.shapeObj_text_get
    if _newclass:
        text = _swig_property(_mapscript.shapeObj_text_get, _mapscript.shapeObj_text_set)
    __swig_setmethods__["scratch"] = _mapscript.shapeObj_scratch_set
    __swig_getmethods__["scratch"] = _mapscript.shapeObj_scratch_get
    if _newclass:
        scratch = _swig_property(_mapscript.shapeObj_scratch_get, _mapscript.shapeObj_scratch_set)
    __swig_setmethods__["resultindex"] = _mapscript.shapeObj_resultindex_set
    __swig_getmethods__["resultindex"] = _mapscript.shapeObj_resultindex_get
    if _newclass:
        resultindex = _swig_property(_mapscript.shapeObj_resultindex_get, _mapscript.shapeObj_resultindex_set)

    def __init__(self, type: 'int'=MS_SHAPE_NULL):
        this = _mapscript.new_shapeObj(type)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_shapeObj
    __del__ = lambda self: None
    if _newclass:
        fromWKT = staticmethod(_mapscript.shapeObj_fromWKT)
    else:
        fromWKT = _mapscript.shapeObj_fromWKT

    def project(self, projin: 'projectionObj', projout: 'projectionObj') -> "int":
        return _mapscript.shapeObj_project(self, projin, projout)

    def get(self, i: 'int') -> "lineObj *":
        return _mapscript.shapeObj_get(self, i)

    def add(self, line: 'lineObj') -> "int":
        return _mapscript.shapeObj_add(self, line)

    def draw(self, map: 'mapObj', layer: 'layerObj', image: 'imageObj') -> "int":
        return _mapscript.shapeObj_draw(self, map, layer, image)

    def setBounds(self) -> "void":
        return _mapscript.shapeObj_setBounds(self)

    def clone(self) -> "shapeObj *":
        return _mapscript.shapeObj_clone(self)

    def copy(self, dest: 'shapeObj') -> "int":
        return _mapscript.shapeObj_copy(self, dest)

    def toWKT(self) -> "char *":
        return _mapscript.shapeObj_toWKT(self)

    def buffer(self, width: 'double') -> "shapeObj *":
        return _mapscript.shapeObj_buffer(self, width)

    def simplify(self, tolerance: 'double') -> "shapeObj *":
        return _mapscript.shapeObj_simplify(self, tolerance)

    def topologyPreservingSimplify(self, tolerance: 'double') -> "shapeObj *":
        return _mapscript.shapeObj_topologyPreservingSimplify(self, tolerance)

    def convexHull(self) -> "shapeObj *":
        return _mapscript.shapeObj_convexHull(self)

    def boundary(self) -> "shapeObj *":
        return _mapscript.shapeObj_boundary(self)

    def getCentroid(self) -> "pointObj *":
        return _mapscript.shapeObj_getCentroid(self)

    def Union(self, shape: 'shapeObj') -> "shapeObj *":
        return _mapscript.shapeObj_Union(self, shape)

    def intersection(self, shape: 'shapeObj') -> "shapeObj *":
        return _mapscript.shapeObj_intersection(self, shape)

    def difference(self, shape: 'shapeObj') -> "shapeObj *":
        return _mapscript.shapeObj_difference(self, shape)

    def symDifference(self, shape: 'shapeObj') -> "shapeObj *":
        return _mapscript.shapeObj_symDifference(self, shape)

    def overlaps(self, shape: 'shapeObj') -> "int":
        return _mapscript.shapeObj_overlaps(self, shape)

    def within(self, shape: 'shapeObj') -> "int":
        return _mapscript.shapeObj_within(self, shape)

    def crosses(self, shape: 'shapeObj') -> "int":
        return _mapscript.shapeObj_crosses(self, shape)

    def intersects(self, shape: 'shapeObj') -> "int":
        return _mapscript.shapeObj_intersects(self, shape)

    def touches(self, shape: 'shapeObj') -> "int":
        return _mapscript.shapeObj_touches(self, shape)

    def equals(self, shape: 'shapeObj') -> "int":
        return _mapscript.shapeObj_equals(self, shape)

    def disjoint(self, shape: 'shapeObj') -> "int":
        return _mapscript.shapeObj_disjoint(self, shape)

    def getArea(self) -> "double":
        return _mapscript.shapeObj_getArea(self)

    def getLength(self) -> "double":
        return _mapscript.shapeObj_getLength(self)

    def getValue(self, i: 'int') -> "char *":
        return _mapscript.shapeObj_getValue(self, i)

    def contains(self, *args) -> "int":
        return _mapscript.shapeObj_contains(self, *args)

    def distanceToPoint(self, point: 'pointObj') -> "double":
        return _mapscript.shapeObj_distanceToPoint(self, point)

    def distanceToShape(self, shape: 'shapeObj') -> "double":
        return _mapscript.shapeObj_distanceToShape(self, shape)

    def getLabelPoint(self) -> "pointObj *":
        return _mapscript.shapeObj_getLabelPoint(self)

    def setValue(self, i: 'int', value: 'char *') -> "int":
        return _mapscript.shapeObj_setValue(self, i, value)

    def initValues(self, numvalues: 'int') -> "void":
        return _mapscript.shapeObj_initValues(self, numvalues)


    def _convert_item_values(self, property_values, property_types):
        """
        **Python MapScript only**

        Convert an item value, which is always stored as a string, into a
        Python type, based on an attributes GML metadata type. These can be one
        of the following:

        ``Integer|Long|Real|Character|Date|Boolean``
        """

        typed_values = []

        for value, type_ in zip(property_values, property_types):
            try:
                if type_.lower() == "integer":
                    value = int(value)
                elif type_.lower() == "long":
                    value = long(value)
                elif type_.lower() == "real":
                    value = float(value)
                else:
                    pass
            except ValueError:
                pass

            typed_values.append(value)

        return typed_values

    @property
    def __geo_interface__(self):

        bounds = self.bounds
        ms_geom_type = self.type

    # see https://tools.ietf.org/html/rfc7946 for GeoJSON types

        if ms_geom_type == MS_SHAPE_POINT or ms_geom_type == MS_SHP_POINTZ or ms_geom_type == MS_SHP_POINTM:
            geom_type = "Point"
        elif ms_geom_type == MS_SHP_MULTIPOINTZ or ms_geom_type == MS_SHP_MULTIPOINTM:
            geom_type = "MultiPoint"
        elif ms_geom_type == MS_SHAPE_LINE or ms_geom_type == MS_SHP_ARCZ or ms_geom_type == MS_SHP_ARCM:
            if self.numlines == 1:
                geom_type = "LineString"
            else:
                geom_type = "MultiLineString"
        elif ms_geom_type == MS_SHAPE_POLYGON or ms_geom_type == MS_SHP_POLYGONZ or ms_geom_type == MS_SHP_POLYGONM:
            if self.numlines == 1:
                geom_type = "Polygon"
            else:
                geom_type = "MultiPolygon"
        elif ms_geom_type == MS_SHAPE_NULL:
            return None
        else:
            raise TypeError("Shape type {} not supported".format(geom_type))

        properties = {}
        coords = []

    # property names are stored at the layer level
    # https://github.com/mapserver/mapserver/issues/130

        property_values = [self.getValue(idx) for idx in range(0, self.numvalues)]

        if hasattr(self, "_item_definitions"):
            property_names, property_types = zip(*self._item_definitions)
            property_values = self._convert_item_values(property_values, property_types)
        else:
            property_names = [str(idx) for idx in range(0, self.numvalues)]

        properties = dict(zip(property_names, property_values))

        for idx in range(0, self.numlines):
            line = self.get(idx)
            geom = line.__geo_interface__
            coords.append(geom["coordinates"])

        return {
                "type": "Feature",
                "bbox": (bounds.minx, bounds.miny, bounds.maxx, bounds.maxy),
                "properties": properties,
                "geometry": {
                    "type": geom_type,
                    "coordinates": coords
                    }
                }

    def getItemDefinitions(self):
        return self._item_definitions

    def setItemDefinitions(self, item_definitions):
        self._item_definitions = item_definitions

    __swig_getmethods__["itemdefinitions"] = getItemDefinitions
    __swig_setmethods__["itemdefinitions"] = setItemDefinitions


shapeObj_swigregister = _mapscript.shapeObj_swigregister
shapeObj_swigregister(shapeObj)

def shapeObj_fromWKT(wkt: 'char *') -> "shapeObj *":
    return _mapscript.shapeObj_fromWKT(wkt)
shapeObj_fromWKT = _mapscript.shapeObj_fromWKT

SHX_BUFFER_PAGE = _mapscript.SHX_BUFFER_PAGE
MS_SHAPEFILE_POINT = _mapscript.MS_SHAPEFILE_POINT
MS_SHAPEFILE_ARC = _mapscript.MS_SHAPEFILE_ARC
MS_SHAPEFILE_POLYGON = _mapscript.MS_SHAPEFILE_POLYGON
MS_SHAPEFILE_MULTIPOINT = _mapscript.MS_SHAPEFILE_MULTIPOINT
MS_SHP_POINTZ = _mapscript.MS_SHP_POINTZ
MS_SHP_ARCZ = _mapscript.MS_SHP_ARCZ
MS_SHP_POLYGONZ = _mapscript.MS_SHP_POLYGONZ
MS_SHP_MULTIPOINTZ = _mapscript.MS_SHP_MULTIPOINTZ
MS_SHP_POINTM = _mapscript.MS_SHP_POINTM
MS_SHP_ARCM = _mapscript.MS_SHP_ARCM
MS_SHP_POLYGONM = _mapscript.MS_SHP_POLYGONM
MS_SHP_MULTIPOINTM = _mapscript.MS_SHP_MULTIPOINTM
class DBFInfo(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, DBFInfo, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, DBFInfo, name)
    __repr__ = _swig_repr
    __swig_getmethods__["fp"] = _mapscript.DBFInfo_fp_get
    if _newclass:
        fp = _swig_property(_mapscript.DBFInfo_fp_get)
    __swig_getmethods__["nRecords"] = _mapscript.DBFInfo_nRecords_get
    if _newclass:
        nRecords = _swig_property(_mapscript.DBFInfo_nRecords_get)
    __swig_getmethods__["nRecordLength"] = _mapscript.DBFInfo_nRecordLength_get
    if _newclass:
        nRecordLength = _swig_property(_mapscript.DBFInfo_nRecordLength_get)
    __swig_getmethods__["nHeaderLength"] = _mapscript.DBFInfo_nHeaderLength_get
    if _newclass:
        nHeaderLength = _swig_property(_mapscript.DBFInfo_nHeaderLength_get)
    __swig_getmethods__["nFields"] = _mapscript.DBFInfo_nFields_get
    if _newclass:
        nFields = _swig_property(_mapscript.DBFInfo_nFields_get)
    __swig_getmethods__["panFieldOffset"] = _mapscript.DBFInfo_panFieldOffset_get
    if _newclass:
        panFieldOffset = _swig_property(_mapscript.DBFInfo_panFieldOffset_get)
    __swig_getmethods__["panFieldSize"] = _mapscript.DBFInfo_panFieldSize_get
    if _newclass:
        panFieldSize = _swig_property(_mapscript.DBFInfo_panFieldSize_get)
    __swig_getmethods__["panFieldDecimals"] = _mapscript.DBFInfo_panFieldDecimals_get
    if _newclass:
        panFieldDecimals = _swig_property(_mapscript.DBFInfo_panFieldDecimals_get)
    __swig_getmethods__["pachFieldType"] = _mapscript.DBFInfo_pachFieldType_get
    if _newclass:
        pachFieldType = _swig_property(_mapscript.DBFInfo_pachFieldType_get)
    __swig_getmethods__["pszHeader"] = _mapscript.DBFInfo_pszHeader_get
    if _newclass:
        pszHeader = _swig_property(_mapscript.DBFInfo_pszHeader_get)
    __swig_getmethods__["nCurrentRecord"] = _mapscript.DBFInfo_nCurrentRecord_get
    if _newclass:
        nCurrentRecord = _swig_property(_mapscript.DBFInfo_nCurrentRecord_get)
    __swig_getmethods__["bCurrentRecordModified"] = _mapscript.DBFInfo_bCurrentRecordModified_get
    if _newclass:
        bCurrentRecordModified = _swig_property(_mapscript.DBFInfo_bCurrentRecordModified_get)
    __swig_getmethods__["pszCurrentRecord"] = _mapscript.DBFInfo_pszCurrentRecord_get
    if _newclass:
        pszCurrentRecord = _swig_property(_mapscript.DBFInfo_pszCurrentRecord_get)
    __swig_getmethods__["bNoHeader"] = _mapscript.DBFInfo_bNoHeader_get
    if _newclass:
        bNoHeader = _swig_property(_mapscript.DBFInfo_bNoHeader_get)
    __swig_getmethods__["bUpdated"] = _mapscript.DBFInfo_bUpdated_get
    if _newclass:
        bUpdated = _swig_property(_mapscript.DBFInfo_bUpdated_get)
    __swig_getmethods__["pszStringField"] = _mapscript.DBFInfo_pszStringField_get
    if _newclass:
        pszStringField = _swig_property(_mapscript.DBFInfo_pszStringField_get)
    __swig_getmethods__["nStringFieldLen"] = _mapscript.DBFInfo_nStringFieldLen_get
    if _newclass:
        nStringFieldLen = _swig_property(_mapscript.DBFInfo_nStringFieldLen_get)

    def getFieldName(self, iField: 'int') -> "char *":
        return _mapscript.DBFInfo_getFieldName(self, iField)

    def getFieldWidth(self, iField: 'int') -> "int":
        return _mapscript.DBFInfo_getFieldWidth(self, iField)

    def getFieldDecimals(self, iField: 'int') -> "int":
        return _mapscript.DBFInfo_getFieldDecimals(self, iField)

    def getFieldType(self, iField: 'int') -> "int":
        return _mapscript.DBFInfo_getFieldType(self, iField)

    def __init__(self):
        this = _mapscript.new_DBFInfo()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_DBFInfo
    __del__ = lambda self: None
DBFInfo_swigregister = _mapscript.DBFInfo_swigregister
DBFInfo_swigregister(DBFInfo)

FTString = _mapscript.FTString
FTInteger = _mapscript.FTInteger
FTDouble = _mapscript.FTDouble
FTInvalid = _mapscript.FTInvalid
class shapefileObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, shapefileObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, shapefileObj, name)
    __repr__ = _swig_repr
    __swig_getmethods__["source"] = _mapscript.shapefileObj_source_get
    if _newclass:
        source = _swig_property(_mapscript.shapefileObj_source_get)
    __swig_getmethods__["type"] = _mapscript.shapefileObj_type_get
    if _newclass:
        type = _swig_property(_mapscript.shapefileObj_type_get)
    __swig_getmethods__["numshapes"] = _mapscript.shapefileObj_numshapes_get
    if _newclass:
        numshapes = _swig_property(_mapscript.shapefileObj_numshapes_get)
    __swig_getmethods__["bounds"] = _mapscript.shapefileObj_bounds_get
    if _newclass:
        bounds = _swig_property(_mapscript.shapefileObj_bounds_get)
    __swig_getmethods__["lastshape"] = _mapscript.shapefileObj_lastshape_get
    if _newclass:
        lastshape = _swig_property(_mapscript.shapefileObj_lastshape_get)
    __swig_getmethods__["status"] = _mapscript.shapefileObj_status_get
    if _newclass:
        status = _swig_property(_mapscript.shapefileObj_status_get)
    __swig_getmethods__["isopen"] = _mapscript.shapefileObj_isopen_get
    if _newclass:
        isopen = _swig_property(_mapscript.shapefileObj_isopen_get)

    def __init__(self, filename: 'char *', type: 'int'=-1):
        this = _mapscript.new_shapefileObj(filename, type)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_shapefileObj
    __del__ = lambda self: None

    def get(self, i: 'int', shape: 'shapeObj') -> "int":
        return _mapscript.shapefileObj_get(self, i, shape)

    def getShape(self, i: 'int') -> "shapeObj *":
        return _mapscript.shapefileObj_getShape(self, i)

    def getPoint(self, i: 'int', point: 'pointObj') -> "int":
        return _mapscript.shapefileObj_getPoint(self, i, point)

    def getTransformed(self, map: 'mapObj', i: 'int', shape: 'shapeObj') -> "int":
        return _mapscript.shapefileObj_getTransformed(self, map, i, shape)

    def getExtent(self, i: 'int', rect: 'rectObj') -> "void":
        return _mapscript.shapefileObj_getExtent(self, i, rect)

    def add(self, shape: 'shapeObj') -> "int":
        return _mapscript.shapefileObj_add(self, shape)

    def addPoint(self, point: 'pointObj') -> "int":
        return _mapscript.shapefileObj_addPoint(self, point)

    def getDBF(self) -> "DBFInfo *":
        return _mapscript.shapefileObj_getDBF(self)
shapefileObj_swigregister = _mapscript.shapefileObj_swigregister
shapefileObj_swigregister(shapefileObj)

ACCEPT_USE_OF_DEPRECATED_PROJ_API_H = _mapscript.ACCEPT_USE_OF_DEPRECATED_PROJ_API_H
wkp_none = _mapscript.wkp_none
wkp_lonlat = _mapscript.wkp_lonlat
wkp_gmerc = _mapscript.wkp_gmerc
class projectionObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, projectionObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, projectionObj, name)
    __repr__ = _swig_repr
    __swig_getmethods__["numargs"] = _mapscript.projectionObj_numargs_get
    if _newclass:
        numargs = _swig_property(_mapscript.projectionObj_numargs_get)
    __swig_getmethods__["automatic"] = _mapscript.projectionObj_automatic_get
    if _newclass:
        automatic = _swig_property(_mapscript.projectionObj_automatic_get)
    __swig_setmethods__["wellknownprojection"] = _mapscript.projectionObj_wellknownprojection_set
    __swig_getmethods__["wellknownprojection"] = _mapscript.projectionObj_wellknownprojection_get
    if _newclass:
        wellknownprojection = _swig_property(_mapscript.projectionObj_wellknownprojection_get, _mapscript.projectionObj_wellknownprojection_set)

    def __init__(self, proj4: 'char *'):
        this = _mapscript.new_projectionObj(proj4)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_projectionObj
    __del__ = lambda self: None

    def setWKTProjection(self, wkt: 'char *') -> "int":
        return _mapscript.projectionObj_setWKTProjection(self, wkt)

    def getUnits(self) -> "int":
        return _mapscript.projectionObj_getUnits(self)
projectionObj_swigregister = _mapscript.projectionObj_swigregister
projectionObj_swigregister(projectionObj)

MS_SYMBOL_SIMPLE = _mapscript.MS_SYMBOL_SIMPLE
MS_SYMBOL_VECTOR = _mapscript.MS_SYMBOL_VECTOR
MS_SYMBOL_ELLIPSE = _mapscript.MS_SYMBOL_ELLIPSE
MS_SYMBOL_PIXMAP = _mapscript.MS_SYMBOL_PIXMAP
MS_SYMBOL_TRUETYPE = _mapscript.MS_SYMBOL_TRUETYPE
MS_SYMBOL_HATCH = _mapscript.MS_SYMBOL_HATCH
MS_SYMBOL_SVG = _mapscript.MS_SYMBOL_SVG
MS_SYMBOL_ALLOCSIZE = _mapscript.MS_SYMBOL_ALLOCSIZE
MS_MAXVECTORPOINTS = _mapscript.MS_MAXVECTORPOINTS
MS_MAXPATTERNLENGTH = _mapscript.MS_MAXPATTERNLENGTH
MS_IMAGECACHESIZE = _mapscript.MS_IMAGECACHESIZE
class colorObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, colorObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, colorObj, name)
    __repr__ = _swig_repr
    __swig_setmethods__["red"] = _mapscript.colorObj_red_set
    __swig_getmethods__["red"] = _mapscript.colorObj_red_get
    if _newclass:
        red = _swig_property(_mapscript.colorObj_red_get, _mapscript.colorObj_red_set)
    __swig_setmethods__["green"] = _mapscript.colorObj_green_set
    __swig_getmethods__["green"] = _mapscript.colorObj_green_get
    if _newclass:
        green = _swig_property(_mapscript.colorObj_green_get, _mapscript.colorObj_green_set)
    __swig_setmethods__["blue"] = _mapscript.colorObj_blue_set
    __swig_getmethods__["blue"] = _mapscript.colorObj_blue_get
    if _newclass:
        blue = _swig_property(_mapscript.colorObj_blue_get, _mapscript.colorObj_blue_set)
    __swig_setmethods__["alpha"] = _mapscript.colorObj_alpha_set
    __swig_getmethods__["alpha"] = _mapscript.colorObj_alpha_get
    if _newclass:
        alpha = _swig_property(_mapscript.colorObj_alpha_get, _mapscript.colorObj_alpha_set)

    def __init__(self, red: 'int'=0, green: 'int'=0, blue: 'int'=0, alpha: 'int'=255):
        this = _mapscript.new_colorObj(red, green, blue, alpha)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_colorObj
    __del__ = lambda self: None

    def setRGB(self, red: 'int', green: 'int', blue: 'int', alpha: 'int'=255) -> "int":
        return _mapscript.colorObj_setRGB(self, red, green, blue, alpha)

    def setHex(self, psHexColor: 'char *') -> "int":
        return _mapscript.colorObj_setHex(self, psHexColor)

    def toHex(self) -> "char *":
        return _mapscript.colorObj_toHex(self)
colorObj_swigregister = _mapscript.colorObj_swigregister
colorObj_swigregister(colorObj)

class symbolObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, symbolObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, symbolObj, name)
    __repr__ = _swig_repr
    __swig_setmethods__["name"] = _mapscript.symbolObj_name_set
    __swig_getmethods__["name"] = _mapscript.symbolObj_name_get
    if _newclass:
        name = _swig_property(_mapscript.symbolObj_name_get, _mapscript.symbolObj_name_set)
    __swig_setmethods__["type"] = _mapscript.symbolObj_type_set
    __swig_getmethods__["type"] = _mapscript.symbolObj_type_get
    if _newclass:
        type = _swig_property(_mapscript.symbolObj_type_get, _mapscript.symbolObj_type_set)
    __swig_setmethods__["inmapfile"] = _mapscript.symbolObj_inmapfile_set
    __swig_getmethods__["inmapfile"] = _mapscript.symbolObj_inmapfile_get
    if _newclass:
        inmapfile = _swig_property(_mapscript.symbolObj_inmapfile_get, _mapscript.symbolObj_inmapfile_set)
    __swig_setmethods__["sizex"] = _mapscript.symbolObj_sizex_set
    __swig_getmethods__["sizex"] = _mapscript.symbolObj_sizex_get
    if _newclass:
        sizex = _swig_property(_mapscript.symbolObj_sizex_get, _mapscript.symbolObj_sizex_set)
    __swig_setmethods__["sizey"] = _mapscript.symbolObj_sizey_set
    __swig_getmethods__["sizey"] = _mapscript.symbolObj_sizey_get
    if _newclass:
        sizey = _swig_property(_mapscript.symbolObj_sizey_get, _mapscript.symbolObj_sizey_set)
    __swig_setmethods__["minx"] = _mapscript.symbolObj_minx_set
    __swig_getmethods__["minx"] = _mapscript.symbolObj_minx_get
    if _newclass:
        minx = _swig_property(_mapscript.symbolObj_minx_get, _mapscript.symbolObj_minx_set)
    __swig_setmethods__["miny"] = _mapscript.symbolObj_miny_set
    __swig_getmethods__["miny"] = _mapscript.symbolObj_miny_get
    if _newclass:
        miny = _swig_property(_mapscript.symbolObj_miny_get, _mapscript.symbolObj_miny_set)
    __swig_setmethods__["maxx"] = _mapscript.symbolObj_maxx_set
    __swig_getmethods__["maxx"] = _mapscript.symbolObj_maxx_get
    if _newclass:
        maxx = _swig_property(_mapscript.symbolObj_maxx_get, _mapscript.symbolObj_maxx_set)
    __swig_setmethods__["maxy"] = _mapscript.symbolObj_maxy_set
    __swig_getmethods__["maxy"] = _mapscript.symbolObj_maxy_get
    if _newclass:
        maxy = _swig_property(_mapscript.symbolObj_maxy_get, _mapscript.symbolObj_maxy_set)
    __swig_getmethods__["refcount"] = _mapscript.symbolObj_refcount_get
    if _newclass:
        refcount = _swig_property(_mapscript.symbolObj_refcount_get)
    __swig_getmethods__["numpoints"] = _mapscript.symbolObj_numpoints_get
    if _newclass:
        numpoints = _swig_property(_mapscript.symbolObj_numpoints_get)
    __swig_setmethods__["filled"] = _mapscript.symbolObj_filled_set
    __swig_getmethods__["filled"] = _mapscript.symbolObj_filled_get
    if _newclass:
        filled = _swig_property(_mapscript.symbolObj_filled_get, _mapscript.symbolObj_filled_set)
    __swig_setmethods__["anchorpoint_x"] = _mapscript.symbolObj_anchorpoint_x_set
    __swig_getmethods__["anchorpoint_x"] = _mapscript.symbolObj_anchorpoint_x_get
    if _newclass:
        anchorpoint_x = _swig_property(_mapscript.symbolObj_anchorpoint_x_get, _mapscript.symbolObj_anchorpoint_x_set)
    __swig_setmethods__["anchorpoint_y"] = _mapscript.symbolObj_anchorpoint_y_set
    __swig_getmethods__["anchorpoint_y"] = _mapscript.symbolObj_anchorpoint_y_get
    if _newclass:
        anchorpoint_y = _swig_property(_mapscript.symbolObj_anchorpoint_y_get, _mapscript.symbolObj_anchorpoint_y_set)
    __swig_getmethods__["imagepath"] = _mapscript.symbolObj_imagepath_get
    if _newclass:
        imagepath = _swig_property(_mapscript.symbolObj_imagepath_get)
    __swig_setmethods__["transparent"] = _mapscript.symbolObj_transparent_set
    __swig_getmethods__["transparent"] = _mapscript.symbolObj_transparent_get
    if _newclass:
        transparent = _swig_property(_mapscript.symbolObj_transparent_get, _mapscript.symbolObj_transparent_set)
    __swig_setmethods__["transparentcolor"] = _mapscript.symbolObj_transparentcolor_set
    __swig_getmethods__["transparentcolor"] = _mapscript.symbolObj_transparentcolor_get
    if _newclass:
        transparentcolor = _swig_property(_mapscript.symbolObj_transparentcolor_get, _mapscript.symbolObj_transparentcolor_set)
    __swig_setmethods__["character"] = _mapscript.symbolObj_character_set
    __swig_getmethods__["character"] = _mapscript.symbolObj_character_get
    if _newclass:
        character = _swig_property(_mapscript.symbolObj_character_get, _mapscript.symbolObj_character_set)
    __swig_setmethods__["font"] = _mapscript.symbolObj_font_set
    __swig_getmethods__["font"] = _mapscript.symbolObj_font_get
    if _newclass:
        font = _swig_property(_mapscript.symbolObj_font_get, _mapscript.symbolObj_font_set)

    def __init__(self, symbolname: 'char *', imagefile: 'char const *'=None):
        this = _mapscript.new_symbolObj(symbolname, imagefile)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_symbolObj
    __del__ = lambda self: None

    def setImagepath(self, imagefile: 'char const *') -> "int":
        return _mapscript.symbolObj_setImagepath(self, imagefile)

    def setPoints(self, line: 'lineObj') -> "int":
        return _mapscript.symbolObj_setPoints(self, line)

    def getPoints(self) -> "lineObj *":
        return _mapscript.symbolObj_getPoints(self)

    def getImage(self, input_format: 'outputFormatObj') -> "imageObj *":
        return _mapscript.symbolObj_getImage(self, input_format)

    def setImage(self, image: 'imageObj') -> "int":
        return _mapscript.symbolObj_setImage(self, image)
symbolObj_swigregister = _mapscript.symbolObj_swigregister
symbolObj_swigregister(symbolObj)

MS_NOERR = _mapscript.MS_NOERR
MS_IOERR = _mapscript.MS_IOERR
MS_MEMERR = _mapscript.MS_MEMERR
MS_TYPEERR = _mapscript.MS_TYPEERR
MS_SYMERR = _mapscript.MS_SYMERR
MS_REGEXERR = _mapscript.MS_REGEXERR
MS_TTFERR = _mapscript.MS_TTFERR
MS_DBFERR = _mapscript.MS_DBFERR
MS_IDENTERR = _mapscript.MS_IDENTERR
MS_EOFERR = _mapscript.MS_EOFERR
MS_PROJERR = _mapscript.MS_PROJERR
MS_MISCERR = _mapscript.MS_MISCERR
MS_CGIERR = _mapscript.MS_CGIERR
MS_WEBERR = _mapscript.MS_WEBERR
MS_IMGERR = _mapscript.MS_IMGERR
MS_HASHERR = _mapscript.MS_HASHERR
MS_JOINERR = _mapscript.MS_JOINERR
MS_NOTFOUND = _mapscript.MS_NOTFOUND
MS_SHPERR = _mapscript.MS_SHPERR
MS_PARSEERR = _mapscript.MS_PARSEERR
MS_UNUSEDERR = _mapscript.MS_UNUSEDERR
MS_OGRERR = _mapscript.MS_OGRERR
MS_QUERYERR = _mapscript.MS_QUERYERR
MS_WMSERR = _mapscript.MS_WMSERR
MS_WMSCONNERR = _mapscript.MS_WMSCONNERR
MS_ORACLESPATIALERR = _mapscript.MS_ORACLESPATIALERR
MS_WFSERR = _mapscript.MS_WFSERR
MS_WFSCONNERR = _mapscript.MS_WFSCONNERR
MS_MAPCONTEXTERR = _mapscript.MS_MAPCONTEXTERR
MS_HTTPERR = _mapscript.MS_HTTPERR
MS_CHILDERR = _mapscript.MS_CHILDERR
MS_WCSERR = _mapscript.MS_WCSERR
MS_GEOSERR = _mapscript.MS_GEOSERR
MS_RECTERR = _mapscript.MS_RECTERR
MS_TIMEERR = _mapscript.MS_TIMEERR
MS_GMLERR = _mapscript.MS_GMLERR
MS_SOSERR = _mapscript.MS_SOSERR
MS_NULLPARENTERR = _mapscript.MS_NULLPARENTERR
MS_AGGERR = _mapscript.MS_AGGERR
MS_OWSERR = _mapscript.MS_OWSERR
MS_OGLERR = _mapscript.MS_OGLERR
MS_RENDERERERR = _mapscript.MS_RENDERERERR
MS_V8ERR = _mapscript.MS_V8ERR
MS_NUMERRORCODES = _mapscript.MS_NUMERRORCODES
MESSAGELENGTH = _mapscript.MESSAGELENGTH
ROUTINELENGTH = _mapscript.ROUTINELENGTH
MS_ERROR_LANGUAGE = _mapscript.MS_ERROR_LANGUAGE
class errorObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, errorObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, errorObj, name)
    __repr__ = _swig_repr
    __swig_setmethods__["code"] = _mapscript.errorObj_code_set
    __swig_getmethods__["code"] = _mapscript.errorObj_code_get
    if _newclass:
        code = _swig_property(_mapscript.errorObj_code_get, _mapscript.errorObj_code_set)
    __swig_setmethods__["routine"] = _mapscript.errorObj_routine_set
    __swig_getmethods__["routine"] = _mapscript.errorObj_routine_get
    if _newclass:
        routine = _swig_property(_mapscript.errorObj_routine_get, _mapscript.errorObj_routine_set)
    __swig_setmethods__["message"] = _mapscript.errorObj_message_set
    __swig_getmethods__["message"] = _mapscript.errorObj_message_get
    if _newclass:
        message = _swig_property(_mapscript.errorObj_message_get, _mapscript.errorObj_message_set)
    __swig_setmethods__["isreported"] = _mapscript.errorObj_isreported_set
    __swig_getmethods__["isreported"] = _mapscript.errorObj_isreported_get
    if _newclass:
        isreported = _swig_property(_mapscript.errorObj_isreported_get, _mapscript.errorObj_isreported_set)
    __swig_setmethods__["errorcount"] = _mapscript.errorObj_errorcount_set
    __swig_getmethods__["errorcount"] = _mapscript.errorObj_errorcount_get
    if _newclass:
        errorcount = _swig_property(_mapscript.errorObj_errorcount_get, _mapscript.errorObj_errorcount_set)

    def __init__(self):
        this = _mapscript.new_errorObj()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_errorObj
    __del__ = lambda self: None

    def next(self) -> "errorObj *":
        return _mapscript.errorObj_next(self)
errorObj_swigregister = _mapscript.errorObj_swigregister
errorObj_swigregister(errorObj)


def msGetErrorObj() -> "errorObj *":
    return _mapscript.msGetErrorObj()
msGetErrorObj = _mapscript.msGetErrorObj

def msResetErrorList() -> "void":
    return _mapscript.msResetErrorList()
msResetErrorList = _mapscript.msResetErrorList

def msGetVersion() -> "char *":
    return _mapscript.msGetVersion()
msGetVersion = _mapscript.msGetVersion

def msGetVersionInt() -> "int":
    return _mapscript.msGetVersionInt()
msGetVersionInt = _mapscript.msGetVersionInt

def msGetErrorString(delimiter: 'char *') -> "char *":
    return _mapscript.msGetErrorString(delimiter)
msGetErrorString = _mapscript.msGetErrorString
MS_DEBUGLEVEL_ERRORSONLY = _mapscript.MS_DEBUGLEVEL_ERRORSONLY
MS_DEBUGLEVEL_DEBUG = _mapscript.MS_DEBUGLEVEL_DEBUG
MS_DEBUGLEVEL_TUNING = _mapscript.MS_DEBUGLEVEL_TUNING
MS_DEBUGLEVEL_V = _mapscript.MS_DEBUGLEVEL_V
MS_DEBUGLEVEL_VV = _mapscript.MS_DEBUGLEVEL_VV
MS_DEBUGLEVEL_VVV = _mapscript.MS_DEBUGLEVEL_VVV
MS_DEBUGLEVEL_DEVDEBUG = _mapscript.MS_DEBUGLEVEL_DEVDEBUG
MS_HASHSIZE = _mapscript.MS_HASHSIZE
class hashTableObj(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, hashTableObj, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, hashTableObj, name)
    __repr__ = _swig_repr
    __swig_getmethods__["numitems"] = _mapscript.hashTableObj_numitems_get
    if _newclass:
        numitems = _swig_property(_mapscript.hashTableObj_numitems_get)

    def __init__(self):
        this = _mapscript.new_hashTableObj()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_hashTableObj
    __del__ = lambda self: None

    def set(self, key: 'char *', value: 'char *') -> "int":
        return _mapscript.hashTableObj_set(self, key, value)

    def get(self, key: 'char *', default_value: 'char *'=None) -> "char *":
        return _mapscript.hashTableObj_get(self, key, default_value)

    def remove(self, key: 'char *') -> "int":
        return _mapscript.hashTableObj_remove(self, key)

    def clear(self) -> "void":
        return _mapscript.hashTableObj_clear(self)

    def nextKey(self, prevkey: 'char *'=None) -> "char const *":
        return _mapscript.hashTableObj_nextKey(self, prevkey)


    def __getitem__(self, key):
        return self.get(key)

    def __setitem__(self, key, value):
        return self.set(key, value)

    def __delitem__(self, key) :
        return self.remove(key)

    def __contains__(self, key):
        return key.lower() in [k.lower() for k in self.keys()]

    def __len__(self):
        return self.numitems

    def keys(self):

        keys = []
        k = None

        while True :
            k = self.nextKey(k)
            if k :
                keys.append(k)
            else :
                break

        return keys


hashTableObj_swigregister = _mapscript.hashTableObj_swigregister
hashTableObj_swigregister(hashTableObj)

MS_DEFAULT_CGI_PARAMS = _mapscript.MS_DEFAULT_CGI_PARAMS
MS_GET_REQUEST = _mapscript.MS_GET_REQUEST
MS_POST_REQUEST = _mapscript.MS_POST_REQUEST
class OWSRequest(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, OWSRequest, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, OWSRequest, name)
    __repr__ = _swig_repr
    __swig_getmethods__["NumParams"] = _mapscript.OWSRequest_NumParams_get
    if _newclass:
        NumParams = _swig_property(_mapscript.OWSRequest_NumParams_get)
    __swig_setmethods__["type"] = _mapscript.OWSRequest_type_set
    __swig_getmethods__["type"] = _mapscript.OWSRequest_type_get
    if _newclass:
        type = _swig_property(_mapscript.OWSRequest_type_get, _mapscript.OWSRequest_type_set)
    __swig_setmethods__["contenttype"] = _mapscript.OWSRequest_contenttype_set
    __swig_getmethods__["contenttype"] = _mapscript.OWSRequest_contenttype_get
    if _newclass:
        contenttype = _swig_property(_mapscript.OWSRequest_contenttype_get, _mapscript.OWSRequest_contenttype_set)
    __swig_setmethods__["postrequest"] = _mapscript.OWSRequest_postrequest_set
    __swig_getmethods__["postrequest"] = _mapscript.OWSRequest_postrequest_get
    if _newclass:
        postrequest = _swig_property(_mapscript.OWSRequest_postrequest_get, _mapscript.OWSRequest_postrequest_set)
    __swig_setmethods__["httpcookiedata"] = _mapscript.OWSRequest_httpcookiedata_set
    __swig_getmethods__["httpcookiedata"] = _mapscript.OWSRequest_httpcookiedata_get
    if _newclass:
        httpcookiedata = _swig_property(_mapscript.OWSRequest_httpcookiedata_get, _mapscript.OWSRequest_httpcookiedata_set)

    def __init__(self):
        this = _mapscript.new_OWSRequest()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _mapscript.delete_OWSRequest
    __del__ = lambda self: None

    def loadParams(self) -> "int":
        return _mapscript.OWSRequest_loadParams(self)

    def loadParamsFromURL(self, url: 'char const *') -> "int":
        return _mapscript.OWSRequest_loadParamsFromURL(self, url)

    def setParameter(self, name: 'char *', value: 'char *') -> "void":
        return _mapscript.OWSRequest_setParameter(self, name, value)

    def addParameter(self, name: 'char *', value: 'char *') -> "void":
        return _mapscript.OWSRequest_addParameter(self, name, value)

    def getName(self, index: 'int') -> "char *":
        return _mapscript.OWSRequest_getName(self, index)

    def getValue(self, index: 'int') -> "char *":
        return _mapscript.OWSRequest_getValue(self, index)

    def getValueByName(self, name: 'char const *') -> "char *":
        return _mapscript.OWSRequest_getValueByName(self, name)
OWSRequest_swigregister = _mapscript.OWSRequest_swigregister
OWSRequest_swigregister(OWSRequest)


def msConnPoolCloseUnreferenced() -> "void":
    return _mapscript.msConnPoolCloseUnreferenced()
msConnPoolCloseUnreferenced = _mapscript.msConnPoolCloseUnreferenced

def msIO_resetHandlers() -> "void":
    return _mapscript.msIO_resetHandlers()
msIO_resetHandlers = _mapscript.msIO_resetHandlers

def msIO_installStdoutToBuffer() -> "void":
    return _mapscript.msIO_installStdoutToBuffer()
msIO_installStdoutToBuffer = _mapscript.msIO_installStdoutToBuffer

def msIO_installStdinFromBuffer() -> "void":
    return _mapscript.msIO_installStdinFromBuffer()
msIO_installStdinFromBuffer = _mapscript.msIO_installStdinFromBuffer

def msIO_stripStdoutBufferContentType() -> "char const *":
    return _mapscript.msIO_stripStdoutBufferContentType()
msIO_stripStdoutBufferContentType = _mapscript.msIO_stripStdoutBufferContentType

def msIO_stripStdoutBufferContentHeaders() -> "void":
    return _mapscript.msIO_stripStdoutBufferContentHeaders()
msIO_stripStdoutBufferContentHeaders = _mapscript.msIO_stripStdoutBufferContentHeaders

def msIO_getStdoutBufferString() -> "char const *":
    return _mapscript.msIO_getStdoutBufferString()
msIO_getStdoutBufferString = _mapscript.msIO_getStdoutBufferString

def msIO_getStdoutBufferBytes() -> "gdBuffer":
    return _mapscript.msIO_getStdoutBufferBytes()
msIO_getStdoutBufferBytes = _mapscript.msIO_getStdoutBufferBytes

def msIO_getAndStripStdoutBufferMimeHeaders() -> "hashTableObj *":
    return _mapscript.msIO_getAndStripStdoutBufferMimeHeaders()
msIO_getAndStripStdoutBufferMimeHeaders = _mapscript.msIO_getAndStripStdoutBufferMimeHeaders

def fromstring(data, mappath=None):
    """Creates map objects from mapfile strings.

    Parameters
    ==========
    data : string
        Mapfile in a string.
    mappath : string
        Optional root map path, enabling relative paths in mapfile.

    Example
    =======
    >>> mo = fromstring("MAP\nNAME 'test'\nEND")
    >>> mo.name
    'test'
    """
    import re
    if re.search(r"^\s*MAP", data, re.I): 
        return msLoadMapFromString(data, mappath)
    elif re.search(r"^\s*LAYER", data, re.I):
        ob = layerObj()
        ob.updateFromString(data)
        return ob
    elif re.search(r"^\s*CLASS", data, re.I):
        ob = classObj()
        ob.updateFromString(data)
        return ob
    elif re.search(r"^\s*STYLE", data, re.I):
        ob = styleObj()
        ob.updateFromString(data)
        return ob
    else:
        raise ValueError("No map, layer, class, or style found. Can not load from provided string")

# This file is compatible with both classic and new-style classes.


