Where is MDATA_AXIS_LOCALMANIPULATION stored?



  • 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:

    Hi,

    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
                c4d.EventAdd()
                
      
    if __name__=='__main__':
        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.


Log in to reply