jquery做的网站,wordpress动态图片不显示,泰安公司,商城网站wordpress开发环境#xff1a;
Windows 11 家庭中文版Microsoft Visual Studio Community 2019VTK-9.3.0.rc0vtk-example参考代码 demo解决问题#xff1a;框选或者点选某一区域#xff0c;并获取区域prop3D对象#xff08;红线内为有效区域#xff0c;polydata组成的3d几何对象
Windows 11 家庭中文版Microsoft Visual Studio Community 2019VTK-9.3.0.rc0vtk-example参考代码 demo解决问题框选或者点选某一区域并获取区域prop3D对象红线内为有效区域polydata组成的3d几何对象 1. vtkInteractorStyleRubberBandPick /*与TrackBallCamera类似但是它可以选择橡皮筋选择矩形下面的道具。该交互器样式允许用户通过按下r并使用左鼠标按钮在渲染窗口中绘制矩形。当释放鼠标按钮时附加的拾取器将在选择矩形中心的像素上操作。如果拾取器恰好是vtkAreaPicker则它将在整个选择矩形上操作。当按下p键时上述拾取操作在1x1矩形上发生。在其他方面它的行为与其父类相同。另请参见vtkAreaPicker*/// r使能或禁用区域框选框选区域中pick有效区域// For vtkInteractorStyleRubberBandPick - use r and left-mouse to draw a// selection box used to pick.// // p按下时pick当前鼠标位置所在的区域// For vtkInteractorStyleTrackballCamera - use p to pick at the current// mouse position.vtkNewvtkInteractorStyleRubberBandPick style;2. vtkAreaPicker vtkNewvtkAreaPicker areaPicker;vtkNewvtkCallbackCommand pickCallback;pickCallback-SetCallback(PickCallbackFunction);areaPicker-AddObserver(vtkCommand::EndPickEvent, pickCallback);prj name: AreaPicking
#include vtkActor.h
#include vtkAreaPicker.h
#include vtkCallbackCommand.h
#include vtkCellArray.h
#include vtkInteractorStyleRubberBandPick.h
#include vtkInteractorStyleTrackball.h
// #include vtkInteractorStyleTrackballCamera.h
#include vtkNamedColors.h
#include vtkNew.h
#include vtkPoints.h
#include vtkPolyData.h
#include vtkPolyDataMapper.h
#include vtkProp3DCollection.h
#include vtkProperty.h
#include vtkRenderWindow.h
#include vtkRenderWindowInteractor.h
#include vtkRenderer.hnamespace {
void PickCallbackFunction(vtkObject* caller, long unsigned int eventId,void* clientData, void* callData);
}int main(int, char*[])
{// Create a set of points.vtkNewvtkPoints points;vtkNewvtkCellArray vertices;vtkIdType pid[1];pid[0] points-InsertNextPoint(1.0, 0.0, 0.0);vertices-InsertNextCell(1, pid);pid[0] points-InsertNextPoint(0.0, 0.0, 0.0);vertices-InsertNextCell(1, pid);pid[0] points-InsertNextPoint(0.0, 1.0, 0.0);vertices-InsertNextCell(1, pid);// Create a polydatavtkNewvtkPolyData polydata;polydata-SetPoints(points);polydata-SetVerts(vertices);// VisualizevtkNewvtkPolyDataMapper mapper;mapper-SetInputData(polydata);vtkNewvtkNamedColors colors;vtkNewvtkActor actor;actor-SetMapper(mapper);actor-GetProperty()-SetPointSize(8); //设置顶点的显示大小actor-GetProperty()-SetColor(colors-GetColor3d(Gold).GetData()); //设置顶点的显示颜色vtkNewvtkRenderer renderer;vtkNewvtkRenderWindow renderWindow;renderWindow-AddRenderer(renderer);renderWindow-SetWindowName(AreaPicking);vtkNewvtkAreaPicker areaPicker;vtkNewvtkRenderWindowInteractor renderWindowInteractor;renderWindowInteractor-SetRenderWindow(renderWindow);renderWindowInteractor-SetPicker(areaPicker);renderer-AddActor(actor);renderer-SetBackground(colors-GetColor3d(DarkSlateGray).GetData());renderWindow-Render();// r使能或禁用区域框选框选区域中pick有效区域// For vtkInteractorStyleRubberBandPick - use r and left-mouse to draw a// selection box used to pick.vtkNewvtkInteractorStyleRubberBandPick style;// p按下时pick当前鼠标位置所在的区域// For vtkInteractorStyleTrackballCamera - use p to pick at the current// mouse position.// vtkNewvtkInteractorStyleTrackballCamera style;// paraviewstyle-SetCurrentRenderer(renderer);renderWindowInteractor-SetInteractorStyle(style);vtkNewvtkCallbackCommand pickCallback;pickCallback-SetCallback(PickCallbackFunction);areaPicker-AddObserver(vtkCommand::EndPickEvent, pickCallback);renderWindowInteractor-Start();return EXIT_SUCCESS;
}namespace {
void PickCallbackFunction(vtkObject* caller,long unsigned int vtkNotUsed(eventId),void* vtkNotUsed(clientData),void* vtkNotUsed(callData))
{std::cout Pick. std::endl;vtkAreaPicker* areaPicker static_castvtkAreaPicker*(caller);vtkProp3DCollection* props areaPicker-GetProp3Ds();props-InitTraversal();//遍历当权pick到那些区域Prop3Dsfor (vtkIdType i 0; i props-GetNumberOfItems(); i){vtkProp3D* prop props-GetNextProp3D();std::cout Picked prop: prop std::endl;}
}
} // namespace