FEM: Fix linking errors
The static members of FemSetElementNodesObject are not defined in Fem but FemGui which the MSVC compiler doesn't like. Furthermore it's a code smell to make them public and static and they are not even used by the class itself.
This commit is contained in:
@@ -53,8 +53,10 @@ public:
|
||||
}
|
||||
short mustExecute() const override;
|
||||
PyObject* getPyObject() override;
|
||||
static std::string elementsName; // = "ElementsSet";
|
||||
static std::string uniqueElementsName; // "ElementsSet" latest name
|
||||
static std::string getElementName()
|
||||
{
|
||||
return "ElementsSet";
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace Fem
|
||||
|
||||
@@ -1247,8 +1247,6 @@ bool CmdFemCreateNodesSet::isActive()
|
||||
//===========================================================================
|
||||
// start of Erase Elements code
|
||||
//===========================================================================
|
||||
std::string Fem::FemSetElementNodesObject::elementsName;
|
||||
std::string Fem::FemSetElementNodesObject::uniqueElementsName;
|
||||
|
||||
DEF_STD_CMD_A(CmdFemDefineElementsSet);
|
||||
|
||||
@@ -1418,21 +1416,18 @@ void CmdFemCreateElementsSet::activated(int)
|
||||
Fem::FemMeshObject* MeshObj =
|
||||
static_cast<Fem::FemMeshObject*>(FemMeshFilter.Result[0][0].getObject());
|
||||
|
||||
Fem::FemSetElementNodesObject::elementsName = "ElementsSet";
|
||||
Fem::FemSetElementNodesObject::uniqueElementsName =
|
||||
Command::getUniqueObjectName(Fem::FemSetElementNodesObject::elementsName.c_str());
|
||||
std::string elementsName = Fem::FemSetElementNodesObject::getElementName();
|
||||
std::string uniqueElementsName = Command::getUniqueObjectName(elementsName.c_str());
|
||||
|
||||
openCommand(QT_TRANSLATE_NOOP("Command", "Create Elements set"));
|
||||
doCommand(Doc,
|
||||
"App.activeDocument().addObject('Fem::FemSetElementNodesObject','%s')",
|
||||
Fem::FemSetElementNodesObject::uniqueElementsName.c_str());
|
||||
uniqueElementsName.c_str());
|
||||
doCommand(Gui,
|
||||
"App.activeDocument().%s.FemMesh = App.activeDocument().%s",
|
||||
Fem::FemSetElementNodesObject::uniqueElementsName.c_str(),
|
||||
uniqueElementsName.c_str(),
|
||||
MeshObj->getNameInDocument());
|
||||
doCommand(Gui,
|
||||
"Gui.activeDocument().setEdit('%s')",
|
||||
Fem::FemSetElementNodesObject::uniqueElementsName.c_str());
|
||||
doCommand(Gui, "Gui.activeDocument().setEdit('%s')", uniqueElementsName.c_str());
|
||||
}
|
||||
else {
|
||||
QMessageBox::warning(
|
||||
|
||||
@@ -541,7 +541,8 @@ void TaskCreateElementSet::Restore(void)
|
||||
objectN.c_str());
|
||||
Gui::Command::doCommand(Gui::Command::Doc, "App.ActiveDocument.recompute()");
|
||||
}
|
||||
else if (objectN.find(Fem::FemSetElementNodesObject::elementsName) != std::string::npos) {
|
||||
else if (objectN.find(Fem::FemSetElementNodesObject::getElementName())
|
||||
!= std::string::npos) {
|
||||
if (elList > 0) {
|
||||
Gui::Command::doCommand(Gui::Command::Doc,
|
||||
"App.ActiveDocument.removeObject(\'%s\')",
|
||||
|
||||
Reference in New Issue
Block a user