dox/Common/vtkUnstructuredGrid.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00034
#ifndef __vtkUnstructuredGrid_h
00035
#define __vtkUnstructuredGrid_h
00036
00037
#include "vtkPointSet.h"
00038
00039
class vtkCellArray;
00040
class vtkCellLinks;
00041
class vtkConvexPointSet;
00042
class vtkHexahedron;
00043
class vtkIdList;
00044
class vtkIntArray;
00045
class vtkLine;
00046
class vtkPixel;
00047
class vtkPolyLine;
00048
class vtkPolyVertex;
00049
class vtkPolygon;
00050
class vtkPyramid;
00051
class vtkQuad;
00052
class vtkQuadraticEdge;
00053
class vtkQuadraticHexahedron;
00054
class vtkQuadraticQuad;
00055
class vtkQuadraticTetra;
00056
class vtkQuadraticTriangle;
00057
class vtkTetra;
00058
class vtkTriangle;
00059
class vtkTriangleStrip;
00060
class vtkUnsignedCharArray;
00061
class vtkVertex;
00062
class vtkVoxel;
00063
class vtkWedge;
00064
00065 class VTK_COMMON_EXPORT vtkUnstructuredGrid :
public vtkPointSet {
00066
private:
00067 vtkUnstructuredGrid(
const vtkUnstructuredGrid&);
00068
void operator=(
const vtkUnstructuredGrid&);
00069
public:
00070
static vtkUnstructuredGrid *
New();
00071
00072 vtkTypeRevisionMacro(vtkUnstructuredGrid,
vtkPointSet);
00073
void PrintSelf(ostream& os,
vtkIndent indent);
00074
00076
00077 int GetDataObjectType() {
return VTK_UNSTRUCTURED_GRID;};
00078
virtual void Allocate(
vtkIdType numCells=1000,
int extSize=1000);
00079
int InsertNextCell(
int type,
int npts,
vtkIdType *pts);
00080
int InsertNextCell(
int type,
vtkIdList *ptIds);
00081
void Reset();
00082
void SetCells(
int *types,
vtkCellArray *cells);
00083
void SetCells(
vtkUnsignedCharArray *cellTypes,
vtkIntArray *cellLocations,
00084
vtkCellArray *cells);
00085 vtkCellArray *GetCells() {
return this->Connectivity;};
00086
virtual void CopyStructure(
vtkDataSet *ds);
00087
vtkIdType GetNumberOfCells();
00088
virtual vtkCell *
GetCell(
vtkIdType cellId);
00089
virtual void GetCell(
vtkIdType cellId,
vtkGenericCell *cell);
00090
virtual void GetCellBounds(
vtkIdType cellId,
float bounds[6]);
00091
virtual void GetCellPoints(
vtkIdType cellId,
vtkIdList *ptIds);
00092
void GetPointCells(
vtkIdType ptId,
vtkIdList *cellIds);
00094
00095
int GetCellType(
vtkIdType cellId);
00096 vtkUnsignedCharArray* GetCellTypesArray() {
return this->Types; }
00097 vtkIntArray* GetCellLocationsArray() {
return this->Locations; }
00098
void Squeeze();
00099
void Initialize();
00100
int GetMaxCellSize();
00101
void BuildLinks();
00102 vtkCellLinks *GetCellLinks() {
return this->Links;};
00103
virtual void GetCellPoints(
vtkIdType cellId,
vtkIdType& npts,
00104
vtkIdType* &pts);
00105
void ReplaceCell(
vtkIdType cellId,
int npts,
vtkIdType *pts);
00106
int InsertNextLinkedCell(
int type,
int npts,
vtkIdType *pts);
00107
void RemoveReferenceToCell(
vtkIdType ptId,
vtkIdType cellId);
00108
void AddReferenceToCell(
vtkIdType ptId,
vtkIdType cellId);
00109
void ResizeCellList(
vtkIdType ptId,
int size);
00110
00112
00115
virtual void GetCellNeighbors(
vtkIdType cellId,
vtkIdList *ptIds,
00116
vtkIdList *cellIds);
00118
00120
00123
void SetUpdateExtent(
int piece,
int numPieces,
int ghostLevel);
00124 void SetUpdateExtent(
int piece,
int numPieces)
00125 {this->
SetUpdateExtent(piece, numPieces, 0);}
00126
void GetUpdateExtent(
int &piece,
int &numPieces,
int &ghostLevel);
00128
00130
00131 vtkGetVector6Macro( UpdateExtent,
int );
00133
00135
00139 void SetUpdateExtent(
int x1,
int x2,
int y1,
int y2,
int z1,
int z2 )
00140 { this->Superclass::SetUpdateExtent( x1, x2, y1, y2, z1, z2 ); };
00141 void SetUpdateExtent(
int ext[6] )
00142 { this->Superclass::SetUpdateExtent( ext ); };
00144
00145
00147
00149 vtkGetMacro( Piece,
int );
00150 vtkGetMacro( NumberOfPieces,
int );
00152
00154
00155 vtkGetMacro( GhostLevel,
int );
00157
00163
unsigned long GetActualMemorySize();
00164
00166
00167
virtual void ShallowCopy(
vtkDataObject *src);
00168
virtual void DeepCopy(
vtkDataObject *src);
00170
00174
void GetListOfUniqueCellTypes(
vtkUnsignedCharArray *uniqueTypes);
00175
00179
void GetIdsOfCellsOfType(
int type,
vtkIntArray *array);
00180
00182
int IsHomogeneous();
00183
00186
void RemoveGhostCells(
int level);
00187
00188
protected:
00189 vtkUnstructuredGrid();
00190 ~vtkUnstructuredGrid();
00191
00192
00193 vtkVertex *Vertex;
00194 vtkPolyVertex *PolyVertex;
00195 vtkLine *Line;
00196 vtkPolyLine *PolyLine;
00197 vtkTriangle *Triangle;
00198 vtkTriangleStrip *TriangleStrip;
00199 vtkPixel *Pixel;
00200 vtkQuad *Quad;
00201 vtkPolygon *Polygon;
00202 vtkTetra *Tetra;
00203 vtkVoxel *Voxel;
00204 vtkHexahedron *Hexahedron;
00205 vtkWedge *Wedge;
00206 vtkPyramid *Pyramid;
00207 vtkQuadraticEdge *QuadraticEdge;
00208 vtkQuadraticTriangle *QuadraticTriangle;
00209 vtkQuadraticQuad *QuadraticQuad;
00210 vtkQuadraticTetra *QuadraticTetra;
00211 vtkQuadraticHexahedron *QuadraticHexahedron;
00212 vtkConvexPointSet *ConvexPointSet;
00213
00214
00215
00216 vtkCellArray *Connectivity;
00217 vtkCellLinks *Links;
00218 vtkUnsignedCharArray *Types;
00219 vtkIntArray *Locations;
00220
00221
private:
00222
00223
00225
00226
void GetCellNeighbors(
vtkIdType cellId,
vtkIdList& ptIds,
vtkIdList& cellIds)
00227 {this->
GetCellNeighbors(cellId, &ptIds, &cellIds);}
00229 };
00230
00231
#endif
00232
00233
00234
00235
00236
00237
00238