1#############################################################################
2##
3#W Objects.gd 			 polymaking Package		 Marc Roeder
4##
5##
6
7##
8##
9#Y	 Copyright (C) 2006 Marc Roeder
10#Y
11#Y This program is free software; you can redistribute it and/or
12#Y modify it under the terms of the GNU General Public License
13#Y as published by the Free Software Foundation; either version 2
14#Y of the License, or (at your option) any later version.
15#Y
16#Y This program is distributed in the hope that it will be useful,
17#Y but WITHOUT ANY WARRANTY; without even the implied warranty of
18#Y MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19#Y GNU General Public License for more details.
20#Y
21#Y You should have received a copy of the GNU General Public License
22#Y along with this program; if not, write to the Free Software
23#Y Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
24##
25DeclareCategory("IsPolymakeObject",IsObject);
26
27DeclareRepresentation("IsPolymakeObjectRep",
28        IsComponentObjectRep,
29        ["dir",
30         "filename",
31         "knownProperties"]
32        );
33
34#
35#Extracting Information:
36#####################
37DeclareOperation("DirectoryOfPolymakeObject",[IsPolymakeObject]);
38DeclareOperation("FilenameOfPolymakeObject",[IsPolymakeObject]);
39DeclareOperation("FullFilenameOfPolymakeObject",[IsPolymakeObject]);
40DeclareOperation("KnownPropertiesOfPolymakeObject",[IsPolymakeObject]);
41DeclareOperation("NamesKnownPropertiesOfPolymakeObject",[IsPolymakeObject]);
42DeclareOperation("PropertyOfPolymakeObject",[IsPolymakeObject,IsString]);
43
44#
45#Manipulating contents of a polygon:
46###############################
47
48DeclareOperation("ClearPolymakeObject",[IsPolymakeObject]);
49DeclareOperation("ClearPolymakeObject",[IsPolymakeObject,IsDenseList]);
50
51DeclareOperation("UnbindKnownPropertyOfPolymakeObject",[IsPolymakeObject,IsString]);
52DeclareOperation("WriteKnownPropertyToPolymakeObject",[IsPolymakeObject,IsString,IsObject]);