Modifications:
- Message_AlertExtended to store additional parameters (attributes, composite alert container, performance meter)
- Message_Attribute and inherited classes to store custom information about alert
- Message_CompositeAlerts to have hierarchical structure of alerts
- Message_PerfMeter to automatically calculate time between alerts adding into report
- Message_ReportCall back to be able to react to message report filling.
- Import/Export message report report. Currently it is implemented using XmlDrivers_MessageReportStorage
- MessageView/MessageModel - Inspector plugin for GUI presentation of Message_Report
(cherry picked from commit e4529dcf83b12759e47efb89ded8207f802556a7)
Conflicts:
tools/ViewControl/FILES
tools/ViewControl/ViewControl_PropertyView.cxx
tools/ViewControl/ViewControl_PropertyView.hxx
tools/ViewControl/ViewControl_Table.cxx
tools/ViewControl/ViewControl_Table.hxx
tools/ViewControl/ViewControl_TableModel.hxx
tools/ViewControl/ViewControl_TableModelFilter.cxx
tools/ViewControl/ViewControl_TableModelFilter.hxx
tools/ViewControl/ViewControl_TableModelValues.hxx
tools/ViewControl/ViewControl_TableProperty.cxx
tools/ViewControl/ViewControl_TableProperty.hxx
tools/ViewControl/ViewControl_Tools.cxx
tools/ViewControl/ViewControl_Tools.hxx
(cherry picked from commit 68876fcc5a)
(cherry picked from commit 9a3d03bedb29dbf0124f5d53478d331d7ba877ff)
AIS_InteractiveContext::Load/ClearGlobal is modified for correct processing SetSelected for child objects.
As Display/Erase of object with children displays/erases these children, then the children status inside context should also be updated.
(cherry picked from commit 26b44c42ba1c2d999edf10d8dab4c02eae2c5ff7)
# Conflicts:
# src/AIS/AIS_InteractiveContext.hxx
(cherry picked from commit 41e01634af5fccd37fc86931dac6f5c5569a63da)
(cherry picked from commit 7660866377)
(cherry picked from commit a2cd3c1905a3a3c2fb96ceb8eaec1cc982a64c97)
(cherry picked from commit d9a231a9ce2499615952944cae1a0db6552db2e4)
(cherry picked from commit ab078490cd)
(cherry picked from commit 277ea0a15e589efd7128f915959a18a59ebdfd1c)
SelectMgr_RectangularFrustum::Overlaps method for computing intersection of box with frustum was reworked. Now the nearest non-clipped point is calculated.
AIS_InteractiveContext::IsHilighted() behavior has been changed.
It should use the same logic for owner processing like when it is highlighted. IsSelected of owner is used for selection state, not highlight.
Without this correction, object is never shown as selected by click (Select(bool)):
if (!HighlightStyle (theOwner, aCustomStyle) ||
(!aCustomStyle.IsNull() && aCustomStyle != anObjSelStyle))
IsSelected is already true, so the highlight style is equal to selection style, nothing to do.
RWMesh_CafReader - added new interface class for common workflow for reading mesh data files into XDE document.
OSD_Path - added auxiliary methods splitting path into folder+file pair
and checking relative/absolute path semantically:
OSD_Path::FolderAndFileFromPath(), ::IsRelativePath(), ::IsAbsolutePath().
V3d_TypeOfOrientation enumeration has been extended with aliases
(like front/left) for Z-up and Y-up conventions.
V3d_View::SetProj() now accepts argument for asking Y-up instead of Z-up.
Added command vviewproj defining standard camera direction.
Commands vaxo, vleft, vright, vtop, vbottom, vfront, vbottom now redirect to vviewproj.
TCollection_AsciiString::SubString() now uses Standard_OutOfRange_Always_Raise_if() to suppress GCC warning.
Eliminated gcc 4.4 compilation errors within Standard_OutOfRange_Raise_if,Standard_RangeError_Raise_if.
SEARCH_TEMPLATES was modified to find EGL and GLES2 libraries in different folders (angle-gles, egl-gles, egl, angle, etc).
Find 3rdparty products procedure allows to define 3RDPARTY_LIBRARY_DIR or 3RDPARTY_DLL_DIR manually to find necessary libraries and dlls.
Added an argument to OpenGl_GraphicDriver::GetSharedContext() for returning only currently bound OpenGL context.
SelectMgr_SelectingVolumeManager::GetMousePosition() - added getter returning mouse coordinates.
OpenGl_CappingPlaneResource::updateTransform() now takes into account ZLayer origin.
Fixed VT_ProcessKeyPress() passing arbitrary input to Draw::Atoi() leading
to messages in console like "unclosed braces".
Provide the easy to use interfaces for selection of the elements from BVH tree.
The selection rules should be implemented in the selector class derived from *BVH_Traverse* or in *BVH_PairTraverse* in Reject/Accept methods.
The *BVH_Traverse* is used for selection of the elements from the tree.
The *BVH_PairTraverse* is used for selection of the pairs of elements from two BVH trees.
Auxiliary changes:
- Two methods BVH_Box::IsOut(OtherBox) and BVH_Box::IsOut(Point) have been added;
- Added methods for conversion of Bnd boxes to BVH boxes
Added new class *BVH_Tools* containing useful static methods operating on BVH points and boxes.
The classes BRepExtrema_OverlapTool and BVH_DistanceField have been rebased to use the new traverse methods.
STEPCAFControl_Reader::SourceCodePage() - added property defining text encoding
for converting names within STEPCAFControl_Reader::ReadNames() method.
Added associated "read.stepcaf.codepage" parameter,
which default value is Resource_UTF8, preserving current behavior.
Resource_FormatType enumeration has been extended by UTF8 and SystemLocale values.
Resource_Unicode - added conversion methods taking Resource_FormatType as argument.
GetName command has been corrected to NOT replace non-Latin symbols.
Cache subshapes list into map instead of re-iterating it multiple times within the loop.
Avoid iteration at all if modified state has been already detected.
XCAFDoc now returns GUIDs by const reference instead of a copy.
Modification in static method BoundedArc of IntStart_SearchOnBoundaries:
add exact intersection of canonical curve-surface (when Func is IntPatch_ArcFunction).
Add protection from return of not top-level shape by FindShape method.
Add protection against located roots into FindMainShape method.
Add new Draw command for FindMainShape.
Add flag findInstance to Draw command FindShape
The following improvements have been made in Boolean operations algorithm:
1. Added possibility to update FaceInfo structure for many faces at once which helps to avoid nested loops.
2. Improve Point-Face classification procedure by caching the FaceExplorer for a face.
SelectBasics_EntityOwner has been merged into SelectMgr_EntityOwner.
Unused property SelectMgr_EntityOwner::ResetLocation() has been removed.
SelectBasics package has been moved from TKService to TKV3d.
SelectBasics_SensitiveEntity has been merged into Select3D_SensitiveEntity.
The problem caused by the changing of HashCode() method of TColStd_PackedMapOfInteger::TColStd_intMapNode class done as a part of 30550 changes is solved.
AIS_InteractiveContext::EraseGlobal() now erases all object owners
(in the same way as AIS_InteractiveContext::ClearGlobal()).
Removed redundant fields AIS_InteractiveContext::myLastinMain and myWasLastMain.
Evaluator of offset surface has been protected against evaluation at infinite parameters. Now it throws exception when evaluating such data.
The methods IsUClosed and IsVClosed of the class ShapeAnalysis_Surface have been corrected to avoid evaluation of the surface at infinite parameters (fighting with regressions "parasolid doc_3 E3" and "parasolid doc_2 A3" in products).
New methods AddChildWithCurrentTransformation(), RemoveChildWithRestoreTransformation() are implemented to keep the current global transformation of the object (child).
In DRAW a new command vchild is provided for testing low-level connections between presentations.