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:
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
// =======================================================================
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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() {}
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user