25 #ifndef __vtkChartXYZ_h
26 #define __vtkChartXYZ_h
28 #include "vtkChartsCoreModule.h"
29 #include "vtkContextItem.h"
36 class vtkAnnotationLink;
39 class vtkContextMouseEvent;
41 class vtkPlaneCollection;
47 class VTKCHARTSCORE_EXPORT
vtkChartXYZ :
public vtkContextItem
51 virtual void PrintSelf(ostream &os,
vtkIndent indent);
59 void SetGeometry(
const vtkRectf &bounds);
62 void SetAngle(
double angle);
65 void SetAroundX(
bool isX);
68 virtual void SetAnnotationLink(vtkAnnotationLink *link);
81 void SetAutoRotate(
bool b);
85 void SetDecorateAxes(
bool b);
89 void SetFitToScene(
bool b);
93 virtual void Update();
97 virtual bool Paint(vtkContext2D *painter);
107 void RecalculateBounds();
112 void RecalculateTransform();
116 virtual bool Hit(
const vtkContextMouseEvent &mouse);
119 virtual bool MouseButtonPressEvent(
const vtkContextMouseEvent &mouse);
123 virtual bool MouseMoveEvent(
const vtkContextMouseEvent &mouse);
126 virtual bool MouseWheelEvent(
const vtkContextMouseEvent &mouse,
int delta);
132 virtual bool KeyPressEvent(
const vtkContextKeyEvent &key);
143 virtual void CalculateTransforms();
151 vtkTransform *transform);
155 bool Rotate(
const vtkContextMouseEvent &mouse);
158 bool Pan(
const vtkContextMouseEvent &mouse);
161 bool Zoom(
const vtkContextMouseEvent &mouse);
164 bool Spin(
const vtkContextMouseEvent &mouse);
191 bool CheckForSceneResize();
200 void ScaleDownAxes();
203 void ZoomAxes(
int delta);
208 void InitializeAxesBoundaryPoints();
217 void InitializeFutureBox();
220 void ComputeDataBounds();
223 void DrawAxes(vtkContext3D *context);
227 void DetermineWhichAxesToLabel();
230 void DrawTickMarks(vtkContext2D *painter);
233 void DrawAxesLabels(vtkContext2D *painter);
238 void GetOffsetForAxisLabel(
int axis,
float *bounds,
float *offset);
243 double CalculateNiceMinMax(
double &min,
double &max,
int axis);
246 void GetClippingPlaneEquation(
int i,
double *planeEquation);
252 std::vector< vtkSmartPointer<vtkAxis> >
Axes;
336 float AxesBoundaryPoints[14][3];
340 float TickLabelOffset[3][2];
356 int DirectionToData[3];
359 double DataBounds[4];
std::vector< vtkSmartPointer< vtkAxis > > Axes
vtkNew< vtkTransform > PlotTransform
vtkNew< vtkTransform > Scale
vtkNew< vtkTransform > Rotation
takes care of drawing 2D axes
a simple class to control print indentation
vtkNew< vtkTransform > Translation
vtkSmartPointer< vtkAnnotationLink > Link
dynamic, self-adjusting array of unsigned char
vtkNew< vtkTransform > ContextTransform
Abstract class for 3D plots.
vtkNew< vtkPlaneCollection > BoundingCube
vtkNew< vtkTransform > BoxScale
std::vector< vtkPlot3D * > Plots
Factory class for drawing 3D XYZ charts.
vtkNew< vtkTransform > FutureBox
vtkNew< vtkTransform > FutureBoxScale
vtkNew< vtkTransform > Box