Files
ThirdParty-6/ParaView-5.0.1/ParaViewCore/ClientServerCore/Rendering/vtkPVPlotMatrixView.h

302 lines
13 KiB
C++

/*=========================================================================
Program: ParaView
Module: vtkPVPlotMatrixView.h
Copyright (c) Kitware, Inc.
All rights reserved.
See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
#ifndef vtkPVPlotMatrixView_h
#define vtkPVPlotMatrixView_h
#include "vtkPVClientServerCoreRenderingModule.h" //needed for exports
#include "vtkPVContextView.h"
class vtkScatterPlotMatrix;
#define GENERATE_PLOT_TYPE_DECLARATION(name, type) \
void SetScatterPlot ## name (type value); \
void SetHistogram ## name(type value); \
void SetActivePlot ## name(type value); \
#define GENERATE_PLOT_TYPE_DECLARATION2(name, type1, type2) \
void SetScatterPlot ## name (type1 value1, type2 value2); \
void SetHistogram ## name(type1 value1, type2 value2); \
void SetActivePlot ## name(type1 value1, type2 value2); \
#define GENERATE_PLOT_TYPE_DECLARATION3(name, type1, type2, type3) \
void SetScatterPlot ## name (type1 value1, type2 value2, type3 value3); \
void SetHistogram ## name(type1 value1, type2 value2, type3 value3); \
void SetActivePlot ## name(type1 value1, type2 value2, type3 value3); \
#define GENERATE_PLOT_TYPE_DECLARATION4(name, type1, type2, type3, type4) \
void SetScatterPlot ## name (type1 value1, type2 value2, type3 value3, type4 value4); \
void SetHistogram ## name(type1 value1, type2 value2, type3 value3, type4 value4); \
void SetActivePlot ## name(type1 value1, type2 value2, type3 value3, type4 value4); \
class VTKPVCLIENTSERVERCORERENDERING_EXPORT vtkPVPlotMatrixView : public vtkPVContextView
{
public:
static vtkPVPlotMatrixView* New();
vtkTypeMacro(vtkPVPlotMatrixView, vtkPVContextView);
void PrintSelf(ostream &os, vtkIndent indent);
vtkAbstractContextItem* GetContextItem();
// Description:
// Representations can use this method to set the selection for a particular
// representation. Subclasses override this method to pass on the selection to
// the chart using annotation link. Note this is meant to pass selection for
// the local process alone. The view does not manage data movement for the
// selection.
virtual void SetSelection(
vtkChartRepresentation* repr, vtkSelection* selection);
// Description:
// Get/set the active plot in the scatter plot matrix.
void SetActivePlot(int i, int j);
int GetActiveRow();
int GetActiveColumn();
// Description:
// Clear the animation path, ensuring it is empty.
void ClearAnimationPath();
// Description:
// Append to the animation path of the scatter plot matrix.
void AddAnimationPath(int i, int j);
// Description:
// Append to the animation path of the scatter plot matrix.
void StartAnimationPath();
// Description:
// Push the animation forward a frame.
void AdvanceAnimationPath();
// Description:
// Set the title of the active plot.
// These methods should not be called directly. They are made public only so
// that the client-server-stream-interpreter can invoke them. Use the
// corresponding properties to change these values.
void SetTitle(const char* title);
const char* GetTitle();
// Description:
// Set the active plot title's font.
// These methods should not be called directly. They are made public only so
// that the client-server-stream-interpreter can invoke them. Use the
// corresponding properties to change these values.
void SetTitleFont(const char* family, int pointSize, bool bold, bool italic);
void SetTitleFontFamily(const char* family);
void SetTitleFontSize(int pointSize);
void SetTitleBold(bool bold);
void SetTitleItalic(bool italic);
const char* GetTitleFontFamily();
int GetTitleFontSize();
int GetTitleFontBold();
int GetTitleFontItalic();
// Description:
// Set the active plot title's color.
// These methods should not be called directly. They are made public only so
// that the client-server-stream-interpreter can invoke them. Use the
// corresponding properties to change these values.
void SetTitleColor(double red, double green, double blue);
double* GetTitleColor();
// Description:
// Set the active plot title's alignment.
// These methods should not be called directly. They are made public only so
// that the client-server-stream-interpreter can invoke them. Use the
// corresponding properties to change these values.
void SetTitleAlignment(int alignment);
int GetTitleAlignment();
// Description:
// Set the number of animation frames used when changing the active
// scatterplot.
void SetNumberOfAnimationFrames(int value);
// Description:
// Set the gutter that should be left between the charts in the matrix.
// These methods should not be called directly. They are made public only so
// that the client-server-stream-interpreter can invoke them. Use the
// corresponding properties to change these values.
virtual void SetGutter(float x, float y);
void SetGutterX(float value);
void SetGutterY(float value);
// Description:
// Set/get the borders of the chart matrix (space in pixels around each chart).
// These methods should not be called directly. They are made public only so
// that the client-server-stream-interpreter can invoke them. Use the
// corresponding properties to change these values.
virtual void SetBorders(int left, int bottom, int right, int top);
virtual void SetBorderLeft(int value);
virtual void SetBorderBottom(int value);
virtual void SetBorderRight(int value);
virtual void SetBorderTop(int value);
// Description:
// Sets whether or not the grid for the given axis is visible given a plot type, which refers to
// vtkScatterPlotMatrix::{SCATTERPLOT, HISTOGRAM, ACTIVEPLOT}.
// These methods should not be called directly. They are made public only so
// that the client-server-stream-interpreter can invoke them. Use the
// corresponding properties to change these values.
void SetGridVisibility(int plotType, bool visible);
GENERATE_PLOT_TYPE_DECLARATION(GridVisibility,bool);
int GetGridVisibility(int plotType);
// Description:
// Sets the background color for the chart given a plot type, which refers to
// vtkScatterPlotMatrix::{SCATTERPLOT, HISTOGRAM, ACTIVEPLOT}.
// These methods should not be called directly. They are made public only so
// that the client-server-stream-interpreter can invoke them. Use the
// corresponding properties to change these values.
void SetBackgroundColor(int plotType,
double red, double green, double blue, double alpha);
double* GetBackgroundColor(int plotType);
GENERATE_PLOT_TYPE_DECLARATION4(BackgroundColor,double,double,double,double);
// Description:
// Sets the color for the axes given a plot type, which refers to
// vtkScatterPlotMatrix::{SCATTERPLOT, HISTOGRAM, ACTIVEPLOT}.
// These methods should not be called directly. They are made public only so
// that the client-server-stream-interpreter can invoke them. Use the
// corresponding properties to change these values.
void SetAxisColor(int plotType, double red, double green, double blue);
double* GetAxisColor(int plotType);
GENERATE_PLOT_TYPE_DECLARATION3(AxisColor,double,double,double);
// Description:
// Sets the color for the axes given a plot type, which refers to
// vtkScatterPlotMatrix::{SCATTERPLOT, HISTOGRAM, ACTIVEPLOT}.
// These methods should not be called directly. They are made public only so
// that the client-server-stream-interpreter can invoke them. Use the
// corresponding properties to change these values.
void SetGridColor(int plotType, double red, double green, double blue);
double* GetGridColor(int plotType);
GENERATE_PLOT_TYPE_DECLARATION3(GridColor,double,double,double);
// Description:
// Sets whether or not the labels for the axes are visible, given a plot type, which refers to
// vtkScatterPlotMatrix::{SCATTERPLOT, HISTOGRAM, ACTIVEPLOT}.
// These methods should not be called directly. They are made public only so
// that the client-server-stream-interpreter can invoke them. Use the
// corresponding properties to change these values.
void SetAxisLabelVisibility(int plotType, bool visible);
int GetAxisLabelVisibility(int plotType);
GENERATE_PLOT_TYPE_DECLARATION(AxisLabelVisibility,bool);
// Description:
// Set the axis label font for the axes given a plot type, which refers to
// vtkScatterPlotMatrix::{SCATTERPLOT, HISTOGRAM, ACTIVEPLOT}.
// These methods should not be called directly. They are made public only so
// that the client-server-stream-interpreter can invoke them. Use the
// corresponding properties to change these values.
void SetAxisLabelFont(int plotType, const char* family, int pointSize,
bool bold, bool italic);
void SetAxisLabelFontFamily(int plotType, const char* family);
GENERATE_PLOT_TYPE_DECLARATION(AxisLabelFontFamily,const char*);
void SetAxisLabelFontSize(int plotType, int pointSize);
GENERATE_PLOT_TYPE_DECLARATION(AxisLabelFontSize,int);
void SetAxisLabelBold(int plotType, bool bold);
GENERATE_PLOT_TYPE_DECLARATION(AxisLabelBold,bool);
void SetAxisLabelItalic(int plotType, bool italic);
GENERATE_PLOT_TYPE_DECLARATION(AxisLabelItalic,bool);
const char* GetAxisLabelFontFamily(int plotType);
int GetAxisLabelFontSize(int plotType);
int GetAxisLabelFontBold(int plotType);
int GetAxisLabelFontItalic(int plotType);
// Description:
// Sets the axis label color for the axes given a plot type, which refers to
// vtkScatterPlotMatrix::{SCATTERPLOT, HISTOGRAM, ACTIVEPLOT}.
// These methods should not be called directly. They are made public only so
// that the client-server-stream-interpreter can invoke them. Use the
// corresponding properties to change these values.
void SetAxisLabelColor(int plotType, double red, double green, double blue);
GENERATE_PLOT_TYPE_DECLARATION3(AxisLabelColor,double,double,double);
double* GetAxisLabelColor(int plotType);
// Description:
// Sets the axis label notation for the axes given a plot type, which refers to
// vtkScatterPlotMatrix::{SCATTERPLOT, HISTOGRAM, ACTIVEPLOT}.
// These methods should not be called directly. They are made public only so
// that the client-server-stream-interpreter can invoke them. Use the
// corresponding properties to change these values.
void SetAxisLabelNotation(int plotType, int notation);
GENERATE_PLOT_TYPE_DECLARATION(AxisLabelNotation,int);
int GetAxisLabelNotation(int plotType);
// Description:
// Sets the axis label precision for the axes given a plot type, which refers to
// vtkScatterPlotMatrix::{SCATTERPLOT, HISTOGRAM, ACTIVEPLOT}.
// These methods should not be called directly. They are made public only so
// that the client-server-stream-interpreter can invoke them. Use the
// corresponding properties to change these values.
void SetAxisLabelPrecision(int plotType, int precision);
GENERATE_PLOT_TYPE_DECLARATION(AxisLabelPrecision,int);
int GetAxisLabelPrecision(int plotType);
// Description:
// Set chart's tooltip notation and precision, given a plot type, which refers to
// vtkScatterPlotMatrix::{SCATTERPLOT, HISTOGRAM, ACTIVEPLOT}.
// These methods should not be called directly. They are made public only so
// that the client-server-stream-interpreter can invoke them. Use the
// corresponding properties to change these values.
void SetTooltipNotation(int plotType, int notation);
GENERATE_PLOT_TYPE_DECLARATION(TooltipNotation,int);
void SetTooltipPrecision(int plotType, int precision);
GENERATE_PLOT_TYPE_DECLARATION(TooltipPrecision,int);
int GetTooltipNotation(int plotType);
int GetTooltipPrecision(int plotType);
// Description:
// Set the scatter plot title's color.
// These methods should not be called directly. They are made public only so
// that the client-server-stream-interpreter can invoke them. Use the
// corresponding properties to change these values.
void SetScatterPlotSelectedRowColumnColor(double red, double green, double blue, double alpha);
double* GetScatterPlotSelectedRowColumnColor();
// Description:
// Set the scatter plot title's color.
// These methods should not be called directly. They are made public only so
// that the client-server-stream-interpreter can invoke them. Use the
// corresponding properties to change these values.
void SetScatterPlotSelectedActiveColor(double red, double green, double blue, double alpha);
double* GetScatterPlotSelectedActiveColor();
// Description:
// Update all the settings
void UpdateSettings();
protected:
vtkPVPlotMatrixView();
~vtkPVPlotMatrixView();
// Description:
// The callback function when SelectionChangedEvent is invoked from
// the Big chart in vtkScatterPlotMatrix.
void PlotMatrixSelectionCallback(vtkObject*, unsigned long, void*);
private:
vtkPVPlotMatrixView(const vtkPVPlotMatrixView&); // Not implemented.
void operator=(const vtkPVPlotMatrixView&); // Not implemented.
vtkScatterPlotMatrix *PlotMatrix;
};
#endif