\section{Constitution of the package -- Distribution}

\begin{compactitem}
\item \textbf{Required files:} \texttt{pst-solides3d.sty}, \texttt{pst-solides3d.tex},
\texttt{solides.pro} and the latest version of the basic PSTricks package.
\item \textbf{Workflow:} This package is made for \texttt{dvips} and \texttt{ps2pdf}, however
\texttt{pdf\TeX{}} won't work.
\item \textbf{Documentation and examples:} \texttt{pst-solides3d-doc.tex(pdf)},
\texttt{doc-exemples-solides3d.tex(pdf)}.
\end{compactitem}

This package is available on:
\url{http://syracuse.eu.org/syracuse/pstricks/pst-solides3d/}
as well as on CTAN.

Numerous examples are available on:
\url{http://syracuse.eu.org/lab/bpst/pst-solides3d}

Finally, the actual developer's version is available on the
\texttt{SVN} of \textit{m\'{e}lusine}:
\url{http://syracuse-dev.org/pst-solides3d}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Installation hints}

Here we give some hints on how to install \texttt{pst-solides3d}
on your \TeX{} system.

The \texttt{pst-solides3d} package consists of three main files:
\begin{compactitem}
\item \texttt{solides.pro}: the prolog file for \texttt{pst-solides3d}
\item \texttt{pst-solides3d.sty}: the appropriate style file
\item \texttt{pst-solides3d.tex}: the appropriate tex file
\end{compactitem}
as well as the actual PSTricks base files:
\begin{compactitem}
\item \texttt{pstricks.pro}: the prolog file for pstricks
\item \texttt{pstricks.tex}: the appropriate tex file
\end{compactitem}
available on CTAN.

Some extension files for \texttt{pst-rubans}:
\begin{compactitem}
\item \texttt{pst-rubans.sty}: the appropriate style file
\item \texttt{pst-rubans.tex}: the appropriate tex file
\end{compactitem}

Save the files \texttt{pst-solides3d.sty|tex},
\texttt{pst-rubans.sty|tex} and \texttt{pstricks.tex} in a
directory which is part of your local \TeX{} tree.

However the \texttt{solides.pro} and the \texttt{pstricks.pro} file should go into the
folder \verb+$TEXMF/dvips/pstricks/+  %$

Do not forget to run \texttt{texhash} to update this tree. For
MiK\TeX{} users, do not forget to update the file name database
(FNDB).

For more detailed information see the documentation of your
personal \LaTeX{} distribution on installing packages to your
local \TeX{} system.




%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Preface}

The package presented in this documentation arose from teamwork
initiated via the mailing list of the syracuse web site
(\url{http://melusine.eu.org/syracuse}).

The idea was born of a confrontation between the work of
Jean-Paul \textsc{Vignault} on the software package \textit{jps2ps}%
\footnote{\url{http://melusine.eu.org/syracuse/bbgraf/}}
and Manuel \textsc{Luque}'s work on PSTricks%
\footnote{\url{http://melusine.eu.org/syracuse/pstricks/pst-v3d/}},
especially in relation to the subject of representing solids in
three-dimensional space.

The two authors decided to unify their efforts and co-author a
PSTricks package dedicated to three-dimensional scenes. The work
took place on the ``machine \textit{m\'{e}lusine}'' within an
environment generated and maintained by Jean-Michel
\textsc{Sarlat}.

The team was completed with the addition of Arnaud
\textsc{Schmittbuhl}, Herbert \textsc{Voss}
and J\"{u}rgen \textsc{Gilg}, the latter specialising in animation-based beta-testing%
\footnote{\url{http://melusine.eu.org/syracuse/pstricks/pst-solides3d/animations/}}.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\section {Presentation}

The package \texttt{pst-solides3d}, with the help of PSTricks,
allows for 3D views of predefined or user-generated solids. You
will find most of the usual solids, which can be drawn with or
without hidden edges, whose colour can be varied with lighting.

This package can project text or simple graphics (in 2D) onto
arbitrarily chosen planes or onto plane faces of solids that are
created by the user.

From the user's standpoint, most of its functionalities are
accessible by way of three \TeX{} macros: \Lcs{psSolid}, which can
manipulate objects in 3 dimensions, \Lcs{psSurface}, related to the
first macro and designed to represent surfaces that are defined by
an equation of the type $f(x,y) = z$ and \Lcs{psProjection} which
allows the user to project two-dimensional graphics/text onto any
plane face of a 3D solid.

In using this package, two languages come together: on the one
hand PSTricks, with its well-known macros and familiar syntax, and
on the other PostScript code, which appears within the optional
arguments of the former.

We have made the decision to strictly limit the involvement of
PSTricks. Its function is only to transmit parameters from \TeX{}
to PostScript. All calculations and displays are done by the
latter.

A PostScript library, which was developed for another application
(the software package \textit{jps2ps}), is used for all
calculations and display routines. The PostScript code used in
this library is called \textit{jps code}.

The aim of the present document is to describe PSTricks syntax for
each operation provided by the package.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Changes by comparison with previous versions}

\subsection{Changes compared to version 3.0}

\begin{compactitem}
\item The macro \Lcs{psProjection} has been completely rewritten. We now need to use an
object of type \Lkeyword{plan} to define a projection.
\item The object \Lkeyword{courbe} now uses the argument $r$. To reproduce the previous behaviour
we now have to specify $r=0$.
\item The option \Lkeyword{resolution} of the object \Lkeyword{courbe} is replaced with the option
\Lkeyword{ngrid}
\item Suppression of the argument \Lkeyword{tracelignedeniveau}.
\end{compactitem}

\subsection{Changes compared to version 2.0}

\begin{compactitem}
\item The option \Lkeyword{hue} is not a Boolean anymore.
\item The scaling in PostScript will from now on follow the workings of \textit{jps code}.
To be consistent, the commands \verb+smoveto+,
\verb+srmoveto+, \verb+slineto+, \verb+srlineto+ now
respectively replace the commands \verb+moveto+,
\verb+rmoveto+, \verb+lineto+, \verb+rlineto+.
\end{compactitem}
