00001 // 00002 // property_image 00003 // 00004 // an image which contains pointers to structures which describe 00005 // the underlying bitmap properties. 00006 // 00007 // 00008 // stumeikle Sun May 12 20:23:32 2002 00009 // 00010 00011 #ifndef PROPERTY_IMAGE_H 00012 #define PROPERTY_IMAGE_H 00013 00014 #include "mimasconfig.h" 00015 #include "edge_string.h" 00016 #include "image.h" 00017 #ifdef HAVE_OPENGL 00018 #include "image_mesaoutput.h" 00019 #endif 00020 #include "prop.h" 00021 00022 namespace mimas { 00023 // class edge_string_ptr_list; 00024 // class edge_string; 00025 class property_image : public image< prop_ptr > 00026 { 00027 // an image of pointers to properties 00028 // private: 00029 // bool owns_props; 00030 // //does this structure have responsibility for 00031 // //deleting the prop structures?? 00032 00033 protected: 00034 bool draw_contrast; 00035 //should props be drawn so as to indicate their strengths? 00036 00037 // we could override the display function and the read/write to file 00038 // functions here... 00039 public: 00040 property_image(void) 00041 { 00042 // owns_props=true; 00043 draw_contrast = false; 00044 } 00045 00046 // ~property_image(void); 00047 00048 //overloaded functions from the base image class 00049 //display needs to be changed now 00050 // void display(void); 00051 // void clear( void ); 00052 00053 //owernership if true means that pointed to structures will be 00054 //deleted when this image is deleted 00055 // void setOwnership( bool b ) { owns_props = b; } 00056 void doDrawContrast() { draw_contrast = true; } 00057 bool getDrawContrast() const { return draw_contrast; } 00058 00059 //a helpful visualisation tool... 00060 void addStrings( edge_string_ptr_list& strings ); 00061 void addStringsWithFilter( edge_string_ptr_list& strings ); 00062 00063 void operator+=( property_image& ); 00064 00065 }; 00066 00067 00068 //handy macros 00069 typedef property_image edge_image; 00070 typedef property_image corner_image; 00071 typedef property_image edgestring_image; 00072 00073 #ifdef HAVE_OPENGL 00074 image_mesaoutput< rgba< unsigned char > > &operator<< 00075 ( image_mesaoutput< rgba< unsigned char > > &output, 00076 const property_image &image ); 00077 #endif 00078 00079 } 00080 00081 #endif 00082