<div class="gmail_quote">On Thu, Dec 17, 2009 at 11:14 AM, Bryn Lloyd <span dir="ltr"><<a href="mailto:blloyd@vision.ee.ethz.ch">blloyd@vision.ee.ethz.ch</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
David,<br>
<br>
Not sure, but it works in paraview doesn't it?<br>
<br>
1. Maybe inverted triangles (there was an issue in the past with inverted tets).<br>
<br>
2. Maybe you don't have triangles, but strips?<br>
<br>
/Bryn<br><br></blockquote><div><br></div><div>Bryn, </div><div><br></div><div>Hmm, I tried it with a sphere source run through vtkTriangleFilter. This should produce good triangles, right?</div><div><br></div><div class="gmail_quote">
vtkSmartPointer<vtkSphereSource> sphereSource = vtkSmartPointer<vtkSphereSource>::New();</div><div class="gmail_quote"> sphereSource->Update();</div><div class="gmail_quote"> </div><div class="gmail_quote">
vtkSmartPointer<vtkTriangleFilter> triangleFilter = vtkSmartPointer<vtkTriangleFilter>::New();</div><div class="gmail_quote"> triangleFilter->SetInputConnection(sphereSource->GetOutputPort());</div><div class="gmail_quote">
triangleFilter->Update();</div><div class="gmail_quote"> </div><div class="gmail_quote"> //vtkPolyData* mesh = sphereSource->GetOutput();</div><div class="gmail_quote"> vtkPolyData* mesh = triangleFilter->GetOutput();</div>
<div class="gmail_quote"> cout << "There are " << mesh->GetNumberOfCells() << " cells." << endl;</div><div class="gmail_quote"> </div><div class="gmail_quote"> vtkSmartPointer<vtkMeshQuality> qualityFilter = vtkSmartPointer<vtkMeshQuality>::New();</div>
<div class="gmail_quote"> qualityFilter->SetInput(mesh);</div><div class="gmail_quote"> qualityFilter->SetTriangleQualityMeasureToArea();</div><div class="gmail_quote"> qualityFilter->Update();</div><div class="gmail_quote">
</div><div class="gmail_quote"> vtkDataSet* qualityMesh = qualityFilter->GetOutput();</div><div class="gmail_quote"> vtkSmartPointer<vtkDoubleArray> qualityArray = vtkDoubleArray::SafeDownCast(qualityMesh->GetCellData()->GetArray("Quality"));</div>
<div class="gmail_quote"> </div><div class="gmail_quote"> cout << "There are " << qualityArray->GetNumberOfTuples() << " values." << endl;</div><div class="gmail_quote"> </div>
<div class="gmail_quote"> for(unsigned int i = 0; i < qualityArray->GetNumberOfTuples(); i++)</div><div class="gmail_quote"> {</div><div class="gmail_quote"> double val;</div><div class="gmail_quote"> qualityArray->GetValue(i);</div>
<div class="gmail_quote"> cout << "value " << i << " : " << val << endl;</div><div class="gmail_quote"> }</div><div class="gmail_quote"><br></div><div class="gmail_quote">
The output is still </div><div class="gmail_quote"><br></div><div class="gmail_quote">...</div><div class="gmail_quote"><div class="gmail_quote">value 90 : 5.77804e-269</div><div class="gmail_quote">value 91 : 5.77804e-269</div>
<div class="gmail_quote">value 92 : 5.77804e-269</div><div>...</div><div><br></div><div>Any thoughts?</div><div><br></div></div>Thanks,<br><br>David </div>