00001 #ifndef LINE_DRAWING_H_IS_INCLUDED 00002 #define LINE_DRAWING_H_IS_INCLUDED 00003 00004 /*! 00005 * \file line_drawing.H 00006 * \brief Contains the definitions of the classes that implement the 00007 * "Line Drawing" rendering style GTexture. 00008 * 00009 * \sa line_drawing.C 00010 * 00011 */ 00012 00013 #include "gtex/basic_texture.H" 00014 #include "gtex/solid_color.H" 00015 00016 /*! 00017 * \brief GTexture that implements the "Line Drawing" rendering style. 00018 * 00019 */ 00020 class LineDrawingTexture : public BasicTexture { 00021 00022 public: 00023 00024 //! \name Constructors 00025 //@{ 00026 00027 LineDrawingTexture(Patch* patch = 0, StripCB* cb=0); 00028 00029 ~LineDrawingTexture(); 00030 00031 //@} 00032 00033 //! \name RTTI Related 00034 //@{ 00035 00036 DEFINE_RTTI_METHODS3("Line Drawing", LineDrawingTexture*, 00037 BasicTexture, CDATA_ITEM *); 00038 00039 //@} 00040 00041 //! \name GTexture Virtual Methods 00042 //@{ 00043 00044 virtual int draw(CVIEWptr& v); 00045 00046 //@} 00047 00048 //! \name DATA_ITEM Virtual Methods 00049 //@{ 00050 00051 virtual DATA_ITEM *dup() const { return new LineDrawingTexture; } 00052 00053 //@} 00054 00055 //! \name Style Parameter Accessors 00056 //@{ 00057 00058 static bool get_draw_in_color() 00059 { return draw_in_color; } 00060 static void set_draw_in_color(bool draw_in_color_in) 00061 { draw_in_color = draw_in_color_in; } 00062 static bool get_draw_contours() 00063 { return draw_contours; } 00064 static void set_draw_contours(bool draw_contours_in) 00065 { draw_contours = draw_contours_in; } 00066 static bool get_draw_sugcontours() 00067 { return draw_sugcontours; } 00068 static void set_draw_sugcontours(bool draw_sugcontours_in) 00069 { draw_sugcontours = draw_sugcontours_in; } 00070 static float get_sugcontour_thresh() 00071 { return sugcontour_thresh; } 00072 static void set_sugcontour_thresh(float sugcontour_thresh_in) 00073 { sugcontour_thresh = sugcontour_thresh_in; } 00074 00075 //@} 00076 00077 private: 00078 00079 SolidColorTexture *solid_color_texture; 00080 00081 static bool draw_in_color; //!< Draw contours in color? 00082 static bool draw_contours; //!< Draw contours (a.k.a. silhouettes)? 00083 static bool draw_sugcontours; //!< Draw suggestive contours? 00084 static float sugcontour_thresh; //!< Suggestive contour threshold 00085 00086 }; 00087 00088 #endif // LINE_DRAWING_H_IS_INCLUDED