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.
nmWTAI-Platform/3rd/VTK7.1/include/vtkExtractArraysOverTime.h

166 lines
5.2 KiB
C

/*=========================================================================
Program: Visualization Toolkit
Module: vtkExtractArraysOverTime.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.
=========================================================================*/
/**
* @class vtkExtractArraysOverTime
* @brief extracts a selection over time.
*
* vtkExtractArraysOverTime extracts a selection over time.
* The output is a multiblock dataset. If selection content type is
* vtkSelection::Locations, then each output block corresponds to each probed
* location. Otherwise, each output block corresponds to an extracted cell/point
* depending on whether the selection field type is CELL or POINT.
* Each block is a vtkTable with a column named Time (or TimeData if Time exists
* in the input).
* When extracting point data, the input point coordinates are copied
* to a column named Point Coordinates or Points (if Point Coordinates
* exists in the input).
* This algorithm does not produce a TIME_STEPS or TIME_RANGE information
* because it works across time.
* @par Caveat:
* This algorithm works only with source that produce TIME_STEPS().
* Continuous time range is not yet supported.
*/
#ifndef vtkExtractArraysOverTime_h
#define vtkExtractArraysOverTime_h
#include "vtkFiltersExtractionModule.h" // For export macro
#include "vtkMultiBlockDataSetAlgorithm.h"
class vtkSelection;
class vtkDataSet;
class vtkTable;
class vtkExtractSelection;
class vtkDataSetAttributes;
class VTKFILTERSEXTRACTION_EXPORT vtkExtractArraysOverTime : public vtkMultiBlockDataSetAlgorithm
{
public:
static vtkExtractArraysOverTime *New();
vtkTypeMacro(vtkExtractArraysOverTime, vtkMultiBlockDataSetAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent);
//@{
/**
* Get the number of time steps
*/
vtkGetMacro(NumberOfTimeSteps,int);
//@}
/**
* Convenience method to specify the selection connection (2nd input
* port)
*/
void SetSelectionConnection(vtkAlgorithmOutput* algOutput)
{
this->SetInputConnection(1, algOutput);
}
//@{
/**
* Set/get the vtkExtractSelection instance used to obtain
* array values at each time step.
* An instance of vtkExtractSelection is created on
* demand when the filter is first executed.
* This is used by ParaView to override the default
* extractor with one that supports Python-based QUERY
* selection.
*/
virtual void SetSelectionExtractor(vtkExtractSelection*);
vtkGetObjectMacro(SelectionExtractor,vtkExtractSelection);
//@}
//@{
/**
* Instead of breaking a selection into a separate time-history
* table for each (block,ID)-tuple, you may call
* ReportStatisticsOnlyOn(). Then a single table per
* block of the input dataset will report the minimum, maximum,
* quartiles, and (for numerical arrays) the average and standard
* deviation of the selection over time.
* The default is off to preserve backwards-compatibility.
*/
vtkSetMacro(ReportStatisticsOnly,int);
vtkGetMacro(ReportStatisticsOnly,int);
vtkBooleanMacro(ReportStatisticsOnly,int);
//@}
protected:
vtkExtractArraysOverTime();
~vtkExtractArraysOverTime();
virtual int RequestInformation(vtkInformation* request,
vtkInformationVector** inputVector,
vtkInformationVector* outputVector);
virtual int RequestUpdateExtent(vtkInformation* request,
vtkInformationVector** inputVector,
vtkInformationVector* outputVector);
virtual int RequestData(vtkInformation* request,
vtkInformationVector** inputVector,
vtkInformationVector* outputVector);
virtual void PostExecute(vtkInformation* request,
vtkInformationVector** inputVector,
vtkInformationVector* outputVector);
// Add virtual method to be overwritten in the subclass. takes the
virtual vtkSelection* GetSelection(vtkInformation* info);
/**
* Determines the FieldType and ContentType for the selection. If the
* selection is a vtkSelection::SELECTIONS selection, then this method ensures
* that all child nodes have the same field type and content type otherwise,
* it returns 0.
*/
int DetermineSelectionType(vtkSelection*);
virtual int FillInputPortInformation(int port, vtkInformation* info);
void ExecuteAtTimeStep(vtkInformationVector** inputV,
vtkInformation* outInfo);
int CurrentTimeIndex;
int NumberOfTimeSteps;
int FieldType;
int ContentType;
bool IsExecuting;
int ReportStatisticsOnly;
int Error;
enum Errors
{
NoError,
MoreThan1Indices
};
vtkExtractSelection* SelectionExtractor;
private:
vtkExtractArraysOverTime(const vtkExtractArraysOverTime&) VTK_DELETE_FUNCTION;
void operator=(const vtkExtractArraysOverTime&) VTK_DELETE_FUNCTION;
class vtkInternal;
vtkInternal *Internal;
};
#endif