View Issue Details

IDProjectCategoryView StatusLast Update
0030598Open CASCADEOCCT:Visualizationpublic2023-08-01 15:09
Reporterkgv Assigned Toasuraven 
PrioritynormalSeverityintegration request 
Status assignedResolutionopen 
Target VersionUnscheduled 
Summary0030598: Visualization - redesign Prs3d_Drawer as aspects map
DescriptionCurrent Prs3d_Drawer design provides a list of fixed properties of different types:
- Boolean flags
- Real parameters
- Prs3d_ShadingAspect
- Prs3d_TextAspect
- Prs3d_IsoAspect
- Prs3d_LineAspect
- Prs3d_PlaneAspect
- Prs3d_ArrowAspect
- Prs3d_DatumAspect
- Prs3d_DimensionAspect

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.
TagsNo tags attached.
Test case number


parent of 0032704 closedvpozdyayev Open CASCADE Visualization, Prs3d_Drawer - do not implicitly create aspects within getters 
parent of 0032710 newvpozdyayev Open CASCADE Visualization, Prs3d_Drawer - getters for own aspects 
related to 0030309 closedbugmaster Community AIS_Shape, Visualization - Free Boundary Aspect Is Not Correctly Used in Shaded Display Mode 
related to 0031424 closedkgv Open CASCADE Visualization - stop using Prs3d_Drawer::HLRAngle() parameter 
related to 0031607 newvpozdyayev Open CASCADE Visualization, Graphic3d_Aspects - store Front/Back shading materials via Handles 
Not all the children of this issue are yet resolved or closed.



2020-06-11 08:11

developer   ~0092540

Some metric: 62781 Prs3d_Drawers took:
39,33 Mb of 'MemWorkingSet' memory,
40,5 Mb of 'MemSwapUsage',
40,5 Mb of 'MemSwapUsagePeak'.

Issue History

Date Modified Username Field Change
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
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
2021-02-09 15:19 asuraven Assigned To => asuraven
2021-02-09 15:20 asuraven Status assigned => feedback
2021-02-09 15:20 asuraven Status feedback => assigned
2021-08-24 14:19 kgv Target Version 7.6.0 => 7.7.0
2021-12-01 12:06 kgv Relationship added parent of 0032704
2021-12-02 21:52 kgv Relationship added parent of 0032710
2022-08-17 11:55 kgv Target Version 7.7.0 => 7.8.0
2023-08-01 15:09 dpasukhi Target Version 7.8.0 => Unscheduled