|
@@ -76,7 +76,7 @@ void GeometryManager::clear()
|
|
hasVerticesVtkVis_ = false;
|
|
hasVerticesVtkVis_ = false;
|
|
qvtkRenderer_ = 0;
|
|
qvtkRenderer_ = 0;
|
|
|
|
|
|
- meshParamMgr_.Clear();
|
|
|
|
|
|
+ customMeshParamMgr_.Clear();
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -89,7 +89,7 @@ void GeometryManager::clear()
|
|
*/
|
|
*/
|
|
bool GeometryManager::LoadData(const QString &datafile)
|
|
bool GeometryManager::LoadData(const QString &datafile)
|
|
{
|
|
{
|
|
- //this->clear(); //clear the old mesh.
|
|
|
|
|
|
+ this->clear(); //clear the old mesh.
|
|
bool loadstate = false;
|
|
bool loadstate = false;
|
|
//read file
|
|
//read file
|
|
loadstate = this->giExporter->LoadGeometryFile(datafile.toStdString());
|
|
loadstate = this->giExporter->LoadGeometryFile(datafile.toStdString());
|
|
@@ -426,19 +426,31 @@ void GeometryManager::EnterFaceSelection()
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * @brief update part setting by part name.
|
|
|
|
|
|
+ * @brief create/update part setting by part name.
|
|
*
|
|
*
|
|
* @param[in] the current partname, new or old one.
|
|
* @param[in] the current partname, new or old one.
|
|
- * @return part setting updated or not.
|
|
|
|
|
|
+ * @return create a new part or not.
|
|
* @author: shiting
|
|
* @author: shiting
|
|
* @date: 20230210
|
|
* @date: 20230210
|
|
* @reviser:
|
|
* @reviser:
|
|
* @date:
|
|
* @date:
|
|
*/
|
|
*/
|
|
-bool GeometryManager::UpdatePartSetting(const QString &partname)
|
|
|
|
|
|
+bool GeometryManager::CreatePart(const QString &partname)
|
|
{
|
|
{
|
|
- if (partname.isEmpty()) return false;
|
|
|
|
- if (!vtkVisGeoEnts_) return false;
|
|
|
|
|
|
+// if (partname.isEmpty()) return false;
|
|
|
|
+// if (!vtkVisGeoEnts_) return false;
|
|
|
|
+// //ENTITY_LIST selEnts(vtkVisGeoEnts_->GetSelectedEntities());
|
|
|
|
+// //filter vertices.
|
|
|
|
+// for (ENTITY *ent = selEnts.first(); ent != 0; ent = selEnts.next())
|
|
|
|
+// {
|
|
|
|
+// if (is_VERTEX(ent)) selEnts.remove(ent);
|
|
|
|
+// }
|
|
|
|
+// if (selEnts.iteration_count() == 0) return false;
|
|
|
|
+// bool isNewPart {!partMgr_.DoesPartExist(partname)};
|
|
|
|
+// partMgr_.SetPartEnts(partname, selEnts);
|
|
|
|
+// vtkVisGeoEnts_->UpdateGroup(partname.toStdString(), selEnts);
|
|
|
|
+// qvtkRenderer_->Update();
|
|
|
|
+// return isNewPart;
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -454,6 +466,11 @@ bool GeometryManager::UpdatePartSetting(const QString &partname)
|
|
*/
|
|
*/
|
|
void GeometryManager::SetPartVisible(const QString &partname, bool visible)
|
|
void GeometryManager::SetPartVisible(const QString &partname, bool visible)
|
|
{
|
|
{
|
|
|
|
+ if (!vtkVisGeoEnts_) return;
|
|
|
|
+ //ENTITY_LIST ents {partMgr_.GetPartEntities(partname)};
|
|
|
|
+ //ents may be empty.
|
|
|
|
+ //vtkVisGeoEnts_->SetGroupEntitiesVisible(partname.toStdString(), ents, visible);
|
|
|
|
+ //if (ents.iteration_count() != 0) qvtkRenderer_->Update();
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -468,6 +485,170 @@ void GeometryManager::SetPartVisible(const QString &partname, bool visible)
|
|
*/
|
|
*/
|
|
void GeometryManager::ChangePartColor(const QString &partname, const QColor &color)
|
|
void GeometryManager::ChangePartColor(const QString &partname, const QColor &color)
|
|
{
|
|
{
|
|
|
|
+ if (!vtkVisGeoEnts_) return;
|
|
|
|
+ //ENTITY_LIST ents {partMgr_.GetPartEntities(partname)};
|
|
|
|
+ //ents nay be empty.
|
|
|
|
+ double rgb[] {color.red()/255.0, color.green()/255.0, color.blue()/255.0};
|
|
|
|
+ //vtkVisGeoEnts_->SetGroupEntitiesColor(partname.toStdString(), ents, rgb);
|
|
|
|
+ //if (ents.iteration_count() != 0) qvtkRenderer_->Update();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void GeometryManager::DeletePart(const QString &partname)
|
|
|
|
+{
|
|
|
|
+// if (!vtkVisGeoEnts_) return;
|
|
|
|
+// ENTITY_LIST ents {partMgr_.GetPartEntities(partname)};
|
|
|
|
+// if (ents.iteration_count() != 0)
|
|
|
|
+// {
|
|
|
|
+// partMgr_.DeletePart(partname);
|
|
|
|
+// //part may be invisible, show on it.
|
|
|
|
+// vtkVisGeoEnts_->SetGroupEntitiesVisible(partname.toStdString(), ents, true);
|
|
|
|
+// qvtkRenderer_->Update();
|
|
|
|
+// }
|
|
|
|
+// vtkVisGeoEnts_->DeleteGroup(partname.toStdString(), ents);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void GeometryManager::SavePartParams(const QString &partname, const QStringList ¶mList)
|
|
|
|
+{
|
|
|
|
+ //partMgr_.SetPartParams(partname, paramList);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+bool GeometryManager::RenamePart(const QString &oldPartname, const QString &newPartname)
|
|
|
|
+{
|
|
|
|
+// if (!vtkVisGeoEnts_) return false;
|
|
|
|
+// bool res {partMgr_.RenamePart(oldPartname, newPartname)};
|
|
|
|
+// if (!res) return false;
|
|
|
|
+// vtkVisGeoEnts_->RenameGroup(oldPartname.toStdString(), newPartname.toStdString());
|
|
|
|
+ return true;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+bool GeometryManager::CreateMeshParamsAtSelectedFaces(const QString &nameid, const QStringList ¶mList)
|
|
|
|
+{
|
|
|
|
+ if (paramList.size() < 6) return false;
|
|
|
|
+ ENTITY_LIST ents = getSelectedFaces();
|
|
|
|
+ if (ents.iteration_count() == 0) return false;
|
|
|
|
+ customMeshParamMgr_.InitCustomMeshParamsOfFaces(nameid, ents, paramList);
|
|
|
|
+ return true;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void GeometryManager::ModifyMeshParamsAtFaces(const QString &nameid, const QStringList ¶mList)
|
|
|
|
+{
|
|
|
|
+ if (paramList.size() < 6) return;
|
|
|
|
+ customMeshParamMgr_.UpdateCustomMeshParamsOfFaces(nameid, paramList);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+bool GeometryManager::CreateMeshParamsAtSelectedEdges(const QString &nameid, const QStringList ¶mList)
|
|
|
|
+{
|
|
|
|
+ if (paramList.size() < 13) return false;
|
|
|
|
+ ENTITY_LIST ents = getSelectedEdges();
|
|
|
|
+ if (ents.iteration_count() == 0) return false;
|
|
|
|
+ customMeshParamMgr_.InitCustomMeshParamsOfEdges(nameid, ents, paramList);
|
|
|
|
+ return true;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void GeometryManager::ModifyMeshParamsAtEdges(const QString &nameid, const QStringList ¶mList)
|
|
|
|
+{
|
|
|
|
+ if (paramList.size() < 13) return;
|
|
|
|
+ customMeshParamMgr_.UpdateCustomMeshParamsOfEdges(nameid, paramList);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+QString GeometryManager::GetFacesMeshParams()
|
|
|
|
+{
|
|
|
|
+ QStringList paramsList;
|
|
|
|
+ const char *name = "entity_index";
|
|
|
|
+
|
|
|
|
+// ENTITY_LIST customEnts {customMeshParamMgr_.GetEntitiesSettedParams()};
|
|
|
|
+// for (ENTITY *ent = customEnts.first(); ent; ent = customEnts.next())
|
|
|
|
+// {
|
|
|
|
+// if (is_FACE(ent))
|
|
|
|
+// {
|
|
|
|
+// QStringList entParams {customMeshParamMgr_.GetCustomParamsOfEntity(ent)};
|
|
|
|
+// if (entParams.size() != 7) continue;
|
|
|
|
+// int id;
|
|
|
|
+// api_get_entity_id(ent, id);
|
|
|
|
+// paramsList << QString("%1,%2").arg(id).arg(entParams.at(0));
|
|
|
|
+// //attach ent attrib for meshing.
|
|
|
|
+// if (find_named_attrib(ent, name) == 0)
|
|
|
|
+// {
|
|
|
|
+// api_add_generic_named_attribute(ent, name, id);
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+
|
|
|
|
+// ENTITY_LIST partEnts;
|
|
|
|
+// QStringList partNames {partMgr_.GetPartNames()};
|
|
|
|
+// auto size {partNames.size()};
|
|
|
|
+// for (auto i {0}; i < size; ++i)
|
|
|
|
+// {
|
|
|
|
+// partEnts.add(partMgr_.GetPartEntities(partNames[i]));
|
|
|
|
+// }
|
|
|
|
+// for (ENTITY *ent = partEnts.first(); ent; ent = partEnts.next())
|
|
|
|
+// {
|
|
|
|
+// if (is_FACE(ent) && customEnts.lookup(ent) < 0)
|
|
|
|
+// {
|
|
|
|
+// QStringList entParams {partMgr_.GetParamsOfEntityWithinPart(ent)};
|
|
|
|
+// if (entParams.size() != 9) continue;
|
|
|
|
+// int id;
|
|
|
|
+// api_get_entity_id(ent, id);
|
|
|
|
+// paramsList << QString("%1,%2").arg(id).arg(entParams.at(1));
|
|
|
|
+// //attach ent attrib for meshing.
|
|
|
|
+// if (find_named_attrib(ent, name) == 0)
|
|
|
|
+// {
|
|
|
|
+// api_add_generic_named_attribute(ent, name, id);
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+
|
|
|
|
+ return paramsList.join(';');
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+QString GeometryManager::GetEdgesMeshParams()
|
|
|
|
+{
|
|
|
|
+ QStringList paramsList;
|
|
|
|
+ const char *name = "entity_index";
|
|
|
|
+
|
|
|
|
+// ENTITY_LIST customEnts {customMeshParamMgr_.GetEntitiesSettedParams()};
|
|
|
|
+// for (ENTITY *ent = customEnts.first(); ent; ent = customEnts.next())
|
|
|
|
+// {
|
|
|
|
+// if (is_EDGE(ent))
|
|
|
|
+// {
|
|
|
|
+// QStringList entParams {customMeshParamMgr_.GetCustomParamsOfEntity(ent)};
|
|
|
|
+// if (entParams.size() != 13) continue;
|
|
|
|
+// int id;
|
|
|
|
+// api_get_entity_id(ent, id);
|
|
|
|
+// paramsList << QString("%1,%2").arg(id).arg(entParams.at(0));
|
|
|
|
+// //attach ent attrib for meshing.
|
|
|
|
+// if (find_named_attrib(ent, name) == 0)
|
|
|
|
+// {
|
|
|
|
+// api_add_generic_named_attribute(ent, name, id);
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+
|
|
|
|
+// ENTITY_LIST partEnts;
|
|
|
|
+// QStringList partNames {partMgr_.GetPartNames()};
|
|
|
|
+// auto size {partNames.size()};
|
|
|
|
+// for (auto i {0}; i < size; ++i)
|
|
|
|
+// {
|
|
|
|
+// partEnts.add(partMgr_.GetPartEntities(partNames[i]));
|
|
|
|
+// }
|
|
|
|
+// for (ENTITY *ent = partEnts.first(); ent; ent = partEnts.next())
|
|
|
|
+// {
|
|
|
|
+// if (is_EDGE(ent) && customEnts.lookup(ent) < 0)
|
|
|
|
+// {
|
|
|
|
+// QStringList entParams {partMgr_.GetParamsOfEntityWithinPart(ent)};
|
|
|
|
+// if (entParams.size() != 9) continue;
|
|
|
|
+// int id;
|
|
|
|
+// api_get_entity_id(ent, id);
|
|
|
|
+// paramsList << QString("%1,%2").arg(id).arg(entParams.at(1));
|
|
|
|
+// //attach ent attrib for meshing.
|
|
|
|
+// if (find_named_attrib(ent, name) == 0)
|
|
|
|
+// {
|
|
|
|
+// api_add_generic_named_attribute(ent, name, id);
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+
|
|
|
|
+ return paramsList.join(';');
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -510,77 +691,6 @@ ENTITY_LIST GeometryManager::getSelectedEdges()
|
|
return selEnts;
|
|
return selEnts;
|
|
}
|
|
}
|
|
|
|
|
|
-/**
|
|
|
|
- * @brief save mesh params at current selected faces.
|
|
|
|
- *
|
|
|
|
- * @param[in] mesh generation params.
|
|
|
|
- * @return
|
|
|
|
- * @author: shiting
|
|
|
|
- * @date: 20230317
|
|
|
|
- * @reviser:
|
|
|
|
- * @date:
|
|
|
|
- */
|
|
|
|
-void GeometryManager::SaveMeshGenParamsAtSelectedFaces(const QStringList ¶mList)
|
|
|
|
-{
|
|
|
|
- MeshGenParams_AtFace params;
|
|
|
|
- params.size_ = paramList.at(0);
|
|
|
|
- ENTITY_LIST ents = getSelectedFaces();
|
|
|
|
- for (ENTITY *ent = ents.first(); ent != 0; ent = ents.next())
|
|
|
|
- {
|
|
|
|
- meshParamMgr_.SetMeshGenParamsOfFace(ent, params);
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
- * @brief save mesh params at current selected edges.
|
|
|
|
- *
|
|
|
|
- * @param[in] mesh generation params.
|
|
|
|
- * @return
|
|
|
|
- * @author: shiting
|
|
|
|
- * @date: 20230317
|
|
|
|
- * @reviser:
|
|
|
|
- * @date:
|
|
|
|
- */
|
|
|
|
-void GeometryManager::SaveMeshGenParamsAtSelectedEdges(const QStringList ¶mList)
|
|
|
|
-{
|
|
|
|
- MeshGenParams_AtEdge params;
|
|
|
|
- params.size_ = paramList.at(0);
|
|
|
|
- ENTITY_LIST ents = getSelectedEdges();
|
|
|
|
- for (ENTITY *ent = ents.first(); ent != 0; ent = ents.next())
|
|
|
|
- {
|
|
|
|
- meshParamMgr_.SetMeshGenParamsOfEdge(ent, params);
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
- * @brief get all faces' local mesh params.
|
|
|
|
- *
|
|
|
|
- * @param[in]
|
|
|
|
- * @return the local mesh params of faces.
|
|
|
|
- * @author: shiting
|
|
|
|
- * @date: 20230317
|
|
|
|
- * @reviser:
|
|
|
|
- * @date:
|
|
|
|
- */
|
|
|
|
-QString GeometryManager::GetLocalMeshGenParams_AtFaces()
|
|
|
|
-{
|
|
|
|
- return meshParamMgr_.GetMeshGenParamsOfAllFace();
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
- * @brief get all edges' local mesh params.
|
|
|
|
- *
|
|
|
|
- * @param[in]
|
|
|
|
- * @return the local mesh params of edges.
|
|
|
|
- * @author: shiting
|
|
|
|
- * @date: 20230317
|
|
|
|
- * @reviser:
|
|
|
|
- * @date:
|
|
|
|
- */
|
|
|
|
-QString GeometryManager::GetLocalMeshGenParams_AtEdges()
|
|
|
|
-{
|
|
|
|
- return meshParamMgr_.GetMeshGenParamsOfAllEdge();
|
|
|
|
-}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
* @brief save geometry to file.
|
|
* @brief save geometry to file.
|
|
@@ -595,7 +705,7 @@ QString GeometryManager::GetLocalMeshGenParams_AtEdges()
|
|
bool GeometryManager::SaveGeometryFile(const QString &geofile)
|
|
bool GeometryManager::SaveGeometryFile(const QString &geofile)
|
|
{
|
|
{
|
|
if (bodyEntList_.iteration_count() == 0) return false;
|
|
if (bodyEntList_.iteration_count() == 0) return false;
|
|
- meshParamMgr_.AttachEntityAttrib();
|
|
|
|
|
|
+ //meshParamMgr_.AttachEntityAttrib();
|
|
this->giExporter->ExportACISParts(bodyEntList_, geofile.toStdString());
|
|
this->giExporter->ExportACISParts(bodyEntList_, geofile.toStdString());
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|