Number of Display Conduit instances

Hello,

I am looking for the best practice to draw dynamically a large set of the objects. Those would include mostly Curves and Breps. However this set is stored in separate Lists. At the moment I have a separate Conduit Class and calling one instance of this for drawing all the dynamic objects that should be visible.

The question is - if it is more smart (and possible at all) to have few Conduit class instances and use appropriate instance to redraw objects that have changed its geometry only.

Any suggestion?

Thanks,
Dmitriy

@jeff any recommendations here?

A few conduits is all right, but you should probably avoid too many of them. It doesn’t matter whether geometry has or hasn’t changed, you still need to draw all of it every time, so there’s no benefit to be gained there by putting geometry in different conduits.

Thanks, David.

In my opinion, it’s better to manage the geometry inside your plugin and use one conduit to pertorm any needed drawing. I would also group your geometry logically and create methods within the conduit class to draw them… For example: DrawMyCurves(), DrawMyBreps(), DrawMyMeshes(), etc… That way you only determine once whether or not any of those logical groupings should actually draw and then draw them all at once… unless there is a reason that some might draw while others will not.

I would also try to keep from using the SC_DRAWOBJECT channel as much as possible…it can hurt performance, especially if you are using multiple conduits. If at all possible, try to draw everything inside SC_POSTDRAWOBJECTS, unless there are specific reasons/features/effects that prevent you from doing so.

-Jeff

Thanks, Jeff

This is a useful suggestion - thanks jeff!