On 01/07/2014 at 11:46, xxxxxxxx wrote:
Cinema 4D Version: R15
Platform: Windows ; Mac OSX ;
Language(s) : C++ ;
Hello, I'm implementing a plugin in C++ and trying to interact with the VRay plugin. I found that I can't access to the custom parameters of the plugin.
This is the test code that I am using:
BaseList2D *mat =nullptr;
//Get the vray plugin for Vray Advanced Material
BasePlugin *plug = FindPlugin(1020295, PLUGINTYPE_MATERIAL);
if (plug && plug->Message(MSG_RETRIEVEPRIVATEDATA, &mat))
if ( mat != nullptr)
BaseContainer *bc = mat->GetDataInstance();
if (bc != nullptr)
Int32 i = 0;
Int32 id = 0;
id = bc->GetIndexId(i);
if (id == NOTOK) break;
Int32 dt = bc->GetData(id).GetType();
GePrint("ID: " + String::IntToString(id));
GePrint(" ->Type: " + String::IntToString(dt));
Any ideas? Tips? Something I should try?
Any comments are welcome.
On 01/07/2014 at 11:56, xxxxxxxx wrote:
what custom parameters are you talking about? And why do you think that
MSG_RETRIEVEPRIVATEDATA sent to the Advanced Material Plugin gives you a BaseList2D* ?
What are you trying to do?
On 01/07/2014 at 12:55, xxxxxxxx wrote:
I'm trying to get the Texture Map on the diffuse layer. I need the path of the texture so i can get all the textures used in the scene and save them in a folder. I already did it with TextureTags that is the easy part, but with the VRay materials I can't get the data that is in the GUI.
I have used the same code with a diferent plugin and worked giving to me a BaseList2D*. I do it with the FBX exporter and get all the parameters used to export the FBX just changing one line.
BasePlugin *plug = FindPlugin(FBX_PLUGIN_ID, PLUGINTYPE_SCENESAVER);
How can I know what the MSG_RETRIEVEPRIVATEDATA return?
Thank you for your answer
PS: Sorry for my clumsy english.
On 03/07/2014 at 09:41, xxxxxxxx wrote:
Never mind, my bad.
I should use the GetParameter() function to get the parameters I need.
Thanks anyway guys.