.. index::
   pair: MapScript; Introduction

.. _mapscript_introduction:

=============================================================================
 Introduction
=============================================================================

This is language agnostic documentation for the MapScript interface to 
MapServer generated by SWIG.  This document is intended for developers
and to serve as a reference for writers of more extensive, language
specific documentation located at :ref:`mapfile`

-----------------------------------------------------------------------------
 Appendices
-----------------------------------------------------------------------------

Language-specific extensions are described in the following appendices

:ref:`Python Appendix <python>` 

-----------------------------------------------------------------------------
 Documentation Elements
-----------------------------------------------------------------------------

Classes will be documented in alphabetical order in the manner outlined below.
Attributes and methods will be formatted as definition lists with the
attribute or method as item, the type or return type as classifier, and a
concise description. To make the document as agnostic as possible, we refer to
the following types: int, float, and string.  There are yet no mapscript
methods that return arrays or sequences or accept array or sequence arguments.

We will use the SWIG term *immutable* to indicate that an attribute's value
is read-only.

------
fooObj
------

A paragraph or two about class fooObj.

fooObj Attributes
-----------------

attribute : type [access]
    Concise description of the attribute.

Attribute name are completely lower case.  Multiple words are
packed together like *outlinecolor*.

Note that because of the way that mapscript is generated many confusing,
meaningless, and even dangerous attributes are creeping into objects.  See
outputFormatObj.refcount for example.  Until we get a grip on the structure
members we are exposing to SWIG this problem will continue to grow.

fooObj Methods
--------------

method(type mandatory_parameter [, type optional_parameter=default]) : type
    Description of the method including elaboration on the method
    arguments, the method's actions, and returned values.  Optional
    parameters and their default values are enclosed in brackets.

Class method names are camel case with a leading lower case character
like *getExpressionString*.

-----------------------------------------------------------------------------
 Additional Documentation
-----------------------------------------------------------------------------

There's no point in duplicating the MapServer Mapfile Reference, which
remains the primary reference for mapscript class attributes.
