VTK
vtkBivariateLinearTableThreshold.h
Go to the documentation of this file.
1/*=========================================================================
2
3Program: Visualization Toolkit
4Module: vtkBivariateLinearTableThreshold.h
5
6Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7All rights reserved.
8See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10This software is distributed WITHOUT ANY WARRANTY; without even
11the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
15/*-------------------------------------------------------------------------
16 Copyright 2009 Sandia Corporation.
17 Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
18 the U.S. Government retains certain rights in this software.
19-------------------------------------------------------------------------*/
40#ifndef vtkBivariateLinearTableThreshold_h
41#define vtkBivariateLinearTableThreshold_h
42
43#include "vtkFiltersStatisticsModule.h" // For export macro
44#include "vtkTableAlgorithm.h"
45#include "vtkSmartPointer.h" //Required for smart pointer internal ivars
46
48class vtkDoubleArray;
49class vtkIdTypeArray;
50class vtkTable;
51
52class VTKFILTERSSTATISTICS_EXPORT vtkBivariateLinearTableThreshold : public vtkTableAlgorithm
53{
54public:
57 void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
58
60
64 vtkSetMacro(Inclusive,int);
65 vtkGetMacro(Inclusive,int);
67
72
77
82
87
92
94 {
95 OUTPUT_ROW_IDS=0,
96 OUTPUT_ROW_DATA
97 };
99 {
100 BLT_ABOVE=0,
103 BLT_BETWEEN
104 };
105
110
114 void AddLineEquation(double* p1, double* p2);
115
119 void AddLineEquation(double* p, double slope);
120
124 void AddLineEquation(double a, double b, double c);
125
130
132
138 vtkGetMacro(LinearThresholdType,int);
145
147
152 vtkSetVector2Macro(ColumnRanges,double);
153 vtkGetVector2Macro(ColumnRanges,double);
155
157
160 vtkSetMacro(DistanceThreshold,double);
161 vtkGetMacro(DistanceThreshold,double);
163
165
172 vtkSetMacro(UseNormalizedDistance,int);
173 vtkGetMacro(UseNormalizedDistance,int);
174 vtkBooleanMacro(UseNormalizedDistance,int);
176
180 static void ComputeImplicitLineFunction(double* p1, double* p2, double* abc);
181
185 static void ComputeImplicitLineFunction(double* p, double slope, double* abc);
186
187protected:
190
191 double ColumnRanges[2];
192 double DistanceThreshold;
193 int Inclusive;
195 int NumberOfLineEquations;
196 int UseNormalizedDistance;
197
199 class Internals;
200 Internals* Implementation;
201
202 int RequestData(
205 vtkInformationVector*) VTK_OVERRIDE;
206
207 int FillInputPortInformation( int port, vtkInformation* info ) VTK_OVERRIDE;
208 int FillOutputPortInformation( int port, vtkInformation* info ) VTK_OVERRIDE;
209
213 virtual int ApplyThreshold(vtkTable* tableToThreshold, vtkIdTypeArray* acceptedIds);
214
216
219 int ThresholdAbove(double x, double y);
220
224 int ThresholdBelow(double x, double y);
225
229 int ThresholdNear(double x, double y);
230
234 int ThresholdBetween(double x, double y);
236
237private:
239 void operator=(const vtkBivariateLinearTableThreshold&) VTK_DELETE_FUNCTION;
240};
241
242#endif
performs line-based thresholding for vtkTable data.
void GetColumnToThreshold(vtkIdType idx, vtkIdType &column, vtkIdType &component)
Return the column number from the input table for the idx'th added column.
vtkIdTypeArray * GetSelectedRowIds(int selection=0)
Get the output as a table of row ids.
static void ComputeImplicitLineFunction(double *p, double slope, double *abc)
Convert the point-slope line formula to implicit form.
void Initialize()
Reset the columns to threshold, column ranges, etc.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void ClearLineEquations()
Reset the list of line equations.
void ClearColumnsToThreshold()
Reset the columns to be thresholded.
void AddColumnToThreshold(vtkIdType column, vtkIdType component)
Add a numeric column to the pair of columns to be thresholded.
void AddLineEquation(double *p, double slope)
Add a line for thresholding in point-slope form.
static vtkBivariateLinearTableThreshold * New()
void AddLineEquation(double a, double b, double c)
Add a line for thresholding in implicit form (ax + by + c = 0)
int GetNumberOfColumnsToThreshold()
Return how many columns have been added.
void AddLineEquation(double *p1, double *p2)
Add a line for thresholding from two x,y points.
static void ComputeImplicitLineFunction(double *p1, double *p2, double *abc)
Convert the two-point line formula to implicit form.
maintain an unordered list of dataarray objects
dynamic, self-adjusting array of double
dynamic, self-adjusting array of vtkIdType
a simple class to control print indentation
Definition: vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Hold a reference to a vtkObjectBase instance.
Superclass for algorithms that produce only vtkTables as output.
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:69
@ component
Definition: vtkX3D.h:175
@ info
Definition: vtkX3D.h:376
@ port
Definition: vtkX3D.h:447
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
int vtkIdType
Definition: vtkType.h:287