[vtkusers] vtkInteractorStyle

Steffen Oeltze Steffen.Oeltze at Student.Uni-Magdeburg.DE
Sat Oct 5 05:46:13 EDT 2002


Alan McIntyre wrote:

> Steffen,
>
> As far as passing function pointers goes, there is a difference 
> between this:
>
>     obj->SetSomething(my_function());
>
> and this:
>
>     obj->SetSomething(&my_function); 


I receive an error during compiling saying that this is not a valid call 
for a member-function.

obj->SetLeftButtonPressMethodArgDelete(&this->get_mousePos);

>
>
> The first one passes the result of a call to function() into the 
> SetSomething method, while the second one passes the address of the 
> 'my_function' function into the SetSomething method.  I think the '&' 
> in the second example isn't necessary in the eyes of some (most?) 
> compilers, but having it there doesn't do any harm as far as I know. 
> The second example is the one you want in your particular case.
>
> As for passing a C++ class method in as the parameter to 
> SetLeftButtonPressMethodArgDelete, I'm not exactly sure about the 
> 'proper' way to do that, since it appears to be expecting a plain C 
> function.  What kind of compiler error are you getting?
>
> I don't have the VTK source on my machine here at home right now, so 
> I'm kind of in the dark as to the usage/behavior of 
> SetLeftButtonPressMethodArgDelete, but I'm wondering if the reason the 
> it expects a pointer to a function with a void* parameter is so that 
> class methods can be given to it.  If I recall correctly, isn't the 
> pointer to the object pushed onto the stack (kind of like an invisible 
> first parameter) when calling class methods?   If that's the case, 
> perhaps the get_mousePos(void*) method in Steffen's example could be 
> passed if it was declared like this:
>
>     void get_MousePos();
>
> Somebody please let me know if I'm totally clueless here; I don't want 
> to give Steffen any bad info.
>
> Thanks,
> Alan 


Thank you very much,
Steffen

>





More information about the vtkusers mailing list