00001 //------------------------------------------------------------------------ 00002 // 00003 // Joe Kniss 00004 // 3-20-03 00005 // ________ ____ ___ 00006 // | \ / | / / 00007 // +---+ \/ |/ / 00008 // +--+| |\ /| < 00009 // | || | \ / | |\ \ 00010 // | | \/ | | \ \ 00011 // \_____| |__| \__\ 00012 // Copyright 2003 00013 // Joe Michael Kniss 00014 // <<< jmk@cs.utah.edu >>> 00015 // "All Your Base are Belong to Us" 00016 //------------------------------------------------------------------------- 00017 00018 //TFEltView.h 00019 00020 #ifndef __TRANSFER_FUNCTION_ELEMENT_VIEW_DOT_H 00021 #define __TRANSFER_FUNCTION_ELEMENT_VIEW_DOT_H 00022 00023 #include <simBase/simBase.h> 00024 #include <smartptr.h> 00025 #include "TFElement.h" 00026 #include <widget/WidgetBase.h> 00027 00028 /// A base class for 2D projections of TFElment objects. 00029 /// A base class intended to be used in collaborations 00030 /// between 2D manipulations of the element and the 00031 /// general ND widget representation. 00032 /// 00033 /// Each concrete TFElement kind should have an associated 00034 /// TFEltView type associated with it, this object is 00035 /// resposible for generating a new classification widget 00036 /// of the correct type and behavior. 00037 class TFEltView : public SimBase, public gutz::Counted 00038 { 00039 public: 00040 virtual TFEltView() {} 00041 00042 ///@name Axes 00043 ///@{ 00044 int getAxis1() const { return _axes; } 00045 int getAxis2() const { return _axes; } 00046 ///@} 00047 00048 ///@name Generate Widget 00049 ///@{ 00050 virtual WidgetItem *genWidget(const NodeWidget *const nodeProto, 00051 const EdgeWidget *const edgeProto) = 0; 00052 ///@} 00053 00054 protected: 00055 TFEltView(); ///< not used 00056 00057 TFEltView(int axis1, int axis2) 00058 : _axes(axis1, axis2), _elt(elt) 00059 {} 00060 00061 gutz::vec2i _axes; 00062 }; 00063 00064 00065 #endif 00066 00067