# Copyright (c) 1997-2006 # Ewgenij Gawrilow, Michael Joswig (Technische Universitaet Berlin, Germany) # http://www.math.tu-berlin.de/polymake, mailto:polymake@math.tu-berlin.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: metapost.rules 7514 2006-12-15 17:58:53Z gawrilow $ require MetapostGraph; # Category: Visualization # Produce a MetaPost input file with the given drawing label metapost package Metapost::File::Writer; import Visual::FileWriter(suffix => ".mp", multiple => 1); using namespaces 'Visual::Utilities'; global_method metapost.geometry: draw(Visual::PointSet, @) { my ($self, $PointSet)=@_; $self->append(new Metapost::element($PointSet)); } global_method metapost.graph: draw(Visual::Graph, @) { my ($self, $Graph)=@_; $self->append(new Metapost::graph($Graph)); } global_method metapost.lattice: draw(Visual::Lattice) { my ($self, $Lattice)=@_; $self->append(new Metapost::lattice($Lattice)); } package Metapost::Viewer; sub new { croak( "There is no interactive viewer for Metapost files;\n", "please call metapost(..., File => \"filename\")" ); } package default; # Category: Visualization # Produce a MetaPost input file with given visual objects. # args: VisualObject, ... # option: File => "filename" | "AUTO" # The MetaPost description has always to be stored in a file, there is no interactive viewer for this # kind of visualization. # # For the file name you can use any expression allowed for the perl @c open function, # including "-" for terminal output, "&HANDLE" for an already opened file handle, # or "| program" for a pipe. Real file names are automatically completed with the @c .mp suffix if needed. # # The default setting @a AUTO lets the file name be derived from the drawing title. # The automatically generated file name is displayed in the verbose mode. user_function metapost(Visual::Object+, { File => "AUTO" }) { visualize_explicit(@_, "Metapost"); } # Local Variables: # mode: perl # c-basic-offset:3 # End: