Annotation of GNUtools/libg++/libio/PlotFile.cc, revision 1.1.1.1

1.1       root        1: /* 
                      2: Copyright (C) 1993 Free Software Foundation
                      3: 
                      4: This file is part of the GNU IO Library.  This library is free
                      5: software; you can redistribute it and/or modify it under the
                      6: terms of the GNU General Public License as published by the
                      7: Free Software Foundation; either version 2, or (at your option)
                      8: any later version.
                      9: 
                     10: This library is distributed in the hope that it will be useful,
                     11: but WITHOUT ANY WARRANTY; without even the implied warranty of
                     12: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     13: GNU General Public License for more details.
                     14: 
                     15: You should have received a copy of the GNU General Public License
                     16: along with GNU CC; see the file COPYING.  If not, write to
                     17: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
                     18: 
                     19: As a special exception, if you link this library with files
                     20: compiled with a GNU compiler to produce an executable, this does not cause
                     21: the resulting executable to be covered by the GNU General Public License.
                     22: This exception does not however invalidate any other reasons why
                     23: the executable file might be covered by the GNU General Public License. */
                     24: 
                     25: // This may look like C code, but it is really -*- C++ -*-
                     26: /* 
                     27: Copyright (C) 1988, 1992, 1993 Free Software Foundation
                     28:     written by Doug Lea ([email protected])
                     29:     converted to use iostream library by Per Bothner ([email protected])
                     30: 
                     31: This file is part of the GNU IO Library.  This library is free
                     32: software; you can redistribute it and/or modify it under the
                     33: terms of the GNU General Public License as published by the
                     34: Free Software Foundation; either version 2, or (at your option)
                     35: any later version.
                     36: 
                     37: This library is distributed in the hope that it will be useful,
                     38: but WITHOUT ANY WARRANTY; without even the implied warranty of
                     39: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     40: GNU General Public License for more details.
                     41: 
                     42: You should have received a copy of the GNU General Public License
                     43: along with GNU CC; see the file COPYING.  If not, write to
                     44: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
                     45: 
                     46: As a special exception, if you link this library with files
                     47: compiled with GCC to produce an executable, this does not cause
                     48: the resulting executable to be covered by the GNU General Public License.
                     49: This exception does not however invalidate any other reasons why
                     50: the executable file might be covered by the GNU General Public License.  */
                     51: 
                     52: #ifdef __GNUG__
                     53: #pragma implementation
                     54: #endif
                     55: #include <PlotFile.h>
                     56: 
                     57: /*
                     58:  PlotFile implementation module
                     59: */
                     60: 
                     61: 
                     62: PlotFile& PlotFile:: cmd(char c)
                     63: { 
                     64:   ofstream::put(c); 
                     65:   return *this; 
                     66: }
                     67: 
                     68: PlotFile& PlotFile:: operator<<(const int x)
                     69: { 
                     70: #if defined(convex)
                     71:   ofstream::put((char)(x>>8)); 
                     72:   ofstream::put((char)(x&0377)); 
                     73: #else
                     74:   ofstream::put((char)(x&0377)); 
                     75:   ofstream::put((char)(x>>8)); 
                     76: #endif
                     77:   return *this; 
                     78: }
                     79: 
                     80: PlotFile& PlotFile:: operator<<(const char *s)
                     81: { 
                     82:   *(ofstream*)this << s;
                     83:   return *this;
                     84: }
                     85: 
                     86: 
                     87: PlotFile& PlotFile:: arc(const int xi, const int yi,
                     88:                         const int x0, const int y0,
                     89:                         const int x1, const int y1)
                     90: { 
                     91:   return cmd('a') << xi << yi << x0 << y0 << x1 << y1; 
                     92: }
                     93: 
                     94: 
                     95: PlotFile& PlotFile:: box(const int x0, const int y0,
                     96:                         const int x1, const int y1)
                     97: { 
                     98:   line(x0, y0, x0, y1);
                     99:   line(x0, y1, x1, y1);
                    100:   line(x1, y1, x1, y0);
                    101:   return line(x1, y0, x0, y0);
                    102: }
                    103: 
                    104: PlotFile& PlotFile:: circle(const int x, const int y, const int r)
                    105: { 
                    106:   return cmd('c') << x << y << r; 
                    107: }
                    108: 
                    109: PlotFile& PlotFile:: cont(const int xi, const int yi)
                    110: { 
                    111:   return cmd('n') << xi << yi;
                    112: }
                    113: 
                    114: PlotFile& PlotFile:: dot(const int xi, const int yi, const int dx,
                    115:                         int n, const int* pat)
                    116: { 
                    117:   cmd('d') << xi << yi << dx << n;
                    118:   while (n-- > 0) *this << *pat++;
                    119:   return *this; 
                    120: }
                    121: 
                    122: PlotFile& PlotFile:: erase()
                    123: { 
                    124:   return cmd('e'); 
                    125: }
                    126: 
                    127: PlotFile& PlotFile:: label(const char* s)
                    128: { 
                    129:   return cmd('t') << s << "\n"; 
                    130: }
                    131: 
                    132: PlotFile& PlotFile:: line(const int x0, const int y0,
                    133:                          const int x1, const int y1)
                    134: { 
                    135:   return cmd('l') << x0 << y0 << x1 << y1; 
                    136: }
                    137: 
                    138: PlotFile& PlotFile:: linemod(const char* s)
                    139: { 
                    140:   return cmd('f') << s << "\n"; 
                    141: }
                    142: 
                    143: PlotFile& PlotFile:: move(const int xi, const int yi)
                    144: { 
                    145:   return cmd('m') << xi << yi;
                    146: }
                    147: 
                    148: PlotFile& PlotFile:: point(const int xi, const int yi)
                    149: { 
                    150:   return cmd('p') << xi << yi; 
                    151: }
                    152: 
                    153: PlotFile& PlotFile:: space(const int x0, const int y0,
                    154:                           const int x1, const int y1)
                    155: { 
                    156:   return cmd('s') << x0 << y0 << x1 << y1; 
                    157: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.