diff --git a/src/Mod/Drawing/App/FeatureClip.cpp b/src/Mod/Drawing/App/FeatureClip.cpp index 363309331..3931172c5 100644 --- a/src/Mod/Drawing/App/FeatureClip.cpp +++ b/src/Mod/Drawing/App/FeatureClip.cpp @@ -102,7 +102,7 @@ App::DocumentObjectExecReturn *FeatureClip::execute(void) const std::vector &Grp = Group.getValues(); for (std::vector::const_iterator It= Grp.begin();It!=Grp.end();++It) { if ((*It)->getTypeId().isDerivedFrom(Drawing::FeatureView::getClassTypeId())) { - Drawing::FeatureView *View = dynamic_cast(*It); + Drawing::FeatureView *View = static_cast(*It); svg << View->ViewResult.getValue() << endl; } } diff --git a/src/Mod/Drawing/App/FeaturePage.cpp b/src/Mod/Drawing/App/FeaturePage.cpp index f88b4714a..ef94d2a6a 100644 --- a/src/Mod/Drawing/App/FeaturePage.cpp +++ b/src/Mod/Drawing/App/FeaturePage.cpp @@ -168,24 +168,24 @@ App::DocumentObjectExecReturn *FeaturePage::execute(void) const std::vector &Grp = Group.getValues(); for (std::vector::const_iterator It= Grp.begin();It!=Grp.end();++It) { if ( (*It)->getTypeId().isDerivedFrom(Drawing::FeatureView::getClassTypeId()) ) { - Drawing::FeatureView *View = dynamic_cast(*It); + Drawing::FeatureView *View = static_cast(*It); if (View->Visible.getValue()) { ofile << View->ViewResult.getValue(); ofile << tempendl << tempendl << tempendl; } } else if ( (*It)->getTypeId().isDerivedFrom(Drawing::FeatureClip::getClassTypeId()) ) { - Drawing::FeatureClip *Clip = dynamic_cast(*It); + Drawing::FeatureClip *Clip = static_cast(*It); if (Clip->Visible.getValue()) { ofile << Clip->ViewResult.getValue(); ofile << tempendl << tempendl << tempendl; } } else if ( (*It)->getTypeId().isDerivedFrom(App::DocumentObjectGroup::getClassTypeId()) ) { // getting children inside subgroups too - App::DocumentObjectGroup *SubGroup = dynamic_cast(*It); + App::DocumentObjectGroup *SubGroup = static_cast(*It); const std::vector &SubGrp = SubGroup->Group.getValues(); for (std::vector::const_iterator Grit= SubGrp.begin();Grit!=SubGrp.end();++Grit) { if ( (*Grit)->getTypeId().isDerivedFrom(Drawing::FeatureView::getClassTypeId()) ) { - Drawing::FeatureView *SView = dynamic_cast(*Grit); + Drawing::FeatureView *SView = static_cast(*Grit); if (SView->Visible.getValue()) { ofile << SView->ViewResult.getValue(); ofile << tempendl << tempendl << tempendl; diff --git a/src/Mod/Fem/App/HypothesisPy.cpp b/src/Mod/Fem/App/HypothesisPy.cpp index 75763e71c..c8fd46ff8 100755 --- a/src/Mod/Fem/App/HypothesisPy.cpp +++ b/src/Mod/Fem/App/HypothesisPy.cpp @@ -302,8 +302,6 @@ Py::Object StdMeshers_AutomaticLengthPy::getLength(const Py::Tuple& args) const TopoDS_Shape& s = shape.extensionObject()->getTopoShapePtr()->getShape(); return Py::Float(hypothesis()->GetLength(m->getSMesh(),s)); } - - throw Py::Exception(); } // ---------------------------------------------------------------------------- diff --git a/src/Mod/Fem/Gui/Command.cpp b/src/Mod/Fem/Gui/Command.cpp index de7da52c2..089a56d4b 100644 --- a/src/Mod/Fem/Gui/Command.cpp +++ b/src/Mod/Fem/Gui/Command.cpp @@ -872,7 +872,7 @@ void DefineNodesCallback(void * ud, SoEventCallback * n) if(docObj.size() !=1) return; - const SMESHDS_Mesh* data = const_cast(dynamic_cast(docObj[0])->FemMesh.getValue().getSMesh())->GetMeshDS(); + const SMESHDS_Mesh* data = const_cast(static_cast(docObj[0])->FemMesh.getValue().getSMesh())->GetMeshDS(); SMDS_NodeIteratorPtr aNodeIter = data->nodesIterator(); Base::Vector3f pt2d; diff --git a/src/Mod/Fem/Gui/TaskDlgMeshShapeNetgen.cpp b/src/Mod/Fem/Gui/TaskDlgMeshShapeNetgen.cpp index f9ebe40dd..e1637881c 100644 --- a/src/Mod/Fem/Gui/TaskDlgMeshShapeNetgen.cpp +++ b/src/Mod/Fem/Gui/TaskDlgMeshShapeNetgen.cpp @@ -55,9 +55,10 @@ TaskDlgMeshShapeNetgen::TaskDlgMeshShapeNetgen(FemGui::ViewProviderFemMeshShapeN : TaskDialog(),ViewProviderFemMeshShapeNetgen(obj) { FemMeshShapeNetgenObject = dynamic_cast(obj->getObject()); - param = new TaskTetParameter(FemMeshShapeNetgenObject); - - Content.push_back(param); + if (FemMeshShapeNetgenObject) { + param = new TaskTetParameter(FemMeshShapeNetgenObject); + Content.push_back(param); + } } TaskDlgMeshShapeNetgen::~TaskDlgMeshShapeNetgen() diff --git a/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp b/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp index 2c5959e88..e01e98c57 100644 --- a/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp +++ b/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp @@ -473,7 +473,7 @@ std::vector ViewProviderFemMesh::getSelectionShape(const char* E void ViewProviderFemMesh::setHighlightNodes(const std::set& HighlightedNodes) { if(!HighlightedNodes.empty()){ - SMESHDS_Mesh* data = const_cast((dynamic_cast(this->pcObject)->FemMesh).getValue().getSMesh())->GetMeshDS(); + SMESHDS_Mesh* data = const_cast((static_cast(this->pcObject)->FemMesh).getValue().getSMesh())->GetMeshDS(); pcAnoCoords->point.setNum(HighlightedNodes.size()); SbVec3f* verts = pcAnoCoords->point.startEditing(); @@ -685,7 +685,7 @@ void ViewProviderFEMMeshBuilder::buildNodes(const App::Property* prop, std::vect pcFaces = static_cast(nodes[1]); } - if (pcPointsCoord && pcFaces){ + if (pcPointsCoord && pcFaces && pcLines){ std::vector vFaceElementIdx; std::vector vNodeElementIdx; bool onlyEdges; diff --git a/src/Mod/Fem/Gui/ViewProviderFemMeshPyImp.cpp b/src/Mod/Fem/Gui/ViewProviderFemMeshPyImp.cpp index d7a01eebb..bcdf0e932 100644 --- a/src/Mod/Fem/Gui/ViewProviderFemMeshPyImp.cpp +++ b/src/Mod/Fem/Gui/ViewProviderFemMeshPyImp.cpp @@ -224,7 +224,7 @@ Py::List ViewProviderFemMeshPy::getHighlightedNodes(void) const void ViewProviderFemMeshPy::setHighlightedNodes(Py::List arg) { ViewProviderFemMesh* vp = this->getViewProviderFemMeshPtr(); - SMESHDS_Mesh* data = const_cast((dynamic_cast + SMESHDS_Mesh* data = const_cast((static_cast (vp->getObject())->FemMesh).getValue().getSMesh())->GetMeshDS(); std::set res; diff --git a/src/Mod/Fem/Gui/ViewProviderSetNodes.cpp b/src/Mod/Fem/Gui/ViewProviderSetNodes.cpp index 00f47e1fa..be32494bc 100644 --- a/src/Mod/Fem/Gui/ViewProviderSetNodes.cpp +++ b/src/Mod/Fem/Gui/ViewProviderSetNodes.cpp @@ -37,7 +37,7 @@ PROPERTY_SOURCE(FemGui::ViewProviderSetNodes, Gui::ViewProviderGeometryObject) bool ViewProviderSetNodes::doubleClicked(void) { - Gui::TaskView::TaskDialog* dlg = new TaskDlgCreateNodeSet(dynamic_cast(getObject())); + Gui::TaskView::TaskDialog* dlg = new TaskDlgCreateNodeSet(static_cast(getObject())); Gui::Control().showDialog(dlg); return true; } @@ -45,7 +45,7 @@ bool ViewProviderSetNodes::doubleClicked(void) bool ViewProviderSetNodes::setEdit(int ModNum) { - Gui::TaskView::TaskDialog* dlg = new TaskDlgCreateNodeSet(dynamic_cast(getObject())); + Gui::TaskView::TaskDialog* dlg = new TaskDlgCreateNodeSet(static_cast(getObject())); Gui::Control().showDialog(dlg); return true; } diff --git a/src/Mod/Part/App/AppPartPy.cpp b/src/Mod/Part/App/AppPartPy.cpp index 92bc90052..070087e79 100644 --- a/src/Mod/Part/App/AppPartPy.cpp +++ b/src/Mod/Part/App/AppPartPy.cpp @@ -1532,7 +1532,6 @@ private: #else throw Py::RuntimeError("FreeCAD compiled without FreeType support! This method is disabled..."); #endif - return Py::None(); } Py::Object exportUnits(const Py::Tuple& args) { diff --git a/src/Mod/Part/Gui/ViewProviderBoolean.cpp b/src/Mod/Part/Gui/ViewProviderBoolean.cpp index 43734ad34..399698678 100644 --- a/src/Mod/Part/Gui/ViewProviderBoolean.cpp +++ b/src/Mod/Part/Gui/ViewProviderBoolean.cpp @@ -88,7 +88,7 @@ void ViewProviderBoolean::updateData(const App::Property* prop) Part::Boolean* objBool = dynamic_cast(getObject()); Part::Feature* objBase = dynamic_cast(objBool->Base.getValue()); Part::Feature* objTool = dynamic_cast(objBool->Tool.getValue()); - if (objBase && objTool) { + if (objBool && objBase && objTool) { const TopoDS_Shape& baseShape = objBase->Shape.getValue(); const TopoDS_Shape& toolShape = objTool->Shape.getValue(); const TopoDS_Shape& boolShape = objBool->Shape.getValue(); @@ -176,7 +176,7 @@ void ViewProviderMultiFuse::updateData(const App::Property* prop) if (prop->getTypeId() == Part::PropertyShapeHistory::getClassTypeId()) { const std::vector& hist = static_cast (prop)->getValues(); - Part::MultiFuse* objBool = dynamic_cast(getObject()); + Part::MultiFuse* objBool = static_cast(getObject()); std::vector sources = objBool->Shapes.getValues(); if (hist.size() != sources.size()) return; @@ -192,6 +192,8 @@ void ViewProviderMultiFuse::updateData(const App::Property* prop) int index=0; for (std::vector::iterator it = sources.begin(); it != sources.end(); ++it, ++index) { Part::Feature* objBase = dynamic_cast(*it); + if (!objBase) + continue; const TopoDS_Shape& baseShape = objBase->Shape.getValue(); TopTools_IndexedMapOfShape baseMap; @@ -293,7 +295,7 @@ void ViewProviderMultiCommon::updateData(const App::Property* prop) if (prop->getTypeId() == Part::PropertyShapeHistory::getClassTypeId()) { const std::vector& hist = static_cast (prop)->getValues(); - Part::MultiCommon* objBool = dynamic_cast(getObject()); + Part::MultiCommon* objBool = static_cast(getObject()); std::vector sources = objBool->Shapes.getValues(); if (hist.size() != sources.size()) return; @@ -309,6 +311,8 @@ void ViewProviderMultiCommon::updateData(const App::Property* prop) int index=0; for (std::vector::iterator it = sources.begin(); it != sources.end(); ++it, ++index) { Part::Feature* objBase = dynamic_cast(*it); + if (!objBase) + continue; const TopoDS_Shape& baseShape = objBase->Shape.getValue(); TopTools_IndexedMapOfShape baseMap;