MantisBT - Open CASCADE
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0030598||Open CASCADE||[OCCT] OCCT:Visualization||public||2019-03-21 19:40||2020-12-29 12:47|
|Assigned To|| |
|Priority||normal||Severity||integration request|| |
|Product Version|| |
|Target Version||[OCCT] 7.6.0*||Fixed in Version|| |
|Test case number|
|Summary||0030598: Visualization - redesign Prs3d_Drawer as aspects map|
|Description||Current Prs3d_Drawer design provides a list of fixed properties of different types:|
- Boolean flags
- Real parameters
All these properties can be either defined within Prs3d_Drawer instance ("own" aspects), or retrieved from Link aspect.
In addition, most properties are dynamically initialized and stored as Prs3d_Drawer instance fields when fetched and actually undefined (property is not "own" nor defined within Link).
This is an obsolete approach which should be avoided - instead it is proposed creating a global Prs3d_Drawer instance to preserve current behavior or to throw exception in this case.
The new Prs3d_Drawer design should define a map of properties so that it is preferable to define common base class for all properties. The key type of this map is to be determined - it might be string or integer number with enumeration defining UPPER value for values reserved by OCCT, so that applications can define own properties.
The rationale for map of aspects instead of a fixed list is that even existing Prs3d_Drawer definition includes too many properties, while most of properties have effect only within sub-set of AIS classes. It is also impossible defining more presentation properties through common mechanism of Prs3d_Drawer without its extension, so that custom presentations have to define such properties as class fields.
To avoid massive API changes, existing getter/setters have to be preserved.
MeshVS_Drawer is one of candidates for possible usage of new Prs3d_Drawer API.
|Steps To Reproduce|
and documentation updates
|Tags||No tags attached.|
|related to ||0030309||feedback ||kgv ||Community ||AIS_Shape, Visualization - Free Boundary Aspect Is Not Correctly Used in Shaded Display Mode |
|related to ||0031424||closed ||kgv ||Open CASCADE ||Visualization - stop using Prs3d_Drawer::HLRAngle() parameter |
|related to ||0031607||new ||kgv ||Open CASCADE ||Visualization, Graphic3d_Aspects - store Front/Back shading materials via Handles |
|2019-03-21 19:40||kgv||New Issue|
|2019-03-21 19:40||kgv||Assigned To|| => tizmaylo|
|2019-03-21 19:40||kgv||Status||new => assigned|
|2019-03-25 14:25||kgv||Relationship added||related to 0030309|
|2019-03-25 14:26||kgv||Description Updated||bug_revision_view_page.php?rev_id=20908#r20908|
|2019-07-03 10:19||kgv||Relationship added||related to 0030826|
|2019-08-13 12:04||kgv||Target Version||7.4.0 => 7.5.0|
|2019-11-13 19:15||kgv||Assigned To||tizmaylo => |
|2020-03-13 09:20||kgv||Relationship added||related to 0031424|
|2020-06-11 08:11||nds||Note Added: 0092540|
|2020-06-11 11:22||kgv||Relationship added||related to 0031607|
|2020-09-21 17:42||kgv||Target Version||7.5.0 => 7.6.0*|
|2020-10-09 09:54||kgv||Relationship added||related to 0031832|
|2020-12-29 12:47||kgv||Relationship added||related to 0032027|
Some metric: 62781 Prs3d_Drawers took:
39,33 Mb of 'MemWorkingSet' memory,
40,5 Mb of 'MemSwapUsage',
40,5 Mb of 'MemSwapUsagePeak'.