Slicer  4.10
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
vtkAnnotationRulerRepresentation3D.h
Go to the documentation of this file.
1 /*=auto=========================================================================
2 
3  Portions (c) Copyright 2005 Brigham and Women's Hospital (BWH) All Rights Reserved.
4 
5  See COPYRIGHT.txt
6  or http://www.slicer.org/copyright/copyright.txt for details.
7 
8  Program: 3D Slicer
9  Module: $RCSfile: vtkMRMLAnnotationDisplayableManagerHelper,v $
10  Date: $Date: Aug 4, 2010 10:44:52 AM $
11  Version: $Revision: 1.0 $
12 
13  =========================================================================auto=*/
14 
15 #ifndef __vtkAnnotationRulerRepresentation3D_h
16 #define __vtkAnnotationRulerRepresentation3D_h
17 
18 // Annotations includes
19 #include "vtkSlicerAnnotationsModuleVTKWidgetsExport.h"
20 
21 // VTK includes
22 #include <vtkDistanceRepresentation3D.h>
23 
25 class VTK_SLICER_ANNOTATIONS_MODULE_VTKWIDGETS_EXPORT
27  : public vtkDistanceRepresentation3D
28 {
29 public:
30 
32  vtkTypeMacro(vtkAnnotationRulerRepresentation3D, vtkDistanceRepresentation3D);
33  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
34 
35  void SetDistance(double distance);
36 
37  // Description:
38  // Get the line actor property
39  virtual vtkProperty *GetLineProperty() VTK_OVERRIDE;
40 
41  // Description:
42  // Set/Get position of the label title. 0 is at the start of the
43  // line whereas 1 is at the end.
44  //vtkSetMacro(LabelPosition, double);
45  void SetLabelPosition(double labelPosition);
46 
47  // Description:
48  // Set/Get the maximum number of ticks in ruler mode
49  vtkSetMacro(MaxTicks, int);
50  vtkGetMacro(MaxTicks, int);
51 
52  // Description:
53  // Change the polydata displayed as tick markers
54  void UpdateGlyphPolyData(vtkPolyData *polyData);
55 
56  // Required by the rendering process, check if the glyph and label actors
57  // have translucency and return true if so. Fixes a bug when the label
58  // was set to a non 1 opacity but was not being rendered.
59  virtual int HasTranslucentPolygonalGeometry() VTK_OVERRIDE;
60 
61 protected:
62 
65 
66  virtual void BuildRepresentation() VTK_OVERRIDE;
67 
68  // Internal use: set the label actor's position from current world point 1
69  // and 2 positions and label position factor
70  void UpdateLabelActorPosition();
71 
72 
73 private:
74 
76  void operator=(const vtkAnnotationRulerRepresentation3D&);
77 
78  double m_Distance;
79 
80  // Maximum number of ticks on the 3d ruler
81  int MaxTicks;
82 
83 };
84 
85 #endif /* __vtkAnnotationRulerRepresentation3D_h */