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.
128 lines
3.9 KiB
128 lines
3.9 KiB
/*=========================================================================
|
|
|
|
Program: Visualization Toolkit
|
|
Module: $RCSfile: vtkPointSet.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 vtkPointSet - abstract class for specifying dataset behavior
|
|
// .SECTION Description
|
|
// vtkPointSet is an abstract class that specifies the interface for
|
|
// datasets that explicitly use "point" arrays to represent geometry.
|
|
// For example, vtkPolyData and vtkUnstructuredGrid require point arrays
|
|
// to specify point position, while vtkStructuredPoints generates point
|
|
// positions implicitly.
|
|
|
|
// .SECTION See Also
|
|
// vtkPolyData vtkStructuredGrid vtkUnstructuredGrid
|
|
|
|
#ifndef __vtkPointSet_h
|
|
#define __vtkPointSet_h
|
|
|
|
#include "vtkDataSet.h"
|
|
|
|
#include "vtkPoints.h" // Needed for inline methods
|
|
|
|
class vtkPointLocator;
|
|
|
|
class VTK_FILTERING_EXPORT vtkPointSet : public vtkDataSet
|
|
{
|
|
public:
|
|
vtkTypeRevisionMacro(vtkPointSet,vtkDataSet);
|
|
void PrintSelf(ostream& os, vtkIndent indent);
|
|
|
|
// Description:
|
|
// Reset to an empty state and free any memory.
|
|
void Initialize();
|
|
|
|
// Description:
|
|
// Copy the geometric structure of an input point set object.
|
|
void CopyStructure(vtkDataSet *pd);
|
|
|
|
// Description:
|
|
// See vtkDataSet for additional information.
|
|
vtkIdType GetNumberOfPoints();
|
|
double *GetPoint(vtkIdType ptId) {return this->Points->GetPoint(ptId);};
|
|
void GetPoint(vtkIdType ptId, double x[3]) {this->Points->GetPoint(ptId,x);};
|
|
vtkIdType FindPoint(double x[3]);
|
|
vtkIdType FindPoint(double x, double y, double z) { return this->vtkDataSet::FindPoint(x, y, z);};
|
|
vtkIdType FindCell(double x[3], vtkCell *cell, vtkIdType cellId, double tol2,
|
|
int& subId, double pcoords[3], double *weights);
|
|
vtkIdType FindCell(double x[3], vtkCell *cell, vtkGenericCell *gencell,
|
|
vtkIdType cellId, double tol2, int& subId,
|
|
double pcoords[3], double *weights);
|
|
|
|
// Description:
|
|
// Get MTime which also considers its vtkPoints MTime.
|
|
unsigned long GetMTime();
|
|
|
|
// Description:
|
|
// Compute the (X, Y, Z) bounds of the data.
|
|
void ComputeBounds();
|
|
|
|
// Description:
|
|
// Reclaim any unused memory.
|
|
void Squeeze();
|
|
|
|
// Description:
|
|
// Specify point array to define point coordinates.
|
|
virtual void SetPoints(vtkPoints*);
|
|
vtkGetObjectMacro(Points,vtkPoints);
|
|
|
|
// Description:
|
|
// Return the actual size of the data in kilobytes. This number
|
|
// is valid only after the pipeline has updated. The memory size
|
|
// returned is guaranteed to be greater than or equal to the
|
|
// memory required to represent the data (e.g., extra space in
|
|
// arrays, etc. are not included in the return value). THIS METHOD
|
|
// IS THREAD SAFE.
|
|
unsigned long GetActualMemorySize();
|
|
|
|
// Description:
|
|
// Shallow and Deep copy.
|
|
void ShallowCopy(vtkDataObject *src);
|
|
void DeepCopy(vtkDataObject *src);
|
|
|
|
//BTX
|
|
// Description:
|
|
// Retrieve an instance of this class from an information object.
|
|
static vtkPointSet* GetData(vtkInformation* info);
|
|
static vtkPointSet* GetData(vtkInformationVector* v, int i=0);
|
|
//ETX
|
|
|
|
protected:
|
|
vtkPointSet();
|
|
~vtkPointSet();
|
|
|
|
vtkPoints *Points;
|
|
vtkPointLocator *Locator;
|
|
|
|
virtual void ReportReferences(vtkGarbageCollector*);
|
|
private:
|
|
vtkPointSet(const vtkPointSet&); // Not implemented.
|
|
void operator=(const vtkPointSet&); // Not implemented.
|
|
};
|
|
|
|
inline vtkIdType vtkPointSet::GetNumberOfPoints()
|
|
{
|
|
if (this->Points)
|
|
{
|
|
return this->Points->GetNumberOfPoints();
|
|
}
|
|
else
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|