cgal/Geomview/doc/Geomview/Geomview.txt

57 lines
2.0 KiB
Plaintext

namespace CGAL {
/*!
\mainpage User Manual
\anchor Chapter_Geomview
\cgalAutoToc
\authors Andreas Fabri and Sylvain Pion
\section GeomviewDefinition Definition
This chapter presents the \cgal interface to Geomview \cgalFootnote{http://www.geomview.org/}, which is a
viewer for three-dimensional objects, originally developed at the Geometry
Center in Minneapolis \cgalFootnote{http://www.geom.umn.edu/}.
<B>Note:</B> The functionality described in this chapter is not available on Windows.
An object of the class `Geomview_stream` is a stream in which geometric
objects can be inserted and where geometric objects can be extracted
from. The constructor starts Geomview either on the local either on
a remote machine.
Not all but most classes of the \cgal kernel have output
operators for the `Geomview_stream`.
2D objects are embedded in the `xy`-plane.
Input is only provided for points.
Polyhedron and 2D and 3D triangulations have output
operators for the `Geomview_stream`.
\section GeomviewImplementation Implementation
The constructor forks a process and establishes two pipes between the
processes. The forked process is then overlaid with Geomview. The
file descriptors `stdin` and `stdout` of Geomview are hooked
on the two pipes.
All insert operators construct expressions in `gcl`, the Geomview
command language, which is a subset of <span class="textsc">Lisp</span>. These expressions
are sent to Geomview via the pipe. The extract operators notify `interest`
for a certain kind of events. When such an event happens Geomview
sends a description of the event in `gcl` and the extract operator has
to parse this expression.
In order to implement further insert and extract operators you should
take a look at the implementation and at the Geomview manual.
\section GeomviewExample Example
The following program ouputs successively a 2D
Delaunay triangulation (projected), a 3D Delaunay, and a terrain
from the set of points.
\cgalExample{Geomview/gv_terrain.cpp}
*/
} /* namespace CGAL */