杰奇小说网站建设,企业网站源码交易,网站建设公司的运营方式,企业网站要更新文章吗在FastCAE工具栏上有视图切换按钮#xff0c;如下图所示#xff1a; 本文介绍如何实现。
FastCAE集成了Python解析器#xff0c;当单击按钮时#xff0c;中间用Python执行的#xff0c;最后调用MainWindow.dll库接口实现的。
具体的Python代码在Python模块的py文件夹下的…在FastCAE工具栏上有视图切换按钮如下图所示 本文介绍如何实现。
FastCAE集成了Python解析器当单击按钮时中间用Python执行的最后调用MainWindow.dll库接口实现的。
具体的Python代码在Python模块的py文件夹下的MainWindow.py文件中。这几个按钮都是调用的setView方法只是入参不同而已。
MainWindow.dll库对外的接口在MainWindowPy.h文件中定义。这里调用的是setView接口。 继续跟踪代码发现setView具体实现在graphWindowBase.cpp文件中。具体代码如下
void GraphWindowBase::setView(QString view)
{if (view.toLower() fit)fitView();else if (view.toLower() xplus)setViewXPlus();else if (view.toLower() xminus)setViewXMiuns();else if (view.toLower() yplus)setViewYPlus();else if (view.toLower() yminus)setViewYMiuns();else if (view.toLower() zplus)setViewZPlus();else if (view.toLower() zminus)setViewZMiuns();
}其具体实现只是根据入参不同调用不同的方法。适应窗口(Fit window)调用的是fitView方法我们来看其实现
void Graph3DWindow::fitView()
{resetCamera();
}void Graph3DWindow::resetCamera()
{_render-ResetCamera();_renderWindow-Render();this-mouseWheelMove();
}void Graph3DWindow::setViewXPlus()
{vtkCamera *camera _render-GetActiveCamera();camera-SetViewUp(0, 0, 1);camera-SetPosition(5000, 0, 0);camera-SetFocalPoint(0, 0, 0);resetCamera();
}发现最后调用vtkRenderer的ResetCamera()方法就实现了适应窗口。其他视图调整是直接操作摄像机指定其Up轴、位置及焦点实现的。