<div class="gmail_quote">On Mon, Mar 1, 2010 at 11:37 PM, Rakesh Patil <span dir="ltr"><<a href="mailto:rakeshthp@in.com">rakeshthp@in.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi,<br><br>What a stupidity.. I should have done it last time itself.. Please excuse me for that.. So here it goes..<br><br>vtkSmartPointer<vtkMeshQuality> qualityMesh = vtkSmartPointer<vtkMeshQuality>::New();<br>
qualityMesh->SetInput(uGrid);<br><br>if(_maxAngleQualityFlag)<br>{<br> qualityMesh->SetTriangleQualityMeasureToMaxAngle();<br> qualityMesh->Update();<br><br> vtkSmartPointer<vtkDoubleArray> qualityArray = vtkDoubleArray::SafeDownCast( <br>
qualityMesh->GetOutput()->GetCellData()->GetArray("Quality"));<br> qualityArray->SetName("qualityArr");<br><br> vtkSmartPointer<vtkThreshold> badcells = vtkSmartPointer<vtkThreshold>::New();<br>
badcells->SetInput( qualityMesh->getOutput());<br> badcells->ThresholdByUpper(120);<br> badcells->SetInputArrayToProcess(0,0,0, vtkDataObject::FIELD_ASSOCIATION_CELLS, "qualityArr");<br> badcells->Update();<br>
<br> vtkSmartPointer&
lt;vtkDataSetMapper> mapp = vtkSmartPointer<vtkDataSetMapper>::New();<br> mapp->SetInput(badcells->GetOutput());<br> mapp->ScalarVisibilityOff();<br><br> pRenderer->RemoveActor(maxAngleActor);<br>
maxAngleActor = vtkSmartPointer<vtkActor>::New();<br> maxAngleActor->SetMapper(mapp);<br> maxAngleActor->GetProperty()->SetColor(0, 0, 1); <br> maxAngleActor->GetProperty()->SetLineWidth(3);<br>
maxAngleActor->GetProperty()->SetRepresentationToWireframe();<br><br> pRenderer->AddActor(maxAngleActor);<br>}<br><br>if(_minAngleQualityFlag)<br>
{<br>
qualityMesh->SetTriangleQualityMeasureToMinAngle();<br>
qualityMesh->Update();<br>
<br>
vtkSmartPointer<vtkDoubleArray> qualityArray =
vtkDoubleArray::SafeDownCast( <br>
qualityMesh->GetOutput()->GetCellData()->GetArray("Quality"));<br>
qualityArray->SetName("qualityArr");<br>
<br>
vtkSmartPointer<vtkThreshold> badcells =
vtkSmartPointer<vtkThreshold>::New();<br>
badcells->SetInput( qualityMesh->getOutput());<br>
badcells->ThresholdByLower(20);<br>
badcells->SetInputArrayToProcess(0,0,0,
vtkDataObject::FIELD_ASSOCIATION_CELLS, "qualityArr");<br>
badcells->Update();<br>
<br>
vtkSmartPointer<vtkDataSetMapper> mapp =
vtkSmartPointer<vtkDataSetMapper>::New();<br>
mapp->SetInput(badcells->GetOutput());<br>
mapp->ScalarVisibilityOff();<br>
<br>
pRenderer->RemoveActor(minAngleActor);<br>
minAngleActor = vtkSmartPointer<vtkActor>::New();<br>
minAngleActor->SetMapper(mapp);<br>
minAngleActor->GetProperty()->SetColor(1, 0, 0); <br>
minAngleActor->GetProperty()->SetLineWidth(3);<br>
minAngleActor->GetProperty()->SetRepresentationToWireframe();<br>
<br>
pRenderer->AddActor(minAngleActor);<br>
}<br><br>So in this case, the cells disqualifying min angle criteria will be visible, even if both flags are true. If i change the order of rendering..<br>i.e. minAngle block first and then maxAngle block, then only cells disqualifying max angle criteria are only displayed. <br>
<br>Can you figure out any mistake there??<br><br>Thanks<br><br>Regards<br><font color="#888888">Rakesh Patil</font><div><div></div><div class="h5"></div></div></blockquote></div><br><div>I'm not sure if you can do it with only one vtkMeshQuality filter. Maybe someone can comment if that is possible. I would just go ahead and make a new vtkMeshQuality filter inside each condition:</div>
<div><br></div><div><div>if(_maxAngleQualityFlag)</div><div>{</div><div>vtkSmartPointer<vtkMeshQuality> qualityMesh = vtkSmartPointer<vtkMeshQuality>::New();</div><div>qualityMesh->SetInput(uGrid);</div><div>
...</div><div><br></div><div><div>if(_minAngleQualityFlag)</div><div>{</div><div>vtkSmartPointer<vtkMeshQuality> qualityMesh2 = vtkSmartPointer<vtkMeshQuality>::New();</div><div>qualityMesh2->SetInput(uGrid);</div>
<div><br></div><div>qualityMesh2->SetTriangleQualityMeasureToMinAngle();</div><div>qualityMesh2->Update();</div><div>....</div></div></div><div><br></div><div>That should definitely work.</div><div><br clear="all">Thanks,<br>
<br>David</div>