|Anonymous | Login||2019-01-17 12:45 MSK|
|My View | View Issues | Change Log | Roadmap|
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0030309||Community||[OCCT] OCCT:Visualization||public||2018-10-26 10:57||2018-10-26 12:38|
|Product Version||[OCCT] 7.3.0|
|Target Version||[OCCT] 7.4.0*||Fixed in Version|
|Summary||0030309: AIS_Shape, Visualization - Free Boundary Aspect Is Not Correctly Used in Shaded Display Mode|
|Description||I am aware of the test script test/bugs/vis/bug23407_2. It seems to prove that my error report is wrong, because there the free boundary aspect setting in shaded display mode does exactly what it should.|
Yet I have spent many hours to get it to work in my application - and I just couldn't (neither on Windows nor on Linux). Therefore I have modified the Tutorial sample to prove that there is something wrong within OCCT and it seems as if there is indeed a problem. Setting the aspect does not correctly modify the display. Only when hovering with the mouse over the shape, the highlighted border has the line type set in the free boundary aspect.
When the display is set to wireframe mode, the free boundary aspect is correctly used. But not in shaded mode.
|Steps To Reproduce||Please put the uploaded source file into the Tutorial sample, compile the sample and run it. When you click on the bottle button, a simple shell is created. Its free boundary is not displayed as expected.|
|Tags||No tags attached.|
|Test case number|
|Attached Files||DocumentTut.cxx (1,907 bytes) 2018-10-26 10:57|
edited on: 2018-10-26 11:26
I don't see any issues with the sample.
UnFreeBoundaryAspect()/FreeBoundaryAspect() are not used for Shaded presentation of AIS_Shape at all (as far as shape has triangulation) - they have effect only in Wireframe presentation mode (StdPrs_WFShape builder).
Instead, FaceBoundaryAspect() has been introduced by patch #0023407 mentioned by you, which is used only within Shaded presentation (StdPrs_ShadedShape builder).
If you found current documentation unclear / confusing in this aspect - patches improving documentation are welcome.
Thank you for your answer.
I have three remarks:
- The documentation of SetFreeBoundaryDraw(...) state explicitely "Enables or disables drawing of free boundaries for shading presentations". If it has only effect in wireframe presentation mode, this is even more than "unclear", it is misleading, isn't it?
- If the un-/free boundary aspects are not used for shaded presentation at all, is it correct then that they influence highlighting? The line style is used for highlighting. This is inconsistent.
- You are right, with SetFaceBoundaryAspect(...) I can enable face boundaries in shaded presentation mode. But it seems as if I could not enable them only for free boundaries, which would be a pity. It is quite common in other CAD programs (CATIA) to have the possibility to display free shell boundaries without displaying all face boundaries. Or is there a way to do that?
> The line style is used for highlighting. This is inconsistent.
This is used only in case if Wireframe display mode is forced for highlighting.
> - The documentation of SetFreeBoundaryDraw(...) state explicitely
> "Enables or disables drawing of free boundaries for shading presentations".
> If it has only effect in wireframe presentation mode,
> this is even more than "unclear", it is misleading, isn't it?
This is a design issue of Prs3d_Drawer - it specifies a constant list of presentation properties, while only part of them / none are actually taken into account within specific Display Mode and specific AIS_InteractiveObject implementation. Logically, this class should be rather a map of arbitrary aspects, so that each AIS_InteractiveObject implementation could define which properties are supposed to be used and extend the list of options at application side without modifying OCCT.
In particular, the misleading comment to method SetFreeBoundaryDraw() about Shaded presentation was added by patch for #0025773, where supposedly OCCT-based application used this aspect within a **custom** AIS_InteractiveObject implementation (or AIS_Shape subclass) computing combined Wireframe+Shaded presentation (hence, independently from FaceBoundaryAspect()).
> But it seems as if I could not enable them only for free boundaries,
It is quite straightforward sub-classing AIS_Shape and overriding Compute() to add different presentations as desired by application (like calling StdPrs_ShadedShape/StdPrs_WFShape tools or ::Compute() method of base class with different options).
Okay, that sounds promising. I will try it.
Still, to be honest, I don't have a good feeling about the current state of Prs3d_Drawer. I am quite sure that another one would also get a wrong impression of how to use it and might also think that the free boundary aspect defines free boundary display in shaded mode.
Thanks for your help!
|2018-10-26 10:57||BenjaminBihler||New Issue|
|2018-10-26 10:57||BenjaminBihler||Assigned To||=> kgv|
|2018-10-26 10:57||BenjaminBihler||File Added: DocumentTut.cxx|
|2018-10-26 11:24||kgv||Note Added: 0080360|
|2018-10-26 11:24||kgv||Assigned To||kgv => BenjaminBihler|
|2018-10-26 11:24||kgv||Status||new => feedback|
|2018-10-26 11:25||kgv||Relationship added||related to 0023407|
|2018-10-26 11:26||kgv||Note Edited: 0080360||View Revisions|
|2018-10-26 12:13||BenjaminBihler||Note Added: 0080361|
|2018-10-26 12:13||BenjaminBihler||Assigned To||BenjaminBihler => kgv|
|2018-10-26 12:20||kgv||Note Added: 0080363|
|2018-10-26 12:20||kgv||Relationship added||related to 0025773|
|2018-10-26 12:27||kgv||Note Added: 0080364|
|2018-10-26 12:30||kgv||Note Added: 0080365|
|2018-10-26 12:38||BenjaminBihler||Note Added: 0080368|
|Copyright © 2000 - 2019 MantisBT Team|