home *** CD-ROM | disk | FTP | other *** search
/ Dream 52 / Amiga_Dream_52.iso / Linux / Divers / freedraft.tar.gz / freedraft.tar / FREEdraft-050298 / CORE / registeredentity.h < prev    next >
C/C++ Source or Header  |  1998-04-29  |  4KB  |  85 lines

  1. // registeredentity.h
  2.  
  3. // Copyright (C) 1997  Cliff Johnson                                       //
  4. //                                                                         //
  5. // This program is free software; you can redistribute it and/or           //
  6. // modify it under the terms of the GNU  General Public                    //
  7. // License as published by the Free Software Foundation; either            //
  8. // version 2 of the License, or (at your option) any later version.        //
  9. //                                                                         //
  10. // This software 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 GNU       //
  13. // General Public License for more details.                                //
  14. //                                                                         //
  15. // You should have received a copy of the GNU General Public License       //
  16. // along with this software (see COPYING); if not, write to the        //
  17. // Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. //
  18.  
  19. #ifndef REGISTEREDENTITY_H
  20. #define REGISTEREDENTITY_H
  21.  
  22. // the RegisteredEntity class is designed to live in the STL list container
  23. // which belongs to the CanvasRegister support class of the cd GL canvas pane class
  24.  
  25. #include <handle.h>
  26. #include <attributes.h>
  27.  
  28. class DrawableGeom;
  29.  
  30. class RegisteredEntity
  31. {
  32. // instansiated once for each registered entity
  33. // retains the entitiy type, and handle for each entity registered with  the canvas
  34. // flag for entity visible is here
  35. private:
  36.     Handle handle;        // handle can be set to NULL when entity is deleted
  37.     Attributes attributes;  // graphical attributes - color, size, patterns, etc
  38.     const DrawableGeom* drawable;// handle to choose which drawable to use to draw the entity.
  39.                 // entity types may have multiple representations.
  40.                 // Each entity can have its own representation if you want. 
  41.     bool visible;
  42.     bool highlight;
  43. public:
  44. // default constructor - for STL
  45.     RegisteredEntity();
  46.  
  47. // standard constructor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
  48.     RegisteredEntity(const Handle&  h,     // handle value
  49.             const Attributes& a,    // attributes    
  50.             const DrawableGeom *d,    // drawable for this entity. (MUST BE COMPATABLE)
  51.             bool v);        // visible attributes
  52.  
  53.     ~RegisteredEntity();            // destructor
  54. //. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
  55.  
  56. // copy constructors - for STL
  57.  
  58.     RegisteredEntity(const RegisteredEntity& re );        
  59.     RegisteredEntity& operator=(const RegisteredEntity& re);    
  60.     
  61.     friend bool operator==(const RegisteredEntity& re1, const RegisteredEntity& re2); //STL
  62.     friend bool operator==(const RegisteredEntity& re, const Handle& h);  //STL
  63.     friend bool operator!=(const RegisteredEntity& re, const Handle& h);  //STL
  64.  
  65.     bool operator<(const RegisteredEntity&) {return true;}    // for STL
  66.  
  67.     void SetVisible(bool v) {  visible = v ; }    // set the visible
  68.     void SetHighlight(bool v) { highlight = v; }     // set the highlight 
  69.     void SetAttributes( const Attributes& );        // set the attributes
  70.     void SetDrawable(const DrawableGeom*);             // set the drawable
  71.  
  72.     Handle GetHandle() const { return handle; }        // returns the handle of the geometry
  73.     Attributes GetAttributes() const { return attributes; } // return the current attributes
  74.     const DrawableGeom* GetDrawable() const { return drawable; } // return the pointer to the drawable.
  75.     bool IsVisible() const { return visible; }         // should I draw this?
  76.     bool IsHighlight() const { return highlight; } 
  77.  
  78.     void Draw(const float& scale) const;
  79.     void Select(const float& scale) const;
  80.  
  81.     //int Type() const { return handle.Type(); }        // What am i?  Obsolete. bad form
  82. };
  83.  
  84. #endif
  85.