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

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();
vtkDataArray* showArray = dataSet->GetCellData()->GetArray("SHOW");
if(showArray == nullptr)
vtkDataArray* IDSArray = dataSet->GetCellData()->GetArray("IDS");
if(nullptr==IDSArray||nullptr == showArray)
return;
int value = 0;
if(show)
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();
}
@ -428,7 +436,8 @@ namespace MainWidget {
threshold->Update();
_displayData->DeepCopy(threshold->GetOutput());
_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()
{
@ -440,14 +449,15 @@ namespace MainWidget {
// 判断是否需要显示
auto dataSet = _kernal->getMeshData();
vtkDataArray* showArray = dataSet->GetPointData()->GetArray("SHOW");
if(showArray == nullptr)
vtkDataArray* IDSArray=dataSet->GetPointData()->GetArray("IDS");
if(nullptr==IDSArray||nullptr == showArray)
return;
int value = 0;
if(show)
value = 1;
int pointid = -1;
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()) // 判断是否正确
{
showArray->SetComponent(i, 0, value);