diff --git a/Minkowski_sum_2/doc_tex/Minkowski_sum_2/mink_sum.tex b/Minkowski_sum_2/doc_tex/Minkowski_sum_2/mink_sum.tex
index 0300f0aab28..fb401860863 100644
--- a/Minkowski_sum_2/doc_tex/Minkowski_sum_2/mink_sum.tex
+++ b/Minkowski_sum_2/doc_tex/Minkowski_sum_2/mink_sum.tex
@@ -26,10 +26,91 @@ Given two sets $A,B \in \reals^d$, their \emph{Minkowski sum},
denoted by $A \oplus B$, is the set $\left\{ a + b ~\vert~ a \in
A, b \in B \right\}$. Minkowski sum are used in many applications,
such as motion planning and computer-aided design and
-manufacturing. This package contains functions for computing
+manufacturing. This package contains functions for computing planar
Minkowski sums of two polygons (namely $A$ and $B$ are two closed
polygons in $\reals^2$), and for a polygon and a disc (an operation
-also known as \emph{offsetting}).
+also known as \emph{offsetting} or \emph{dilating} a polygon).
+
+\section{Computing the Minkowski Sum of Two Polygons}
+\label{mink_sec:sum_poly}
+%====================================================
+
+Computing the Minkowski sum of two convex polygons $P$ ans $Q$ with
+$m$ and $n$ vertices respectively is very easy, as $P \oplus Q$ is a
+convex polygon bounded by copies of the $m + n$ edges, and these edges
+are sorted by the angle they form with the $x$-axis. As the two
+input polygons are convex, their edges are already sorted by the
+angle they form with the $x$-axis. The Minkowski sum can therefore be
+computed in $O(m + n)$ time, by starting from two botommost vertices
+in $P$ and in $Q$ and performing ``merge sort'' on the edges.
+
+\begin{figure}[t]
+\begin{ccTexOnly}
+\begin{center}
+ \begin{tabular}{c c}
+ \psfig{figure=Minkowski_sum_2/fig/onecyc_in.eps,width=2.5in,silent=} ~&~
+ \psfig{figure=Minkowski_sum_2/fig/onecyc_out.eps,width=2.5in,silent=}
+ \end{tabular}
+\end{center}
+\end{ccTexOnly}
+\begin{ccHtmlOnly}
+
+
+
+\end{ccHtmlOnly}
+\caption{Computing the convolution of a convex polygon and a
+non-convex polygon (left). The convolution consists of a single
+self-intersecting cycle, drawn as a sequence of arrows (right).
+The winding number associated with each face of the arrangement
+induced by the segments forming the cycle appears in dashed circles.
+The Minkowski sum of the two polygons is shaded.}
+\label{fig:onecyc}
+\end{figure}
+
+If the polygons are not convex, it is possible to use one of the following
+approaches:
+\begin{description}
+\item[Decomposition:]
+We decompose $P$ and $Q$ into convex sub-polygons, namely we obtain two
+sets of convex polygons $P_1, \ldots, P_k$ and $Q_1, \ldots, Q_\ell$ such
+that $\bugcup_{i = 1}{k}{P_i} = P$ and $\bugcup_{i = j}{\ell}{Q_j} = Q$.
+We then calculate the pairwise sums $S_{ij} = P_i \oplus Q_j$ using the
+simple procedure described above, and compute the union $P \oplus Q =
+\bigcup_{ij}{S_{ij}}$.
+
+This approach relies on a decoposition strategy that computes the convex
+decomposition of the input polygons and its performance depends on the
+quality of the decomposition.
+%
+\item[Convolution:]
+Let us denote the vertices of the input polygons by
+$P = \left( p_0, \ldots, p_{m-1} \right)$ and
+$Q = \left( q_0, \ldots, q_{n-1} \right)$. We assume that both $P$ and $Q$
+have positive orientations (i.e. their boundaries wind in a counterclockwise
+order around their interiors) and compute the convolution of the two polygon
+boundaries. The {\em convolution} of these two polygons~\cite{grs-kfcg-83},
+denoted $P * Q$, is a collection of line segments of the form
+$[p_i + q_j, p_{i+1} + q_j]$, where the vector $\overrightarrow{p_i p_{i+1}}$
+lies between $\overrightarrow{q_{j-1} q_j}$ and $\overrightarrow{q_j
+q_{j+1}}$,\footnote{We say that a vector $\vec{v}$ lies between
+two vectors $\vec{u}$ and $\vec{w}$ if we reach $\vec{v}$ strictly
+before reaching $\vec{w}$ if we move all three vectors to the origin
+and rotate $\vec{u}$ counterclockwise. Note that this also covers
+the case where $\vec{u}$ has the same direction as $\vec{v}$.} and
+--- symmetrically --- of segments of the form $[p_i + q_j, p_i + q_{j+1}]$,
+where the vector $\overrightarrow{q_j q_{j+1}}$ lies between
+$\overrightarrow{p_{i-1} p_i}$ and $\overrightarrow{p_i p_{i+1}}$.
+
+The segments of the convolution form a number of closed (not
+necessarily simple) polygonal curves called \emph{convolution
+cycles}. The Minkowski sum $P \oplus Q$ is the set of points
+having a non-zero winding number with respect to the cycles
+of $P * Q$.\footnote{Informally speaking, the winding number of a point
+$p \in \reals^2$ with respect to some planar curve $\gamma$ is an
+integer number counting how many times does $\gamma$ wind in a
+counterclockwise direction around $p$.} See Figure~\ref{fig:onecyc} for
+an illustration.
+\end{description}
\begin{figure}[t]
\begin{ccTexOnly}
@@ -47,5 +128,10 @@ in the example program \ccc{ex_sum_triangles.C}.}
\label{mink_fig:sum_tri}
\end{figure}
-
\ccIncludeExampleCode{../examples/Minkowski_sum_2/ex_sum_triangles.C}
+
+
+
+\section{Offsetting a Polygon}
+\label{mink_sec:offset}
+%=============================