diff --git a/src/App/PropertyLinks.cpp b/src/App/PropertyLinks.cpp index 939c9cf8c..2487f59d2 100644 --- a/src/App/PropertyLinks.cpp +++ b/src/App/PropertyLinks.cpp @@ -605,7 +605,7 @@ const string PropertyLinkSubList::getPyReprString() std::stringstream strm; strm << "["; - for ( int i = 0 ; i < this->_lSubList.size() ; i++) { + for (std::size_t i = 0; i < this->_lSubList.size(); i++) { if (i>0) strm << ",("; else @@ -628,7 +628,7 @@ DocumentObject *PropertyLinkSubList::getValue() const { App::DocumentObject* ret = 0; //FIXME: cache this to avoid iterating each time, to improve speed - for (int i = 0 ; i < this->_lValueList.size() ; i++){ + for (std::size_t i = 0; i < this->_lValueList.size(); i++) { if (ret == 0) ret = this->_lValueList[i]; if (ret != this->_lValueList[i]) diff --git a/src/Gui/CMakeLists.txt b/src/Gui/CMakeLists.txt index 34bc3b75b..366c6b1dc 100644 --- a/src/Gui/CMakeLists.txt +++ b/src/Gui/CMakeLists.txt @@ -264,7 +264,6 @@ set(Gui_MOC_HDRS TaskView/TaskView.h DAGView/DAGView.h DAGView/DAGModel.h - DAGView/DAGRectItem.h ) #qt4_wrap_cpp(Gui_MOC_SRCS ${Gui_MOC_HDRS}) fc_wrap_cpp(Gui_MOC_SRCS ${Gui_MOC_HDRS}) diff --git a/src/Gui/Quarter/QuarterWidget.cpp b/src/Gui/Quarter/QuarterWidget.cpp index 0f924a622..626b6b97d 100644 --- a/src/Gui/Quarter/QuarterWidget.cpp +++ b/src/Gui/Quarter/QuarterWidget.cpp @@ -796,7 +796,6 @@ bool QuarterWidget::viewportEvent(QEvent* event) } else if (event->type() == QEvent::MouseMove || event->type() == QEvent::MouseButtonRelease) { - QMouseEvent* mouse = static_cast(event); QGraphicsScene* glScene = this->scene(); if (!(glScene && glScene->mouseGrabberItem())) { QGraphicsView::viewportEvent(event); diff --git a/src/Gui/Selection.cpp b/src/Gui/Selection.cpp index 2aeb87ffa..93b7c33c7 100644 --- a/src/Gui/Selection.cpp +++ b/src/Gui/Selection.cpp @@ -399,7 +399,7 @@ int SelectionSingleton::getAsPropertyLinkSubList(App::PropertyLinkSubList &prop) std::vector sel = this->getSelectionEx(); std::vector objs; objs.reserve(sel.size()*2); std::vector subs; subs.reserve(sel.size()*2); - for( int iobj = 0 ; iobj < sel.size() ; iobj++ ){ + for (std::size_t iobj = 0; iobj < sel.size(); iobj++) { Gui::SelectionObject &selitem = sel[iobj]; App::DocumentObject* obj = selitem.getObject(); const std::vector &subnames = selitem.getSubNames(); @@ -407,7 +407,7 @@ int SelectionSingleton::getAsPropertyLinkSubList(App::PropertyLinkSubList &prop) objs.push_back(obj); subs.push_back(std::string()); } else { - for( int isub = 0 ; isub < subnames.size() ; isub++ ){ + for (std::size_t isub = 0; isub < subnames.size(); isub++) { objs.push_back(obj); subs.push_back(subnames[isub]); } diff --git a/src/Gui/Tree.cpp b/src/Gui/Tree.cpp index ca4c8ff01..02b1e8954 100644 --- a/src/Gui/Tree.cpp +++ b/src/Gui/Tree.cpp @@ -539,7 +539,6 @@ void TreeWidget::dropEvent(QDropEvent *event) // add object to group DocumentObjectItem* targetItemObj = static_cast(targetitem); Gui::ViewProviderDocumentObject* vp = targetItemObj->object(); - App::DocumentObject* grp = vp->getObject(); if (!vp->canDropObjects()) { return; // no group like object } @@ -548,9 +547,6 @@ void TreeWidget::dropEvent(QDropEvent *event) dropObjects.reserve(idxs.size()); // Open command - App::Document* doc = grp->getDocument(); - Gui::Document* gui = Gui::Application::Instance->getDocument(doc); - for (QList::Iterator it = items.begin(); it != items.end(); ++it) { Gui::ViewProviderDocumentObject* vpc = static_cast(*it)->object(); App::DocumentObject* obj = vpc->getObject(); diff --git a/src/Mod/Assembly/App/AppAssemblyPy.cpp b/src/Mod/Assembly/App/AppAssemblyPy.cpp index 2a7b171c2..5171d0843 100644 --- a/src/Mod/Assembly/App/AppAssemblyPy.cpp +++ b/src/Mod/Assembly/App/AppAssemblyPy.cpp @@ -29,16 +29,16 @@ #include #include -#include +//#include -#include -#include -#include +//#include +//#include +//#include -#include +//#include -#include "ViewProviderBody.h" -#include "Utils.h" +//#include "ViewProviderBody.h" +//#include "Utils.h" //static PyObject * setActiveBody(PyObject *self, PyObject *args) diff --git a/src/Mod/Import/App/AppImportPy.cpp b/src/Mod/Import/App/AppImportPy.cpp index c4783569e..9e4023e10 100644 --- a/src/Mod/Import/App/AppImportPy.cpp +++ b/src/Mod/Import/App/AppImportPy.cpp @@ -89,7 +89,6 @@ public: private: Py::Object importer(const Py::Tuple& args) - { char* Name; char* DocName=0; @@ -410,226 +409,6 @@ static PyObject * importAssembly(PyObject *self, PyObject *args) Py_Return; }*/ - - -static PyObject * importer(PyObject *self, PyObject *args) -{ - char* Name; - char* DocName=0; - if (!PyArg_ParseTuple(args, "et|s","utf-8",&Name,&DocName)) - return NULL; - std::string Utf8Name = std::string(Name); - PyMem_Free(Name); - std::string name8bit = Part::encodeFilename(Utf8Name); - - PY_TRY { - //Base::Console().Log("Insert in Part with %s",Name); - Base::FileInfo file(Utf8Name.c_str()); - - App::Document *pcDoc = 0; - if (DocName) { - pcDoc = App::GetApplication().getDocument(DocName); - } - if (!pcDoc) { - pcDoc = App::GetApplication().newDocument("Unnamed"); - } - - Handle(XCAFApp_Application) hApp = XCAFApp_Application::GetApplication(); - Handle(TDocStd_Document) hDoc; - hApp->NewDocument(TCollection_ExtendedString("MDTV-CAF"), hDoc); - - if (file.hasExtension("stp") || file.hasExtension("step")) { - try { - STEPCAFControl_Reader aReader; - aReader.SetColorMode(true); - aReader.SetNameMode(true); - aReader.SetLayerMode(true); - if (aReader.ReadFile((Standard_CString)(name8bit.c_str())) != IFSelect_RetDone) { - PyErr_SetString(Base::BaseExceptionFreeCADError, "cannot read STEP file"); - return 0; - } - - Handle_Message_ProgressIndicator pi = new Part::ProgressIndicator(100); - aReader.Reader().WS()->MapReader()->SetProgress(pi); - pi->NewScope(100, "Reading STEP file..."); - pi->Show(); - aReader.Transfer(hDoc); - pi->EndScope(); - } - catch (OSD_Exception) { - Handle_Standard_Failure e = Standard_Failure::Caught(); - Base::Console().Error("%s\n", e->GetMessageString()); - Base::Console().Message("Try to load STEP file without colors...\n"); - - Part::ImportStepParts(pcDoc,Utf8Name.c_str()); - pcDoc->recompute(); - } - } - else if (file.hasExtension("igs") || file.hasExtension("iges")) { - Base::Reference hGrp = App::GetApplication().GetUserParameter() - .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/Part")->GetGroup("IGES"); - - try { - IGESControl_Controller::Init(); - IGESCAFControl_Reader aReader; - // http://www.opencascade.org/org/forum/thread_20603/?forum=3 - aReader.SetReadVisible(hGrp->GetBool("SkipBlankEntities", true) - ? Standard_True : Standard_False); - aReader.SetColorMode(true); - aReader.SetNameMode(true); - aReader.SetLayerMode(true); - if (aReader.ReadFile((Standard_CString)(name8bit.c_str())) != IFSelect_RetDone) { - PyErr_SetString(Base::BaseExceptionFreeCADError, "cannot read IGES file"); - return 0; - } - - Handle_Message_ProgressIndicator pi = new Part::ProgressIndicator(100); - aReader.WS()->MapReader()->SetProgress(pi); - pi->NewScope(100, "Reading IGES file..."); - pi->Show(); - aReader.Transfer(hDoc); - pi->EndScope(); - } - catch (OSD_Exception) { - Handle_Standard_Failure e = Standard_Failure::Caught(); - Base::Console().Error("%s\n", e->GetMessageString()); - Base::Console().Message("Try to load IGES file without colors...\n"); - - Part::ImportIgesParts(pcDoc,Utf8Name.c_str()); - pcDoc->recompute(); - } - } - else { - PyErr_SetString(Base::BaseExceptionFreeCADError, "no supported file format"); - return 0; - } - -#if 1 - Import::ImportOCAF ocaf(hDoc, pcDoc, file.fileNamePure()); - ocaf.loadShapes(); -#else - Import::ImportXCAF xcaf(hDoc, pcDoc, file.fileNamePure()); - xcaf.loadShapes(); -#endif - pcDoc->recompute(); - - } - catch (Standard_Failure) { - Handle_Standard_Failure e = Standard_Failure::Caught(); - PyErr_SetString(Base::BaseExceptionFreeCADError, e->GetMessageString()); - return 0; - } - PY_CATCH - - Py_Return; -} - -static PyObject * open(PyObject *self, PyObject *args) -{ - return importer(self, args); -} - -static PyObject * exporter(PyObject *self, PyObject *args) -{ - PyObject* object; - char* Name; - if (!PyArg_ParseTuple(args, "Oet",&object,"utf-8",&Name)) - return NULL; - std::string Utf8Name = std::string(Name); - PyMem_Free(Name); - std::string name8bit = Part::encodeFilename(Utf8Name); - - PY_TRY { - Handle(XCAFApp_Application) hApp = XCAFApp_Application::GetApplication(); - Handle(TDocStd_Document) hDoc; - hApp->NewDocument(TCollection_ExtendedString("MDTV-CAF"), hDoc); - Import::ExportOCAF ocaf(hDoc); - - Py::Sequence list(object); - for (Py::Sequence::iterator it = list.begin(); it != list.end(); ++it) { - PyObject* item = (*it).ptr(); - if (PyObject_TypeCheck(item, &(App::DocumentObjectPy::Type))) { - App::DocumentObject* obj = static_cast(item)->getDocumentObjectPtr(); - if (obj->getTypeId().isDerivedFrom(Part::Feature::getClassTypeId())) { - Part::Feature* part = static_cast(obj); - std::vector colors; - ocaf.saveShape(part, colors); - } - else { - Base::Console().Message("'%s' is not a shape, export will be ignored.\n", obj->Label.getValue()); - } - } - else if (PyTuple_Check(item) && PyTuple_Size(item) == 2) { - Py::Tuple tuple(*it); - Py::Object item0 = tuple.getItem(0); - Py::Object item1 = tuple.getItem(1); - if (PyObject_TypeCheck(item0.ptr(), &(App::DocumentObjectPy::Type))) { - App::DocumentObject* obj = static_cast(item0.ptr())->getDocumentObjectPtr(); - if (obj->getTypeId().isDerivedFrom(Part::Feature::getClassTypeId())) { - Part::Feature* part = static_cast(obj); - App::PropertyColorList colors; - colors.setPyObject(item1.ptr()); - ocaf.saveShape(part, colors.getValues()); - } - else { - Base::Console().Message("'%s' is not a shape, export will be ignored.\n", obj->Label.getValue()); - } - } - } - } - - Base::FileInfo file(Utf8Name.c_str()); - if (file.hasExtension("stp") || file.hasExtension("step")) { - //Interface_Static::SetCVal("write.step.schema", "AP214IS"); - STEPCAFControl_Writer writer; - writer.Transfer(hDoc, STEPControl_AsIs); - - // edit STEP header -#if OCC_VERSION_HEX >= 0x060500 - APIHeaderSection_MakeHeader makeHeader(writer.ChangeWriter().Model()); -#else - APIHeaderSection_MakeHeader makeHeader(writer.Writer().Model()); -#endif - Base::Reference hGrp = App::GetApplication().GetUserParameter() - .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/Part")->GetGroup("STEP"); - - makeHeader.SetName(new TCollection_HAsciiString((const Standard_CString)Utf8Name.c_str())); - makeHeader.SetAuthorValue (1, new TCollection_HAsciiString(hGrp->GetASCII("Author", "Author").c_str())); - makeHeader.SetOrganizationValue (1, new TCollection_HAsciiString(hGrp->GetASCII("Company").c_str())); - makeHeader.SetOriginatingSystem(new TCollection_HAsciiString(App::GetApplication().getExecutableName())); - makeHeader.SetDescriptionValue(1, new TCollection_HAsciiString("FreeCAD Model")); - IFSelect_ReturnStatus ret = writer.Write(name8bit.c_str()); - if (ret == IFSelect_RetError || ret == IFSelect_RetFail || ret == IFSelect_RetStop) { - PyErr_Format(PyExc_IOError, "Cannot open file '%s'", Utf8Name.c_str()); - return 0; - } - } - else if (file.hasExtension("igs") || file.hasExtension("iges")) { - IGESControl_Controller::Init(); - IGESCAFControl_Writer writer; - IGESData_GlobalSection header = writer.Model()->GlobalSection(); - header.SetAuthorName(new TCollection_HAsciiString(Interface_Static::CVal("write.iges.header.author"))); - header.SetCompanyName(new TCollection_HAsciiString(Interface_Static::CVal("write.iges.header.company"))); - header.SetSendName(new TCollection_HAsciiString(Interface_Static::CVal("write.iges.header.product"))); - writer.Model()->SetGlobalSection(header); - writer.Transfer(hDoc); - Standard_Boolean ret = writer.Write(name8bit.c_str()); - if (!ret) { - PyErr_Format(PyExc_IOError, "Cannot open file '%s'", Utf8Name.c_str()); - return 0; - } - } - } - catch (Standard_Failure) { - Handle_Standard_Failure e = Standard_Failure::Caught(); - PyErr_SetString(Base::BaseExceptionFreeCADError, e->GetMessageString()); - return 0; - } - PY_CATCH - - Py_Return; -} - PyObject* initModule() { return (new Module)->module().ptr(); diff --git a/src/Mod/JtReader/App/TestJtReader.cpp b/src/Mod/JtReader/App/TestJtReader.cpp index 30eb82bb8..3e65377db 100644 --- a/src/Mod/JtReader/App/TestJtReader.cpp +++ b/src/Mod/JtReader/App/TestJtReader.cpp @@ -46,7 +46,7 @@ TestJtReader::~TestJtReader() void TestJtReader::read(void) { - const std::vector& toc = readToc(); + //const std::vector& toc = readToc(); for (std::vector::const_iterator i = TocEntries.begin(); i != TocEntries.end(); ++i){ int segType = i->getSegmentType(); diff --git a/src/Mod/Part/App/Attacher.cpp b/src/Mod/Part/App/Attacher.cpp index 218ae264a..ed920b772 100644 --- a/src/Mod/Part/App/Attacher.cpp +++ b/src/Mod/Part/App/Attacher.cpp @@ -278,14 +278,14 @@ eMapMode AttachEngine::listMapModes(eSuggestResult& msg, eMapMode bestMatchType = mmDeactivated; int bestMatchScore = -1; msg = srNoModesFit; - for(int iMode = 0 ; iMode < this->modeRefTypes.size() ; ++iMode){ + for (std::size_t iMode = 0; iMode < this->modeRefTypes.size(); ++iMode) { if (! this->modeEnabled[iMode]) continue; const refTypeStringList &listStrings = modeRefTypes[iMode]; - for( int iStr = 0 ; iStr < listStrings.size() ; ++iStr ){ + for (std::size_t iStr = 0; iStr < listStrings.size(); ++iStr) { int score = 1; //-1 = topo incompatible, 0 = topo compatible, geom incompatible; 1+ = compatible (the higher - the more specific is the mode for the support) const refTypeString &str = listStrings[iStr]; - for (int iChr = 0 ; iChr < str.size() && iChr < typeStr.size() ; ++iChr ){ + for (std::size_t iChr = 0; iChr < str.size() && iChr < typeStr.size(); ++iChr) { int match = AttachEngine::isShapeOfType(typeStr[iChr], str[iChr]); switch(match){ case -1: @@ -343,7 +343,7 @@ void AttachEngine::EnableAllSupportedModes() { this->modeEnabled.resize(mmDummy_NumberOfModes,false); assert(modeRefTypes.size() > 0); - for( int i = 0 ; i < this->modeEnabled.size() ; i++ ){ + for (std::size_t i = 0; i < this->modeEnabled.size(); i++) { modeEnabled[i] = modeRefTypes[i].size() > 0; } } @@ -384,32 +384,26 @@ eRefType AttachEngine::getShapeType(const TopoDS_Shape& sh) switch(surf.GetType()) { case GeomAbs_Plane: return rtFlatFace; - break; case GeomAbs_Cylinder: return rtCylindricalFace; - break; case GeomAbs_Cone: return rtConicalFace; - break; case GeomAbs_Sphere: return rtSphericalFace; - break; case GeomAbs_Torus: return rtToroidalFace; - break; case GeomAbs_BezierSurface: - break; + break; case GeomAbs_BSplineSurface: - break; + break; case GeomAbs_SurfaceOfRevolution: return rtSurfaceRev; - break; case GeomAbs_SurfaceOfExtrusion: - break; + break; case GeomAbs_OffsetSurface: - break; + break; case GeomAbs_OtherSurface: - break; + break; } return rtFace; }break; @@ -419,32 +413,24 @@ eRefType AttachEngine::getShapeType(const TopoDS_Shape& sh) switch (crv.GetType()){ case GeomAbs_Line: return rtLine; - break; case GeomAbs_Circle: return rtCircle; - break; case GeomAbs_Ellipse: return rtEllipse; - break; case GeomAbs_Hyperbola: return rtHyperbola; - break; case GeomAbs_Parabola: return rtParabola; - break; case GeomAbs_BezierCurve: case GeomAbs_BSplineCurve: case GeomAbs_OtherCurve: return rtCurve; - break; } }break; case TopAbs_WIRE: return rtWire; - break; case TopAbs_VERTEX: return rtVertex; - break; default: throw Base::Exception("AttachEngine::getShapeType: unexpected TopoDS_Shape::ShapeType"); }//switch shapetype @@ -478,40 +464,31 @@ eRefType AttachEngine::downgradeType(eRefType type) case rtEdge: case rtFace: return rtAnything; - break; case rtAnything: return rtAnything; - break; case rtLine: case rtCurve: return rtEdge; - break; case rtConic: case rtCircle: return rtCurve; - break; case rtEllipse: case rtParabola: case rtHyperbola: return rtConic; - break; case rtFlatFace: case rtSphericalFace: case rtSurfaceRev: return rtFace; - break; case rtCylindricalFace: case rtToroidalFace: case rtConicalFace: return rtSurfaceRev; - break; case rtSolid: case rtWire: return rtPart; - break; case rtPart: return rtAnything; - break; default: throw Base::Exception("AttachEngine::downgradeType: unknown type"); } @@ -534,9 +511,10 @@ int AttachEngine::getTypeRank(eRefType type) int AttachEngine::isShapeOfType(eRefType shapeType, eRefType requirement) { //first up, check for hasplacement flag - if (requirement & rtFlagHasPlacement) + if (requirement & rtFlagHasPlacement) { if(! (shapeType & rtFlagHasPlacement)) return -1; + } //get rid of hasplacement flags, to simplify the rest shapeType = eRefType(shapeType & (rtFlagHasPlacement - 1)); @@ -574,7 +552,8 @@ int AttachEngine::isShapeOfType(eRefType shapeType, eRefType requirement) * \brief AttachEngine3D::readLinks * \param parts * \param shapes - * \param storage is a buffer storing what some of the pointers in shapes point to. It is needed, since subshapes are copied in the process (but copying a whole shape of an object can potentially be slow). + * \param storage is a buffer storing what some of the pointers in shapes point to. It is needed, since + * subshapes are copied in the process (but copying a whole shape of an object can potentially be slow). */ void AttachEngine::readLinks(const App::PropertyLinkSubList &references, std::vector &geofs, @@ -588,8 +567,8 @@ void AttachEngine::readLinks(const App::PropertyLinkSubList &references, storage.reserve(objs.size()); shapes.resize(objs.size()); types.resize(objs.size()); - for( int i = 0 ; i < objs.size() ; i++){ - if (!objs[i]->getTypeId().isDerivedFrom(App::GeoFeature::getClassTypeId())){ + for (std::size_t i = 0; i < objs.size(); i++) { + if (!objs[i]->getTypeId().isDerivedFrom(App::GeoFeature::getClassTypeId())) { throw Base::Exception("AttachEngine3D: link points to something that is not App::GeoFeature"); } App::GeoFeature* geof = static_cast(objs[i]); @@ -792,7 +771,7 @@ Base::Placement AttachEngine3D::calculateAttachedPlacement(Base::Placement origP switch (mmode) { case mmDeactivated: //should have been filtered out already! - break; + break; case mmTranslate:{ if (shapes.size() < 1) throw Base::Exception("AttachEngine3D::calculateAttachedPlacement: no subobjects specified (need one vertex)."); @@ -854,15 +833,17 @@ Base::Placement AttachEngine3D::calculateAttachedPlacement(Base::Placement origP case mmObjectXY: SketchNormal = dirZ; SketchXAxis = gp_Vec(dirX); - break; + break; case mmObjectXZ: SketchNormal = dirY.Reversed(); SketchXAxis = gp_Vec(dirX); - break; + break; case mmObjectYZ: SketchNormal = dirX; SketchXAxis = gp_Vec(dirY); - break; + break; + default: + break; } } break; @@ -1034,20 +1015,20 @@ Base::Placement AttachEngine3D::calculateAttachedPlacement(Base::Placement origP case mmRevolutionSection: SketchNormal = T.Reversed();//to avoid sketches upside-down for regular curves like circles SketchXAxis = N.Reversed(); - break; + break; case mmFrenetTN: case mmConcentric: if (N.Magnitude() == 0.0) throw Base::Exception("AttachEngine3D::calculateAttachedPlacement: Frenet-Serret normal is undefined. Can't align to TN plane."); SketchNormal = B; SketchXAxis = T; - break; + break; case mmFrenetTB: if (N.Magnitude() == 0.0) throw Base::Exception("AttachEngine3D::calculateAttachedPlacement: Frenet-Serret normal is undefined. Can't align to TB plane."); SketchNormal = N.Reversed();//it is more convenient to sketch on something looking it it so it is convex. SketchXAxis = T; - break; + break; default: assert(0);//mode forgotten? } @@ -1073,7 +1054,7 @@ Base::Placement AttachEngine3D::calculateAttachedPlacement(Base::Placement origP std::vector points; - for( int i = 0 ; i < shapes.size() ; i++){ + for (std::size_t i = 0; i < shapes.size(); i++) { const TopoDS_Shape &sh = *shapes[i]; if (sh.IsNull()) throw Base::Exception("Null shape in AttachEngine3D::calculateAttachedPlacement()!"); @@ -1211,7 +1192,9 @@ Base::Placement AttachEngine3D::calculateAttachedPlacement(Base::Placement origP ); gp_Vec norm = dirs[1].Crossed(dirs[2]); - norm.Rotate(gp_Ax1(gp_Pnt(),gp_Dir(dirs[1])),-ang);//rotation direction: when angle is positive, rotation is CCW when observing the vector so that the axis is pointing at you. Hence angle is negated here. + //rotation direction: when angle is positive, rotation is CCW when observing the vector so + //that the axis is pointing at you. Hence angle is negated here. + norm.Rotate(gp_Ax1(gp_Pnt(),gp_Dir(dirs[1])),-ang); SketchNormal = norm.Reversed(); SketchXAxis = dirs[1]; @@ -1255,7 +1238,6 @@ double AttachEngine3D::calculateFoldAngle(gp_Vec axA, gp_Vec axB, gp_Vec edA, gp if (fabs(ra) < Precision::Confusion()) throw Base::Exception("calculateFoldAngle: axisA and edgeA are parallel, folding can't be computed."); double b = edB.Dot(axB); - double rb = edB.Crossed(axB).Magnitude(); double costheta = axB.Dot(axA); double sintheta = axA.Crossed(axB).Dot(norm); double singama = -costheta; @@ -1383,7 +1365,7 @@ Base::Placement AttachEngineLine::calculateAttachedPlacement(Base::Placement ori case mm1TwoPoints:{ std::vector points; - for( int i = 0 ; i < shapes.size() ; i++){ + for (std::size_t i = 0; i < shapes.size(); i++) { const TopoDS_Shape &sh = *shapes[i]; if (sh.IsNull()) throw Base::Exception("Null shape in AttachEngineLine::calculateAttachedPlacement()!"); @@ -1554,14 +1536,14 @@ Base::Placement AttachEnginePoint::calculateAttachedPlacement(Base::Placement or switch(mmode){ case mm0Origin: mmode = mmObjectXY; - break; + break; case mm0CenterOfCurvature: mmode = mmRevolutionSection; - break; + break; case mm0OnEdge: //todo: prevent thruPoint mmode = mmNormalToPath; - break; + break; default: bReUsed = false; } diff --git a/src/Mod/Part/App/Attacher.h b/src/Mod/Part/App/Attacher.h index 3f7a4f9ae..3a3ba9e53 100644 --- a/src/Mod/Part/App/Attacher.h +++ b/src/Mod/Part/App/Attacher.h @@ -111,32 +111,32 @@ enum eSuggestResult{ * also AttachEngine::getShapeType(), AttachEngine::downgradeType(), TaskDatumParameters.cpp/getShTypeText() */ enum eRefType { - //topo //ranks: (number of times the type is downgradable) - rtAnything, //0 - rtVertex, //1 - rtEdge, //1 - rtFace, //1 + //topo //ranks: (number of times the type is downgradable) + rtAnything, //0 + rtVertex, //1 + rtEdge, //1 + rtFace, //1 //edges: - rtLine, //2 - rtCurve, //2 - rtCircle, //3 - rtConic, //3 - rtEllipse, //4 - rtParabola, //4 - rtHyperbola, //4 + rtLine, //2 + rtCurve, //2 + rtCircle, //3 + rtConic, //3 + rtEllipse, //4 + rtParabola, //4 + rtHyperbola, //4 //faces: - rtFlatFace, //2 - rtSphericalFace, //2//flatface, shericalface are also surfaces of revolution, but the axis isn't defined. - rtSurfaceRev, //2 - rtCylindricalFace, //3 - rtToroidalFace, //3 - rtConicalFace, //3 - //shapes: - rtPart, //1 - rtSolid, //2 - rtWire, //2 - rtDummy_numberOfShapeTypes,//a value useful to check the validity of value - rtFlagHasPlacement = 0x0100 //indicates that the linked shape is a whole FreeCAD object that has placement available. + rtFlatFace, //2 + rtSphericalFace, //2//flatface, shericalface are also surfaces of revolution, but the axis isn't defined. + rtSurfaceRev, //2 + rtCylindricalFace, //3 + rtToroidalFace, //3 + rtConicalFace, //3 + //shapes: + rtPart, //1 + rtSolid, //2 + rtWire, //2 + rtDummy_numberOfShapeTypes,//a value useful to check the validity of value + rtFlagHasPlacement = 0x0100 //indicates that the linked shape is a whole FreeCAD object that has placement available. }; @@ -316,11 +316,35 @@ public: //members std::vector modeRefTypes; //a complete data structure, containing info on which modes support what selection protected: - refTypeString cat(eRefType rt1){refTypeString ret; ret.push_back(rt1); return ret;} - refTypeString cat(eRefType rt1, eRefType rt2){refTypeString ret; ret.push_back(rt1); ret.push_back(rt2); return ret;} - refTypeString cat(eRefType rt1, eRefType rt2, eRefType rt3){refTypeString ret; ret.push_back(rt1); ret.push_back(rt2); ret.push_back(rt3); return ret;} - refTypeString cat(eRefType rt1, eRefType rt2, eRefType rt3, eRefType rt4){refTypeString ret; ret.push_back(rt1); ret.push_back(rt2); ret.push_back(rt3); ret.push_back(rt4); return ret;} - static void readLinks(const App::PropertyLinkSubList &references, std::vector &geofs, std::vector& shapes, std::vector &storage, std::vector &types); + refTypeString cat(eRefType rt1){ + refTypeString ret; + ret.push_back(rt1); + return ret; + } + refTypeString cat(eRefType rt1, eRefType rt2){ + refTypeString ret; + ret.push_back(rt1); + ret.push_back(rt2); + return ret; + } + refTypeString cat(eRefType rt1, eRefType rt2, eRefType rt3){ + refTypeString ret; + ret.push_back(rt1); + ret.push_back(rt2); + ret.push_back(rt3); + return ret; + } + refTypeString cat(eRefType rt1, eRefType rt2, eRefType rt3, eRefType rt4){ + refTypeString ret; + ret.push_back(rt1); + ret.push_back(rt2); + ret.push_back(rt3); + ret.push_back(rt4); + return ret; + } + static void readLinks(const App::PropertyLinkSubList &references, std::vector &geofs, + std::vector& shapes, std::vector &storage, + std::vector &types); static void throwWrongMode(eMapMode mmode); diff --git a/src/Mod/Part/Gui/ViewProviderExt.cpp b/src/Mod/Part/Gui/ViewProviderExt.cpp index 79c14508b..c4ea77a95 100644 --- a/src/Mod/Part/Gui/ViewProviderExt.cpp +++ b/src/Mod/Part/Gui/ViewProviderExt.cpp @@ -426,16 +426,16 @@ void ViewProviderPartExt::onChanged(const App::Property* prop) // For testing else if (prop == &DiffuseColor) { const std::vector& c = DiffuseColor.getValues(); - unsigned int size = (int)c.size(); + int size = static_cast(c.size()); if (size > 1 && size == this->faceset->partIndex.getNum()) { pcShapeBind->value = SoMaterialBinding::PER_PART; pcShapeMaterial->diffuseColor.setNum(size); SbColor* ca = pcShapeMaterial->diffuseColor.startEditing(); - for (unsigned int i=0; i < size; i++) + for (int i=0; i < size; i++) ca[i].setValue(c[i].r,c[i].g,c[i].b); pcShapeMaterial->diffuseColor.finishEditing(); } - else if ((int)c.size() == 1) { + else if (c.size() == 1) { pcShapeBind->value = SoMaterialBinding::OVERALL; pcShapeMaterial->diffuseColor.setValue(c[0].r,c[0].g,c[0].b); } diff --git a/src/Mod/PartDesign/Gui/TaskDatumParameters.ui b/src/Mod/PartDesign/Gui/TaskDatumParameters.ui index 7e6ccf105..2cd858c2c 100644 --- a/src/Mod/PartDesign/Gui/TaskDatumParameters.ui +++ b/src/Mod/PartDesign/Gui/TaskDatumParameters.ui @@ -137,7 +137,7 @@ - + diff --git a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp index e9db6b982..75562db17 100644 --- a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp +++ b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp @@ -4482,13 +4482,15 @@ namespace SketcherGui { switch(msg){ case Sketcher::SketchObject::rlCircularReference: this->notAllowedReason = QT_TR_NOOP("Linking this will cause circular dependency."); - break; + break; case Sketcher::SketchObject::rlOtherDoc: this->notAllowedReason = QT_TR_NOOP("This object is in another document."); - break; + break; case Sketcher::SketchObject::rlOtherPart: this->notAllowedReason = QT_TR_NOOP("This object belongs to another part or body, can't link. Hold Ctrl to allow crossreferences."); - break; + break; + default: + break; } return false; }