Merge branch 'master' into bugfix/path-length
This commit is contained in:
@@ -223,6 +223,7 @@ void DlgGeneralImp::loadSettings()
|
||||
|
||||
int index = 1;
|
||||
TStringMap list = Translator::instance()->supportedLocales();
|
||||
ui->Languages->clear();
|
||||
ui->Languages->addItem(QString::fromLatin1("English"), QByteArray("English"));
|
||||
for (TStringMap::iterator it = list.begin(); it != list.end(); ++it, index++) {
|
||||
QByteArray lang = it->first.c_str();
|
||||
|
||||
@@ -324,16 +324,16 @@ public:
|
||||
bool press = (kbev->getState() == SoKeyboardEvent::DOWN);
|
||||
switch (kbev->getKey()) {
|
||||
case SoKeyboardEvent::H:
|
||||
if (press)
|
||||
if (!press)
|
||||
ns.onSetRotationCenter(kbev->getPosition());
|
||||
break;
|
||||
case SoKeyboardEvent::PAGE_UP:
|
||||
if(press){
|
||||
if(!press){
|
||||
ns.doZoom(ns.viewer->getSoRenderManager()->getCamera(), true, posn);
|
||||
}
|
||||
break;
|
||||
case SoKeyboardEvent::PAGE_DOWN:
|
||||
if(press){
|
||||
if(!press){
|
||||
ns.doZoom(ns.viewer->getSoRenderManager()->getCamera(), false, posn);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -244,6 +244,21 @@ int AlignmentGroup::count() const
|
||||
return this->_views.size();
|
||||
}
|
||||
|
||||
Base::BoundBox3d AlignmentGroup::getBoundingBox() const
|
||||
{
|
||||
Base::BoundBox3d box;
|
||||
std::vector<Gui::ViewProviderDocumentObject*>::const_iterator it;
|
||||
for (it = this->_views.begin(); it != this->_views.end(); ++it) {
|
||||
if ((*it)->isDerivedFrom(Gui::ViewProviderGeometryObject::getClassTypeId())) {
|
||||
App::GeoFeature* geo = static_cast<App::GeoFeature*>((*it)->getObject());
|
||||
const App::PropertyComplexGeoData* prop = geo->getPropertyOfGeometry();
|
||||
if (prop)
|
||||
box.Add(prop->getBoundingBox());
|
||||
}
|
||||
}
|
||||
return box;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
MovableGroup::MovableGroup()
|
||||
@@ -334,6 +349,16 @@ const MovableGroup& MovableGroupModel::getGroup(int i) const
|
||||
return this->_groups[i];
|
||||
}
|
||||
|
||||
Base::BoundBox3d MovableGroupModel::getBoundingBox() const
|
||||
{
|
||||
Base::BoundBox3d box;
|
||||
std::vector<MovableGroup>::const_iterator it;
|
||||
for (it = this->_groups.begin(); it != this->_groups.end(); ++it) {
|
||||
box.Add(it->getBoundingBox());
|
||||
}
|
||||
return box;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
namespace Gui {
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#define GUI_MANUALALIGNMENT_H
|
||||
|
||||
#include <QPointer>
|
||||
#include <Base/BoundBox.h>
|
||||
#include <Base/Placement.h>
|
||||
#include <Base/Vector3D.h>
|
||||
#include <Gui/Application.h>
|
||||
@@ -123,6 +124,10 @@ public:
|
||||
* Return the number of added views.
|
||||
*/
|
||||
int count() const;
|
||||
/**
|
||||
* Get the overall bounding box of all views.
|
||||
*/
|
||||
Base::BoundBox3d getBoundingBox() const;
|
||||
|
||||
protected:
|
||||
std::vector<PickedPoint> _pickedPoints;
|
||||
@@ -170,6 +175,7 @@ public:
|
||||
bool isEmpty() const;
|
||||
int count() const;
|
||||
const MovableGroup& getGroup(int i) const;
|
||||
Base::BoundBox3d getBoundingBox() const;
|
||||
|
||||
protected:
|
||||
void removeActiveGroup();
|
||||
|
||||
@@ -549,10 +549,24 @@ class TestCcxTools(unittest.TestCase):
|
||||
def test_6_contact_shell_shell(
|
||||
self
|
||||
):
|
||||
test_name = "contact shell shell analysis test"
|
||||
base_name = "contact_shell_shell"
|
||||
test_dir = "FEM_ccx_contact_shell_shell"
|
||||
# set up the example
|
||||
from femexamples import contact_shell_shell as shellcontact
|
||||
shellcontact.setup(self.active_doc, "ccxtools")
|
||||
|
||||
# test input file writing
|
||||
self.input_file_writing_test(
|
||||
test_name="contact shell shell analysis test",
|
||||
base_name="contact_shell_shell",
|
||||
test_dir="FEM_ccx_contact_shell_shell",
|
||||
)
|
||||
|
||||
# ********************************************************************************************
|
||||
def input_file_writing_test(
|
||||
self,
|
||||
test_name,
|
||||
base_name,
|
||||
test_dir
|
||||
):
|
||||
fcc_print(
|
||||
"\n--------------- "
|
||||
"Start of FEM ccxtools {}"
|
||||
@@ -560,13 +574,6 @@ class TestCcxTools(unittest.TestCase):
|
||||
.format(test_name)
|
||||
)
|
||||
|
||||
# set up the example
|
||||
from femexamples import contact_shell_shell as shellcontact
|
||||
shellcontact.setup(self.active_doc, "ccxtools")
|
||||
|
||||
# code from here is independent, TODO put in separate def
|
||||
# adding more inp file tests would be very simple ...
|
||||
# set up analysis
|
||||
analysis = self.active_doc.Analysis
|
||||
solver_object = self.active_doc.CalculiXccxTools
|
||||
analysis_dir = testtools.get_unit_test_tmp_dir(
|
||||
|
||||
@@ -163,7 +163,6 @@ private:
|
||||
Handle(XCAFApp_Application) hApp = XCAFApp_Application::GetApplication();
|
||||
Handle(TDocStd_Document) hDoc;
|
||||
hApp->NewDocument(TCollection_ExtendedString("MDTV-CAF"), hDoc);
|
||||
ImportOCAFExt ocaf(hDoc, pcDoc, file.fileNamePure());
|
||||
|
||||
if (file.hasExtension("stp") || file.hasExtension("step")) {
|
||||
try {
|
||||
@@ -230,15 +229,19 @@ private:
|
||||
}
|
||||
|
||||
#if 1
|
||||
if(merge!=Py_None)
|
||||
ImportOCAFExt ocaf(hDoc, pcDoc, file.fileNamePure());
|
||||
if (merge != Py_None)
|
||||
ocaf.setMerge(PyObject_IsTrue(merge));
|
||||
if(importHidden!=Py_None)
|
||||
if (importHidden != Py_None)
|
||||
ocaf.setImportHiddenObject(PyObject_IsTrue(importHidden));
|
||||
if(useLinkGroup!=Py_None)
|
||||
if (useLinkGroup != Py_None)
|
||||
ocaf.setUseLinkGroup(PyObject_IsTrue(useLinkGroup));
|
||||
if(mode>=0)
|
||||
if (mode >= 0)
|
||||
ocaf.setMode(mode);
|
||||
ocaf.loadShapes();
|
||||
#elif 1
|
||||
Import::ImportOCAFCmd ocaf(hDoc, pcDoc, file.fileNamePure());
|
||||
ocaf.loadShapes();
|
||||
#else
|
||||
Import::ImportXCAF xcaf(hDoc, pcDoc, file.fileNamePure());
|
||||
xcaf.loadShapes();
|
||||
@@ -246,7 +249,7 @@ private:
|
||||
#endif
|
||||
hApp->Close(hDoc);
|
||||
|
||||
if (!ocaf.partColors.size()) {
|
||||
if (!ocaf.partColors.empty()) {
|
||||
Py::List list;
|
||||
for (auto &it : ocaf.partColors) {
|
||||
Py::Tuple tuple(2);
|
||||
|
||||
Reference in New Issue
Block a user