On 07/10/2013 at 03:47, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   15 
Platform:   Windows  ;   
Language(s) :     C++  ;

I'm trying to create a manager window that exposes the Per-Object Manipulation and Gimballing Rotation parameters of the manipulator tools (Move, Scale, Rotate).

Using the standard GetToolData()/GetToolPluginData() -> SetParameter() methods does nothing. Parameters of other tools can be changed this way.

It's like those values are stored somewhere else in the c4d file, but there's no mention of them in the documentation.

Anybody knows where they go and how to access them?

On 07/10/2013 at 05:01, xxxxxxxx wrote:


It is possible to change these parameters filtering the tool plugins and searching for "Scale", "Rotate" etc.
Here's some Python code that can be easily translated to C++:

import c4d
from c4d import plugins
def main() :
    toolPlugins = plugins.FilterPluginList(c4d.PLUGINTYPE_TOOL, True)
    for plugin in toolPlugins:
        if plugin.GetName()=="Scale":
            print plugin
            print plugin[c4d.MDATA_AXIS_LOCALMANIPULATION]
            plugin[c4d.MDATA_AXIS_LOCALMANIPULATION] = True
if __name__=='__main__':

On 07/10/2013 at 06:36, xxxxxxxx wrote:

Thanks Yannick.

I used

BasePlugin *plug = FindPlugin(ID_MODELING_ROTATE, PLUGINTYPE_TOOL);  

to allocate the plugin in C++.
Works like a charm.