1 #ifndef VTKVIEWER_TRIHEDRON_H
2 #define VTKVIEWER_TRIHEDRON_H
7 #include <vtkFollower.h>
10 class vtkActorCollection;
13 class vtkPolyDataMapper;
18 class VTKViewer_VectorText;
20 //****************************************************************
21 class VTKViewer_UnScaledActor: public vtkFollower
23 VTKViewer_UnScaledActor(const VTKViewer_UnScaledActor&);
26 vtkTypeMacro(VTKViewer_UnScaledActor,vtkFollower);
27 static VTKViewer_UnScaledActor *New();
29 virtual void SetSize(int theSize);
30 virtual void Render(vtkRenderer *theRenderer);
33 VTKViewer_UnScaledActor();
34 ~VTKViewer_UnScaledActor(){}
38 //****************************************************************
39 class VTKViewer_LineActor: public vtkFollower
41 VTKViewer_LineActor(const VTKViewer_LineActor&);
44 vtkTypeMacro(VTKViewer_LineActor,vtkFollower);
45 static VTKViewer_LineActor *New();
47 void SetLabelActor(VTKViewer_UnScaledActor* theLabelActor);
48 void SetArrowActor(VTKViewer_UnScaledActor* theLabelActor);
49 virtual void Render(vtkRenderer *theRenderer);
52 VTKViewer_LineActor(){
56 ~VTKViewer_LineActor(){
61 VTKViewer_UnScaledActor* LabelActor;
62 VTKViewer_UnScaledActor* ArrowActor;
65 //****************************************************************
66 class VTKVIEWER_EXPORT VTKViewer_Trihedron : public vtkObject
69 VTKViewer_Trihedron();
70 VTKViewer_Trihedron(const VTKViewer_Trihedron&);
71 virtual ~VTKViewer_Trihedron();
74 vtkTypeMacro(VTKViewer_Trihedron,vtkObject);
75 static VTKViewer_Trihedron *New();
77 virtual void SetSize(float theSize);
78 virtual float GetSize() { return mySize;}
80 enum TVisibility{eOff, eOn, eOnlyLineOn};
81 virtual void SetVisibility(TVisibility theVis);
82 virtual void VisibilityOff() { SetVisibility(eOff);}
83 virtual void VisibilityOn() { SetVisibility(eOn);}
84 virtual TVisibility GetVisibility();
86 virtual void AddToRender(vtkRenderer* theRenderer);
87 virtual void RemoveFromRender(vtkRenderer* theRenderer);
89 virtual int GetVisibleActorCount(vtkRenderer* theRenderer);
92 vtkActorCollection* myPresent;
93 VTKViewer_Axis* myAxis[3];
97 //****************************************************************
98 // The base class for concreate Axis
99 // Its only duty is to give correct initialization and destruction
101 class VTKViewer_Axis : public vtkObject
105 VTKViewer_Axis(const VTKViewer_Axis&);
106 virtual ~VTKViewer_Axis();
108 vtkTypeMacro(VTKViewer_Axis,vtkObject);
110 virtual void AddToRender(vtkRenderer* theRenderer);
112 virtual void SetVisibility(VTKViewer_Trihedron::TVisibility theVis);
113 virtual VTKViewer_Trihedron::TVisibility GetVisibility() { return myVisibility; }
115 virtual void SetCamera(vtkCamera* theCamera);
116 virtual void SetProperty(vtkProperty* theProperty);
117 virtual void SetSize(float theSize);
119 virtual VTKViewer_UnScaledActor* GetLabel() { return myLabelActor; }
120 virtual VTKViewer_UnScaledActor* GetArrow() { return myArrowActor; }
123 VTKViewer_Trihedron::TVisibility myVisibility;
124 float myDir[3], myRot[3];
126 VTKViewer_LineActor *myLineActor;
127 //vtkActor *myLineActor;
128 VTKViewer_UnScaledActor *myArrowActor;
129 VTKViewer_UnScaledActor *myLabelActor;
131 vtkPolyDataMapper *myMapper[3];
132 vtkLineSource *myLineSource;
133 vtkConeSource *myConeSource;
134 VTKViewer_VectorText* myVectorText;