00001
00002
00003
00004
00005
00013 #ifndef _SIGNELEMENTCONTROLLINES_H
00014 #define _SIGNELEMENTCONTROLLINES_H
00015
00016 #include <map>
00017
00018 #include <SignDLL.h>
00019 #include <SignElement.h>
00020
00021 class vtkControlLine;
00022 class Sign2DViewer;
00023 class SignViewer;
00024
00025 typedef std::map<Sign2DViewer*,vtkControlLine*> ControlLineMap;
00026 typedef std::map<SignViewer*,unsigned long> oidMap;
00027
00028 class SIGN_EXPORT SignElementControlLines : public SignElement
00029 {
00030 public:
00031 vtkTypeRevisionMacro(SignElementControlLines,SignElement);
00032 virtual void PrintSelf(ostream& os, vtkIndent indent);
00033
00034 static SignElementControlLines* New();
00035
00036 bool ActivateElement();
00037 bool DeActivateElement();
00038
00039 static void StartMoving(vtkObject *caller,unsigned long event, void* data,void*calldata);
00040 static void StopMoving(vtkObject *caller,unsigned long event, void* data,void*calldata);
00041 static void Moving(vtkObject *caller,unsigned long event, void* data,void*calldata);
00042
00043 protected:
00044 SignElementControlLines();
00045 ~SignElementControlLines();
00046
00047 SignElementControlLines(const SignElementControlLines&);
00048 void operator=(const SignElementControlLines&);
00049
00050 private:
00051 vtkControlLine *ControlLineMoving;
00052 ControlLineMap ControlLines;
00053 std::string grabpoint;
00054 oidMap mmoid;
00055 oidMap lbroid;
00056 oidMap lbpoid;
00057 };
00058
00059 #endif