14.33 EPSfile Interface

14.34 EPS file

ORIGIN 'Bifrost';
LIB_ITEM 'bifrost';
BODY 'private/PS/EPSread'
     'private/PS/EPSmacros';
--- streamLib: attributes ---
skipEPSheaders:
  (* This functions should be called to skip over the PostScript
   * headers and check that it is a valid Bifrost PostScript file.
   *
   * PostScript headers are generated by canvas.writeEPS or if
   * startEPSfile is used directly.
   *)
  (# formatException: exception
       (* called if THIS(stream) isn't a valid Bifrost PostScript
        * file.
        *)
       (# t: ^text
       enter t[]
       ...
       #);
     formatError:< formatException;
     inFile: ^stream;
  enter inFile[]
  ...
  #);

(* The following is indented to allow the user to write to
 * PostScript files, ie. writing several pictures (pages) to one
 * file.  Currently however, the user herself will have to generate
 * some PostScript code which separates the pages and makes it valid
 * postscript code.  This is likely to change in future releases.
 *)
startEPSfile:
  (* Writes PostScript headers to THIS(stream).  This function
   * should be called exactly once for each file before you do
   * anything else.
   *
   * This is called automatically by canvas.writeEPS file, but can
   * be used if the user don't want to use canvas.writeEPS.
   *)
  (# ... #);
WriteMacros: ...;
endEPSfile:
  (* Write PostScript epilogue to out. This function should be
   * called exactly once, before you close this file.
   *
   * As startEPSfile, this is automatically called by
   * canvas.writeEPS, and should normally only be used if the user
   * also used startEPSfile.
   *)
  (# ... #);
eoe: booleanValue
  (* Tests for end of EPS file as marked by endEPSfile *)
  (# ... #)

--- BifrostAttributes: attributes ---
loadPicture:
  (# <<SLOT bifrostLoadPicture: attributes>>;
     parseException: exception
       (* A parse exception is generated if any parse errors occurs
        * while reading the EPS file.

        * Notice that if for instance the file is truncated, the
        * normal stream exception are generated.
        *)
       (# t: ^text;
       enter t[]
       ...
       #);
     parseError:< parseException;
     createGO:<
       (* Should be specialized to create user defined patterns *)
       (# GO: ^AbstractGraphicalObject;
          patternName: ^text;
       enter patternName[]
       ...
       exit GO[]
       #);
     in: ^stream;
     out: ^Picture;
     private: @...
  enter in[]
  ...
  exit out[]
  #)


14.33 EPSfile Interface
© 1991-2004 Mjølner Informatics
[Modified: Thursday September 23rd 1999 at 10:32]