本文整理汇总了C++中vtkSmartPointer::AddObserver方法的典型用法代码示例。如果您正苦于以下问题:C++ vtkSmartPointer::AddObserver方法的具体用法?C++ vtkSmartPointer::AddObserver怎么用?C++ vtkSmartPointer::AddObserver使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vtkSmartPointer
的用法示例。
在下文中一共展示了vtkSmartPointer::AddObserver方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: initScene
void initScene(vtkSmartPointer<vtkRenderer> render, vtkSmartPointer<vtkRenderWindow> renWin,
vtkSmartPointer<vtkRenderWindowInteractor> rwi, vtkSmartPointer<vtkInteractorStyleTrackballCamera> style){
splatAssembly = 0;
tranparencyEnabled = false;
render->SetBackground(clear_color);
renWin->GetRenderers()->RemoveAllItems();
renWin->AddRenderer(render);
renWin->SetSize(window_width, window_height );
textActor->SetInput("Init");
textActor->SetDisplayPosition(window_width*0.5, window_height*0.05);
vtkTextProperty *tprop = textActor->GetTextProperty();
tprop->SetColor(0.0,0.0,1.0);
tprop->SetJustificationToCentered();
render->AddViewProp(textActor);
VTK_CREATE(vtkCallbackCommand, keyCommand);
VTK_CREATE(vtkCallbackCommand, mouseCommand);
keyCommand->SetClientData(style);
keyCommand->SetCallback(keyCallback);
mouseCommand->SetClientData(style);
mouseCommand->SetCallback(mouseCallback);
style->AddObserver(vtkCommand::KeyPressEvent, keyCommand);
style->AddObserver(vtkCommand::MouseMoveEvent, mouseCommand);
style->AddObserver(vtkCommand::LeftButtonPressEvent, mouseCommand);
VTK_CREATE(vtkPointPicker, picker);
rwi->SetPicker(picker);
//picker->SetTolerance (0.025);//0.025 is the defaul fraction of rendering window size. (Rendering window size is measured across diagonal.)
// for drawing picked points
pickSource->SetRadius(sphereRadius*pickRadiusRadio);
pickMapper->SetInputConnection(pickSource->GetOutputPort());
pickActors.clear();
pickActors.reserve(npts);
for(int i=0; i<npts; ++i){
pickActors.push_back(0);
pickPtsIdx[i] = 0.0;
}
}
示例2: octree_viewport
int
outofcoreViewer (boost::filesystem::path tree_root, int depth, bool display_octree=true, unsigned int gpu_cache_size=512)
{
cout << boost::filesystem::absolute (tree_root) << endl;
// Create top level scene
Scene *scene = Scene::instance ();
// Clouds
OutofcoreCloud *cloud = new OutofcoreCloud ("my_octree", tree_root);
cloud->setDisplayDepth (depth);
cloud->setDisplayVoxels (display_octree);
OutofcoreCloud::cloud_data_cache.setCapacity(gpu_cache_size*1024);
scene->addObject (cloud);
// OutofcoreCloud *cloud2 = new OutofcoreCloud ("my_octree2", tree_root);
// cloud2->setDisplayDepth (depth);
// cloud2->setDisplayVoxels (display_octree);
// scene->addObject (cloud2);
// Add Scene Renderables
Grid *grid = new Grid ("origin_grid");
Axes *axes = new Axes ("origin_axes");
scene->addObject (grid);
scene->addObject (axes);
// Create smart pointer with arguments
// Grid *grid_raw = new Grid("origin_grid");
// vtkSmartPointer<Grid> grid;
// grid.Take(grid_raw);
// Create window and interactor
vtkSmartPointer<vtkRenderWindowInteractor> interactor = vtkSmartPointer<vtkRenderWindowInteractor>::New ();
window = vtkSmartPointer<vtkRenderWindow>::New ();
window->SetSize (1000, 500);
interactor->SetRenderWindow (window);
interactor->Initialize ();
interactor->CreateRepeatingTimer (100);
// Viewports
Viewport octree_viewport (window, 0.0, 0.0, 0.5, 1.0);
Viewport persp_viewport (window, 0.5, 0.0, 1.0, 1.0);
// Cameras
Camera *persp_camera = new Camera ("persp", persp_viewport.getRenderer ()->GetActiveCamera ());
Camera *octree_camera = new Camera ("octree", octree_viewport.getRenderer ()->GetActiveCamera ());
scene->addCamera (persp_camera);
scene->addCamera (octree_camera);
octree_camera->setDisplay(true);
// Set viewport cameras
persp_viewport.setCamera (persp_camera);
octree_viewport.setCamera (octree_camera);
// Render once
window->Render ();
// Frame cameras
Eigen::Vector3d min (cloud->getBoundingBoxMin ());
Eigen::Vector3d max (cloud->getBoundingBoxMax ());
octree_viewport.getRenderer ()->ResetCamera (min.x (), max.x (), min.y (), max.y (), min.z (), max.z ());
persp_viewport.getRenderer ()->ResetCamera (min.x (), max.x (), min.y (), max.y (), min.z (), max.z ());
cloud->setRenderCamera(octree_camera);
// Interactor
// -------------------------------------------------------------------------
vtkSmartPointer<vtkInteractorStyleTrackballCamera> style = vtkSmartPointer<vtkInteractorStyleTrackballCamera>::New ();
style->SetAutoAdjustCameraClippingRange(false);
interactor->SetInteractorStyle (style);
// Callbacks
// -------------------------------------------------------------------------
vtkSmartPointer<vtkCallbackCommand> render_start_callback = vtkSmartPointer<vtkCallbackCommand>::New();
render_start_callback->SetCallback(renderStartCallback);
window->AddObserver(vtkCommand::StartEvent, render_start_callback);
vtkSmartPointer<vtkCallbackCommand> render_end_callback = vtkSmartPointer<vtkCallbackCommand>::New();
render_end_callback->SetCallback(renderEndCallback);
window->AddObserver(vtkCommand::EndEvent, render_end_callback);
vtkSmartPointer<KeyboardCallback> keyboard_callback = vtkSmartPointer<KeyboardCallback>::New ();
interactor->AddObserver (vtkCommand::KeyPressEvent, keyboard_callback);
interactor->CreateRepeatingTimer(1000);
vtkSmartPointer<vtkCallbackCommand> render_timer_callback = vtkSmartPointer<vtkCallbackCommand>::New();
render_timer_callback->SetCallback(renderTimerCallback);
interactor->AddObserver(vtkCommand::TimerEvent, render_timer_callback);
interactor->Start ();
return 0;
}