View Issue Details

IDProjectCategoryView StatusLast Update
0031653Open CASCADEOCCT:Visualizationpublic2021-12-03 16:10
Reporterkgv Assigned Tokgv  
PrioritynormalSeverityfeature 
Status newResolutionopen 
Target Version7.7.0 
Summary0031653: Visualization, V3d_View - get rid of Computed Mode
DescriptionHistorically V3d_View implements a special Computed Mode for displaying HLR presentation of shapes. This mode has several inconsistencies:
- computeHLR() and Compute() of interactive object live independently.
- HLR presentation overrides active display mode;
  at the same time, normal presentation is still managed and computed,
  and HLR presentation is linked to the presentation of the active display mode
  leading to inconsistencies and bugs.
  For instance, defining different Display Mode and Highlight Mode with active Compute Mode
  which is dynamically enabled/disabled on rotation causes misbehavior.
- HLR is defined as a special case, however real applications might have other scenarios in which they would like to continuously update presentation on camera movement or on each frame redraw.

Therefore, it is proposed revising architecture to avoid inconsistencies and provide more straightforward approach:
- HLR presentation should be computed in exactly the same way as normal presentation.
  E.g., it should be defined as dedicated Display Mode of Presentable Object,
  and presentation manager should call the same Compute() method when View is changed.
- New computePresentation() method will be defined aggregating parameters of computeHLR (camera orientation) and normal Compute() methods (passing display mode). The method will set a special flag to computed presentation indicating its invalidation state with 3 possible values - immutable (only manual updates), viewDependent (only on view orientation change), transient (on each redraw). New method by default will call old Compute() to preserve compatibility with old API.
- Presentation manager will handle per-view and transient presentations specifically, but current implementation have to be changed. Also, it is necessary to check if frustum culling is applied in advance before computing expensive HLR within computeHLR(), however this will require recomputation on panning.
- Computed Mode withing View will be removed. Application will have to switch display mode of specific shapes or default display mode in interactive context to manage HLR and non-HLR modes.
TagsNo tags attached.
Test case number

Relationships

related to 0031431 closedkgv Open CASCADE Visualization, PrsMgr_PresentableObject - simplify HLR computing interface 
related to 0031644 feedbackkgv Open CASCADE Visualization - flat skin for AIS_Manipulator presentation 

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2020-07-05 02:05 kgv New Issue
2020-07-05 02:05 kgv Assigned To => kgv
2020-07-05 02:05 kgv Relationship added related to 0031431
2020-08-28 13:57 kgv Target Version 7.5.0 => 7.6.0
2020-12-14 17:19 kgv Relationship added related to 0031644
2021-08-24 14:19 kgv Target Version 7.6.0 => 7.7.0
2021-12-03 16:10 kgv Description Updated