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.
 
 
 
 
 
 

115 lines
4.2 KiB

/*=========================================================================
Program: Visualization Toolkit
Module: $RCSfile: vtkShepardMethod.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 vtkShepardMethod - sample unstructured points onto structured points using the method of Shepard
// .SECTION Description
// vtkShepardMethod is a filter used to visualize unstructured point data using
// Shepard's method. The method works by resampling the unstructured points
// onto a structured points set. The influence functions are described as
// "inverse distance weighted". Once the structured points are computed, the
// usual visualization techniques (e.g., iso-contouring or volume rendering)
// can be used visualize the structured points.
// .SECTION Caveats
// The input to this filter is any dataset type. This filter can be used
// to resample any form of data, i.e., the input data need not be
// unstructured.
//
// The bounds of the data (i.e., the sample space) is automatically computed
// if not set by the user.
//
// If you use a maximum distance less than 1.0, some output points may
// never receive a contribution. The final value of these points can be
// specified with the "NullValue" instance variable.
#ifndef __vtkShepardMethod_h
#define __vtkShepardMethod_h
#include "vtkImageAlgorithm.h"
class VTK_IMAGING_EXPORT vtkShepardMethod : public vtkImageAlgorithm
{
public:
vtkTypeRevisionMacro(vtkShepardMethod,vtkImageAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Construct with sample dimensions=(50,50,50) and so that model bounds are
// automatically computed from input. Null value for each unvisited output
// point is 0.0. Maximum distance is 0.25.
static vtkShepardMethod *New();
// Description:
// Compute ModelBounds from input geometry.
double ComputeModelBounds(double origin[3], double ar[3]);
// Description:
// Specify i-j-k dimensions on which to sample input points.
vtkGetVectorMacro(SampleDimensions,int,3);
// Description:
// Set the i-j-k dimensions on which to sample the distance function.
void SetSampleDimensions(int i, int j, int k);
// Description:
// Set the i-j-k dimensions on which to sample the distance function.
void SetSampleDimensions(int dim[3]);
// Description:
// Specify influence distance of each input point. This distance is a
// fraction of the length of the diagonal of the sample space. Thus, values
// of 1.0 will cause each input point to influence all points in the
// structured point dataset. Values less than 1.0 can improve performance
// significantly.
vtkSetClampMacro(MaximumDistance,double,0.0,1.0);
vtkGetMacro(MaximumDistance,double);
// Description:
// Specify the position in space to perform the sampling.
vtkSetVector6Macro(ModelBounds,double);
vtkGetVectorMacro(ModelBounds,double,6);
// Description:
// Set the Null value for output points not receiving a contribution from the
// input points.
vtkSetMacro(NullValue,double);
vtkGetMacro(NullValue,double);
protected:
vtkShepardMethod();
~vtkShepardMethod() {};
virtual int RequestInformation (vtkInformation *,
vtkInformationVector **,
vtkInformationVector *);
// see vtkAlgorithm for details
virtual int RequestData(vtkInformation *request,
vtkInformationVector** inputVector,
vtkInformationVector* outputVector);
// see algorithm for more info
virtual int FillInputPortInformation(int port, vtkInformation* info);
int SampleDimensions[3];
double MaximumDistance;
double ModelBounds[6];
double NullValue;
private:
vtkShepardMethod(const vtkShepardMethod&); // Not implemented.
void operator=(const vtkShepardMethod&); // Not implemented.
};
#endif