You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
147 lines
4.2 KiB
C
147 lines
4.2 KiB
C
3 weeks ago
|
/*=========================================================================
|
||
|
|
||
|
Program: Visualization Toolkit
|
||
|
Module: vtkQtTableRepresentation.h
|
||
|
|
||
|
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
|
||
|
All rights reserved.
|
||
|
See Copyright.txt or http://www.kitware.com/Copyright.htm 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.
|
||
|
|
||
|
=========================================================================*/
|
||
|
/*----------------------------------------------------------------------------
|
||
|
Copyright (c) Sandia Corporation
|
||
|
See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
|
||
|
----------------------------------------------------------------------------*/
|
||
|
|
||
|
/**
|
||
|
* @class vtkQtTableRepresentation
|
||
|
* @brief set up a vtkTable in a Qt model
|
||
|
*
|
||
|
*
|
||
|
*
|
||
|
* This class is a wrapper around vtkQtTableModelAdapter. It
|
||
|
* performs the following functions:
|
||
|
*
|
||
|
* <ul>
|
||
|
* <li>Keep track of the key column, first data column, and last data column.
|
||
|
* Populate the appropriate ivars on the Qt adapter.
|
||
|
* <li>Assign colors to each of the data series using a vtkLookupTable.
|
||
|
* A default lookup table is provided or the user can supply one
|
||
|
* using SetColorTable().
|
||
|
* </ul>
|
||
|
*
|
||
|
* The user must supply the following items:
|
||
|
* <ul>
|
||
|
* <li>the name of the column that contains the series names,
|
||
|
* <li>the names of the first and last data columns
|
||
|
* (this range should not contain the key column), and
|
||
|
* <li>(optionally) a vtkLookupTable to use when assigning colors.
|
||
|
* </ul>
|
||
|
*
|
||
|
*
|
||
|
* @warning
|
||
|
* Call SetInputConnection with a table connection
|
||
|
* BEFORE the representation is added to a view or strange things
|
||
|
* may happen, including segfaults.
|
||
|
*/
|
||
|
|
||
|
#ifndef vtkQtTableRepresentation_h
|
||
|
#define vtkQtTableRepresentation_h
|
||
|
|
||
|
#include "vtkDataRepresentation.h"
|
||
|
#include "vtkViewsQtModule.h" // For export macro
|
||
|
|
||
|
class vtkDoubleArray;
|
||
|
class vtkLookupTable;
|
||
|
class vtkQtTableModelAdapter;
|
||
|
|
||
|
// ----------------------------------------------------------------------
|
||
|
|
||
|
class VTKVIEWSQT_EXPORT vtkQtTableRepresentation : public vtkDataRepresentation
|
||
|
{
|
||
|
public:
|
||
|
vtkTypeMacro(vtkQtTableRepresentation, vtkDataRepresentation);
|
||
|
void PrintSelf(ostream& os, vtkIndent indent) override;
|
||
|
|
||
|
//@{
|
||
|
/**
|
||
|
* Set/get the lookup table that will be used to determine colors
|
||
|
* for each series. The table's range should be [0, 1).
|
||
|
*/
|
||
|
void SetColorTable(vtkLookupTable* t);
|
||
|
vtkGetObjectMacro(ColorTable, vtkLookupTable);
|
||
|
//@}
|
||
|
|
||
|
//@{
|
||
|
/**
|
||
|
* Set/get the name of the column that contains series names. This
|
||
|
* must be called BEFORE the representation is added to a view.
|
||
|
*/
|
||
|
void SetKeyColumn(const char* col);
|
||
|
char* GetKeyColumn();
|
||
|
//@}
|
||
|
|
||
|
//@{
|
||
|
/**
|
||
|
* Set/get the name of the first data column. This must be called
|
||
|
* BEFORE the representation is added to a view.
|
||
|
*/
|
||
|
vtkSetStringMacro(FirstDataColumn);
|
||
|
vtkGetStringMacro(FirstDataColumn);
|
||
|
//@}
|
||
|
|
||
|
//@{
|
||
|
/**
|
||
|
* Set/get the name of the last data column. This must be called
|
||
|
* BEFORE the representation is added to a view.
|
||
|
*/
|
||
|
vtkSetStringMacro(LastDataColumn);
|
||
|
vtkGetStringMacro(LastDataColumn);
|
||
|
//@}
|
||
|
|
||
|
protected:
|
||
|
vtkQtTableRepresentation();
|
||
|
~vtkQtTableRepresentation() override;
|
||
|
|
||
|
/**
|
||
|
* Update the table representation
|
||
|
*/
|
||
|
void UpdateTable();
|
||
|
|
||
|
vtkSetStringMacro(KeyColumnInternal);
|
||
|
vtkGetStringMacro(KeyColumnInternal);
|
||
|
|
||
|
// ----------------------------------------------------------------------
|
||
|
vtkQtTableModelAdapter* ModelAdapter;
|
||
|
vtkLookupTable* ColorTable;
|
||
|
vtkDoubleArray* SeriesColors;
|
||
|
char* KeyColumnInternal;
|
||
|
char* FirstDataColumn;
|
||
|
char* LastDataColumn;
|
||
|
|
||
|
/**
|
||
|
* Prepare the input connections to this representation.
|
||
|
*/
|
||
|
int RequestData(vtkInformation* request, vtkInformationVector** inputVector,
|
||
|
vtkInformationVector* outputVector) override;
|
||
|
|
||
|
virtual void ResetModel();
|
||
|
virtual void CreateSeriesColors();
|
||
|
|
||
|
/**
|
||
|
* This should set the model type to DATA, METADATA or FULL
|
||
|
* depending on what you want.
|
||
|
*/
|
||
|
virtual void SetModelType() {}
|
||
|
|
||
|
private:
|
||
|
vtkQtTableRepresentation(const vtkQtTableRepresentation&) = delete;
|
||
|
void operator=(const vtkQtTableRepresentation&) = delete;
|
||
|
};
|
||
|
|
||
|
#endif
|