player is an interactive 3D viewer of 3D scenes and models.
It can read data in VRML format,
display it, and respond to user events. The player is degenerate, as some
VRML features are not supported (e.g., fog, scripts, etc.). On the other
hand, it is enhanced with some new features. In particular, the input
format was extended with the ExactPolyhedron geometry-node that
represents models using the CGAL Polyhedron_3 data structure,
the CubicalGaussianMap geometry-node that represents
models using the Cubical_gaussian_map data structure, the
ColorBackground, the SingleKeySensor and a few other nodes.
Type
player [options] <model>
to execute the player, where <model> is the name of a file in VRML
format.
The specification of the some of the new nodes follows.
ExactPolyhedron { exposedField SFNode coord NULL field MFInt32 coordIndex [] # [-1,) field SFBool convexHull FALSE}
The coord field contains a Coordinate node that defines the 3D
vertices referenced by the coordIndex field. The indices in the
coordIndex field specify the polygonal facets by indexing into
the coordinates in the Coordinate node. An index of "-1" indicates that
the current facet has ended. If the coordIndex field is absent
or the convexHull field is TRUE, the polyhedron is the convex
hull of the vertices defined in the coord field.
CubicalGaussianMap { exposedField SFNode coord NULL field MFInt32 coordIndex [] # [-1,) field SFBool DrawDual FALSE field SFBool drawDualOpaque FALSE field SFBool drawDualHaloed TRUE field SFBool drawDualUnfolded FALSE field SFBool drawDualCube TRUE field SFFloat dualLineWidth 1 field SFColor dualCubeColor 0.5 0.5 0.5 # [0,1] field SFColor dualLineColor 1 1 1 # [0,1]}
The coord field contains a Coordinate node that defines the 3D
vertices referenced by the coordIndex field. The indices in the
coordIndex field specify the polygonal facets by indexing into
the coordinates in the Coordinate node. An index of "-1" indicates that
the current facet has ended. If the dualDraw field is FALSE,
the primal representation of the polyhedron is displayed. Otherwise, the
dual representation of the polyhedron is displayed. While in dual
display-mode, if the drawDualUnfolded field is FALSE, the unit
cube of the cubical Gaussian map is displayed in 3D. Otherwise, it is
displayed unfolded. While in dual 3D display-mode, if the
drawDualOpaque field is TRUE the faces of the cube are opaque,
and only the front facing faces are drawn. Otherwise, all faces are drawn,
and the front faces are translucent. While in dual 3D display-mode, if the
drawDualHaloed is TRUE, the segments are drawn hauloed. The
dualLineWidth indicate the width of the drawn segments. The
dualCubeColor and dualLineColor specify the color of
the faces of the cube and the color of the segments respectively, while in
dual display-mode.
NefGaussianMap { exposedField SFNode coord NULL field MFInt32 coordIndex [] # [-1,) field SFBool DrawDual FALSE field SFBool drawDualOpaque FALSE field SFBool drawDualHaloed TRUE field SFBool drawDualSphere TRUE field SFFloat dualLineWidth 1 field SFColor dualSphereColor 0.5 0.5 0.5 # [0,1] field SFColor dualLineColor 1 1 1 # [0,1]}
The coord field contains a Coordinate node that defines the 3D
vertices referenced by the coordIndex field. The indices in the
coordIndex field specify the polygonal facets by indexing into
the coordinates in the Coordinate node. An index of "-1" indicates that
the current facet has ended. If the dualDraw field is FALSE,
the primal representation of the polyhedron is displayed. Otherwise, the
dual representation of the polyhedron is displayed. While in dual
display-mode, if the drawDualOpaque field is TRUE the sphere is
opaque, and only the front facing hemisphere is drawn. Otherwise, the entire
sphere is drawn, and the front hemisphere is translucent. While in dual
display-mode, if the drawDualHaloed is TRUE, the geodesic
segments are drawn hauloed. The dualLineWidth indicate the width
of the drawn geodesic segments. The dualSphereColor and the
dualLineColor specify the color of the sphere and the color of
the geodesic segments respectively, while in dual display-mode.
ColorBackground { field SFColor color 0 0 0 # [0,1]}
This node can be used to initialize the background to some color specified
with color> field. All the examples generated for the paper
use a white background. The corresponding models contain the following
statement:
ColorBackground { color 1 1 1 }
SingleKeySensor { field SFString key none # ["a", "b", ...] field SFBool state FALSE}
This node can be used to map a single key to function.
Input
The input files available for download contain ROUTE statements that
enable the toggling of the boolean state of the fields above. The table
below describes the mapping between the keys and the fields they control
used as a convention in all input files.
Key
Field
d
dualDraw
o
drawDualOpaque
u
drawDualUnfolded
l
drawDualHaloed
b
drawDualBackground
Models (Click at the image to see more)
Platonic
Tetrahedron
Cube
Octahedron
Icosahedron
Dodecahedron
Semi Regular
Pentagonal Hexecontahedron
Truncated Icosidodecahedron
Pyramids
Dioctagonal Pyramid
Dipyramids
Geodesic Spheres
Geodesic Sphere 1
Geodesic Sphere 2
Geodesic Sphere 3
Geodesic Sphere 4
Maximal Number of Edges and Vertices in the Gaussian Maps