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.
69 lines
2.8 KiB
69 lines
2.8 KiB
/*=========================================================================
|
|
|
|
Program: Visualization Toolkit
|
|
Module: $RCSfile: vtkProgrammableDataObjectSource.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.
|
|
|
|
=========================================================================*/
|
|
// .NAME vtkProgrammableDataObjectSource - generate source data object via a user-specified function
|
|
// .SECTION Description
|
|
// vtkProgrammableDataObjectSource is a source object that is programmable by
|
|
// the user. The output of the filter is a data object (vtkDataObject) which
|
|
// represents data via an instance of field data. To use this object, you
|
|
// must specify a function that creates the output.
|
|
//
|
|
// Example use of this filter includes reading tabular data and encoding it
|
|
// as vtkFieldData. You can then use filters like vtkDataObjectToDataSetFilter
|
|
// to convert the data object to a dataset and then visualize it. Another
|
|
// important use of this class is that it allows users of interpreters (e.g.,
|
|
// Tcl or Java) the ability to write source objects without having to
|
|
// recompile C++ code or generate new libraries.
|
|
//
|
|
// .SECTION See Also
|
|
// vtkProgrammableFilter vtkProgrammableAttributeDataFilter
|
|
// vtkProgrammableSource vtkDataObjectToDataSetFilter
|
|
|
|
#ifndef __vtkProgrammableDataObjectSource_h
|
|
#define __vtkProgrammableDataObjectSource_h
|
|
|
|
#include "vtkDataObjectAlgorithm.h"
|
|
|
|
class VTK_GRAPHICS_EXPORT vtkProgrammableDataObjectSource : public vtkDataObjectAlgorithm
|
|
{
|
|
public:
|
|
static vtkProgrammableDataObjectSource *New();
|
|
vtkTypeRevisionMacro(vtkProgrammableDataObjectSource,vtkDataObjectAlgorithm);
|
|
void PrintSelf(ostream& os, vtkIndent indent);
|
|
|
|
// Description:
|
|
// Specify the function to use to generate the output data object. Note
|
|
// that the function takes a single (void *) argument.
|
|
void SetExecuteMethod(void (*f)(void *), void *arg);
|
|
|
|
// Description:
|
|
// Set the arg delete method. This is used to free user memory.
|
|
void SetExecuteMethodArgDelete(void (*f)(void *));
|
|
|
|
protected:
|
|
vtkProgrammableDataObjectSource();
|
|
~vtkProgrammableDataObjectSource();
|
|
|
|
virtual int RequestData(vtkInformation *, vtkInformationVector **,
|
|
vtkInformationVector *);
|
|
|
|
void (*ExecuteMethod)(void *); //function to invoke
|
|
void (*ExecuteMethodArgDelete)(void *);
|
|
void *ExecuteMethodArg;
|
|
private:
|
|
vtkProgrammableDataObjectSource(const vtkProgrammableDataObjectSource&); // Not implemented.
|
|
void operator=(const vtkProgrammableDataObjectSource&); // Not implemented.
|
|
};
|
|
|
|
#endif
|
|
|