Cloned library of VTK-5.0.0 with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
3.0 KiB

2 years ago
/*=========================================================================
Program: Visualization Toolkit
Module: $RCSfile: vtkExtractUserDefinedPiece.h,v $
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 (c) Sandia Corporation
See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
----------------------------------------------------------------------------*/
// .NAME vtkExtractUserDefinedPiece - Return user specified piece with ghost cells
//
// .SECTION Description
// Provided a function that determines which cells are zero-level
// cells ("the piece"), this class outputs the piece with the
// requested number of ghost levels. The only difference between
// this class and the class it is derived from is that the
// zero-level cells are specified by a function you provide,
// instead of determined by dividing up the cells based on cell Id.
//
// .SECTION See Also
// vtkExtractUnstructuredGridPiece
#ifndef __vtkExtractUserDefinedPiece_h
#define __vtkExtractUserDefinedPiece_h
#include "vtkExtractUnstructuredGridPiece.h"
class VTK_PARALLEL_EXPORT vtkExtractUserDefinedPiece : public vtkExtractUnstructuredGridPiece
{
public:
vtkTypeRevisionMacro(vtkExtractUserDefinedPiece, vtkExtractUnstructuredGridPiece);
static vtkExtractUserDefinedPiece *New();
virtual void PrintSelf(ostream& os, vtkIndent indent);
//BTX
typedef int (*UserDefFunc)(vtkIdType cellID, vtkUnstructuredGrid *grid, void *constantData);
//ETX
// Set the function used to identify the piece. The function should
// return 1 if the cell is in the piece, and 0 otherwise.
void SetPieceFunction(UserDefFunc func) {this->InPiece = func; this->Modified();}
// Set constant data to be used by the piece identifying function.
void SetConstantData(void *data, int len);
// Get constant data to be used by the piece identifying function.
// Return the length of the data buffer.
int GetConstantData(void **data);
// The function should return 1 if the cell
// is in the piece, and 0 otherwise.
protected:
vtkExtractUserDefinedPiece();
~vtkExtractUserDefinedPiece();
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
void ComputeCellTagsWithFunction(vtkIntArray *tags, vtkIdList *pointOwnership,
vtkUnstructuredGrid *input);
private:
vtkExtractUserDefinedPiece(const vtkExtractUserDefinedPiece&); // Not implemented
void operator=(const vtkExtractUserDefinedPiece&); // Not implemented
void *ConstantData;
int ConstantDataLen;
UserDefFunc InPiece;
};
#endif