Hi I'm trying to build 2 independent views with the option of independent filtering *and *joined filtering of the same data/object. I want 2 users to use ParaView with independent head-tracking, allow them to independently apply filters to the same dataset, have the option of sharing the filters between them and sharing the views.
In my test code attached below, the trackers are not able to control the viewpoint of either windows. The actual plugin code with 1 tracker and 1 view works: https://github.com/alexisylchan/ParaView/blob/master/Plugins/VRPN/pqVRPNStarter.cxx *Test code:* // Normal geometry creation vtkConeSource* cone = vtkConeSource::New(); vtkPolyDataMapper * coneMapper = vtkPolyDataMapper::New(); coneMapper->SetInputConnection(cone->GetOutputPort()); vtkActor* coneActor = vtkActor::New(); coneActor->SetMapper(coneMapper); coneActor->SetPosition(10,0,0); vtkPolyDataReader* reader = vtkPolyDataReader::New(); reader->SetFileName("D:/alexisc/good-spindle.vtk"); vtkPolyDataMapper* mapper = vtkPolyDataMapper::New(); mapper->SetInputConnection(reader->GetOutputPort()); vtkActor* actor = vtkActor::New(); actor->SetMapper(mapper); actor->SetScale(0.01, 0.01, 0.01); vtkAxesActor* axesActor = vtkAxesActor::New(); vtkRenderer* renderer = vtkRenderer::New(); renderer->AddViewProp(actor); renderer->AddViewProp(axesActor); renderer->AddViewProp(coneActor); vtkRenderWindow* window = vtkRenderWindow::New(); window->SetSize(1000,1000); window->AddRenderer(renderer); //Add second window vtkRenderWindow* window2 = vtkRenderWindow::New(); window2->SetSize(1000,1000); window2->AddRenderer(renderer); /////////////////////////FIRST TRACKER//////////////////////////// //Create connection to VRPN Tracker using vtkInteractionDevice.lib vtkVRPNTracker* tracker = vtkVRPNTracker::New(); tracker->SetDeviceName("Tracker0@tracker1-cs:3883"); //My custom Tracker placement tracker->SetTracker2WorldTranslation(-7.47, 0, -1.5); // Rotate 90 around x so that tracker is pointing upwards instead of towards view direction. double t2w[3][3] = { 1, 0, 0, 0, 0, -1, 0, 1, 0 }; double t2wQuat[4]; vtkMath::Matrix3x3ToQuaternion(t2w, t2wQuat); tracker->SetTracker2WorldRotation(t2wQuat); tracker->Initialize(); //Create device interactor style (defined in vtkInteractionDevice.lib) that determines how the device manipulates camera viewpoint vtkVRPNTrackerStyleCamera* trackerStyleCamera = vtkVRPNTrackerStyleCamera::New(); trackerStyleCamera->SetTracker(tracker); trackerStyleCamera->SetRenderer(renderer); /////////////////////////SECOND TRACKER//////////////////////////// //Create connection to VRPN Tracker using vtkInteractionDevice.lib vtkVRPNTracker* tracker2 = vtkVRPNTracker::New(); tracker2->SetDeviceName("Tracker1@tracker1-cs:3883"); //My custom Tracker placement tracker2->SetTracker2WorldTranslation(-7.0, 0, -1.5); // Rotate 90 around x so that tracker is pointing upwards instead of towards view direction. double t2w2[3][3] = { 1, 0, 0, 0, 0, -1, 0, 1, 0 }; double t2wQuat2[4]; vtkMath::Matrix3x3ToQuaternion(t2w2, t2wQuat2); tracker2->SetTracker2WorldRotation(t2wQuat2); tracker2->Initialize(); //Create device interactor style (defined in vtkInteractionDevice.lib) that determines how the device manipulates camera viewpoint vtkVRPNTrackerStyleCamera* trackerStyleCamera2 = vtkVRPNTrackerStyleCamera::New(); trackerStyleCamera2->SetTracker(tracker2); trackerStyleCamera2->SetRenderer(renderer); ////////////////////////////////////////////////////////////////////////////// vtkDeviceInteractor* inputInteractor = vtkDeviceInteractor::New(); //Add first tracker to Device Interactor inputInteractor->AddInteractionDevice(tracker); inputInteractor->AddDeviceInteractorStyle(trackerStyleCamera); vtkDeviceInteractor* inputInteractor2 = vtkDeviceInteractor::New(); //Add second tracker to second Device Interactor inputInteractor2->AddInteractionDevice(tracker2); inputInteractor2->AddDeviceInteractorStyle(trackerStyleCamera2); vtkInteractionDeviceManager* idManager = vtkInteractionDeviceManager::New(); //Get vtkRenderWindowInteractor from the Interaction Device Manager (defined in vtkInteractionDevice.lib) vtkRenderWindowInteractor* interactor = idManager->GetInteractor(inputInteractor); //Get second interactor vtkRenderWindowInteractor* interactor2 = idManager->GetInteractor(inputInteractor2); //Set the vtkRenderWindowInteractor's style (trackballcamera) and window vtkInteractorStyleTrackballCamera* interactorStyle = vtkInteractorStyleTrackballCamera::New(); interactor->SetRenderWindow(window); interactor->SetInteractorStyle(interactorStyle); //Get second interactorStyle vtkInteractorStyleTrackballCamera* interactorStyle2 = vtkInteractorStyleTrackballCamera::New(); interactor2->SetRenderWindow(window2); interactor2->SetInteractorStyle(interactorStyle2); interactor->Initialize(); interactor2->Initialize(); // Clean up // cone->Delete(); reader->Delete(); mapper->Delete(); actor->Delete(); renderer->Delete(); window->Delete(); tracker->Delete(); trackerStyleCamera->Delete(); inputInteractor->Delete(); idManager->Delete(); interactorStyle->Delete(); window2->Delete(); tracker2->Delete(); trackerStyleCamera2->Delete(); inputInteractor2->Delete(); interactorStyle2->Delete(); // Start interacting interactor->Start(); interactor2->Start(); On Mon, Feb 28, 2011 at 10:49 AM, Utkarsh Ayachit < [email protected]> wrote: > What exactly are you trying to do? vtkSMMultiViewRenderModuleProxy is > deprecated, but it was never meant to be used directly anyways -- one > simply created a view proxy and used it. Which is still true. Simply > create multiple "RenderView" proxies and set "ViewPosition" and > "ViewSize" properties on them to set up the layout. > > Utkarsh > > > On Sun, Feb 27, 2011 at 4:44 PM, Alexis Chan <[email protected]> > wrote: > > Hi > > > > I am interested in implementing multiple views (multiple interactors and > > multiple renderers). I think this is a pretty good example for me to > follow: > > http://www.paraview.org/Wiki/Multiple_views > > > > But I cannot find vtkSMMultiViewRenderModuleProxy in my clone of the > > ParaView git repository. > > > > Has the class been deprecated? > > > > > > -- > > Alexis YL Chan > > > > _______________________________________________ > > 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 ParaView Wiki at: > > http://paraview.org/Wiki/ParaView > > > > Follow this link to subscribe/unsubscribe: > > http://www.paraview.org/mailman/listinfo/paraview > > > > > -- Alexis YL Chan <http://alexisylchan.wordpress.com/>
_______________________________________________ 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 ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
