Overriding An Objects BaseDraw

On 28/07/2017 at 15:22, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   14 
Platform:    Mac  ;  
Language(s) :     C++  ;


Is there a way to prevent an object's BaseDraw output from showing up in the viewport? Similar to a Display Tag.    I want to put a tag plugin on a Spot Light and stop it from drawing in the viewport and instead use the Tag's BaseDraw to output something different.


On 31/07/2017 at 02:59, xxxxxxxx wrote:

Hi Dan,

unfortunately there's no direct or official way to achieve this.

We discussed a possible solution, which is probably not ideal and also shouldn't be considered as an official approach, but you may want to consider it anyway.

You could use MSG_MENUPREPARE to create an additional Display tag. Setting the "Style" parameter in the Display tag to "Skeleton" would reduce the light to be drawn just as a point.
Also you may run into issues using Draw() in your TagData directly. Instead doing the drawing in a SceneHook as described in this blog article could help then.