diff --git a/Packages/Geomview/doc_html/support/Geomview/CGAL_Geomview_stream.html b/Packages/Geomview/doc_html/support/Geomview/CGAL_Geomview_stream.html deleted file mode 100644 index 136a13e4b4b..00000000000 --- a/Packages/Geomview/doc_html/support/Geomview/CGAL_Geomview_stream.html +++ /dev/null @@ -1,666 +0,0 @@ - - - - - - - - - - - - Geomview: CGAL_Geomview_stream - - - - - - - Navigation: - Up, - Table of Contents, - Bibliography, - Index, - Title Page -
- - - - - - - -

- -

Definition

An object of the class CGAL_Geomview_stream -is a stream in which geometric objects can be insrted and where -geometric objects can be extracted from. The constructor starts -geomview either on the local either on a remote machine. -

- -#include < -CGAL/IO/Geomview_stream.h> -

- -

Creation

-

- - - -
- -
- CGAL_Geomview_stream G ( - CGAL_Bbox_3 bbox = CGAL_Bbox_3(0,0,0, 1,1,1),
- const char *machine = NULL,
- const char *login = NULL);
- -
-
- Introduces a geomview stream G with a camera that sees the - bounding box. If machine and login are non-null, geomview is - started on the remote machine. -

-

- -

- -

Operations

Output Operators for CGAL Kernel Classes

-

- -At the moment not all classes of the CGAL kernel have output operators. -2D objects are embedded in the xy-plane. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - template <class R> - -
- - -CGAL_Geomview_stream& - - - - & G << CGAL_Point_2<R> p - -
- Inserts the point p into the stream G. -
- - template <class R> - -
- - -CGAL_Geomview_stream& - - - - & G << CGAL_Point_3<R> p - -
- Inserts the point p into the stream G. -
- - template <class R> - -
- - -CGAL_Geomview_stream& - - - - & G << CGAL_Segment_2<R> s - -
- Inserts the segment s into the stream G. -
- - template <class R> - -
- - -CGAL_Geomview_stream& - - - - & G << CGAL_Segment_3<R> s - -
- Inserts the segment s into the stream G. -
- - template <class R> - -
- - -CGAL_Geomview_stream& - - - - & G << CGAL_Triangle_2<R> t - -
- Inserts the triangle t into the stream G. -
- - template <class R> - -
- - -CGAL_Geomview_stream& - - - - & G << CGAL_Triangle_3<R> t - -
- Inserts the triangle t into the stream G. -
- - template <class R> - -
- - -CGAL_Geomview_stream& - - - - & G << CGAL_Tetrahedron_3<R> t - -
- Inserts the tetrahedron t into the stream G. -
- - CGAL_Geomview_stream& - - - - G << CGAL_Bbox_2 b - - - Inserts the bounding box b into the stream G. -
- - CGAL_Geomview_stream& - - - - G << CGAL_Bbox_3 b - - - Inserts the bounding box b into the stream G. -
- -

- -

Input Operators for CGAL Kernel Classes

-

- -At the moment input is only provided for points. The user has to select -a point on the pickplane with the right mouse button. The -pickplane can be moved anywhere with the left mouse button, before a -point is entered. -

- - - - - -
- - template <class R> - -
- - -CGAL_Geomview_stream& - - - - & G >> CGAL_Point_3<R>& p - -
- Extracts the point p from the stream G. The point is - echoed. -
- -

- -

Output Operators for CGAL Basic Library Classes

-

- - - - - -
- - template <class Traits, class HDS> - -
- - -CGAL_Geomview_stream& - - - - &G << CGAL_Polyhedron_3<Traits,HDS> P - -
- Inserts the polyhedron P into the stream G. -
- -

- -

Colors

-

- -geomview distinguishes between edge and face colors. The edge color is -at the same time the color of vertices. -

- - - - - - - - - - - -
- - CGAL_Geomview_stream& - - - - G << CGAL_Color c - - - Makes c the color of vertices, edges and faces in subsequent - IO operations. -
- - CGAL_Color - - - - G.set_bg_color ( CGAL_Color c) - -
- Changes the background color. Returns the old value. -
- - CGAL_Color - - - - G.set_vertex_color ( CGAL_Color c) - -
- Changes the vertex color. Returns the old value. -
- - CGAL_Color - - - - G.set_edge_color ( CGAL_Color c) - -
- Changes the edge color. Returns the old value. -
- - CGAL_Color - - - - G.set_face_color ( CGAL_Color c) - -
- Changes the face color. Returns the old value. -
- -

- -

Miscellaneous

-

- - - - - - - - - - - - - - - - - -
- - void - - - - G.clear () - - - Deletes all objects. -
- - void - - - - G.look_recenter () - - - Positions the camera in a way that all objects can be seen. -
- - int - - - - G.get_line_width () - - - Returns the line width. -
- - int - - - - G.set_line_width ( int w) - - - Sets the line width to w. Returns the previous value. -
- - double - - - - G.get_vertex_radius () - - - Returns the radius of vertices. -
- - double - - - - G.set_vertex_radius ( double r) - -
- Sets the radius of vertices to d. Returns the previous - value. -
- - bool - - - - G.set_trace ( bool b) - - - Sets tracing on. The data that are sent to geomview are also - sent to cerr. Returns the previous value. By default tracing - is off. -
- - bool - - - - G.get_trace () - - - Returns true iff tracing is on. -
- -

- -
begin of advanced section
-

Advanced and Developers Features

-

- -The following functions are helpful if you develop your own insert and -extract functions. The following functions allow to pass a string from -geomview and to read data sent back by geomview. -

- - - - - - - - - - - - - - - - - -
- - CGAL_Geomview_stream& - - - - G << const char* s - - - Inserts string s into the stream. -
- - CGAL_Geomview_stream& - - - - G >> char* s - - - Extracts a string s from the stream. -
Precondition: You have to allocate enough - memory. -
- - CGAL_Geomview_stream& - - - - G << int i - - - Inserts integer i into the stream. Puts whitespace around if - the stream is in ascii mode. -
- - CGAL_Geomview_stream& - - - - G << double d - - - Inserts double d into the stream. Puts whitespace around if - the stream is in ascii mode. -
- - bool - - - - G.in_ascii_mode () - - - Returns true iff G is in ascii mode. -
- - bool - - - - G.in_binary_mode () - - - Returns true iff G is in binary mode. -
- - void - - - - G.set_binary_mode () - - - -
- - void - - - - G.set_ascii_mode () - - - -
- -

- -For convenience we offer the manipulators ascii and -binary that can be inserted in the stream. -

- - - - - -
- - CGAL_Geomview_stream& - - - - G << ascii - - - Sets the stream in ascii mode. -
- - CGAL_Geomview_stream& - - - - G << binary - - - Sets the stream in binary mode. -
- -

- -
end of advanced section
-

- -

-
-
-

- -

Implementation

The constructor forks a process and establishes -two pipes between the processes. The forked process is then overlayed -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 -comand language, which is a subset of LISP. 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 -[GV_Impl] and at the geomview -manual [GVManual]. -

- - - - - - -


- Navigation: - Up, - Table of Contents, - Bibliography, - Index, - Title Page -
- -
- The CGAL Project. 0.9. Wed, September 30, 1998. -
- - - - diff --git a/Packages/Geomview/doc_html/support/Geomview/Chapter_geomview.html b/Packages/Geomview/doc_html/support/Geomview/Chapter_geomview.html deleted file mode 100644 index df7f5e729a8..00000000000 --- a/Packages/Geomview/doc_html/support/Geomview/Chapter_geomview.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - Geomview: - - - - - - - Navigation: - Up, - Table of Contents, - Bibliography, - Index, - Title Page -
- - -

Geomview

-

- - -

Introduction

-

- -This chapter presents the CGAL interface to geomview, which is a -viewer for three-dimensional objects, developed at the Geometry Center -in Minneapolis[^1].

- -\noindent Important: The last line in the startup file .geomview -must be (echo "started"). The two commands rsh and geomview -must be in the user's path. Otherwise the program will not be able to execute.

- -

- -

- -

- - - -


Footnotes

- -

    -
  1. http://www.geom.umn.edu/ -
- - - - - - -
- Navigation: -
Up, - Table of Contents, - Bibliography, - Index, - Title Page -
- -
- The CGAL Project. 0.9. Tue, September 29, 1998. -
- - - - diff --git a/Packages/Geomview/doc_html/support/Geomview/Chapter_main.html b/Packages/Geomview/doc_html/support/Geomview/Chapter_main.html deleted file mode 100644 index fcaed16e778..00000000000 --- a/Packages/Geomview/doc_html/support/Geomview/Chapter_main.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - Geomview: - - - - - - - Navigation: - Up, - Table of Contents, - Bibliography, - Index, - Title Page -
- - -

Geomview

-

- - -

Introduction

-

- -This chapter presents the CGAL interface to Geomview, which is a -viewer for three-dimensional objects, developed at the Geometry Center -in Minneapolis[^1].

- -\noindent Important: The last line in the startup file .geomview -must be (echo "started"). The two commands rsh and Geomview -must be in the user's path, otherwise the program will not be able to execute.

- -

- -

- - - -


Footnotes

- -

    -
  1. http://www.geom.umn.edu/ -
- - - - - - -
- Navigation: -
Up, - Table of Contents, - Bibliography, - Index, - Title Page -
- -
- The CGAL Project. 0.9. Tue, May 18, 1999. -
- - - - diff --git a/Packages/Geomview/doc_html/support/Geomview/biblio.html b/Packages/Geomview/doc_html/support/Geomview/biblio.html deleted file mode 100644 index 10c52a8814a..00000000000 --- a/Packages/Geomview/doc_html/support/Geomview/biblio.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - Geomview: Bibliography - - - - - - - Navigation: - Up, - Table of Contents, - Bibliography, - Index, - Title Page -
- - -

Geomview
Bibliography

-
- - - - - - - - - - - - -
[GVManual] -Mark Phillips et al. Geomview Manual. Version 1.6.1 for Unix -Workstations. December 10, 1996. -

- -

[GV_Impl] -Andreas Fabri. How to Implement Geomview Stream IO Operators. July -1997. http://www.cs.ru.nl/CGAL/
- - -
- Navigation: - Table of Contents, - Bibliography, - Index, - Title Page -
- -
- The CGAL Project. 0.9. Wed, September 30, 1998. -
- - - - diff --git a/Packages/Geomview/doc_html/support/Geomview/contents.html b/Packages/Geomview/doc_html/support/Geomview/contents.html deleted file mode 100644 index eab5fc44aa7..00000000000 --- a/Packages/Geomview/doc_html/support/Geomview/contents.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - Geomview: Table of Contents - - - - - - - Navigation: - Table of Contents, - Bibliography, - Index, - Title Page -
- - -

Geomview
Table of Contents

-
- - -
    -
  1. Title Page -
  2. Table of Contents - - diff --git a/Packages/Geomview/doc_html/support/Geomview/manual_index.html b/Packages/Geomview/doc_html/support/Geomview/manual_index.html deleted file mode 100644 index ec14b34232f..00000000000 --- a/Packages/Geomview/doc_html/support/Geomview/manual_index.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - Geomview: Index - - - - - - - Navigation: - Table of Contents, - Bibliography, - Index, - Title Page -
    - - -

    Geomview
    Index

    -
    - - - - - -
    - Navigation: - Table of Contents, - Bibliography, - Index, - Title Page -
    - -
    - The CGAL Project. 2.2. Tue, May 18, 1999. -
    - - - - diff --git a/Packages/Geomview/doc/main.tex b/Packages/Geomview/doc_tex/Geomview/main.tex similarity index 100% rename from Packages/Geomview/doc/main.tex rename to Packages/Geomview/doc_tex/Geomview/main.tex diff --git a/Packages/Geomview/doc/wrapper.tex b/Packages/Geomview/doc_tex/Geomview/wrapper.tex similarity index 100% rename from Packages/Geomview/doc/wrapper.tex rename to Packages/Geomview/doc_tex/Geomview/wrapper.tex diff --git a/Packages/Geomview/doc_tex/support/Geomview/main.tex b/Packages/Geomview/doc_tex/support/Geomview/main.tex new file mode 100644 index 00000000000..7ade2e780e3 --- /dev/null +++ b/Packages/Geomview/doc_tex/support/Geomview/main.tex @@ -0,0 +1,334 @@ +\newcommand{\Section}[1]{Section~{\protect\ref{#1}}} +\newcommand{\Chapter}[1]{Chapter~{\protect\ref{#1}}} +\newcommand{\new}[1]{\marginpar{\sf #1}} + +\newcommand{\what}{\mbox{?\hspace*{2cm}?}} + + +\parindent0em +\setlength{\parskip}{1ex minus 0.9ex} +\sloppy + +\newcommand{\note}[1]{{\bf NOTE: #1}} + +\chapter{Geomview} \label{ChapterGeomview} + + +\section{Introduction} + +This chapter presents the \cgal\ interface to Geomview, which is a +viewer for three-dimensional objects, developed at the Geometry Center +in Minneapolis\footnote{\tt http://www.geom.umn.edu/}. + +\noindent {\bf Important:} The last line in the startup file \ccc{.geomview} +must be \ccc{(echo "started")}. The two commands \ccc{rsh} and \ccc{Geomview} +must be in the user's path, otherwise the program will not be able to execute. + +\begin{ccClass}{Geomview_stream} +\ccDefinition +An object of the class \ccClassName\ 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. + +\ccInclude{CGAL/IO/Geomview_stream.h} + +\ccSetThreeColumns{Geomview_stream& }{}{\hspace*{10cm}} +\ccThreeToTwo +\ccCreation +\ccCreationVariable{G} + +\ccConstructor{Geomview_stream(const Bbox_3 &bbox + = Bbox_3(0,0,0, 1,1,1), + const char *machine = NULL, + const char *login = NULL);} +{Introduces a Geomview stream \ccVar\ with a camera that sees the +bounding box. If machine and login are non-null, Geomview is started +on the remote machine.} + + + +\ccOperations + + +\ccHeading{Output Operators for CGAL Kernel Classes} + +\def\ccTagRmEigenClassName{\ccFalse} +%\def\ccTagOperatorLayout{\ccFalse} + +At the moment not all classes of the \cgal\ kernel have output +operators. 2D objects are embedded in the \ccc{xy}-plane. + +\ccFunction{template + Geomview_stream& + operator<<(Geomview_stream& G, + const Point_2& p);} +{Inserts the point \ccc{p} into the stream \ccVar.} + + +\ccFunction{template + Geomview_stream& + operator<<(Geomview_stream& G, + const Point_3& p);} +{Inserts the point \ccc{p} into the stream \ccVar.} + + +\ccFunction{template + Geomview_stream& + operator<<(Geomview_stream& G, + const Segment_2& s);} +{Inserts the segment \ccc{s} into the stream \ccVar.} + +\ccFunction{template + Geomview_stream& + operator<<(Geomview_stream& G, + const Segment_3& s);} +{Inserts the segment \ccc{s} into the stream \ccVar.} + + +\ccFunction{template + Geomview_stream& + operator<<(Geomview_stream& G, + const Triangle_2& t);} +{Inserts the triangle \ccc{t} into the stream \ccVar.} + + +\ccFunction{template + Geomview_stream& + operator<<(Geomview_stream& G, + const Triangle_3& t);} +{Inserts the triangle \ccc{t} into the stream \ccVar.} + + +\ccFunction{template + Geomview_stream& + operator<<(Geomview_stream& G, + const Tetrahedron_3& t);} +{Inserts the tetrahedron \ccc{t} into the stream \ccVar.} + + +\ccFunction{Geomview_stream& + operator<<(Geomview_stream& G, + const Bbox_2& b);} +{Inserts the bounding box \ccc{b} into the stream \ccVar.} + +\ccFunction{Geomview_stream& + operator<<(Geomview_stream& G, + const Bbox_3& b);} +{Inserts the bounding box \ccc{b} into the stream \ccVar.} + + +\ccHeading{Input Operators for CGAL Kernel Classes} + +At the moment input is only provided for points. The user has to select +a point on the {\it pick plane} with the right mouse button. The pick plane +can be moved anywhere with the left mouse button, before a point is entered. + +\ccFunction{template + Geomview_stream& + operator>>(Geomview_stream& G, + Point_3& p);} +{Extracts the point \ccc{p} from the stream \ccVar. The point is + echoed.} + + + +\ccHeading{Output Operators for CGAL Basic Library Classes} + +\ccFunction{template +Geomview_stream& +operator<<(Geomview_stream &G, + const Polyhedron_3 &P);} +{Inserts the polyhedron \ccc{P} into the stream \ccVar.} + +%% There is no tetrahedralization class at the moment +%% +%% \ccFunction{template +%% Geomview_stream& +%% operator<<(Geomview_stream& G, +%% const Tetrahedralization_3& T);} +%% {Inserts the tetrahedralization \ccc{T} into the stream \ccVar.} +%% +%% For geometric structures as a tetrahedalization only one Geomview +%% object is created. If you want to select a single simplex you have +%% to insert the simplices individually with the following operator. +%% +%% \ccFunction{template +%% Geomview_stream& +%% operator<<(Geomview_stream& G, +%% const Tetrahedralization_simplex* s);} +%% {Inserts the tetrahedralization simplex \ccc{s} into the stream \ccVar.} +%% +%% +%% \ccFunction{template < class V > +%% Geomview_stream& +%% operator>>(Geomview_stream &G, +%% Tetrahedralization_simplex*& s);} +%% {Assigns the pointer to the tetrahedralization simplex the user selected +%% with the right mouse button to variable \ccc{s}. +%% \ccPrecond It is in the responsibility of the user to guarantee that the +%% pointer still points to memory allocated for a simplex.} +%% +%% +%% \ccFunction{template +%% Geomview_stream& +%% operator<<(Geomview_stream& G, +%% const Tetrahedralization_vertex

    * v);} +%% {Inserts the tetrahedralization vertex \ccc{v} into the stream \ccVar. +%% Vertices are drawn as a cube with twice \ccc{G.get_vertex_radius} +%% as side length. This value is 1/100'th of the \ccc{x}-length of the +%% initial bounding box.} +%% +%% +%% \ccFunction{template < class P> +%% Geomview_stream& +%% operator>>(Geomview_stream &G, +%% Tetrahedralization_vertex*& v);} +%% {Assigns the pointer to the tetrahedralization vertex the user selected +%% with the right mouse button to variable \ccc{v}. +%% \ccPrecond It is in the responsibility of the user to guarantee that the +%% pointer still points to memory allocated for a vertex.} +%% +%% end of commented section + +\ccHeading{Colors} + +Geomview distinguishes between edge and face colors. The edge color +is at the same time the color of vertices. + +\ccMethod{Geomview_stream& + operator<<(const Color& c);} +{Makes \ccc{c} the color of vertices, edges and faces in subsequent IO + operations.} + +\ccMethod{Color + set_bg_color(const Color& c);} +{Changes the background color. Returns the old value.} + +\ccMethod{Color + set_vertex_color(const Color& c);} +{Changes the vertex color. Returns the old value.} + +\ccMethod{Color + set_edge_color(const Color& c);} +{Changes the edge color. Returns the old value.} + + +\ccMethod{Color + set_face_color(const Color& c);} +{Changes the face color. Returns the old value.} + + +\ccHeading{Miscellaneous} + +\ccMethod{void + clear();} +{Deletes all objects.} + +\ccMethod{void + look_recenter();} +{Positions the camera in a way that all objects can be seen.} + +\ccMethod{int + get_line_width() const;} +{Returns the line width.} + +\ccMethod{int + set_line_width(int w);} +{Sets the line width to \ccc{w}. Returns the previous value.} + +\ccMethod{double + get_vertex_radius() const;} +{Returns the radius of vertices.} + +\ccMethod{double + set_vertex_radius(double r) const;} +{Sets the radius of vertices to \ccc{d}. Returns the previous value.} + +\ccMethod{bool + get_trace();} +{Returns \ccc{true} iff tracing is on.} + +\ccMethod{bool + set_trace(bool b);} +{Sets tracing on. The data that are sent to \ccc{Geomview} are also + sent to \ccc{cerr}. Returns the previous value. By default tracing is + off.} + + + + +\begin{ccAdvanced} + +\ccHeading{Advanced and Developers Features} + +The following functions are helpful if you develop your own insert +and extract functions. The following functions allow to pass a string +from Geomview and to read data sent back by Geomview. + +\ccMethod{Geomview_stream& + operator<<(const char* s);} +{Inserts string \ccc{s} into the stream.} + + +\ccMethod{Geomview_stream& + operator>>(char* s);} +{Extracts a string \ccc{s} from the stream. +\ccPrecond You have to allocate enough memory.} + +\ccMethod{Geomview_stream& + operator<<(int i);} +{Inserts integer \ccc{i} into the stream. Puts whitespace around if the +stream is in ascii mode.} + + +\ccMethod{Geomview_stream& + operator<<(double d);} +{Inserts double \ccc{d} into the stream. Puts whitespace around if the +stream is in ascii mode.} + +\ccMethod{bool in_binary_mode();} +{Returns \ccc{true} iff \ccVar\ is in binary mode.} + +\ccMethod{bool in_ascii_mode();} +{Returns \ccc{true} iff \ccVar\ is in binary mode.} + +\ccMethod{void set_binary_mode();}{} +\ccMethod{void set_ascii_mode();}{} + +For convenience we offer the manipulators \ccc{ascii} and \ccc{binary} +that can be inserted in the stream. + +\ccMethod{Geomview_stream& + operator<<(ascii);} +{Sets the stream in ascii mode.} + +\ccMethod{Geomview_stream& + operator<<(binary);} +{Sets the stream in binary mode.} + +\end{ccAdvanced} + +%\ccExample +%\begin{cprog} +%\end{cprog} + +\ccImplementation + +The constructor forks a process and establishes two pipes between the +processes. The forked process is then overlaid with Geomview. The +file descriptors \ccc{stdin} and \ccc{stdout} of Geomview are hooked +on the two pipes. + +All insert operators construct expressions in \ccc{gcl}, the Geomview +comand language, which is a subset of {\sc Lisp}. These expressions +are sent to Geomview via the pipe. The extract operators notify \ccc{interest} +for a certain kind of events. When such an event happens Geomview +sends a description of the event in \ccc{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 \cite{f-higso-97} and at the Geomview +manual \cite{p-gmgv16-96}. +\end{ccClass} + diff --git a/Packages/Geomview/doc_tex/support/Geomview/wrapper.tex b/Packages/Geomview/doc_tex/support/Geomview/wrapper.tex new file mode 100644 index 00000000000..ed895ffc718 --- /dev/null +++ b/Packages/Geomview/doc_tex/support/Geomview/wrapper.tex @@ -0,0 +1,47 @@ +% +------------------------------------------------------------------------+ +% | CGAL Reference Manual: wrapper.tex +% +------------------------------------------------------------------------+ +% | Main TeX file for testing CGAL packages. +% +------------------------------------------------------------------------+ + +\documentclass{book} + +\usepackage{cprog} +\usepackage{cc_manual} +\usepackage{amssymb} +\usepackage{graphicx} +\usepackage{path} +\usepackage{ipe} + +% page dimensions +% --------------- +% The page dimensions are compulsory and may not be changed in main.tex. + +\textwidth 15.6cm +\textheight 23 cm +\topmargin -14mm +\evensidemargin 3mm +\oddsidemargin 3mm + +% default column layout +% --------------------- +% This is the recommended layout. It may be changed inside main.tex. + +\newcommand{\cgalColumnLayout}{\ccTexHtml{% + \ccSetThreeColumns{CGAL_Oriented_side}{}{\hspace*{8.5cm}} + \ccPropagateThreeToTwoColumns}{}} + +\sloppy + +\begin{document} + +\cgalColumnLayout + +\include{main} + +\bibliographystyle{alpha} +\bibliography{geom,cgal} + +\end{document} + +%% EOF %%