选择时高亮模型速度调整,

pull/1/head
剑古敛锋 2024-07-23 10:34:22 +08:00
parent bcb5b9e724
commit a11725d46a
1 changed files with 16 additions and 6 deletions

View File

@ -264,13 +264,21 @@ namespace MainWidget {
{ {
auto dataSet = _kernal->getMeshData(); auto dataSet = _kernal->getMeshData();
vtkDataArray* showArray = dataSet->GetCellData()->GetArray("SHOW"); vtkDataArray* showArray = dataSet->GetCellData()->GetArray("SHOW");
if(showArray == nullptr) vtkDataArray* IDSArray = dataSet->GetCellData()->GetArray("IDS");
if(nullptr==IDSArray||nullptr == showArray)
return; return;
int value = 0; int value = 0;
if(show) if(show)
value = 1; value = 1;
for(int index : indexs)
showArray->SetComponent(index, 0, value); std::set<int> indexSet(indexs.begin(), indexs.end());
for(int i = 0; i < showArray->GetNumberOfTuples(); ++i) {
int cellid = IDSArray->GetComponent(i, 1);
if(indexSet.find(cellid) != indexSet.end()) // 判断是否正确
{
showArray->SetComponent(i, 0, value);
}
}
this->updateDisplayMember(); this->updateDisplayMember();
} }
@ -428,7 +436,8 @@ namespace MainWidget {
threshold->Update(); threshold->Update();
_displayData->DeepCopy(threshold->GetOutput()); _displayData->DeepCopy(threshold->GetOutput());
_displayData->Modified(); _displayData->Modified();
qDebug() << QString("update _displayData point number %1").arg(_displayData->GetNumberOfPoints());
qDebug() << QString("update _displayData cell number %1").arg(_displayData->GetNumberOfCells());
} }
void MeshKernalViewObj::modifyPointDisplay() void MeshKernalViewObj::modifyPointDisplay()
{ {
@ -440,14 +449,15 @@ namespace MainWidget {
// 判断是否需要显示 // 判断是否需要显示
auto dataSet = _kernal->getMeshData(); auto dataSet = _kernal->getMeshData();
vtkDataArray* showArray = dataSet->GetPointData()->GetArray("SHOW"); vtkDataArray* showArray = dataSet->GetPointData()->GetArray("SHOW");
if(showArray == nullptr) vtkDataArray* IDSArray=dataSet->GetPointData()->GetArray("IDS");
if(nullptr==IDSArray||nullptr == showArray)
return; return;
int value = 0; int value = 0;
if(show) if(show)
value = 1; value = 1;
int pointid = -1; int pointid = -1;
for(int i = 0; i < showArray->GetNumberOfTuples(); ++i) { for(int i = 0; i < showArray->GetNumberOfTuples(); ++i) {
int pointid = showArray->GetComponent(i, 1); int pointid =IDSArray->GetComponent(i, 1);
if(indexSet.find(pointid) != indexSet.end()) // 判断是否正确 if(indexSet.find(pointid) != indexSet.end()) // 判断是否正确
{ {
showArray->SetComponent(i, 0, value); showArray->SetComponent(i, 0, value);