VTK
vtkContextArea.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkContextArea.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 
43 #ifndef vtkContextArea_h
44 #define vtkContextArea_h
45 
46 #include "vtkAbstractContextItem.h"
47 
48 #include "vtkAxis.h" // For enums
49 #include "vtkChartsCoreModule.h" // For export macro
50 #include "vtkRect.h" // For vtkRect/vtkVector/vtkTuple
51 #include "vtkNew.h" // For vtkNew
52 
53 class vtkContextClip;
55 class vtkPlotGrid;
56 
57 class VTKCHARTSCORE_EXPORT vtkContextArea: public vtkAbstractContextItem
58 {
59 public:
62  virtual void PrintSelf(ostream &os, vtkIndent indent);
63 
64  static vtkContextArea *New();
65 
69  vtkAxis* GetAxis(vtkAxis::Location location);
70 
75  vtkAbstractContextItem* GetDrawAreaItem();
76 
80  virtual bool Paint(vtkContext2D *painter);
81 
83 
88  vtkGetMacro(Geometry, vtkRecti)
89  vtkSetMacro(Geometry, vtkRecti)
91 
93 
97  vtkGetMacro(DrawAreaBounds, vtkRectd)
98  vtkSetMacro(DrawAreaBounds, vtkRectd)
100 
105  DARB_FixedMargins
106  };
107 
109 
122  vtkGetMacro(DrawAreaResizeBehavior, DrawAreaResizeBehaviorType)
123  vtkSetMacro(DrawAreaResizeBehavior, DrawAreaResizeBehaviorType)
125 
127 
133  vtkGetMacro(FixedAspect, float)
134  virtual void SetFixedAspect(float aspect);
136 
138 
144  vtkGetMacro(FixedRect, vtkRecti)
145  virtual void SetFixedRect(vtkRecti rect);
146  virtual void SetFixedRect(int x, int y, int width, int height);
148 
150 
157  virtual const Margins& GetFixedMargins() { return this->FixedMargins; }
158  virtual void GetFixedMarginsArray(int margins[4]);
159  virtual const int* GetFixedMarginsArray();
160  virtual void SetFixedMargins(Margins margins);
161  virtual void SetFixedMargins(int margins[4]);
162  virtual void SetFixedMargins(int left, int right, int bottom, int top);
164 
166 
171  vtkGetMacro(FillViewport, bool)
172  vtkSetMacro(FillViewport, bool)
173  vtkBooleanMacro(FillViewport, bool)
175 
177 
180  virtual void SetShowGrid(bool show);
181  virtual bool GetShowGrid();
182  virtual void ShowGridOn() { this->SetShowGrid(true); }
183  virtual void ShowGridOff() { this->SetShowGrid(false); }
185 
186 protected:
189 
195  void LayoutAxes(vtkContext2D *painter);
196 
201 
203 
211 
217 
222 
227 
232 
237 
243 
249 
255 
260 
265  float FixedAspect;
266 
272 
279 
286 
287 private:
288  vtkContextArea(const vtkContextArea &) VTK_DELETE_FUNCTION;
289  void operator=(const vtkContextArea &) VTK_DELETE_FUNCTION;
290 
291  // Smart pointers for axis lifetime management. See this->Axes.
292  vtkNew<vtkAxis> TopAxis;
293  vtkNew<vtkAxis> BottomAxis;
294  vtkNew<vtkAxis> LeftAxis;
295  vtkNew<vtkAxis> RightAxis;
296 };
297 
298 #endif //vtkContextArea_h
vtkContextArea::FixedAspect
float FixedAspect
The fixed aspect ratio, if DrawAreaResizeBehavior is FixedAspect.
Definition: vtkContextArea.h:265
vtkContextArea::Axes
vtkTuple< vtkAxis *, 4 > Axes
vtkAxis objects that surround the draw area, indexed by vtkAxis::Location.
Definition: vtkContextArea.h:221
vtkContextArea::FillViewport
bool FillViewport
If true, Geometry is set to (0, 0, vpSize[0], vpSize[1]) at the start of each Paint call.
Definition: vtkContextArea.h:285
vtkAxis.h
vtkContextArea::DrawAreaGeometry
vtkRecti DrawAreaGeometry
The rect defining the pixel location and size of the clipped and transformed area inside the axes.
Definition: vtkContextArea.h:254
vtkContextArea::SetFixedMargins
virtual void SetFixedMargins(Margins margins)
vtkAbstractContextItem
base class for items that are part of a vtkContextScene.
Definition: vtkAbstractContextItem.h:41
vtkContextArea::ComputeFixedAspectDrawAreaGeometry
vtkRecti ComputeFixedAspectDrawAreaGeometry(vtkContext2D *painter)
vtkContextArea::ComputeExpandedDrawAreaGeometry
vtkRecti ComputeExpandedDrawAreaGeometry(vtkContext2D *painter)
Working implementations for ComputeDrawAreaGeometry.
vtkContextArea::Margins
vtkTuple< int, 4 > Margins
Definition: vtkContextArea.h:60
vtkContextArea::DARB_FixedRect
@ DARB_FixedRect
Definition: vtkContextArea.h:104
vtkContextArea::FixedMargins
Margins FixedMargins
The left, right, bottom, and top margins for the draw area, if DrawAreaResizeBehavior is FixedMargins...
Definition: vtkContextArea.h:278
vtkContextArea
Clipped, transformed area with axes for context items.
Definition: vtkContextArea.h:58
vtkContext2D
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:58
vtkX3D::top
@ top
Definition: vtkX3D.h:502
vtkRectd
Definition: vtkRect.h:306
vtkContextClip
all children of this item are clipped by the specified area.
Definition: vtkContextClip.h:34
vtkContextArea::DARB_FixedAspect
@ DARB_FixedAspect
Definition: vtkContextArea.h:103
vtkContextArea::GetFixedMarginsArray
virtual const int * GetFixedMarginsArray()
vtkContextArea::DrawAreaResizeBehavior
DrawAreaResizeBehaviorType DrawAreaResizeBehavior
Controls how the draw area size is determined.
Definition: vtkContextArea.h:259
vtkX3D::bottom
@ bottom
Definition: vtkX3D.h:290
vtkX3D::height
@ height
Definition: vtkX3D.h:254
vtkContextArea::SetFixedMargins
virtual void SetFixedMargins(int left, int right, int bottom, int top)
vtkContextArea::Geometry
vtkRecti Geometry
The rect defining the pixel location and size of the entire vtkContextArea, including axis label,...
Definition: vtkContextArea.h:242
vtkPlotGrid
takes care of drawing the plot grid
Definition: vtkPlotGrid.h:39
vtkRect.h
vtkContextArea::ComputeFixedMarginsDrawAreaGeometry
vtkRecti ComputeFixedMarginsDrawAreaGeometry(vtkContext2D *painter)
vtkContextArea::ComputeDrawAreaGeometry
vtkRecti ComputeDrawAreaGeometry(vtkContext2D *painter)
Return the draw area's geometry.
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:40
vtkNew< vtkPlotGrid >
vtkContextArea::Transform
vtkNew< vtkContextTransform > Transform
The context item that clips rendered data.
Definition: vtkContextArea.h:236
vtkContextArea::UpdateDrawArea
void UpdateDrawArea()
Set the transform to map DrawAreaBounds to DrawAreaGeometry.
vtkContextArea::DrawAreaResizeBehaviorType
DrawAreaResizeBehaviorType
Definition: vtkContextArea.h:101
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkContextArea::SetFixedMargins
virtual void SetFixedMargins(int margins[4])
vtkAbstractContextItem.h
vtkContextTransform
all children of this item are transformed by the vtkTransform2D of this item.
Definition: vtkContextTransform.h:40
vtkContextArea::DrawAreaBounds
vtkRectd DrawAreaBounds
The data bounds of the clipped and transformed area inside of the axes.
Definition: vtkContextArea.h:248
vtkNew.h
vtkContextArea::ComputeFixedRectDrawAreaGeometry
vtkRecti ComputeFixedRectDrawAreaGeometry(vtkContext2D *painter)
vtkAxis
takes care of drawing 2D axes
Definition: vtkAxis.h:72
vtkContextArea::DARB_Expand
@ DARB_Expand
Definition: vtkContextArea.h:102
vtkContextArea::LayoutAxes
void LayoutAxes(vtkContext2D *painter)
Sync the Axes locations with Geometry, and update the DrawAreaGeometry to account for Axes size (marg...
vtkX3D::location
@ location
Definition: vtkX3D.h:406
vtkContextArea::Grid
vtkNew< vtkPlotGrid > Grid
The vtkPlotGrid that renders a grid atop the data in the draw area.
Definition: vtkContextArea.h:226
vtkRecti
Definition: vtkRect.h:288
vtkContextArea::ShowGridOff
virtual void ShowGridOff()
Definition: vtkContextArea.h:183
vtkContextArea::GetFixedMarginsArray
virtual void GetFixedMarginsArray(int margins[4])
vtkContextArea::~vtkContextArea
~vtkContextArea()
vtkContextArea::vtkContextArea
vtkContextArea()
vtkTuple< int, 4 >
vtkContextArea::FixedRect
vtkRecti FixedRect
The fixed rect to use for the draw area, if DrawAreaResizeBehavior is FixedRect.
Definition: vtkContextArea.h:271
vtkContextArea::Clip
vtkNew< vtkContextClip > Clip
The context item that clips rendered data.
Definition: vtkContextArea.h:231