\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[charter]{mathdesign}
\usepackage[margin=2.5cm]{geometry}
\usepackage{xspace}
\usepackage{multicol}
\usepackage{listings}
\usepackage{mflogo}
\usepackage[frenchb]{babel}

\newcommand\mpgdd{\texttt{mpgdd}\xspace}
\newcommand\fichier[1]{\texttt{#1}}
\newcommand\variable[1]{\texttt{#1}}
\newcommand\typeMP[1]{\texttt{#1}}
\newcommand\typeGDD[1]{\texttt{#1}}

\begin{document}

\section{Introduction}

\mpgdd est un ensemble d'outils pour la géométrie plane avec \MP. Cet
ensemble se compose de plusieurs fichiers :

\begin{enumerate}
\item \fichier{gdd.mp} : c'est le fichier principale, il contient
  les structures et fonctions générales.
\item \fichier{gdd-arc.mp} :
  contient tout ce qui concerne les arcs de cercles.
\item \fichier{gdd-c2d.mp} :
  contient tout ce qui concerne les  courbes du second degré.
\item \fichier{gdd-fct.mp} :
  contient quelques fonctions mathématiques usuelles.
\item \fichier{gdd-lbl.mp} :
  contient les fonctions relatives aux labels.
\item \fichier{gdd-plt.mp} :
  contient des fonctions facilitant la représentation de fonctions mathématiques.
\item \fichier{gdd-rep.mp}
  contient différents outils pour le tracé de figure dans un repère.
\item \fichier{gdd-tra.mp}
  contient les fonction permettant de gérer la transparence (code
  emprunté à Anthony \bsc{Phan}).
\end{enumerate}


Nous allons, dans la suite, décrire plus en détails chacune de ces
fonctions. Il est à noté aussi que certaines fonctions s'appuient sur
l'extension \fichier{graph.mp} présent dans toutes les bonnes
distributions \TeX.

\section{Principe général de fonctionnement}

\mpgdd utilise des tables comme stucture principale.
Chaque objet est numéroté via le compteur \variable{gddO}, son
type\footnote{Les types son propres à \mpgdd et seront décrit plus
  tard.} est stocké dans la table \variable{gddT[]} à la place
\variable{gddT[gddO]}. Les propriétés des objets sont définis dans, là
encore, des tables de type \typeMP{numeric} qui sont
\variable{gddA[]}, \variable{gddB[]},\dots,\variable{gddF[]}.

Par exemple, pour un \typeGDD{Point} (type \mpgdd), la première coordonnée
se trouve dans \variable{gddA[]} et la seconde dans \variable{gddB[]}
(les autres table ne sont pas utilisées pour un tel objet).

Il y a deux tables particulières \variable{gddP[]} qui est du type
\typeMP{path} et \variable{gddS[]} qui est du type
\typeMP{string}. Nous verrons plus tard quelle est leur utilité.

Bien entendu, lors d'une utilisation classique de \mpgdd, l'appel à
toutes ces tables n'est pas chose courante.

\section{Les types}

On peut, avec \mpgdd, construire plusieurs types
d'objets. Rappelons le, tout est \emph{objet} dont le nombre est
enregistré dans la variable \variable{gddO}. Le type d'objet, lui, est
stocké dans la table \variable{gddT[]}, et les tables \variable{gddA[]}
à \variable{gddF[]} contiennent les propriétés des objets.

Nous allons ici décrire chaque type de l'extension \mpgdd ainsi que
leurs propriétés respectives.

\paragraph{Le type \typeGDD{point}} Ce type est correspond au point de
l'espace euclidien. Pour être plus clair voici la fonction principale
pour créer un tel objet :

\begin{lstlisting}
vardef Point(expr a,b) =
  gddT[incr gddO] = "point";
  gddA[gddO] = a; gddB[gddO] = b; gddO
enddef;
\end{lstlisting}



\section{Fonctions générales}

\subsection{Relatives aux \typeGDD{Point}s}

\subsection{Un peu de géométrie}




\end{document}
