View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0031653||Open CASCADE||OCCT:Visualization||public||2020-07-05 02:05||2021-12-03 16:10|
|Summary||0031653: Visualization, V3d_View - get rid of Computed Mode|
|Description||Historically 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.
|Tags||No tags attached.|
|Test case number|
|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|