What is the efficient way to display many arrow (quiver plot) in OpenCascade viewer

Hi guys,

I need to display many 3D rows in OpenCascade viewer, the quiver plot (image is attached). I can do it by creating many TopoDS_Shape and displaying with AIS_Shape. But the point is it's getting slow to generate arrow shapes and display them.

Do you guy have any idea to rendering the arrows faster in OpenCascade visualization?


Kirill Gavrilov's picture

Normally you would create a subclass of AIS_InteractiveObject that would compute arrows using Prs3d_Arrow or similar tool. Drawing a large number of shaded arrows might be expensive (just because of heavy number of overall triangles), so that they simpler presentations like thin line with simpler tip (also a single line segment of wider width) might be beneficial.

The performance will also depend ot presentation builder logic (it is preferred putting all arrows into a single / small number of Graphic3d_ArrayOfPrimitives). Practically speaking using a single AIS_Shape for a set of arrows should be also fine for a number of arrows on your screenshot.