% viewer % show how to % iterate % circulate % enrich primitives This tutorial implements an interactive basic polyhedron viewer based on the \cgalpoly\ with the default configuration. This viewer demonstrates basic functionalities of a \cgalpoly . We show the mesh traversal based on the \italic{iterators} and the \italic{circulators} during the assembly of facet polygons for basic OpenGL rendering. The viewer is then extended by customizing the \poly\ with extra attributes and functionalities. This enriched polyhedron supports facet and vertex normals for rendering, an axis-aligned bounding box of the polyhedron, and provides geometry items specialized with algorithmic flags. A number of rendering modes are available to the user depending on the choices of lighting, shading and edge superimposing. The superimposition of the control mesh on the subdivision surfaces is implemented for the quad-triangle scheme with a boolean flag of the halfedge item, this flag being automatically propagated to the subdivided edges during subdivision (\figurename\ \ref{fig:quad-triangle}). % basic combinatorial algorithms The tutorial demonstrates basic combinatorial algorithms on the connectivity of the polyhedron by counting the number of connected components and boundaries, and deducing the combinatorial genus of the active polyhedron. % OBJ format import/export In addition to the build-in features of OFF file I/O in \cgal , we show how to import a polyhedron file in the OBJ format based on the \italic{modifier callback mechanism} and the \italic{incremental builder}. The OBJ file exporting is simply based on mesh traversal. % camera The camera and transformation states are automatically adjusted when a new polyhedron is loaded so as to originally view the model in all. A function snapshots the camera and transformation states for the sake of comparing two models with the same viewpoint. % goodies The viewer also features a raster output of the current client image to the clipboard, as well as a vectorial output to a postscript file. Note however that the latter functionality is not based on the painter algorithm and performs instead a simple z-sorting of the polygons based on each facet barycenter and the current viewpoint.