00001 #ifndef SELECTABLETHING_H 00002 #define SELECTABLETHING_H 00003 #include <QGLViewer/qglviewer.h> 00004 #include "global.h" 00005 00006 /* 00007 _____ _ _ _ _ _______ _ _ 00008 / ____| | | | | | | | | |__ __| | (_) 00009 | (___ ___| | ___ ___| |_ __ _| |__ | | ___| | | |__ _ _ __ __ _ 00010 \___ \ / _ \ |/ _ \/ __| __/ _` | '_ \| |/ _ \ | | '_ \| | '_ \ / _` | 00011 ____) | __/ | __/ (__| || (_| | |_) | | __/ | | | | | | | | | (_| | 00012 |_____/ \___|_|\___|\___|\__\__,_|_.__/|_|\___|_| |_| |_|_|_| |_|\__, | 00013 __/ | 00014 |___/ 00015 */ 00016 using namespace std; 00017 using namespace qglviewer; 00018 00019 class Point; 00020 class BaryPatch; 00022 00026 class SelectableThing 00027 { 00028 public : 00029 // Thing Attributes 00031 Vec _Color; 00033 QString _NameTag; 00035 int _ThingName; 00037 bool _IsSelected; 00039 bool _Show; 00041 bool _ShowNameTag; 00043 Frame _ThingGlobalFrame; 00045 Frame _ThingLocalFrame; 00047 bool _IsBeingDeleted; 00050 SelectableThing(int ThingName) 00051 { 00052 _ThingName = ThingName; 00053 _IsSelected = false; 00054 _Show=true; 00055 _ShowNameTag=true; 00056 _ThingGlobalFrame.setPosition(Vec(0.,0.,0.)); 00057 _ThingGlobalFrame.setOrientation(Quaternion(0,0,0,1)); 00058 _NameTag = "UnNamed Selectable Thing"; 00059 _IsBeingDeleted = false; 00060 }; 00062 virtual void draw(ManipulatedFrame* MF)=0; 00064 virtual void UpdateNameTag()=0; 00067 virtual bool IsAPoint()=0; 00070 virtual bool IsAPatch()=0; 00073 virtual Point* GetPoint()=0; 00076 virtual BaryPatch* GetPatch()=0; 00077 }; 00078 00079 #endif