#  Copyright (c) 1997-2010
#  Ewgenij Gawrilow, Michael Joswig (Technische Universitaet Darmstadt, Germany)
#  http://www.polymake.de
#
#  This program is free software; you can redistribute it and/or modify it
#  under the terms of the GNU General Public License as published by the
#  Free Software Foundation; either version 2, or (at your option) any
#  later version: http://www.gnu.org/licenses/gpl.txt.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#-------------------------------------------------------------------------------
#  $Project: polymake $$Id: PointSet.pm 9642 2010-04-08 22:49:38Z paffenho $

###############################################################################
#
#  Visual::PointSet  - a cloud of points
#

package Visual::PointSet;

use Polymake::Struct (
   [ '@ISA' => 'Object' ],

   # [ "coord vector", ... ]
   [ '@Vertices | Points' => 'check_points(#%)', default => 'croak("Points missing")' ],

   # ambient dimension
   [ '$Dim' => '$this->Vertices->cols' ],

   # [ "string", ... ]
   # or "hidden"		suppress any labels
   #    default: point indices (0,1,...) as labels
   [ '$VertexLabels | PointLabels' => 'unify_labels(#%)', default => 'undef' ],

   [ '$VertexColor | PointColor' => 'unify_decor(#%)', merge => 'unify_decor(#%)', default => '$Visual::Color::vertices' ],

   [ '$VertexThickness | PointThickness' => 'unify_decor(#%)', merge => 'unify_decor(#%)', default => '1' ],

   [ '$VertexBorderColor | PointBorderColor' => 'unify_decor(#%)', merge => 'unify_decor(#%)', default => 'undef' ],

   [ '$VertexBorderThickness | PointBorderThickness' => 'unify_decor(#%)', merge => 'unify_decor(#%)', default => 'undef' ],

   #  recognized values:
   #    "hidden"		draw neither circles nor point labels
   [ '$VertexStyle | PointStyle' => 'unify_decor(#%)', merge => 'unify_decor(#%)', default => 'undef' ],

   # boolean: don't show this object at the session start (only makes sense for interactive viewers)
   '$Hidden',
);

1

# Local Variables:
# c-basic-offset:3
# End:
