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");