[vtkusers] question about vtkCommand

Darshan Pai darshanpai at gmail.com
Mon Apr 23 12:14:20 EDT 2012


One more question . Are you calling Render() in the thread or the main
program ?

On Mon, Apr 23, 2012 at 12:12 PM, Darshan Pai <darshanpai at gmail.com> wrote:

> I meant to not use SetOrientation at all and instead use the Transform or
> the matrix
>
> On Mon, Apr 23, 2012 at 3:50 AM, qlizhi <qlizhi at gmail.com> wrote:
>
>> **
>> i have tried  SetUserMatrix() , the result is the same. it seems that
>> after [actor->SetOrientation(ori)]  the actor lost its data source, so it
>> render nothing.
>>
>> ------------------------------
>> qlizhi
>>
>>  *From:* Darshan Pai <darshanpai at gmail.com>
>> *Date:* 2012-04-23 12:42
>> *To:* qlizhi <qlizhi at gmail.com>
>> *CC:* David Doria <daviddoria at gmail.com>; vtkusers <vtkusers at vtk.org>
>> *Subject:* Re: [vtkusers] question about vtkCommand
>>  Why not try using SetUserTransform() or SetUserMatrix()
>>
>> On Mon, Apr 23, 2012 at 12:32 AM, qlizhi <qlizhi at gmail.com> wrote:
>>
>>> **
>>>  Thanks for reply:
>>>             here is my main code, and if i use [window->Render()],
>>> there will be an error:
>>>
>>> ERROR: In D:\Program Files (x86)\VTK 5.8.0\VTK\Rendering\vtkWin32OpenGLRenderWindow.cxx, line 247
>>>
>>> vtkWin32OpenGLRenderWindow (06DFC0B0): wglMakeCurrent failed in MakeCurrent(), error: The
>>> requested resource is in use.
>>>
>>>
>>> void CupGeologyView::addInternetEvent( vtkActor *actor, vtkRenderWindow *window)
>>> {
>>> /*actor->SetOrientation(27.0, 27.0, 27.0);*/
>>> internetEvent = new cupVtkUserInternetEvent;
>>> QThread * thread = new QThread(this);
>>> internetEvent->moveToThread(thread);
>>>
>>> connect(ui.allowInternetEvent, SIGNAL(triggered()), internetEvent, SLOT(init()));
>>> thread->start();
>>>
>>> CupRemoteModelCallback *mo1 = CupRemoteModelCallback::New();
>>> mo1->actor = actor;
>>> mo1->window = window;
>>> internetEvent->AddObserver(vtkCommand::UserEvent,mo1);
>>> mo1->Delete();
>>> }
>>>
>>>
>>> void CupRemoteModelCallback::Execute( vtkObject *caller, unsigned long eventId, void *callData )
>>> {
>>>
>>> cupVtkUserInternetEvent *internetEvent = reinterpret_cast<cupVtkUserInternetEvent *>(caller);
>>> if (eventId = vtkCommand::UserEvent)
>>> {
>>> if (actor!= NULL && window != NULL)
>>> {
>>> //to-do
>>> int* xyz = (int*)callData;
>>> double ori[3];
>>> ori[0] = xyz[0];
>>> ori[1] = xyz[1];
>>> ori[2] = xyz[2];
>>> actor->SetOrientation(ori);
>>> /*window->Render();*/
>>> }
>>> }
>>> }
>>>
>>> ------------------------------
>>> qlizhi
>>>
>>>  *From:* David Doria <daviddoria at gmail.com>
>>> *Date:* 2012-04-22 21:53
>>> *To:* qlizhi <qlizhi at gmail.com>
>>> *CC:* vtkusers <vtkusers at vtk.org>
>>> *Subject:* Re: [vtkusers] question about vtkCommand
>>>    2012/4/22 qlizhi <qlizhi at gmail.com>
>>>
>>>> **
>>>>
>>>> hi, all!
>>>> i write a subclass of vtkCommand, and in its function Execute(), i try
>>>> to change an actor's Orientation by code [actor->SetOrientation(ori)].
>>>> I made breakPoint on that line, it runs. But   the renderWindow  show
>>>> nothing. Can anybody tell me why?
>>>> Sorry for my poor english!
>>>> ------------------------------
>>>>  qlizhi
>>>>
>>> Did you call renderWindow->Render()? You'll probably have to make us an
>>> as-small-as-possible code sample so we can see exactly what you're doing.
>>>
>>> David
>>>
>>> _______________________________________________
>>> 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
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20120423/6f6b5a41/attachment.htm>


More information about the vtkusers mailing list