[Insight-users] How get vertex in stl file

shi yuan shiyuan001 at hotmail.com
Thu Jun 7 00:08:19 EDT 2007


Hi All,
In my program, I want to import a STL format file and get the vertex in the 
file, but I cannot get it correctly, I don’t know how to solve it, code 
segment as follows:
=====================================================================
//Create the reader and read a data file
vtkSmartPointer<vtkSTLReader> sr = vtkSmartPointer<vtkSTLReader>::New();
sr->SetFileName(strModelPath);
sr->Update();
	
vtkSmartPointer<vtkPolyData> stlPolyData = 
vtkSmartPointer<vtkPolyData>::New();
stlPolyData = sr->GetOutput();
stlPolyData->Update();
	
vtkSmartPointer<vtkCellArray> stlCellArray = 
vtkSmartPointer<vtkCellArray>::New();
stlCellArray = stlPolyData->GetPolys();
	
//Obtaining number of all cells (triangular facets)
int nCellsNum;
nCellsNum = stlCellArray->GetNumberOfCells();
	
//Definting pointer which is points to vertex in the cell
double* dpPointA;
double* dpPointB;
double* dpPointC;
	
for (int nCellID = 0; nCellID < nCellsNum; nCellID++) 
{
   vtkCell* cell;
   cell = stlPolyData->GetCell(nCellID);
		
   vtkSmartPointer<vtkPoints> Points = vtkSmartPointer<vtkPoints>::New();
   Points = cell->GetPoints();
		
   vtkSmartPointer<vtkIdList> PointsIDList = 
vtkSmartPointer<vtkPoints>::New();
   stlPolyData->GetCellPoints(nCellID,PointsIDList);
		
   int a = 0;
   int b = 0;
   int c = 0;
		
   a = PointsIDList->GetId(0);
   b = PointsIDList->GetId(1);
   c = PointsIDList->GetId(2);

   dpPointA = Points->GetPoint(a);
   dpPointB = Points->GetPoint(b);
   dpPointC = Points->GetPoint(c);
}
===================================================================
I find dpPointA , dpPointB and dpPointC has the same value, Why?

Thanks in advance for any help.

Regards,
Yuan SHI

_________________________________________________________________
与联机的朋友进行交流,请使用 MSN Messenger:  http://messenger.msn.com/cn  



More information about the Insight-users mailing list