[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
This commit is contained in:
@@ -130,7 +130,7 @@ SET(FemSet_SRCS
|
||||
FemSetObject.h
|
||||
FemSetNodesObject.cpp
|
||||
FemSetNodesObject.h
|
||||
FemSetElementNodesObject.cpp
|
||||
FemSetElementNodesObject.cpp
|
||||
FemSetElementNodesObject.h
|
||||
FemSetElementsObject.cpp
|
||||
FemSetElementsObject.h
|
||||
|
||||
@@ -38,7 +38,11 @@ PROPERTY_SOURCE(Fem::FemSetElementNodesObject, Fem::FemSetObject)
|
||||
|
||||
FemSetElementNodesObject::FemSetElementNodesObject()
|
||||
{
|
||||
ADD_PROPERTY_TYPE(Elements, (), "Element indexes", Prop_None, "Elements belonging to the ElementSet");
|
||||
ADD_PROPERTY_TYPE(Elements,
|
||||
(),
|
||||
"Element indexes",
|
||||
Prop_None,
|
||||
"Elements belonging to the ElementSet");
|
||||
}
|
||||
|
||||
FemSetElementNodesObject::~FemSetElementNodesObject() = default;
|
||||
@@ -56,4 +60,3 @@ PyObject* FemSetElementNodesObject::getPyObject()
|
||||
}
|
||||
return Py::new_reference_to(PythonObject);
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
namespace Fem
|
||||
{
|
||||
|
||||
class FemExport FemSetElementNodesObject : public FemSetObject
|
||||
class FemExport FemSetElementNodesObject: public FemSetObject
|
||||
{
|
||||
PROPERTY_HEADER_WITH_OVERRIDE(Fem::FemSetElementNodesObject);
|
||||
|
||||
@@ -56,10 +56,8 @@ public:
|
||||
}
|
||||
short mustExecute() const override;
|
||||
PyObject* getPyObject() override;
|
||||
static std::string elementsName; // = "ElementsSet";
|
||||
static std::string uniqueElementsName; // "ElementsSet" latest name
|
||||
|
||||
|
||||
static std::string elementsName; // = "ElementsSet";
|
||||
static std::string uniqueElementsName; // "ElementsSet" latest name
|
||||
};
|
||||
|
||||
} // namespace Fem
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2023 Peter McB *
|
||||
* additional statement(s) for element sets *
|
||||
* additional statement(s) for element sets *
|
||||
* *
|
||||
* added to: AppFemGui.cpp *
|
||||
* Copyright (c) 2008 Jürgen Riegel <juergen.riegel@web.de> *
|
||||
@@ -46,7 +46,7 @@
|
||||
#include "ViewProviderFemMeshShape.h"
|
||||
#include "ViewProviderFemMeshShapeNetgen.h"
|
||||
#include "ViewProviderSetElements.h"
|
||||
#include "ViewProviderSetElementNodes.h"
|
||||
#include "ViewProviderSetElementNodes.h"
|
||||
#include "ViewProviderSetFaces.h"
|
||||
#include "ViewProviderSetGeometry.h"
|
||||
#include "ViewProviderSetNodes.h"
|
||||
|
||||
@@ -248,7 +248,7 @@ SET(FemGui_SRCS_TaskBoxes
|
||||
TaskObjectName.h
|
||||
TaskCreateElementSet.ui
|
||||
TaskCreateElementSet.cpp
|
||||
TaskCreateElementSet.h
|
||||
TaskCreateElementSet.h
|
||||
TaskCreateNodeSet.ui
|
||||
TaskCreateNodeSet.cpp
|
||||
TaskCreateNodeSet.h
|
||||
|
||||
@@ -1187,7 +1187,7 @@ bool CmdFemCreateNodesSet::isActive()
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// start of Erase Elements code
|
||||
// start of Erase Elements code
|
||||
//===========================================================================
|
||||
std::string Fem::FemSetElementNodesObject::elementsName;
|
||||
std::string Fem::FemSetElementNodesObject::uniqueElementsName;
|
||||
@@ -1195,12 +1195,13 @@ std::string Fem::FemSetElementNodesObject::uniqueElementsName;
|
||||
|
||||
DEF_STD_CMD_A(CmdFemDefineElementsSet);
|
||||
|
||||
void DefineElementsCallback(void *ud, SoEventCallback *n)
|
||||
void DefineElementsCallback(void* ud, SoEventCallback* n)
|
||||
{
|
||||
Fem::FemAnalysis* Analysis;
|
||||
|
||||
if (getConstraintPrerequisits(&Analysis))
|
||||
if (getConstraintPrerequisits(&Analysis)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// show the wait cursor because this could take quite some time
|
||||
Gui::WaitCursor wc;
|
||||
@@ -1213,23 +1214,29 @@ void DefineElementsCallback(void *ud, SoEventCallback *n)
|
||||
|
||||
Gui::SelectionRole role;
|
||||
std::vector<SbVec2f> clPoly = view->getGLPolygon(&role);
|
||||
if (clPoly.size() < 3)
|
||||
if (clPoly.size() < 3) {
|
||||
return;
|
||||
if (clPoly.front() != clPoly.back())
|
||||
}
|
||||
if (clPoly.front() != clPoly.back()) {
|
||||
clPoly.push_back(clPoly.front());
|
||||
}
|
||||
|
||||
SoCamera* cam = view->getSoRenderManager()->getCamera();
|
||||
SbViewVolume vv = cam->getViewVolume();
|
||||
Gui::ViewVolumeProjection proj(vv);
|
||||
Base::Polygon2d polygon;
|
||||
for (std::vector<SbVec2f>::const_iterator it = clPoly.begin(); it != clPoly.end(); ++it)
|
||||
for (std::vector<SbVec2f>::const_iterator it = clPoly.begin(); it != clPoly.end(); ++it) {
|
||||
polygon.Add(Base::Vector2d((*it)[0], (*it)[1]));
|
||||
}
|
||||
|
||||
std::vector<App::DocumentObject*> docObj = Gui::Selection().getObjectsOfType(Fem::FemMeshObject::getClassTypeId());
|
||||
if (docObj.size() != 1)
|
||||
std::vector<App::DocumentObject*> docObj =
|
||||
Gui::Selection().getObjectsOfType(Fem::FemMeshObject::getClassTypeId());
|
||||
if (docObj.size() != 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
const SMESHDS_Mesh* data = static_cast<Fem::FemMeshObject*>(docObj[0])->FemMesh.getValue().getSMesh()->GetMeshDS();
|
||||
const SMESHDS_Mesh* data =
|
||||
static_cast<Fem::FemMeshObject*>(docObj[0])->FemMesh.getValue().getSMesh()->GetMeshDS();
|
||||
|
||||
SMDS_NodeIteratorPtr aNodeIter = data->nodesIterator();
|
||||
Base::Vector3f pt2d;
|
||||
@@ -1239,27 +1246,36 @@ void DefineElementsCallback(void *ud, SoEventCallback *n)
|
||||
const SMDS_MeshNode* aNode = aNodeIter->next();
|
||||
Base::Vector3f vec(aNode->X(), aNode->Y(), aNode->Z());
|
||||
pt2d = proj(vec);
|
||||
if (polygon.Contains(Base::Vector2d(pt2d.x, pt2d.y)))
|
||||
if (polygon.Contains(Base::Vector2d(pt2d.x, pt2d.y))) {
|
||||
IntSet.insert(aNode->GetID());
|
||||
}
|
||||
}
|
||||
|
||||
std::stringstream set;
|
||||
std::stringstream set;
|
||||
|
||||
set << "[";
|
||||
for (std::set<int>::const_iterator it = IntSet.begin(); it != IntSet.end(); ++it)
|
||||
if (it == IntSet.begin())
|
||||
for (std::set<int>::const_iterator it = IntSet.begin(); it != IntSet.end(); ++it) {
|
||||
if (it == IntSet.begin()) {
|
||||
set << *it;
|
||||
else
|
||||
}
|
||||
else {
|
||||
set << "," << *it;
|
||||
}
|
||||
}
|
||||
set << "]";
|
||||
|
||||
Gui::Command::openCommand(QT_TRANSLATE_NOOP("Command", "Place robot"));
|
||||
Gui::Command::doCommand(Gui::Command::Doc, "App.ActiveDocument.addObject('Fem::FemSetElementNodesObject','ElementSet')");
|
||||
Gui::Command::doCommand(Gui::Command::Doc, "App.ActiveDocument.ActiveObject.Nodes = %s", set.str().c_str());
|
||||
Gui::Command::doCommand(Gui::Command::Doc, "App.activeDocument().%s.addObject(App.activeDocument().ElementSet)", Analysis->getNameInDocument());
|
||||
Gui::Command::doCommand(
|
||||
Gui::Command::Doc,
|
||||
"App.ActiveDocument.addObject('Fem::FemSetElementNodesObject','ElementSet')");
|
||||
Gui::Command::doCommand(Gui::Command::Doc,
|
||||
"App.ActiveDocument.ActiveObject.Nodes = %s",
|
||||
set.str().c_str());
|
||||
Gui::Command::doCommand(Gui::Command::Doc,
|
||||
"App.activeDocument().%s.addObject(App.activeDocument().ElementSet)",
|
||||
Analysis->getNameInDocument());
|
||||
|
||||
Gui::Command::commitCommand();
|
||||
|
||||
}
|
||||
|
||||
CmdFemDefineElementsSet::CmdFemDefineElementsSet()
|
||||
@@ -1276,9 +1292,11 @@ CmdFemDefineElementsSet::CmdFemDefineElementsSet()
|
||||
|
||||
void CmdFemDefineElementsSet::activated(int)
|
||||
{
|
||||
std::vector<App::DocumentObject*> docObj = Gui::Selection().getObjectsOfType(Fem::FemMeshObject::getClassTypeId());
|
||||
std::vector<App::DocumentObject*> docObj =
|
||||
Gui::Selection().getObjectsOfType(Fem::FemMeshObject::getClassTypeId());
|
||||
|
||||
for (std::vector<App::DocumentObject*>::iterator it = docObj.begin(); it != docObj.end(); ++it) {
|
||||
for (std::vector<App::DocumentObject*>::iterator it = docObj.begin(); it != docObj.end();
|
||||
++it) {
|
||||
if (it == docObj.begin()) {
|
||||
Gui::Document* doc = getActiveGuiDocument();
|
||||
Gui::MDIView* view = doc->getActiveView();
|
||||
@@ -1286,21 +1304,22 @@ void CmdFemDefineElementsSet::activated(int)
|
||||
Gui::View3DInventorViewer* viewer = ((Gui::View3DInventor*)view)->getViewer();
|
||||
viewer->setEditing(true);
|
||||
viewer->startSelection(Gui::View3DInventorViewer::Clip);
|
||||
viewer->addEventCallback(SoMouseButtonEvent::getClassTypeId(), DefineElementsCallback);
|
||||
viewer->addEventCallback(SoMouseButtonEvent::getClassTypeId(),
|
||||
DefineElementsCallback);
|
||||
}
|
||||
else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
bool CmdFemDefineElementsSet::isActive()
|
||||
{
|
||||
// Check for the selected mesh feature (all Mesh types)
|
||||
if (getSelection().countObjectsOfType(Fem::FemMeshObject::getClassTypeId()) != 1)
|
||||
if (getSelection().countObjectsOfType(Fem::FemMeshObject::getClassTypeId()) != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Gui::MDIView* view = Gui::getMainWindow()->activeWindow();
|
||||
if (view && view->isDerivedFrom(Gui::View3DInventor::getClassTypeId())) {
|
||||
@@ -1332,26 +1351,36 @@ void CmdFemCreateElementsSet::activated(int)
|
||||
Gui::SelectionFilter FemMeshFilter("SELECT Fem::FemMeshObject COUNT 1");
|
||||
|
||||
if (ObjectFilter.match()) {
|
||||
Fem::FemSetElementNodesObject* NodesObj = static_cast<Fem::FemSetElementNodesObject*>(ObjectFilter.Result[0][0].getObject());
|
||||
Fem::FemSetElementNodesObject* NodesObj =
|
||||
static_cast<Fem::FemSetElementNodesObject*>(ObjectFilter.Result[0][0].getObject());
|
||||
openCommand(QT_TRANSLATE_NOOP("Command", "Edit Elements set"));
|
||||
doCommand(Gui, "Gui.activeDocument().setEdit('%s')", NodesObj->getNameInDocument());
|
||||
}
|
||||
// start
|
||||
else if (FemMeshFilter.match()) {
|
||||
Fem::FemMeshObject* MeshObj = static_cast<Fem::FemMeshObject*>(FemMeshFilter.Result[0][0].getObject());
|
||||
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());
|
||||
Fem::FemSetElementNodesObject::uniqueElementsName =
|
||||
Command::getUniqueObjectName(Fem::FemSetElementNodesObject::elementsName.c_str());
|
||||
|
||||
|
||||
openCommand(QT_TRANSLATE_NOOP("Command", "Create Elements set"));
|
||||
doCommand(Doc, "App.activeDocument().addObject('Fem::FemSetElementNodesObject','%s')", Fem::FemSetElementNodesObject::uniqueElementsName.c_str());
|
||||
doCommand(Gui, "App.activeDocument().%s.FemMesh = App.activeDocument().%s", Fem::FemSetElementNodesObject::uniqueElementsName.c_str(), MeshObj->getNameInDocument());
|
||||
doCommand(Gui, "Gui.activeDocument().setEdit('%s')", Fem::FemSetElementNodesObject::uniqueElementsName.c_str());
|
||||
|
||||
doCommand(Doc,
|
||||
"App.activeDocument().addObject('Fem::FemSetElementNodesObject','%s')",
|
||||
Fem::FemSetElementNodesObject::uniqueElementsName.c_str());
|
||||
doCommand(Gui,
|
||||
"App.activeDocument().%s.FemMesh = App.activeDocument().%s",
|
||||
Fem::FemSetElementNodesObject::uniqueElementsName.c_str(),
|
||||
MeshObj->getNameInDocument());
|
||||
doCommand(Gui,
|
||||
"Gui.activeDocument().setEdit('%s')",
|
||||
Fem::FemSetElementNodesObject::uniqueElementsName.c_str());
|
||||
}
|
||||
else {
|
||||
QMessageBox::warning(Gui::getMainWindow(),
|
||||
QMessageBox::warning(
|
||||
Gui::getMainWindow(),
|
||||
qApp->translate("CmdFemCreateElementsSet", "Wrong selection"),
|
||||
qApp->translate("CmdFemCreateNodesSet", "Select a single FEM Mesh, please."));
|
||||
}
|
||||
@@ -1362,7 +1391,7 @@ bool CmdFemCreateElementsSet::isActive()
|
||||
return hasActiveDocument();
|
||||
}
|
||||
//===========================================================================
|
||||
// end of Erase Elements code
|
||||
// end of Erase Elements code
|
||||
//===========================================================================
|
||||
|
||||
//===========================================================================
|
||||
@@ -2794,8 +2823,8 @@ void CreateFemCommands()
|
||||
// mesh
|
||||
rcCmdMgr.addCommand(new CmdFemCreateNodesSet());
|
||||
rcCmdMgr.addCommand(new CmdFemDefineNodesSet());
|
||||
rcCmdMgr.addCommand(new CmdFemCreateElementsSet());
|
||||
rcCmdMgr.addCommand(new CmdFemDefineElementsSet());
|
||||
rcCmdMgr.addCommand(new CmdFemCreateElementsSet());
|
||||
rcCmdMgr.addCommand(new CmdFemDefineElementsSet());
|
||||
|
||||
// equations
|
||||
rcCmdMgr.addCommand(new CmdFemCompEmEquations());
|
||||
|
||||
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
File diff suppressed because it is too large
Load Diff
@@ -31,7 +31,6 @@
|
||||
#include <QMessageBox>
|
||||
|
||||
|
||||
|
||||
class Ui_TaskCreateElementSet;
|
||||
class SoEventCallback;
|
||||
|
||||
@@ -56,17 +55,18 @@ namespace FemGui
|
||||
class ViewProviderFemMesh;
|
||||
|
||||
|
||||
class TaskCreateElementSet : public Gui::TaskView::TaskBox, public Gui::SelectionObserver
|
||||
class TaskCreateElementSet: public Gui::TaskView::TaskBox, public Gui::SelectionObserver
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit TaskCreateElementSet(Fem::FemSetElementNodesObject* pcObject,QWidget* parent = nullptr);
|
||||
explicit TaskCreateElementSet(Fem::FemSetElementNodesObject* pcObject,
|
||||
QWidget* parent = nullptr);
|
||||
~TaskCreateElementSet() override;
|
||||
|
||||
std::set<long> elementTempSet;
|
||||
ViewProviderFemMesh* MeshViewProvider;
|
||||
static std::string currentProject;
|
||||
static std::string currentProject;
|
||||
|
||||
private Q_SLOTS:
|
||||
void Poly();
|
||||
@@ -75,8 +75,8 @@ private Q_SLOTS:
|
||||
|
||||
protected:
|
||||
Fem::FemSetElementNodesObject* pcObject;
|
||||
static void DefineElementsCallback(void* ud, SoEventCallback* n);
|
||||
void DefineNodes(const Base::Polygon2d &polygon,const Gui::ViewVolumeProjection &proj, bool);
|
||||
static void DefineElementsCallback(void* ud, SoEventCallback* n);
|
||||
void DefineNodes(const Base::Polygon2d& polygon, const Gui::ViewVolumeProjection& proj, bool);
|
||||
|
||||
protected:
|
||||
void onSelectionChanged(const Gui::SelectionChanges& msg) override;
|
||||
@@ -93,4 +93,4 @@ private:
|
||||
|
||||
} // namespace FemGui
|
||||
|
||||
#endif // GUI_TASKVIEW_TaskCreateElementSet_H
|
||||
#endif // GUI_TASKVIEW_TaskCreateElementSet_H
|
||||
|
||||
@@ -43,8 +43,9 @@ using namespace FemGui;
|
||||
// TaskDialog
|
||||
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
TaskDlgCreateElementSet::TaskDlgCreateElementSet(Fem::FemSetElementNodesObject *obj)
|
||||
: TaskDialog(),FemSetElementNodesObject(obj)
|
||||
TaskDlgCreateElementSet::TaskDlgCreateElementSet(Fem::FemSetElementNodesObject* obj)
|
||||
: TaskDialog()
|
||||
, FemSetElementNodesObject(obj)
|
||||
{
|
||||
name = new TaskObjectName(obj);
|
||||
param = new TaskCreateElementSet(obj);
|
||||
@@ -54,9 +55,7 @@ TaskDlgCreateElementSet::TaskDlgCreateElementSet(Fem::FemSetElementNodesObject *
|
||||
}
|
||||
|
||||
TaskDlgCreateElementSet::~TaskDlgCreateElementSet()
|
||||
{
|
||||
|
||||
}
|
||||
{}
|
||||
|
||||
//==== calls from the TaskView ===============================================================
|
||||
|
||||
@@ -66,7 +65,6 @@ void TaskDlgCreateElementSet::open()
|
||||
// select->activate();
|
||||
// Edge2TaskObject->execute();
|
||||
// param->setEdgeAndClusterNbr(Edge2TaskObject->NbrOfEdges,Edge2TaskObject->NbrOfCluster);
|
||||
|
||||
}
|
||||
|
||||
bool TaskDlgCreateElementSet::accept()
|
||||
|
||||
@@ -49,12 +49,12 @@ namespace FemGui
|
||||
|
||||
|
||||
/// simulation dialog for the TaskView
|
||||
class TaskDlgCreateElementSet : public Gui::TaskView::TaskDialog
|
||||
class TaskDlgCreateElementSet: public Gui::TaskView::TaskDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TaskDlgCreateElementSet(Fem::FemSetElementNodesObject *);
|
||||
TaskDlgCreateElementSet(Fem::FemSetElementNodesObject*);
|
||||
~TaskDlgCreateElementSet() override;
|
||||
|
||||
public:
|
||||
@@ -81,7 +81,6 @@ protected:
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace FemGui
|
||||
|
||||
#endif // ROBOTGUI_TASKDLGSIMULATE_H
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
namespace FemGui
|
||||
{
|
||||
|
||||
class ViewProviderSetElementNodes : public Gui::ViewProviderGeometryObject
|
||||
class ViewProviderSetElementNodes: public Gui::ViewProviderGeometryObject
|
||||
{
|
||||
PROPERTY_HEADER_WITH_OVERRIDE(FemGui::ViewProviderSetElementNodes);
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2023 Peter McB *
|
||||
* additional statement(s) for element sets: *
|
||||
* additional statement(s) for element sets: *
|
||||
* added entry to Gui::MenuItem* mesh *
|
||||
* *
|
||||
* added to: Workbench.cpp
|
||||
* added to: Workbench.cpp
|
||||
* Copyright (c) 2008 Werner Mayer <werner.wm.mayer@gmx.de> *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
|
||||
Reference in New Issue
Block a user