/*========================================================================= Program: Visualization Toolkit Module: vtkStringToCategory.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 vtkStringToCategory * @brief Creates a category array from a string array * * * vtkStringToCategory creates an integer array named "category" based on the * values in a string array. You may use this filter to create an array that * you may use to color points/cells by the values in a string array. Currently * there is not support to color by a string array directly. * The category values will range from zero to N-1, * where N is the number of distinct strings in the string array. Set the string * array to process with SetInputArrayToProcess(0,0,0,...). The array may be in * the point, cell, or field data of the data object. * * The list of unique strings, in the order they are mapped, can also be * retrieved from output port 1. They are in a vtkTable, stored in the "Strings" * column as a vtkStringArray. */ #ifndef vtkStringToCategory_h #define vtkStringToCategory_h #include "vtkDataObjectAlgorithm.h" #include "vtkInfovisCoreModule.h" // For export macro class VTKINFOVISCORE_EXPORT vtkStringToCategory : public vtkDataObjectAlgorithm { public: static vtkStringToCategory* New(); vtkTypeMacro(vtkStringToCategory, vtkDataObjectAlgorithm); void PrintSelf(ostream& os, vtkIndent indent) override; //@{ /** * The name to give to the output vtkIntArray of category values. */ vtkSetStringMacro(CategoryArrayName); vtkGetStringMacro(CategoryArrayName); //@} /** * This is required to capture REQUEST_DATA_OBJECT requests. */ vtkTypeBool ProcessRequest(vtkInformation* request, vtkInformationVector** inputVector, vtkInformationVector* outputVector) override; protected: vtkStringToCategory(); ~vtkStringToCategory() override; /** * Creates the same output type as the input type. */ int RequestDataObject(vtkInformation* request, vtkInformationVector** inputVector, vtkInformationVector* outputVector) override; int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) override; int FillOutputPortInformation(int port, vtkInformation* info) override; char* CategoryArrayName; private: vtkStringToCategory(const vtkStringToCategory&) = delete; void operator=(const vtkStringToCategory&) = delete; }; #endif