home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / dreamscape / source / Dreamscape / Headers / graphics / h / docgraphic next >
Encoding:
Text File  |  1996-09-15  |  1.5 KB  |  50 lines

  1.  
  2. // graphics.h.docgraphic
  3.  
  4. // Dreamscape - C++ class library for RISC OS
  5. // Copyright (c) 1996 Mark Seaborn <mseaborn@argonet.co.uk>
  6. //
  7. // This library is free software; you can redistribute it and/or
  8. // modify it under the terms of the GNU Library General Public
  9. // License as published by the Free Software Foundation; either
  10. // version 2 of the License, or (at your option) any later version.
  11. // See the Dreamscape documentation for more information.
  12.  
  13. #ifndef dreamscape_docgraphic_H
  14. #define dreamscape_docgraphic_H
  15.  
  16. #include "document.h"
  17. #include "graphic.h"
  18.  
  19. class DocumentGraphic: public DocumentRedrawable {
  20.   Graphic *graphic;
  21.   DocTransform transform;
  22.  
  23. public:
  24.   DocumentGraphic(Graphic *graphic = 0);
  25.   virtual ~DocumentGraphic();
  26.  
  27.   void redraw(const RedrawInfo &info) const;
  28.  
  29.   void set_graphic(Graphic *g) { graphic = g; }
  30.   Graphic *get_graphic() const { return graphic; }
  31.  
  32.   void set_transform(const DocTransform &matrix) { transform = matrix; }
  33.   void get_transform(DocTransform &matrix) const { matrix = transform; }
  34.   DocTransform get_transform() const { return transform; }
  35.  
  36.   DocBBox get_bbox() const;
  37.   DocBBox get_transformed_bbox() const
  38.     { return transform.transform(get_bbox()); }
  39.   DocBBox get_transformed_bbox(const DocTransform &matrix) const
  40.     { return matrix.transform(get_bbox()); }
  41.  
  42.   DocCoords get_size() const;
  43.   DocCoords get_transformed_size() const
  44.     { return get_transformed_bbox().size(); }
  45.   DocCoords get_transformed_size(const DocTransform &matrix) const
  46.     { return get_transformed_bbox(matrix).size(); }
  47. };
  48.  
  49. #endif
  50.