1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-04 13:13:25 +03:00

0031362: Inspectors - MessageView plugin for message alerts

- append new MessageView plugin to display content of Message_Report;

- correct DumpJson of TDataStd array attributes to print Lower/Upper values;
- correct remove level of Message_Report to store stop time during removing all levels;
- append DumpJson for TFunction, TPrsStd attributes;
- correct DumpJson of XCAFDoc tools due to simplify performance of it;
- move AttributeInfo functionality from XDEDRAW into a static public method of XCAFDoc to call it outside;
- remove obsolete pane classes in DFBrowser plugin, now we may use DumpJSon panel to visualize this content of attributes;
- add new property panel in DFBrowser (synchronized with the same in other plugins);
- add button to switch ON DumpJson in DFBrowser(OFF by default, for better performance), also there is a context menu item in tree view;
- rename in DFBrowser "Property Panel" into "Property Panel (custom)";
- implement ViewControl_ColorSeletor and setting color in TreeModel_ItemProperties. Use only for light in VInspector now;
- implement setting false for all created AIS_Shape presentation to don't modify source TopoDS_Shape;
- remove not use VInspector_CallBack. It's possible using Message_Report/MessageView to track commands way;
- remove History panel in VInspector as not used, MessageView will be better solution for this;
- implement item and actions in VInspector for setting Lights in the view.
This commit is contained in:
nds
2021-04-26 18:01:38 +03:00
committed by bugmaster
parent 9a5bfc1c07
commit d16ecfe28e
239 changed files with 6001 additions and 8009 deletions

View File

@@ -116,7 +116,9 @@ void View_DisplayPreview::UpdatePreview (const View_DisplayActionType,
Handle(AIS_InteractiveObject) aPrs = Handle(AIS_InteractiveObject)::DownCast (anIterator.Value());
if (!aPrs.IsNull() && aPrs->GetContext().IsNull()/*is not displayed in another context*/)
{
myContext->Display (aPrs, aPreviewDisplayMode, -1/*does not participate in selection*/, Standard_True);
myContext->Display (aPrs, aPreviewDisplayMode,
View_DisplayPreview::PreviewSelectionMode()/*participate only in custom selection*/,
Standard_True);
enableGlobalClipping(aPrs, false);
myPreviewReadyPresentations.Append (aPrs);
}
@@ -125,11 +127,15 @@ void View_DisplayPreview::UpdatePreview (const View_DisplayActionType,
if (myPreviewPresentation.IsNull())
{
myPreviewPresentation = new AIS_Shape (aCompound);
myPreviewPresentation->Attributes()->SetAutoTriangulation (Standard_False);
Quantity_Color aColor(Quantity_NOC_TOMATO);
myPreviewPresentation->Attributes()->SetPointAspect (new Prs3d_PointAspect (Aspect_TOM_O_PLUS, aColor, 3.0));
myPreviewPresentation->SetAttributes (myPreviewParameters->GetDrawer());
myContext->Display (myPreviewPresentation, aPreviewDisplayMode, -1/*does not participate in selection*/, Standard_True);
myContext->Display (myPreviewPresentation, aPreviewDisplayMode,
View_DisplayPreview::PreviewSelectionMode()/*participate only in custom selection*/,
Standard_True);
enableGlobalClipping(myPreviewPresentation, false);
}
else

View File

@@ -58,6 +58,9 @@ public:
//! Returns true if preview presentation is shown
Standard_Boolean HasPreview() const { return !myPreviewPresentation.IsNull(); }
//! Custom preview selection mode
static Standard_Integer PreviewSelectionMode() { return 100; }
private:
//! Returns the current context

View File

@@ -28,7 +28,6 @@
#include <inspector/View_DisplayPreview.hxx>
#include <inspector/View_Viewer.hxx>
#include <inspector/View_Widget.hxx>
// =======================================================================
// function : Constructor
@@ -116,7 +115,7 @@ void View_Displayer::DisplayPresentation (const Handle(Standard_Transient)& theP
aDisplayed.Append (aPresentation);
}
if (!myIsKeepPresentations || myFitAllActive)
if (myFitAllActive)
fitAllView();
myDisplayed.Bind (theType, aDisplayed);
@@ -292,7 +291,7 @@ void View_Displayer::UpdatePreview (const View_DisplayActionType theType,
const NCollection_List<Handle(Standard_Transient)>& thePresentations)
{
myDisplayPreview->UpdatePreview (theType, thePresentations);
if (!myIsKeepPresentations || myFitAllActive)
if (myFitAllActive)
fitAllView();
}
@@ -377,7 +376,10 @@ Handle(AIS_InteractiveObject) View_Displayer::FindPresentation (const TopoDS_Sha
// =======================================================================
Handle(Standard_Transient) View_Displayer::CreatePresentation (const TopoDS_Shape& theShape)
{
return new AIS_Shape (theShape);
Handle(AIS_Shape) aPresentation = new AIS_Shape (theShape);
aPresentation->Attributes()->SetAutoTriangulation (Standard_False);
return aPresentation;
}
// =======================================================================

View File

@@ -16,6 +16,7 @@
#include <inspector/View_PreviewParameters.hxx>
#include <Prs3d_Drawer.hxx>
#include <Prs3d_LineAspect.hxx>
#include <Prs3d_PointAspect.hxx>
#include <Prs3d_ShadingAspect.hxx>
@@ -23,12 +24,11 @@
// function : Constructor
// purpose :
// =======================================================================
View_PreviewParameters::View_PreviewParameters()
View_PreviewParameters::View_PreviewParameters (const Standard_Boolean theToTransparent)
{
myDrawer = new Prs3d_Drawer();
Quantity_Color aColor(Quantity_NOC_TOMATO);
Standard_ShortReal aTransparency = 0.8f;
// point parameters
myDrawer->SetPointAspect (new Prs3d_PointAspect (Aspect_TOM_O_PLUS, aColor, 3.0));
@@ -42,10 +42,16 @@ View_PreviewParameters::View_PreviewParameters()
myDrawer->ShadingAspect()->SetColor (aColor);
myDrawer->ShadingAspect()->SetMaterial (aShadingMaterial);
myDrawer->ShadingAspect()->Aspect()->ChangeFrontMaterial().SetTransparency (aTransparency);
myDrawer->ShadingAspect()->Aspect()->ChangeBackMaterial() .SetTransparency (aTransparency);
myDrawer->SetTransparency (aTransparency);
myDrawer->SetLineAspect (new Prs3d_LineAspect (aColor, Aspect_TOL_SOLID, 1.));
if (theToTransparent)
{
Standard_ShortReal aTransparency = 0.8f;
myDrawer->ShadingAspect()->Aspect()->ChangeFrontMaterial().SetTransparency (aTransparency);
myDrawer->ShadingAspect()->Aspect()->ChangeBackMaterial() .SetTransparency (aTransparency);
myDrawer->SetTransparency (aTransparency);
}
// common parameters
myDrawer->SetZLayer (Graphic3d_ZLayerId_Topmost);
}

View File

@@ -33,7 +33,7 @@ class View_PreviewParameters
public:
//! Constructor
Standard_EXPORT View_PreviewParameters ();
Standard_EXPORT View_PreviewParameters (const Standard_Boolean theToTransparent = Standard_True);
//! Destructor
virtual ~View_PreviewParameters() {}

View File

@@ -22,7 +22,7 @@
#include <QWidget>
#include <Standard_WarningsRestore.hxx>
//! \class View_Widget
//! \class View_ToolButton
//! \brief It is a Qt control that implements change checked state for button by double click event
//! Button becomes checked by double click mouse pressed and unchecked by the next press mouse
class View_ToolButton : public QToolButton

View File

@@ -306,6 +306,11 @@ void View_Widget::mouseReleaseEvent (QMouseEvent* theEvent)
// =======================================================================
void View_Widget::mouseMoveEvent (QMouseEvent* theEvent)
{
if (myViewer->GetView().IsNull())
{
return;
}
myController->UpdateMousePosition (Graphic3d_Vec2i (theEvent->x(), theEvent->y()),
keyMouse (theEvent->button()),
keyFlag (theEvent->modifiers()), Standard_False);