X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_Module.cpp;h=20cd411016fc4806e4f402843ee6926f4f03479e;hb=3e3d76500389cb3a5a6eeb09f229cd3c83730dac;hp=83f59bfe61bab2cde6132c700e168076a81b57df;hpb=d1b90cc379d69e8539f4613ae1aaf78009bffa12;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_Module.cpp b/src/PartSet/PartSet_Module.cpp index 83f59bfe6..20cd41101 100644 --- a/src/PartSet/PartSet_Module.cpp +++ b/src/PartSet/PartSet_Module.cpp @@ -21,6 +21,11 @@ #include #include #include +#include +#include +#include +#include + #include #include @@ -62,6 +67,7 @@ #include #include #include +#include #include #include @@ -86,7 +92,7 @@ extern "C" PARTSET_EXPORT ModuleBase_IModule* createModule(ModuleBase_IWorkshop* PartSet_Module::PartSet_Module(ModuleBase_IWorkshop* theWshop) : ModuleBase_IModule(theWshop), - myRestartingMode(RM_None) + myRestartingMode(RM_None), myVisualLayerId(0) { //myWorkshop = dynamic_cast(theWshop); mySketchMgr = new PartSet_SketcherMgr(this); @@ -125,7 +131,20 @@ void PartSet_Module::registerValidators() aFactory->registerValidator("PartSet_RigidValidator", new PartSet_RigidValidator); aFactory->registerValidator("PartSet_DifferentObjects", new PartSet_DifferentObjectsValidator); aFactory->registerValidator("PartSet_DifferentShapes", new ModelAPI_ShapeValidator); - aFactory->registerValidator("PartSet_SketchValidator", new PartSet_SketchValidator); + + aFactory->registerValidator("GeomValidators_Edge", new GeomValidators_Edge); + aFactory->registerValidator("GeomValidators_EdgeOrVertex", + new GeomValidators_EdgeOrVertex); + aFactory->registerValidator("GeomValidators_Face", new GeomValidators_Face); + + aFactory->registerValidator("GeomValidators_ConstructionComposite", + new GeomValidators_ConstructionComposite); + + aFactory->registerValidator("PartSet_SketchEntityValidator", + new PartSet_SketchEntityValidator); + + aFactory->registerValidator("PartSet_SameTypeAttr", + new PartSet_SameTypeAttrValidator); } void PartSet_Module::registerFilters() @@ -134,14 +153,14 @@ void PartSet_Module::registerFilters() XGUI_ModuleConnector* aConnector = dynamic_cast(workshop()); ModuleBase_FilterFactory* aFactory = aConnector->selectionFilters(); - aFactory->registerFilter("EdgeFilter", new ModuleBase_FilterLinearEdge); - aFactory->registerFilter("FaceFilter", new ModuleBase_FilterFace); - aFactory->registerFilter("MultiFilter", new ModuleBase_FilterMulti); - Handle(SelectMgr_Filter) aSelectFilter = new ModuleBase_FilterNoConsructionSubShapes(workshop()); - aFactory->registerFilter("NoConstructionSubShapesFilter", - new ModuleBase_FilterCustom(aSelectFilter)); - aSelectFilter = new PartSet_FilterSketchEntity(workshop()); - aFactory->registerFilter("SketchEntityFilter", new ModuleBase_FilterCustom(aSelectFilter)); + //aFactory->registerFilter("EdgeFilter", new ModuleBase_FilterLinearEdge); + //aFactory->registerFilter("FaceFilter", new ModuleBase_FilterFace); + //aFactory->registerFilter("MultiFilter", new ModuleBase_FilterMulti); + //Handle(SelectMgr_Filter) aSelectFilter = new ModuleBase_FilterNoConsructionSubShapes(workshop()); + //aFactory->registerFilter("NoConstructionSubShapesFilter", + // new ModuleBase_FilterCustom(aSelectFilter)); + //Handle(SelectMgr_Filter) aSelectFilter = new PartSet_FilterSketchEntity(workshop()); + //aFactory->registerFilter("SketchEntityFilter", new ModuleBase_FilterCustom(aSelectFilter)); } void PartSet_Module::registerProperties() @@ -196,6 +215,8 @@ void PartSet_Module::operationAborted(ModuleBase_Operation* theOperation) void PartSet_Module::operationStarted(ModuleBase_Operation* theOperation) { if (PartSet_SketcherMgr::isSketchOperation(theOperation)) { + Handle(V3d_Viewer) aViewer = myWorkshop->viewer()->AISContext()->CurrentViewer(); + aViewer->AddZLayer(myVisualLayerId); mySketchMgr->startSketch(theOperation); } else if (PartSet_SketcherMgr::isNestedSketchOperation(theOperation)) { @@ -211,6 +232,9 @@ void PartSet_Module::operationStopped(ModuleBase_Operation* theOperation) { if (PartSet_SketcherMgr::isSketchOperation(theOperation)) { mySketchMgr->stopSketch(theOperation); + Handle(V3d_Viewer) aViewer = myWorkshop->viewer()->AISContext()->CurrentViewer(); + aViewer->RemoveZLayer(myVisualLayerId); + myVisualLayerId = 0; } else if (PartSet_SketcherMgr::isNestedSketchOperation(theOperation)) { mySketchMgr->stopNestedSketch(theOperation); @@ -554,11 +578,8 @@ bool PartSet_Module::deleteObjects() if (aSelectedObj.count() == 0) return false; - if (isNestedOp) - anOperation->abort(); - // the active nested sketch operation should be aborted unconditionally - if (PartSet_SketcherMgr::isNestedSketchOperation(anOperation)) + if (isNestedOp) anOperation->abort(); std::set aRefFeatures; @@ -639,3 +660,17 @@ bool PartSet_Module::deleteObjects() return true; } + + +void PartSet_Module::onObjectDisplayed(ObjectPtr theObject, AISObjectPtr theAIS) +{ + Handle(AIS_InteractiveObject) anAIS = theAIS->impl(); + if (!anAIS.IsNull()) { + Handle(AIS_Dimension) aDim = Handle(AIS_Dimension)::DownCast(anAIS); + if (!aDim.IsNull()) { + Handle(AIS_InteractiveContext) aCtx = anAIS->GetContext(); + aCtx->SetZLayer(aDim, myVisualLayerId); + } + } +} +