Initialize the PBCallInfo structure
Next, get the method ID for the function you want to call and initialize a PBCallInfo structure. You pass the signature obtained in "Getting the signature of a function" to the GetMethodID function:
// PBCallInfo contains arguments and return value
PBCallInfo ci;
// To call the class member function f_mult,
// pass its signature as the last argument
// to GetMethodID
pbmethodID mid = session->GetMethodID(cls, "f_mult",
PBRT_FUNCTION, "III");
// Initialize call info structure based on method ID
session->InitCallInfo(cls, mid, &ci);
You could use FindMatchingFunction instead of GetMethodID to get the method ID. The call would look like this, because f_mult takes two integer arguments:
pbmethodID mid = session->FindMatchingFunction(cls,
"f_mult", PBRT_FUNCTION, "int, int");