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.

95 lines
3.1 KiB
C

/*=========================================================================
Program: Visualization Toolkit
Module: vtkStreamingStatistics.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 2010 Sandia Corporation.
Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
the U.S. Government retains certain rights in this software.
-------------------------------------------------------------------------*/
/**
* @class vtkStreamingStatistics
* @brief A class for using the statistics filters
* in a streaming mode.
*
*
* A class for using the statistics filters in a streaming mode or perhaps
* an "online, incremental, push" mode.
*
* @par Thanks:
* Thanks to the Universe for unfolding in a way that allowed this class
* to be implemented, also Godzilla for not crushing my computer.
*/
#ifndef vtkStreamingStatistics_h
#define vtkStreamingStatistics_h
#include "vtkFiltersStatisticsModule.h" // For export macro
#include "vtkTableAlgorithm.h"
class vtkDataObjectCollection;
class vtkMultiBlockDataSet;
class vtkStatisticsAlgorithm;
class vtkTable;
class VTKFILTERSSTATISTICS_EXPORT vtkStreamingStatistics : public vtkTableAlgorithm
{
public:
vtkTypeMacro(vtkStreamingStatistics, vtkTableAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent) override;
static vtkStreamingStatistics* New();
/**
* enumeration values to specify input port types
*/
enum InputPorts
{
INPUT_DATA = 0, //!< Port 0 is for learn data
LEARN_PARAMETERS = 1, //!< Port 1 is for learn parameters (initial guesses, etc.)
INPUT_MODEL = 2 //!< Port 2 is for a priori models
};
/**
* enumeration values to specify output port types
*/
enum OutputIndices
{
OUTPUT_DATA = 0, //!< Output 0 mirrors the input data, plus optional assessment columns
OUTPUT_MODEL = 1, //!< Output 1 contains any generated model
OUTPUT_TEST = 2 //!< Output 2 contains result of statistical test(s)
};
virtual void SetStatisticsAlgorithm(vtkStatisticsAlgorithm*);
protected:
vtkStreamingStatistics();
~vtkStreamingStatistics() override;
int FillInputPortInformation(int port, vtkInformation* info) override;
int FillOutputPortInformation(int port, vtkInformation* info) override;
int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) override;
private:
vtkStreamingStatistics(const vtkStreamingStatistics&) = delete;
void operator=(const vtkStreamingStatistics&) = delete;
// Internal statistics algorithm to care for and feed
vtkStatisticsAlgorithm* StatisticsAlgorithm;
// Internal model that gets aggregated
vtkMultiBlockDataSet* InternalModel;
};
#endif