View Full Version : Function port type (NOT_FUNCTION)
Myagi
05-17-2010, 09:05 PM
Does anyone know what datatype it is or how it works?
The SDK docs are outdated and don't even include NOT_FUNCTION and NOT_MATERIAL. While material is easy because the LWMaterial struct is defined, the Function type is more elusive.
jameswillmott
05-17-2010, 09:17 PM
It's pretty easy.
Create(void *priv, NodeID nodeID, LWError *err)
{
iMyPlug *inst;
//Reserve enough memeory for our instance structure
inst = calloc(1, sizeof(iMyPlug));
inst->function_input = nodeInputFunc->create(inst->nodeID, NOT_FUNCTION,"Function",NULL);
.....
}
.........
Evaluate(iTime *inst, LWNodalAccess *na, NodeOutputID nid, NodeValue nv)
{
double variable_to_be_funcded = 0.23765;
nodeInputFunc->evaluate(inst->function_input, na, &variable_to_be_funcded);
....
}
inst->function_input is assigned when you create your inputs in the Create callback. In Evaluate, the address of 'variable_to_be_funcded' is passed up the function input to a function node, the function node does it's operation and you then have a new value in 'variable_to_be_funcded' to work with. In this case I passed 0.23765 to the function node but of course it can be any scalar value.
Hope this helps, it's been a long time since I touched this aspect of nodes.
Myagi
05-17-2010, 09:30 PM
Great, thanks! That should be more than enough info :) I'm only looking into supporting the port type, but pass it along to other nodes without "doing" anything myself, so the data type was my main concern.
vBulletin® v3.8.2, Copyright ©2000-2012, Jelsoft Enterprises Ltd.