XGUI_ViewerProxy::XGUI_ViewerProxy(XGUI_Workshop* theParent)
: ModuleBase_IViewer(theParent),
- myWorkshop(theParent), myShowHighlight(false)
+ myWorkshop(theParent)
{
}
if (myIs2dMode) {
bool aHighlight2d =
ModuleBase_Preferences::resourceMgr()->booleanValue("Viewer", "highlighting-2d", true);
- if (aHighlight2d || myShowHighlight)
- updateHighlight();
- else
- eraseHighlight();
+ if (aHighlight2d) {
+ if (myShowHighlight)
+ eraseHighlight();
+ else
+ updateHighlight();
+ }
+ else {
+ if (myShowHighlight)
+ updateHighlight();
+ else
+ eraseHighlight();
+ }
}
else {
bool aHighlight3d =
ModuleBase_Preferences::resourceMgr()->booleanValue("Viewer", "highlighting-3d", false);
- if (aHighlight3d || myShowHighlight)
- updateHighlight();
- else
- eraseHighlight();
+ if (aHighlight3d) {
+ if (myShowHighlight)
+ eraseHighlight();
+ else
+ updateHighlight();
+ }
+ else {
+ if (myShowHighlight)
+ updateHighlight();
+ else
+ eraseHighlight();
+ }
}
emit mouseMove(theWnd, theEvent);
}
}
}
-void XGUI_ViewerProxy::eraseHighlight()
+bool XGUI_ViewerProxy::eraseHighlight()
{
Handle(AIS_InteractiveContext) aContext = AISContext();
Handle(AIS_InteractiveObject) anAISIO;
AIS_ListIteratorOfListOfInteractive aLIt;
+ bool isErased = myHighlights.Extent() > 0;
for (aLIt.Initialize(myHighlights); aLIt.More(); aLIt.Next()) {
anAISIO = aLIt.Value();
aContext->Remove(anAISIO, false);
}
myHighlights.Clear();
+ return isErased;
}
void XGUI_ViewerProxy::updateHighlight()
else {
myResult = ResultPtr();
}
- aContext->UpdateCurrentViewer();
+ update();
}
isDisplayed = aRes.get();
}
}
if (!isDisplayed) {
- eraseHighlight();
- aContext->UpdateCurrentViewer();
+ if (eraseHighlight()) {
+ update();
+ }
myResult = ResultPtr();
}
}
if (myIs2dMode) {
bool aHighlight2d =
ModuleBase_Preferences::resourceMgr()->booleanValue("Viewer", "highlighting-2d", true);
- if (aHighlight2d || myShowHighlight)
- updateHighlight();
- else
- eraseHighlight();
+ if (aHighlight2d) {
+ if (myShowHighlight)
+ eraseHighlight();
+ else
+ updateHighlight();
+ }
+ else {
+ if (myShowHighlight)
+ updateHighlight();
+ else
+ eraseHighlight();
+ }
}
else {
bool aHighlight3d =
ModuleBase_Preferences::resourceMgr()->booleanValue("Viewer", "highlighting-3d", false);
- if (aHighlight3d || myShowHighlight)
- updateHighlight();
- else
- eraseHighlight();
+ if (aHighlight3d) {
+ if (myShowHighlight)
+ eraseHighlight();
+ else
+ updateHighlight();
+ }
+ else {
+ if (myShowHighlight)
+ updateHighlight();
+ else
+ eraseHighlight();
+ }
}
emit mouseMove(theWnd, theEvent);
}
void XGUI_ViewerProxy::setColorScalePosition(double theX, double theY)
{
- QWidget* aWindow = activeViewPort();
#ifdef HAVE_SALOME
- myWorkshop->salomeConnector()->viewer()->setColorScaleShown(on);
+ myWorkshop->salomeConnector()->viewer()->setColorScalePosition(theX, theY);
#else
+ QWidget* aWindow = activeViewPort();
Handle(AIS_ColorScale) aColorScale = myWorkshop->mainWindow()->viewer()->colorScale();
aColorScale->SetPosition(aWindow->width() * theX, aWindow->height() * theY);
#endif
void XGUI_ViewerProxy::setColorScaleSize(double theW, double theH)
{
- QWidget* aWindow = activeViewPort();
#ifdef HAVE_SALOME
- myWorkshop->salomeConnector()->viewer()->setColorScaleShown(on);
+ myWorkshop->salomeConnector()->viewer()->setColorScaleSize(theW, theH);
#else
+ QWidget* aWindow = activeViewPort();
Handle(AIS_ColorScale) aColorScale = myWorkshop->mainWindow()->viewer()->colorScale();
aColorScale->SetSize(aWindow->width() * theW, aWindow->height() * theH);
#endif
void XGUI_ViewerProxy::setColorScaleRange(double theMin, double theMax)
{
#ifdef HAVE_SALOME
- myWorkshop->salomeConnector()->viewer()->setColorScaleShown(on);
+ myWorkshop->salomeConnector()->viewer()->setColorScaleRange(theMin, theMax);
#else
Handle(AIS_ColorScale) aColorScale = myWorkshop->mainWindow()->viewer()->colorScale();
aColorScale->SetRange(theMin, theMax);
void XGUI_ViewerProxy::setColorScaleIntervals(int theNb)
{
#ifdef HAVE_SALOME
- myWorkshop->salomeConnector()->viewer()->setColorScaleShown(on);
+ myWorkshop->salomeConnector()->viewer()->setColorScaleIntervals(theNb);
#else
Handle(AIS_ColorScale) aColorScale = myWorkshop->mainWindow()->viewer()->colorScale();
aColorScale->SetNumberOfIntervals(theNb);
#endif
}
+void XGUI_ViewerProxy::setColorScaleTextColor(const QColor& theColor)
+{
+#ifdef HAVE_SALOME
+ myWorkshop->salomeConnector()->viewer()->setColorScaleTextColor(theColor);
+#else
+ Handle(AIS_ColorScale) aColorScale = myWorkshop->mainWindow()->viewer()->colorScale();
+ Quantity_Color aColor(theColor.redF(), theColor.greenF(), theColor.blueF(), Quantity_TOC_RGB);
+ aColorScale->SetColor(aColor);
+#endif
+}
+
+
void XGUI_ViewerProxy::setColorScaleTextHeigth(int theH)
{
#ifdef HAVE_SALOME
- myWorkshop->salomeConnector()->viewer()->setColorScaleShown(on);
+ myWorkshop->salomeConnector()->viewer()->setColorScaleTextHeigth(theH);
#else
Handle(AIS_ColorScale) aColorScale = myWorkshop->mainWindow()->viewer()->colorScale();
aColorScale->SetTextHeight(theH);
void XGUI_ViewerProxy::setColorScaleTitle(const QString& theText)
{
#ifdef HAVE_SALOME
- myWorkshop->salomeConnector()->viewer()->setColorScaleShown(on);
+ myWorkshop->salomeConnector()->viewer()->setColorScaleTitle(theText);
#else
Handle(AIS_ColorScale) aColorScale = myWorkshop->mainWindow()->viewer()->colorScale();
aColorScale->SetTitle(theText.toStdString().c_str());
//******************************************************
void XGUI_ViewerProxy::setupColorScale()
{
- setColorScalePosition(0.03, 0.35);
- setColorScaleSize(0.2, 0.5);
- setColorScaleTextHeigth(14);
- setColorScaleIntervals(20);
- Handle(AIS_ColorScale) aColorScale = myWorkshop->mainWindow()->viewer()->colorScale();
+ SUIT_ResourceMgr* aResMgr = ModuleBase_Preferences::resourceMgr();
+ double aX = aResMgr->doubleValue("Viewer", "scalar_bar_x_position", 0.03);
+ double aY = aResMgr->doubleValue("Viewer", "scalar_bar_y_position", 0.35);
+ setColorScalePosition(aX, aY);
+
+ double aW = aResMgr->doubleValue("Viewer", "scalar_bar_width", 0.2);
+ double aH = aResMgr->doubleValue("Viewer", "scalar_bar_height", 0.5);
+ setColorScaleSize(aW, aH);
+
+ QColor aColor = aResMgr->colorValue("Viewer", "scalar_bar_text_color", Qt::black);
+ setColorScaleTextColor(aColor);
+
+ int aT = aResMgr->integerValue("Viewer", "scalar_bar_text_height", 14);
+ setColorScaleTextHeigth(aT);
+
+ int aN = aResMgr->integerValue("Viewer", "scalar_bar_nb_intervals", 20);
+ setColorScaleIntervals(aN);
}
// aView3d->DepthFitAll();
// }
//#endif
-//}
\ No newline at end of file
+//}
+
+
+#ifdef HAVE_SALOME
+void XGUI_ViewerProxy::setFitter(OCCViewer_Fitter* theFitter)
+{
+ myWorkshop->salomeConnector()->viewer()->setFitter(theFitter);
+}
+
+OCCViewer_Fitter* XGUI_ViewerProxy::fitter() const
+{
+ return myWorkshop->salomeConnector()->viewer()->fitter();
+}
+#else
+void XGUI_ViewerProxy::setFitter(AppElements_Fitter* theFitter)
+{
+ myWorkshop->mainWindow()->viewer()->setFitter(theFitter);
+}
+
+AppElements_Fitter* XGUI_ViewerProxy::fitter() const
+{
+ return myWorkshop->mainWindow()->viewer()->fitter();
+}
+#endif