Merge branch 'master' of ssh://free-cad.git.sourceforge.net/gitroot/free-cad/free-cad
This commit is contained in:
commit
d3949cedc7
|
@ -104,6 +104,7 @@
|
|||
#include "SoFCVectorizeU3DAction.h"
|
||||
#include "SoFCVectorizeSVGAction.h"
|
||||
#include "SoFCDB.h"
|
||||
#include "Application.h"
|
||||
#include "MainWindow.h"
|
||||
#include "NavigationStyle.h"
|
||||
#include "ViewProvider.h"
|
||||
|
@ -1447,6 +1448,7 @@ void View3DInventorViewer::viewAll(float factor)
|
|||
|
||||
void View3DInventorViewer::viewSelection()
|
||||
{
|
||||
#if 0
|
||||
// Search for all SoFCSelection nodes
|
||||
SoSearchAction searchAction;
|
||||
searchAction.setType(SoFCSelection::getClassTypeId());
|
||||
|
@ -1472,6 +1474,18 @@ void View3DInventorViewer::viewSelection()
|
|||
root->addChild(select);
|
||||
}
|
||||
}
|
||||
#else
|
||||
SoGroup* root = new SoGroup();
|
||||
root->ref();
|
||||
|
||||
std::vector<App::DocumentObject*> selection = Selection().getObjectsOfType(App::DocumentObject::getClassTypeId());
|
||||
for (std::vector<App::DocumentObject*>::iterator it = selection.begin(); it != selection.end(); ++it) {
|
||||
ViewProvider* vp = Application::Instance->getViewProvider(*it);
|
||||
if (vp) {
|
||||
root->addChild(vp->getRoot());
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
SoCamera* cam = this->getCamera();
|
||||
if (cam) cam->viewAll(root, this->getViewportRegion());
|
||||
|
|
|
@ -561,11 +561,15 @@ const bool SketchBased::checkLineCrossesFace(const gp_Lin &line, const TopoDS_Fa
|
|||
TopoDS_Wire wire = ShapeAnalysis::OuterWire(face);
|
||||
BRepExtrema_DistShapeShape distss(wire, mkEdge.Shape(), Precision::Confusion());
|
||||
if (distss.IsDone()) {
|
||||
if (distss.Value() > Precision::Confusion())
|
||||
return false;
|
||||
// build up map vertex->edge
|
||||
TopTools_IndexedDataMapOfShapeListOfShape vertex2Edge;
|
||||
TopExp::MapShapesAndAncestors(wire, TopAbs_VERTEX, TopAbs_EDGE, vertex2Edge);
|
||||
|
||||
for (Standard_Integer i=1; i<= distss.NbSolution(); i++) {
|
||||
if (distss.PointOnShape1(i).Distance(distss.PointOnShape2(i)) > Precision::Confusion())
|
||||
continue;
|
||||
BRepExtrema_SupportType type = distss.SupportTypeShape1(i);
|
||||
if (type == BRepExtrema_IsOnEdge) {
|
||||
//This further check is not really needed
|
||||
|
|
Loading…
Reference in New Issue
Block a user