CUSTOM DISPALY MODE

how can we write custom displaymode.

i need a dispaly mode which is a mix of shaded mode and wireframe like we see in cad exchanger..

I need to see the flat lines also when we are showing shaded mode.

Can anybody help me

Thanks in advance

EricThompson's picture

The trick is to derive your own class from AIS_Shape, and override its Compute( const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode ) method.

Within your Compute method make the following two calls:

// Draw the wireframe
StdPrs_WFDeflectionShape::Add(aPresentation,Shape(),myDrawer);
// Draw the solid surfaces
StdPrs_ShadedShape::Add(aPresentation,Shape(),Attributes());

Timo Roth's picture

Dear Forum supervisor,

wouldn't it be good to add this combination of wireframe and shaded mode as a separate display mode to AIS_Shape?
Then it wouldn't be necessary to derive an own subclass from AIS_Shape for this purpose. As this mode is available in many CAD applications today, many OCC-based applications would benefit from it.
In our application we simulated this mode until now by using shaded mode together with colored highlighting.

Regards,
Timo

Arjan Schouten's picture

+1

Forum supervisor's picture

Hi Timo,

You are always welcome to improve Open CASCADE Technology and make a contribution via the Collaborative portal -
http://dev.opencascade.org/index.php?q=home/get_involved

Regards,
Forum Supervisor

Timo Roth's picture

I added a feature request in the bug tracker:
http://tracker.dev.opencascade.org/view.php?id=23359

Unfortunately, I'm not very familiar with the internals of AIS_Shape. Maybe someone else did already the corresponding modifications and would be ready to contribute the code?

Regards,
Timo

Pawel's picture

The change introduced in branch 23407 does the job!
Very nice!

Pawel