#include <GeomDataAPI_Point.h>
#include <GeomDataAPI_Dir.h>
-#include <XGUI_Displayer.h>
-#include <XGUI_Workshop.h>
-#include <XGUI_OperationMgr.h>
-#include <XGUI_PropertyPanel.h>
-#include <XGUI_ModuleConnector.h>
+#include <XGUI_ActiveControlMgr.h>
+#include <XGUI_ActiveControlSelector.h>
+#include <XGUI_ActionsMgr.h>
#include <XGUI_ContextMenuMgr.h>
-#include <XGUI_Tools.h>
-#include <XGUI_ObjectsBrowser.h>
-#include <XGUI_SelectionMgr.h>
+#include <XGUI_CustomPrs.h>
#include <XGUI_DataModel.h>
+#include <XGUI_Displayer.h>
#include <XGUI_ErrorMgr.h>
-#include <XGUI_CustomPrs.h>
+#include <XGUI_FacesPanelSelector.h>
+#include <XGUI_ModuleConnector.h>
+#include <XGUI_ObjectsBrowser.h>
+#include <XGUI_OperationMgr.h>
+#include <XGUI_PropertyPanel.h>
#include <XGUI_SelectionMgr.h>
-#include <XGUI_ActionsMgr.h>
+#include <XGUI_Tools.h>
+#include <XGUI_Workshop.h>
-#include <SketchPlugin_Feature.h>
-#include <SketchPlugin_Sketch.h>
#include <SketchPlugin_ConstraintAngle.h>
#include <SketchPlugin_ConstraintLength.h>
#include <SketchPlugin_ConstraintDistance.h>
#include <SketchPlugin_ConstraintParallel.h>
#include <SketchPlugin_ConstraintPerpendicular.h>
#include <SketchPlugin_ConstraintRadius.h>
+#include <SketchPlugin_Feature.h>
+#include <SketchPlugin_Projection.h>
+#include <SketchPlugin_Sketch.h>
#include <SketcherPrs_SymbolPrs.h>
#include <SketcherPrs_Coincident.h>
Config_PropManager::registerProp("Visualization", "sketch_preview_plane",
"Color of sketch plane", Config_Prop::Color,
PartSet_CustomPrs::OPERATION_SKETCH_PLANE());
+
+ Config_PropManager::registerProp("Visualization", "hidden_face_transparency",
+ "Hidden faces transparency",
+ Config_Prop::Double,
+ "0.8");
}
PartSet_Module::~PartSet_Module()
}
}
+void PartSet_Module::updateActiveSelectionFilters()
+{
+ XGUI_Workshop* aWorkshop = XGUI_Tools::workshop(workshop());
+ XGUI_ActiveControlSelector* anActiveSelector = aWorkshop->activeControlMgr()->activeSelector();
+
+ if (anActiveSelector && anActiveSelector->getType() == XGUI_FacesPanelSelector::Type())
+ sketchMgr()->deactivateSelectionFilters();
+ else
+ sketchMgr()->activateSelectionFilters();
+}
+
void PartSet_Module::storeSelection()
{
// cash is used only to restore selection, so it should be filled in storeSelection and
void PartSet_Module::closeDocument()
{
myActivePartIndex = QModelIndex();
- clearViewer();
}
void PartSet_Module::clearViewer()
{
Handle(AIS_InteractiveObject) anAIS = theAIS->impl<Handle(AIS_InteractiveObject)>();
if (!anAIS.IsNull()) {
+ bool aToUseZLayer = false;
+ FeaturePtr aFeature = ModelAPI_Feature::feature(theObject);
+ if (aFeature.get() && PartSet_Tools::findRefsToMeFeature(aFeature,
+ SketchPlugin_Projection::ID()))
+ aToUseZLayer = true;
Handle(AIS_InteractiveContext) aCtx = anAIS->GetContext();
Handle(AIS_Dimension) aDim = Handle(AIS_Dimension)::DownCast(anAIS);
if (!aDim.IsNull()) {
- aCtx->SetZLayer(aDim, myVisualLayerId);
+ aToUseZLayer = true;
} else {
Handle(SketcherPrs_SymbolPrs) aCons = Handle(SketcherPrs_SymbolPrs)::DownCast(anAIS);
if (!aCons.IsNull())
- aCtx->SetZLayer(aCons, myVisualLayerId);
+ aToUseZLayer = true;
}
+ aCtx->SetZLayer(anAIS, myVisualLayerId);
}
}
}
if (aView.IsNull())
return;
- double aLen = aView->Convert(SketcherPrs_Tools::getDefaultArrowSize());
-
- double aPrevLen = SketcherPrs_Tools::getArrowSize();
- SketcherPrs_Tools::setArrowSize(aLen);
- const double aPrevScale = aViewer->Scale(aViewer->activeView());
- const double aCurScale = aViewer->activeView()->Camera()->Scale();
- aViewer->SetScale(aViewer->activeView(), aCurScale);
- SketcherPrs_Tools::setTextHeight (aCurScale / aPrevScale * SketcherPrs_Tools::getTextHeight());
- bool isModified = false;
- QList<AISObjectPtr> aPrsList = aDisplayer->displayedPresentations();
- foreach (AISObjectPtr aAIS, aPrsList) {
- Handle(AIS_InteractiveObject) aAisObj = aAIS->impl<Handle(AIS_InteractiveObject)>();
-
- Handle(AIS_Dimension) aDim = Handle(AIS_Dimension)::DownCast(aAisObj);
- if (!aDim.IsNull()) {
- aDim->DimensionAspect()->ArrowAspect()->SetLength(aLen);
- aContext->Redisplay(aDim, false);
- isModified = true;
+
+ ModuleBase_Operation* aCurrentOperation = myWorkshop->currentOperation();
+ if (aCurrentOperation &&
+ (PartSet_SketcherMgr::isSketchOperation(aCurrentOperation) ||
+ sketchMgr()->isNestedSketchOperation(aCurrentOperation)))
+ {
+ double aLen = aView->Convert(SketcherPrs_Tools::getConfigArrowSize());
+
+ double aPrevLen = SketcherPrs_Tools::getArrowSize();
+ SketcherPrs_Tools::setArrowSize(aLen);
+ const double aCurScale = aViewer->activeView()->Camera()->Scale();
+ aViewer->SetScale(aViewer->activeView(), aCurScale);
+ bool isModified = false;
+ QList<AISObjectPtr> aPrsList = aDisplayer->displayedPresentations();
+ foreach (AISObjectPtr aAIS, aPrsList) {
+ Handle(AIS_InteractiveObject) aAisObj = aAIS->impl<Handle(AIS_InteractiveObject)>();
+
+ Handle(AIS_Dimension) aDim = Handle(AIS_Dimension)::DownCast(aAisObj);
+ if (!aDim.IsNull()) {
+ aDim->DimensionAspect()->ArrowAspect()->SetLength(aLen);
+ aContext->Redisplay(aDim, false);
+ isModified = true;
+ }
}
+ if (isModified)
+ aDisplayer->updateViewer();
}
- if (isModified)
- aDisplayer->updateViewer();
}
bool PartSet_Module::isCustomPrsActivated(const ModuleBase_CustomizeFlag& theFlag) const
bool hasParameter = false;
bool hasCompositeOwner = false;
bool hasResultInHistory = false;
+ bool hasFolder = false;
ModuleBase_Tools::checkObjects(aObjects, hasResult, hasFeature, hasParameter,
- hasCompositeOwner, hasResultInHistory);
+ hasCompositeOwner, hasResultInHistory, hasFolder);
ModuleBase_Operation* aCurrentOp = myWorkshop->currentOperation();
if (aSelected == 1) {