Add PropertyIntegerSet and some classes to FEM

This commit is contained in:
jriegel 2013-02-24 21:57:35 +01:00
parent af67612d7f
commit 5f43ef1a2a
15 changed files with 881 additions and 1 deletions

View File

@ -719,6 +719,136 @@ unsigned int PropertyIntegerList::getMemSize (void) const
return static_cast<unsigned int>(_lValueList.size() * sizeof(long));
}
//**************************************************************************
//**************************************************************************
// PropertyIntegerSet
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
TYPESYSTEM_SOURCE(App::PropertyIntegerSet , App::Property);
//**************************************************************************
// Construction/Destruction
PropertyIntegerSet::PropertyIntegerSet()
{
}
PropertyIntegerSet::~PropertyIntegerSet()
{
}
//**************************************************************************
// Base class implementer
void PropertyIntegerSet::setValue(long lValue)
{
aboutToSetValue();
_lValueSet.clear();
_lValueSet.insert(lValue);
hasSetValue();
}
void PropertyIntegerSet::setValues(const std::set<long>& values)
{
aboutToSetValue();
_lValueSet = values;
hasSetValue();
}
PyObject *PropertyIntegerSet::getPyObject(void)
{
PyObject* set = PySet_New(NULL);
for(std::set<long>::const_iterator it=_lValueSet.begin();it!=_lValueSet.end();++it)
PySet_Add(set,PyInt_FromLong(*it));
return set;
}
void PropertyIntegerSet::setPyObject(PyObject *value)
{
if (PySequence_Check(value)) {
Py_ssize_t nSize = PySequence_Length(value);
std::set<long> values;
for (Py_ssize_t i=0; i<nSize;++i) {
PyObject* item = PySequence_GetItem(value, i);
if (!PyInt_Check(item)) {
std::string error = std::string("type in list must be int, not ");
error += item->ob_type->tp_name;
throw Py::TypeError(error);
}
values.insert(PyInt_AsLong(item));
}
setValues(values);
}
else if (PyInt_Check(value)) {
setValue(PyInt_AsLong(value));
}
else {
std::string error = std::string("type must be int or list of int, not ");
error += value->ob_type->tp_name;
throw Py::TypeError(error);
}
}
void PropertyIntegerSet::Save (Base::Writer &writer) const
{
writer.Stream() << writer.ind() << "<IntegerSet count=\"" << _lValueSet.size() <<"\">" << endl;
writer.incInd();
for(std::set<long>::const_iterator it=_lValueSet.begin();it!=_lValueSet.end();++it)
writer.Stream() << writer.ind() << "<I v=\"" << *it <<"\"/>" << endl; ;
writer.decInd();
writer.Stream() << writer.ind() << "</IntegerSet>" << endl ;
}
void PropertyIntegerSet::Restore(Base::XMLReader &reader)
{
// read my Element
reader.readElement("IntegerSet");
// get the value of my Attribute
int count = reader.getAttributeAsInteger("count");
std::set<long> values;
for(int i = 0; i < count; i++) {
reader.readElement("I");
values.insert(reader.getAttributeAsInteger("v"));
}
reader.readEndElement("IntegerList");
//assignment
setValues(values);
}
Property *PropertyIntegerSet::Copy(void) const
{
PropertyIntegerSet *p= new PropertyIntegerSet();
p->_lValueSet = _lValueSet;
return p;
}
void PropertyIntegerSet::Paste(const Property &from)
{
aboutToSetValue();
_lValueSet = dynamic_cast<const PropertyIntegerSet&>(from)._lValueSet;
hasSetValue();
}
unsigned int PropertyIntegerSet::getMemSize (void) const
{
return static_cast<unsigned int>(_lValueSet.size() * sizeof(long));
}
//**************************************************************************
//**************************************************************************
// PropertyFloat

View File

@ -298,6 +298,52 @@ private:
std::vector<long> _lValueList;
};
/** Integer list properties
*
*/
class AppExport PropertyIntegerSet: public Property
{
TYPESYSTEM_HEADER();
public:
/**
* A constructor.
* A more elaborate description of the constructor.
*/
PropertyIntegerSet();
/**
* A destructor.
* A more elaborate description of the destructor.
*/
~PropertyIntegerSet();
/** Sets the property
*/
void setValue(long);
void setValue(void){;}
void addValue (long value){_lValueSet.insert(value);}
void setValues (const std::set<long>& values);
const std::set<long> &getValues(void) const{return _lValueSet;}
virtual PyObject *getPyObject(void);
virtual void setPyObject(PyObject *);
virtual void Save (Base::Writer &writer) const;
virtual void Restore(Base::XMLReader &reader);
virtual Property *Copy(void) const;
virtual void Paste(const Property &from);
virtual unsigned int getMemSize (void) const;
private:
std::set<long> _lValueSet;
};
/** implements a key/value list as property
* The key ought to be ASCII the Value should be treated as UTF8 to be save.
*/

View File

@ -50,6 +50,16 @@ SET(Mod_SRCS
SET(Fem_SRCS
FemMeshObject.cpp
FemMeshObject.h
FemSetObject.cpp
FemSetObject.h
FemSetNodesObject.cpp
FemSetNodesObject.h
FemSetElementsObject.cpp
FemSetElementsObject.h
FemSetFacesObject.cpp
FemSetFacesObject.h
FemSetGeometryObject.cpp
FemSetGeometryObject.h
FemMesh.cpp
FemMesh.h
FemMeshProperty.cpp

View File

@ -0,0 +1,59 @@
/***************************************************************************
* Copyright (c) 2013 Jürgen Riegel (FreeCAD@juergen-riegel.net) *
* *
* This file is part of the FreeCAD CAx development system. *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License as published by the Free Software Foundation; either *
* version 2 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this library; see the file COPYING.LIB. If not, *
* write to the Free Software Foundation, Inc., 59 Temple Place, *
* Suite 330, Boston, MA 02111-1307, USA *
* *
***************************************************************************/
#include "PreCompiled.h"
#ifndef _PreComp_
#endif
#include "FemSetElementsObject.h"
#include <App/DocumentObjectPy.h>
using namespace Fem;
using namespace App;
PROPERTY_SOURCE(Fem::FemSetElementsObject, Fem::FemSetObject)
FemSetElementsObject::FemSetElementsObject()
{
}
FemSetElementsObject::~FemSetElementsObject()
{
}
short FemSetElementsObject::mustExecute(void) const
{
return 0;
}
PyObject *FemSetElementsObject::getPyObject()
{
if (PythonObject.is(Py::_None())){
// ref counter is set to 1
PythonObject = Py::Object(new DocumentObjectPy(this),true);
}
return Py::new_reference_to(PythonObject);
}

View File

@ -0,0 +1,59 @@
/***************************************************************************
* Copyright (c) 2013 Jürgen Riegel (FreeCAD@juergen-riegel.net) *
* *
* This file is part of the FreeCAD CAx development system. *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License as published by the Free Software Foundation; either *
* version 2 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this library; see the file COPYING.LIB. If not, *
* write to the Free Software Foundation, Inc., 59 Temple Place, *
* Suite 330, Boston, MA 02111-1307, USA *
* *
***************************************************************************/
#ifndef Fem_FemSetElementsObjec_H
#define Fem_FemSetElementsObjec_H
#include <App/DocumentObject.h>
#include <App/PropertyStandard.h>
#include "FemSetObject.h"
namespace Fem
{
class AppFemExport FemSetElementsObject : public FemSetObject
{
PROPERTY_HEADER(Fem::FemSetElementsObject);
public:
/// Constructor
FemSetElementsObject(void);
virtual ~FemSetElementsObject();
/// returns the type name of the ViewProvider
//virtual const char* getViewProviderName(void) const {
// return "FemGui::ViewProviderFemSet";
//}
virtual App::DocumentObjectExecReturn *execute(void) {
return App::DocumentObject::StdReturn;
}
virtual short mustExecute(void) const;
virtual PyObject *getPyObject(void);
};
} //namespace Fem
#endif // Fem_FemSetElementsObjec_H

View File

@ -0,0 +1,60 @@
/***************************************************************************
* Copyright (c) 2013 Jürgen Riegel (FreeCAD@juergen-riegel.net) *
* *
* This file is part of the FreeCAD CAx development system. *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License as published by the Free Software Foundation; either *
* version 2 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this library; see the file COPYING.LIB. If not, *
* write to the Free Software Foundation, Inc., 59 Temple Place, *
* Suite 330, Boston, MA 02111-1307, USA *
* *
***************************************************************************/
#include "PreCompiled.h"
#ifndef _PreComp_
#endif
#include "FemSetFacesObject.h"
#include <App/DocumentObjectPy.h>
#include <Base/Placement.h>
using namespace Fem;
using namespace App;
PROPERTY_SOURCE(Fem::FemSetFacesObject, Fem::FemSetObject)
FemSetFacesObject::FemSetFacesObject()
{
}
FemSetFacesObject::~FemSetFacesObject()
{
}
short FemSetFacesObject::mustExecute(void) const
{
return 0;
}
PyObject *FemSetFacesObject::getPyObject()
{
if (PythonObject.is(Py::_None())){
// ref counter is set to 1
PythonObject = Py::Object(new DocumentObjectPy(this),true);
}
return Py::new_reference_to(PythonObject);
}

View File

@ -0,0 +1,59 @@
/***************************************************************************
* Copyright (c) 2013 Jürgen Riegel (FreeCAD@juergen-riegel.net) *
* *
* This file is part of the FreeCAD CAx development system. *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License as published by the Free Software Foundation; either *
* version 2 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this library; see the file COPYING.LIB. If not, *
* write to the Free Software Foundation, Inc., 59 Temple Place, *
* Suite 330, Boston, MA 02111-1307, USA *
* *
***************************************************************************/
#ifndef Fem_FemSetFacesObject_H
#define Fem_FemSetFacesObject_H
#include <App/DocumentObject.h>
#include <App/PropertyStandard.h>
#include "FemSetObject.h"
namespace Fem
{
class AppFemExport FemSetFacesObject : public FemSetObject
{
PROPERTY_HEADER(Fem::FemSetFacesObject);
public:
/// Constructor
FemSetFacesObject(void);
virtual ~FemSetFacesObject();
/// returns the type name of the ViewProvider
//virtual const char* getViewProviderName(void) const {
// return "FemGui::ViewProviderFemSet";
//}
virtual App::DocumentObjectExecReturn *execute(void) {
return App::DocumentObject::StdReturn;
}
virtual short mustExecute(void) const;
virtual PyObject *getPyObject(void);
};
} //namespace Fem
#endif // Fem_FemSetFacesObject_H

View File

@ -0,0 +1,60 @@
/***************************************************************************
* Copyright (c) 2013 Jürgen Riegel (FreeCAD@juergen-riegel.net) *
* *
* This file is part of the FreeCAD CAx development system. *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License as published by the Free Software Foundation; either *
* version 2 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this library; see the file COPYING.LIB. If not, *
* write to the Free Software Foundation, Inc., 59 Temple Place, *
* Suite 330, Boston, MA 02111-1307, USA *
* *
***************************************************************************/
#include "PreCompiled.h"
#ifndef _PreComp_
#endif
#include "FemSetGeometryObject.h"
#include <App/DocumentObjectPy.h>
#include <Base/Placement.h>
using namespace Fem;
using namespace App;
PROPERTY_SOURCE(Fem::FemSetGeometryObject, Fem::FemSetObject)
FemSetGeometryObject::FemSetGeometryObject()
{
}
FemSetGeometryObject::~FemSetGeometryObject()
{
}
short FemSetGeometryObject::mustExecute(void) const
{
return 0;
}
PyObject *FemSetGeometryObject::getPyObject()
{
if (PythonObject.is(Py::_None())){
// ref counter is set to 1
PythonObject = Py::Object(new DocumentObjectPy(this),true);
}
return Py::new_reference_to(PythonObject);
}

View File

@ -0,0 +1,59 @@
/***************************************************************************
* Copyright (c) 2013 Jürgen Riegel (FreeCAD@juergen-riegel.net) *
* *
* This file is part of the FreeCAD CAx development system. *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License as published by the Free Software Foundation; either *
* version 2 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this library; see the file COPYING.LIB. If not, *
* write to the Free Software Foundation, Inc., 59 Temple Place, *
* Suite 330, Boston, MA 02111-1307, USA *
* *
***************************************************************************/
#ifndef Fem_FemSetGeometryObject_H
#define Fem_FemSetGeometryObject_H
#include <App/DocumentObject.h>
#include <App/PropertyStandard.h>
#include "FemSetObject.h"
namespace Fem
{
class AppFemExport FemSetGeometryObject : public FemSetObject
{
PROPERTY_HEADER(Fem::FemSetGeometryObject);
public:
/// Constructor
FemSetGeometryObject(void);
virtual ~FemSetGeometryObject();
/// returns the type name of the ViewProvider
//virtual const char* getViewProviderName(void) const {
// return "FemGui::ViewProviderFemSet";
//}
virtual App::DocumentObjectExecReturn *execute(void) {
return App::DocumentObject::StdReturn;
}
virtual short mustExecute(void) const;
virtual PyObject *getPyObject(void);
};
} //namespace Fem
#endif // Fem_FemSetGeometryObject_H

View File

@ -0,0 +1,61 @@
/***************************************************************************
* Copyright (c) 2013 Jürgen Riegel (FreeCAD@juergen-riegel.net) *
* *
* This file is part of the FreeCAD CAx development system. *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License as published by the Free Software Foundation; either *
* version 2 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this library; see the file COPYING.LIB. If not, *
* write to the Free Software Foundation, Inc., 59 Temple Place, *
* Suite 330, Boston, MA 02111-1307, USA *
* *
***************************************************************************/
#include "PreCompiled.h"
#ifndef _PreComp_
#endif
#include "FemSetNodesObject.h"
#include <App/DocumentObjectPy.h>
#include <Base/Placement.h>
using namespace Fem;
using namespace App;
PROPERTY_SOURCE(Fem::FemSetNodesObject, Fem::FemSetObject)
FemSetNodesObject::FemSetNodesObject()
{
ADD_PROPERTY_TYPE(Nodes,(), "Node indexes",Prop_None,"Nodes belonging to the NodesSet");
}
FemSetNodesObject::~FemSetNodesObject()
{
}
short FemSetNodesObject::mustExecute(void) const
{
return 0;
}
PyObject *FemSetNodesObject::getPyObject()
{
if (PythonObject.is(Py::_None())){
// ref counter is set to 1
PythonObject = Py::Object(new DocumentObjectPy(this),true);
}
return Py::new_reference_to(PythonObject);
}

View File

@ -0,0 +1,61 @@
/***************************************************************************
* Copyright (c) 2013 Jürgen Riegel (FreeCAD@juergen-riegel.net) *
* *
* This file is part of the FreeCAD CAx development system. *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License as published by the Free Software Foundation; either *
* version 2 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this library; see the file COPYING.LIB. If not, *
* write to the Free Software Foundation, Inc., 59 Temple Place, *
* Suite 330, Boston, MA 02111-1307, USA *
* *
***************************************************************************/
#ifndef Fem_FemSetNodesObject_H
#define Fem_FemSetNodesObject_H
#include <App/DocumentObject.h>
#include <App/PropertyStandard.h>
#include "FemSetObject.h"
namespace Fem
{
class AppFemExport FemSetNodesObject : public FemSetObject
{
PROPERTY_HEADER(Fem::FemSetNodesObject);
public:
/// Constructor
FemSetNodesObject(void);
virtual ~FemSetNodesObject();
App::PropertyIntegerSet Nodes;
/// returns the type name of the ViewProvider
//virtual const char* getViewProviderName(void) const {
// return "FemGui::ViewProviderFemSet";
//}
virtual App::DocumentObjectExecReturn *execute(void) {
return App::DocumentObject::StdReturn;
}
virtual short mustExecute(void) const;
virtual PyObject *getPyObject(void);
};
} //namespace Fem
#endif // Fem_FemSetNodesObject_H

View File

@ -0,0 +1,60 @@
/***************************************************************************
* Copyright (c) 2013 Jürgen Riegel (FreeCAD@juergen-riegel.net) *
* *
* This file is part of the FreeCAD CAx development system. *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License as published by the Free Software Foundation; either *
* version 2 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this library; see the file COPYING.LIB. If not, *
* write to the Free Software Foundation, Inc., 59 Temple Place, *
* Suite 330, Boston, MA 02111-1307, USA *
* *
***************************************************************************/
#include "PreCompiled.h"
#ifndef _PreComp_
#endif
#include "FemSetObject.h"
#include <App/DocumentObjectPy.h>
#include <Base/Placement.h>
using namespace Fem;
using namespace App;
PROPERTY_SOURCE(Fem::FemSetObject, App::DocumentObject)
FemSetObject::FemSetObject()
{
}
FemSetObject::~FemSetObject()
{
}
short FemSetObject::mustExecute(void) const
{
return 0;
}
PyObject *FemSetObject::getPyObject()
{
if (PythonObject.is(Py::_None())){
// ref counter is set to 1
PythonObject = Py::Object(new DocumentObjectPy(this),true);
}
return Py::new_reference_to(PythonObject);
}

View File

@ -0,0 +1,59 @@
/***************************************************************************
* Copyright (c) 2013 Jürgen Riegel (FreeCAD@juergen-riegel.net) *
* *
* This file is part of the FreeCAD CAx development system. *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Library General Public *
* License as published by the Free Software Foundation; either *
* version 2 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Library General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this library; see the file COPYING.LIB. If not, *
* write to the Free Software Foundation, Inc., 59 Temple Place, *
* Suite 330, Boston, MA 02111-1307, USA *
* *
***************************************************************************/
#ifndef Fem_FemSetObject_H
#define Fem_FemSetObject_H
#include <App/DocumentObject.h>
#include <App/PropertyStandard.h>
#include "FemSetObject.h"
namespace Fem
{
class AppFemExport FemSetObject : public App::DocumentObject
{
PROPERTY_HEADER(Fem::FemSetObject);
public:
/// Constructor
FemSetObject(void);
virtual ~FemSetObject();
/// returns the type name of the ViewProvider
//virtual const char* getViewProviderName(void) const {
// return "FemGui::ViewProviderFemSet";
//}
virtual App::DocumentObjectExecReturn *execute(void) {
return App::DocumentObject::StdReturn;
}
virtual short mustExecute(void) const;
virtual PyObject *getPyObject(void);
};
} //namespace Fem
#endif // Fem_FemSetObject_H

View File

@ -72,6 +72,103 @@ bool CmdFemCreateFromShape::isActive(void)
}
//DEF_STD_CMD_A(CmdFemDefineNodesSet);
//
//
//void DefineNodesCallback(void * ud, SoEventCallback * n)
//{
// // show the wait cursor because this could take quite some time
// Gui::WaitCursor wc;
//
// // When this callback function is invoked we must in either case leave the edit mode
// Gui::View3DInventorViewer* view = reinterpret_cast<Gui::View3DInventorViewer*>(n->getUserData());
// view->setEditing(false);
// view->removeEventCallback(SoMouseButtonEvent::getClassTypeId(), clipMeshCallback,ud);
// n->setHandled();
//
// SbBool clip_inner;
// std::vector<SbVec2f> clPoly = view->getGLPolygon(&clip_inner);
// if (clPoly.size() < 3)
// return;
// if (clPoly.front() != clPoly.back())
// clPoly.push_back(clPoly.front());
//
// std::vector<Gui::ViewProvider*> views = view->getViewProvidersOfType(ViewProviderMesh::getClassTypeId());
// if (!views.empty()) {
// Gui::Application::Instance->activeDocument()->openCommand("Cut");
// for (std::vector<Gui::ViewProvider*>::iterator it = views.begin(); it != views.end(); ++it) {
// ViewProviderMesh* that = static_cast<ViewProviderMesh*>(*it);
// if (that->getEditingMode() > -1) {
// that->finishEditing();
// that->cutMesh(clPoly, *view, clip_inner);
// }
// }
//
// Gui::Application::Instance->activeDocument()->commitCommand();
//
// view->render();
// }
//}
//
//
//
//CmdMeshPolyCut::CmdMeshPolyCut()
// : Command("Mesh_PolyCut")
//{
// sAppModule = "Mesh";
// sGroup = QT_TR_NOOP("Mesh");
// sMenuText = QT_TR_NOOP("Cut mesh");
// sToolTipText = QT_TR_NOOP("Cuts a mesh with a picked polygon");
// sWhatsThis = "Mesh_PolyCut";
// sStatusTip = QT_TR_NOOP("Cuts a mesh with a picked polygon");
// sPixmap = "mesh_cut";
//}
//
//void CmdMeshPolyCut::activated(int iMsg)
//{
// std::vector<App::DocumentObject*> docObj = Gui::Selection().getObjectsOfType(Mesh::Feature::getClassTypeId());
// 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();
// if (view->getTypeId().isDerivedFrom(Gui::View3DInventor::getClassTypeId())) {
// Gui::View3DInventorViewer* viewer = ((Gui::View3DInventor*)view)->getViewer();
// viewer->setEditing(true);
// viewer->startSelection(Gui::View3DInventorViewer::Clip);
// viewer->addEventCallback(SoMouseButtonEvent::getClassTypeId(), MeshGui::ViewProviderMeshFaceSet::clipMeshCallback);
// }
// else {
// return;
// }
// }
//
// Gui::ViewProvider* pVP = getActiveGuiDocument()->getViewProvider(*it);
// if (pVP->isVisible())
// pVP->startEditing();
// }
//}
//
//bool CmdMeshPolyCut::isActive(void)
//{
// // Check for the selected mesh feature (all Mesh types)
// if (getSelection().countObjectsOfType(Mesh::Feature::getClassTypeId()) == 0)
// return false;
//
// Gui::MDIView* view = Gui::getMainWindow()->activeWindow();
// if (view && view->isDerivedFrom(Gui::View3DInventor::getClassTypeId())) {
// Gui::View3DInventorViewer* viewer = static_cast<Gui::View3DInventor*>(view)->getViewer();
// return !viewer->isEditing();
// }
//
// return false;
//}
//--------------------------------------------------------------------------------------
void CreateFemCommands(void)
{
Gui::CommandManager &rcCmdMgr = Gui::Application::Instance->commandManager();

View File

@ -170,7 +170,7 @@ ViewProviderFemMesh::ViewProviderFemMesh()
ADD_PROPERTY(PointColor,(mat.diffuseColor));
ADD_PROPERTY(PointSize,(2.0f));
PointSize.setConstraints(&floatRange);
ADD_PROPERTY(LineWidth,(4.0f));
ADD_PROPERTY(LineWidth,(2.0f));
LineWidth.setConstraints(&floatRange);
ADD_PROPERTY(BackfaceCulling,(true));