1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
/*=========================================================================
Program: Visualization Toolkit
Module: vtkAppendFilter.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.
=========================================================================*/
// .NAME vtkAppendFilter - appends one or more datasets together into a single unstructured grid
// .SECTION Description
// vtkAppendFilter is a filter that appends one of more datasets into a single
// unstructured grid. All geometry is extracted and appended, but point
// attributes (i.e., scalars, vectors, normals, field data, etc.) are extracted
// and appended only if all datasets have the point attributes available.
// (For example, if one dataset has scalars but another does not, scalars will
// not be appended.)
// .SECTION See Also
// vtkAppendPolyData
#ifndef __vtkAppendFilter_h
#define __vtkAppendFilter_h
#include "vtkUnstructuredGridAlgorithm.h"
class vtkDataSetCollection;
class VTK_GRAPHICS_EXPORT vtkAppendFilter : public vtkUnstructuredGridAlgorithm
{
public:
static vtkAppendFilter *New();
vtkTypeMacro(vtkAppendFilter,vtkUnstructuredGridAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent);
//BTX
// Description:
// Get any input of this filter.
vtkDataSet *GetInput(int idx);
vtkDataSet *GetInput()
{return this->GetInput( 0 );}
//ETX
// Description:
// Get if the filter should merge coincidental points
// Note: The filter will only merge points if the ghost cell array doesn't exist
// Defaults to Off
vtkGetMacro(MergePoints,int);
// Description:
// Set the filter to merge coincidental points.
// Note: The filter will only merge points if the ghost cell array doesn't exist
// Defaults to Off
vtkSetMacro(MergePoints,int);
vtkBooleanMacro(MergePoints,int);
// Description:
// Remove a dataset from the list of data to append.
void RemoveInput(vtkDataSet *in);
// Description:
// Returns a copy of the input array. Modifications to this list
// will not be reflected in the actual inputs.
vtkDataSetCollection *GetInputList();
protected:
vtkAppendFilter();
~vtkAppendFilter();
// Usual data generation method
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
virtual int FillInputPortInformation(int port, vtkInformation *info);
// Description:
// This function appends multiple blocks / pieces into a vtkUnstructuredGrid
// data by using a point locator to merge duplicate points (when ghost cell
// information is not available from the input data blocks / pieces).
// This function should be called by RequestData() only.
int AppendBlocksWithPointLocator( vtkInformationVector ** inputVector,
vtkInformationVector * outputVector );
// list of data sets to append together.
// Here as a convenience. It is a copy of the input array.
vtkDataSetCollection *InputList;
//If true we will attempt to merge points. Must also not have
//ghost cells defined.
int MergePoints;
private:
vtkAppendFilter(const vtkAppendFilter&); // Not implemented.
void operator=(const vtkAppendFilter&); // Not implemented.
};
#endif
|