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 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
|
/*=========================================================================
Program: Visualization Toolkit
Module: $RCSfile: vtkUniformGrid.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 vtkUniformGrid - image data with blanking
// .SECTION Description
// vtkUniformGrid is a subclass of vtkImageData. In addition to all
// the image data functionality, it supports blanking.
#ifndef __vtkUniformGrid_h
#define __vtkUniformGrid_h
#include "vtkImageData.h"
class vtkEmptyCell;
class vtkStructuredVisibilityConstraint;
class vtkUnsignedCharArray;
class VTK_FILTERING_EXPORT vtkUniformGrid : public vtkImageData
{
public:
static vtkUniformGrid *New();
vtkTypeRevisionMacro(vtkUniformGrid,vtkImageData);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Copy the geometric and topological structure of an input image data
// object.
virtual void CopyStructure(vtkDataSet *ds);
// Description:
// Return what type of dataset this is.
virtual int GetDataObjectType() {return VTK_UNIFORM_GRID;};
// Description:
// Standard vtkDataSet API methods. See vtkDataSet for more information.
virtual vtkCell *GetCell(vtkIdType cellId);
virtual void GetCell(vtkIdType cellId, vtkGenericCell *cell);
virtual vtkIdType FindCell(
double x[3], vtkCell *cell, vtkIdType cellId, double tol2,
int& subId, double pcoords[3], double *weights);
virtual vtkIdType FindCell(
double x[3], vtkCell *cell, vtkGenericCell *gencell,
vtkIdType cellId, double tol2, int& subId,
double pcoords[3], double *weights);
virtual vtkCell *FindAndGetCell(
double x[3], vtkCell *cell, vtkIdType cellId,
double tol2, int& subId, double pcoords[3],
double *weights);
virtual int GetCellType(vtkIdType cellId);
virtual void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds)
{vtkStructuredData::GetCellPoints(cellId,ptIds,this->DataDescription,
this->GetDimensions());}
virtual void GetPointCells(vtkIdType ptId, vtkIdList *cellIds)
{vtkStructuredData::GetPointCells(ptId,cellIds,this->GetDimensions());}
virtual void Initialize();
virtual int GetMaxCellSize() {return 8;}; //voxel is the largest
virtual void GetScalarRange(double range[2]);
// Description:
// Shallow and Deep copy.
virtual void ShallowCopy(vtkDataObject *src);
virtual void DeepCopy(vtkDataObject *src);
// Description:
// Methods for supporting blanking of cells. Blanking turns on or off
// points in the structured grid, and hence the cells connected to them.
// These methods should be called only after the dimensions of the
// grid are set.
virtual void BlankPoint(vtkIdType ptId);
virtual void UnBlankPoint(vtkIdType ptId);
// Description:
// Methods for supporting blanking of cells. Blanking turns on or off
// cells in the structured grid.
// These methods should be called only after the dimensions of the
// grid are set.
virtual void BlankCell(vtkIdType ptId);
virtual void UnBlankCell(vtkIdType ptId);
// Description:
// Get the array that defines the blanking (visibility) of each point.
virtual vtkUnsignedCharArray *GetPointVisibilityArray();
// Description:
// Set an array that defines the (blanking) visibility of the points
// in the grid. Make sure that length of the visibility array matches
// the number of points in the grid.
virtual void SetPointVisibilityArray(vtkUnsignedCharArray *pointVisibility);
// Description:
// Get the array that defines the blanking (visibility) of each cell.
virtual vtkUnsignedCharArray *GetCellVisibilityArray();
// Description:
// Set an array that defines the (blanking) visibility of the cells
// in the grid. Make sure that length of the visibility array matches
// the number of points in the grid.
virtual void SetCellVisibilityArray(vtkUnsignedCharArray *pointVisibility);
// Description:
// Return non-zero value if specified point is visible.
// These methods should be called only after the dimensions of the
// grid are set.
virtual unsigned char IsPointVisible(vtkIdType ptId);
// Description:
// Return non-zero value if specified point is visible.
// These methods should be called only after the dimensions of the
// grid are set.
virtual unsigned char IsCellVisible(vtkIdType cellId);
// Description:
// Returns 1 if there is any visibility constraint on the points,
// 0 otherwise.
virtual unsigned char GetPointBlanking();
// Description:
// Returns 1 if there is any visibility constraint on the cells,
// 0 otherwise.
virtual unsigned char GetCellBlanking();
virtual vtkImageData* NewImageDataCopy();
//BTX
// Description:
// Retrieve an instance of this class from an information object.
static vtkUniformGrid* GetData(vtkInformation* info);
static vtkUniformGrid* GetData(vtkInformationVector* v, int i=0);
//ETX
protected:
vtkUniformGrid();
~vtkUniformGrid();
vtkStructuredVisibilityConstraint* PointVisibility;
void SetPointVisibility(vtkStructuredVisibilityConstraint *pointVisibility);
vtkGetObjectMacro(PointVisibility, vtkStructuredVisibilityConstraint);
vtkStructuredVisibilityConstraint* CellVisibility;
void SetCellVisibility(vtkStructuredVisibilityConstraint *cellVisibility);
vtkGetObjectMacro(CellVisibility, vtkStructuredVisibilityConstraint);
vtkEmptyCell *EmptyCell;
private:
vtkUniformGrid(const vtkUniformGrid&); // Not implemented.
void operator=(const vtkUniformGrid&); // Not implemented.
};
#endif
|