Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

Common/vtkOrderedTriangulator.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkOrderedTriangulator.h,v $
00005   Language:  C++
00006 
00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 
00008   All rights reserved.
00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00010 
00011      This software is distributed WITHOUT ANY WARRANTY; without even 
00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00013      PURPOSE.  See the above copyright notice for more information.
00014 
00015 =========================================================================*/
00080 #ifndef __vtkOrderedTriangulator_h
00081 #define __vtkOrderedTriangulator_h
00082 
00083 #include "vtkObject.h"
00084 
00085 class vtkUnstructuredGrid;
00086 class vtkOTMesh;
00087 class vtkCellArray;
00088 class vtkMemoryPool;
00089 class vtkIdList;
00090 class vtkPoints;
00091 
00092 class VTK_COMMON_EXPORT vtkOrderedTriangulator : public vtkObject
00093 {
00094 public:
00095   vtkTypeRevisionMacro(vtkOrderedTriangulator,vtkObject);
00096   void PrintSelf(ostream& os, vtkIndent indent);
00097 
00099   static vtkOrderedTriangulator *New();
00100 
00102 
00104   void InitTriangulation(float xmin, float xmax, float ymin, float ymax,
00105                          float zmin, float zmax, int numPts);
00106   void InitTriangulation(float bounds[6], int numPts);
00108 
00110 
00123   vtkIdType InsertPoint(vtkIdType id, float x[3], float p[3], int type);
00124   vtkIdType InsertPoint(vtkIdType id, vtkIdType sortid, float x[3], float p[3],
00125                         int type);
00126   vtkIdType InsertPoint(vtkIdType id, vtkIdType sortid,  vtkIdType sortid2, 
00127                         float x[3], float p[3], int type);
00129 
00132   void Triangulate();
00133 
00139   void UpdatePointType(vtkIdType internalId, int type);
00140 
00142 
00146   vtkSetMacro(PreSorted,int);
00147   vtkGetMacro(PreSorted,int);
00148   vtkBooleanMacro(PreSorted,int);
00150 
00152 
00154   vtkSetMacro(UseTwoSortIds,int);
00155   vtkGetMacro(UseTwoSortIds,int);
00156   vtkBooleanMacro(UseTwoSortIds,int);
00158 
00168   vtkIdType GetTetras(int classification, vtkUnstructuredGrid *ugrid);
00169   
00177   vtkIdType AddTetras(int classification, vtkUnstructuredGrid *ugrid);
00178   
00184   vtkIdType AddTetras(int classification, vtkCellArray *connectivity);
00185   
00189   vtkIdType AddTetras(int classification, vtkIdList *ptIds, vtkPoints *pts);
00190   
00193   vtkIdType AddTriangles(vtkCellArray *connectivity);
00194   
00198   vtkIdType AddTriangles(vtkIdType id, vtkCellArray *connectivity);
00199   
00200 protected:
00201   vtkOrderedTriangulator();
00202   ~vtkOrderedTriangulator();
00203 
00204 private:
00205   vtkOTMesh  *Mesh;
00206   int NumberOfPoints; //number of points inserted
00207   int MaximumNumberOfPoints; //maximum possible number of points to be inserted
00208   int PreSorted;
00209   int UseTwoSortIds;
00210   vtkMemoryPool* Pool;
00211   double Quanta;
00212   
00213 private:
00214   vtkOrderedTriangulator(const vtkOrderedTriangulator&);  // Not implemented.
00215   void operator=(const vtkOrderedTriangulator&);  // Not implemented.
00216 };
00217 
00218 #endif
00219 
00220