[vtkusers] CALLBACK / function pointers ?

John Platt jcplatt at dsl.pipex.com
Thu May 6 20:07:35 EDT 2010


Hi,

A long shot but try changing "long unsigned int eventId" to "unsigned long 
eventId" in Reaction.

John.

----- Original Message ----- 
From: "Antonin Perrot-Audet" <antonin07130 at gmail.com>
To: "John Platt" <jcplatt at dsl.pipex.com>; <vtkusers at vtk.org>
Sent: Thursday, May 06, 2010 10:42 PM
Subject: Re: [vtkusers] CALLBACK / function pointers ?


> Yes, and it can compile then, but it makes my program crash, when it tries 
> to set the callback :
> vtkCBSynchroCam->SetCallback( A::Reaction );
>
>
> I just have a std::cout << "React" << std::endl; in the Reaction function.
>
>
> Thanks,
>
> Antonin
>
> On 5/6/10 5:27 PM, John Platt wrote:
>> Hi,
>>
>> Have you tried
>>
>>    static void Reaction (... )
>>    {
>>    }
>>
>> HTH
>>
>> John
>>
>>
>> ----- Original Message ----- From: "Antonin Perrot-Audet" 
>> <antonin07130 at gmail.com>
>> To: <vtkusers at vtk.org>
>> Sent: Thursday, May 06, 2010 9:47 PM
>> Subject: [vtkusers] CALLBACK / function pointers ?
>>
>>
>>> Hello all,
>>>
>>> I have a hopefully simple problem, but I have been struggling for days 
>>> and I hope someone has an answer :
>>>
>>> I am trying to use *VTK callbacks* in a custom class :
>>> The problem is that I can't get it to execute the function I created.
>>>
>>> I get a :
>>> *no matching function for call to 
>>> 'vtkCallbackCommand::SetCallback(<unresolved overloaded function 
>>> type>)'*
>>> when I try to compile.
>>>
>>> It seems that it can't find my function based on its signature ?
>>>
>>>
>>> I wrote a simple example :
>>> --------------------------------------------------------
>>> // all necessary includes
>>>
>>> class A
>>> {
>>>
>>> //[...]
>>> public:
>>> //[...]
>>>
>>>
>>> void SetObserversA ()
>>>     {
>>>         // I create a callback object
>>>         vtkSmartPointer<vtkCallbackCommand> vtkCBSynchroCam = 
>>> vtkSmartPointer<vtkCallbackCommand>::New();
>>>
>>>         // HERE IS THE PROBLEM : I TRY TO SET THE CALLBACK FUNCTION
>>>         vtkCBSynchroCam->SetCallback( A::Reaction );
>>>
>>>           RenderWin->AddObserver( vtkCommand::AnyEvent, 
>>> vtkCBSynchroCam );
>>>     }
>>>
>>>
>>> void Reaction ( vtkObject* caller, long unsigned int eventId, void* 
>>> clientData, void* callData )
>>>     {
>>>     // do some stuff with the class' private
>>>     }
>>>
>>>
>>> private:
>>>     vtkRenderWindow*    RenderWin;
>>>
>>> };
>>>
>>> --------------------------------------------------------
>>>
>>>
>>> I also tried to use :
>>> vtkCBSynchroCam->SetCallback( Reaction );
>>> (without the A::)
>>> but I still have the same error.
>>>
>>>
>>> I would greatly appreciate if someone could take two minutes to help me 
>>> with that.
>>>
>>> Thanks !
>>>
>>> -- 
>>> Antonin
>>>
>>> _______________________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at 
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Please keep messages on-topic and check the VTK FAQ at: 
>>> http://www.vtk.org/Wiki/VTK_FAQ
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.vtk.org/mailman/listinfo/vtkusers
>>>
>>
>>
>
>
> -- 
> Antonin Perrot-Audet
> Electrical Engineering&  Computer Sciences, INSA Lyon
> M2 GEGP Signal&  Image Processing, INSA Lyon, UCBL, Centrale Lyon
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at 
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at: 
> http://www.vtk.org/Wiki/VTK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
> 





More information about the vtkusers mailing list