On 15/08/2014 at 04:40, xxxxxxxx wrote:
Cinema 4D Version: R14
Platform: Windows ;
Language(s) : C++ ;
Im trying to figure out how to insert a Description element to my objectdata plugin via code. I already have various plugin options showing up via the res files etc and so am trying to basically grab the nodedatas Description container and insert a new Real parameter into it ( in such a way that it will show up in the attributes along with everything else when the plugin is launched ).
m trying to figure out how to insert a Description element to my objectdata plugin via code. I already have various plugin options showing up via the res files etc and so am trying to basically grab the nodedata
At the moment i am using Description->SetParameter() to achieve this by inserting a new BaseContainer that has been given test values for DESC_NAME, DESC_SHORT_NAME and DESC_UNIT but it isn`t showing up in the attributes manager.
I think it may be something to do with creating proper DESC_IDs or something. Either that or i am going about this in completely the wrong way! Which is possible as its a bit like wandering around in the dark trying to figure this stuff out without proper examples..
s or something. Either that or i am going about this in completely the wrong way! Which is possible as it
Heres the code i have which although the if statement is returning it is done, it isnt displaying the parameters as mentioned:
s the code i have which although the if statement is returning
, it isn
Bool MyPlugin::Init(GeListNode *node)
BaseContainer *descBC = desc->GetParameterI(MYPLUGIN_OBJECTWIDTH, NULL); // This returns an existing parameter successfully
BaseContainer newBC = BaseContainer();
newBC.SetString(DESC_NAME, "My Description Param");
newBC.SetString(DESC_SHORT_NAME, "My Description Param");
if (desc->SetParameter(MYPLUGIN_NEWPARAMETER, newBC, DESCID_ROOT))
GePrint("it is done");
GePrint("it is not done");
On 15/08/2014 at 05:45, xxxxxxxx wrote:
You need to do that in the NodeData::GetDDescription() function. Do a search for GetDDescription here on plugin cafe and you'll find plenty of examples.
On 15/08/2014 at 06:09, xxxxxxxx wrote:
Also, it is necessary that you include the Datatype ID in the Description ID you use for SetParameter().
On 15/08/2014 at 07:38, xxxxxxxx wrote:
Very much appreciated guys, thank you.
RE the Datatype ID Niklas - do you mean i`d create a DescID with my parameter ID, then insert the Datatype ID into that - using say DescID->PushId() ?
Maybe like this?
DescID MYPLUGIN_NEWPARAMETER = DescID(MYPLUGIN_NEWPARAMETER);
MYPLUGIN_NEWPARAMETER.PushId(DESC_UNIT_REAL); desc->SetParameter(MYPLUGIN_NEWPARAMETER, newBC, DESCID_ROOT);
I`m probably confusing things for myself
On 15/08/2014 at 07:55, xxxxxxxx wrote:
Nope, like this
DescID descId(DescLevel(MYPLUGIN_NEWPARAMETER, DA_REAL, 0));
DESC_UNIT_REAL is not a datatype ID. If you create a Floating-point parameter, use DA_REAL,
for an Integer parameter DA_LONG, for SplineData CUSTOMDATATYPE_SPLINE, etc.
On 15/08/2014 at 10:05, xxxxxxxx wrote:
Okay - thanks for that, much appreciated.