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.
110 lines
3.4 KiB
C++
110 lines
3.4 KiB
C++
/*=========================================================================
|
|
|
|
Program: Visualization Toolkit
|
|
Module: vtkMergeTables.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 2008 Sandia Corporation.
|
|
Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
|
|
the U.S. Government retains certain rights in this software.
|
|
-------------------------------------------------------------------------*/
|
|
/**
|
|
* @class vtkMergeTables
|
|
* @brief combine two tables
|
|
*
|
|
*
|
|
* Combines the columns of two tables into one larger table.
|
|
* The number of rows in the resulting table is the sum of the number of
|
|
* rows in each of the input tables.
|
|
* The number of columns in the output is generally the sum of the number
|
|
* of columns in each input table, except in the case where column names
|
|
* are duplicated in both tables.
|
|
* In this case, if MergeColumnsByName is on (the default), the two columns
|
|
* will be merged into a single column of the same name.
|
|
* If MergeColumnsByName is off, both columns will exist in the output.
|
|
* You may set the FirstTablePrefix and SecondTablePrefix to define how
|
|
* the columns named are modified. One of these prefixes may be the empty
|
|
* string, but they must be different.
|
|
*/
|
|
|
|
#ifndef vtkMergeTables_h
|
|
#define vtkMergeTables_h
|
|
|
|
#include "vtkInfovisCoreModule.h" // For export macro
|
|
#include "vtkTableAlgorithm.h"
|
|
|
|
class VTKINFOVISCORE_EXPORT vtkMergeTables : public vtkTableAlgorithm
|
|
{
|
|
public:
|
|
static vtkMergeTables* New();
|
|
vtkTypeMacro(vtkMergeTables, vtkTableAlgorithm);
|
|
void PrintSelf(ostream& os, vtkIndent indent) override;
|
|
|
|
//@{
|
|
/**
|
|
* The prefix to give to same-named fields from the first table.
|
|
* Default is "Table1.".
|
|
*/
|
|
vtkSetStringMacro(FirstTablePrefix);
|
|
vtkGetStringMacro(FirstTablePrefix);
|
|
//@}
|
|
|
|
//@{
|
|
/**
|
|
* The prefix to give to same-named fields from the second table.
|
|
* Default is "Table2.".
|
|
*/
|
|
vtkSetStringMacro(SecondTablePrefix);
|
|
vtkGetStringMacro(SecondTablePrefix);
|
|
//@}
|
|
|
|
//@{
|
|
/**
|
|
* If on, merges columns with the same name.
|
|
* If off, keeps both columns, but calls one
|
|
* FirstTablePrefix + name, and the other SecondTablePrefix + name.
|
|
* Default is on.
|
|
*/
|
|
vtkSetMacro(MergeColumnsByName, bool);
|
|
vtkGetMacro(MergeColumnsByName, bool);
|
|
vtkBooleanMacro(MergeColumnsByName, bool);
|
|
//@}
|
|
|
|
//@{
|
|
/**
|
|
* If on, all columns will have prefixes except merged columns.
|
|
* If off, only unmerged columns with the same name will have prefixes.
|
|
* Default is off.
|
|
*/
|
|
vtkSetMacro(PrefixAllButMerged, bool);
|
|
vtkGetMacro(PrefixAllButMerged, bool);
|
|
vtkBooleanMacro(PrefixAllButMerged, bool);
|
|
//@}
|
|
|
|
protected:
|
|
vtkMergeTables();
|
|
~vtkMergeTables() override;
|
|
|
|
bool MergeColumnsByName;
|
|
bool PrefixAllButMerged;
|
|
char* FirstTablePrefix;
|
|
char* SecondTablePrefix;
|
|
|
|
int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) override;
|
|
|
|
private:
|
|
vtkMergeTables(const vtkMergeTables&) = delete;
|
|
void operator=(const vtkMergeTables&) = delete;
|
|
};
|
|
|
|
#endif
|