Getting Plugin custom data

On 01/07/2014 at 11:46, xxxxxxxx wrote:

User Information:
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;
			while (true)
				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.

Thank you.

On 01/07/2014 at 11:56, xxxxxxxx wrote:

Hi GonzaloO,

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:

Hi Niklas.

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.


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.