学习相关的vtkCell的具体类型,其中:
vtkHexahedron | 4个顶点 + 4个顶点组成的规则四棱柱 |
vtkPentagonalPrism | 5个顶点 + 5个顶点组成的规则五棱柱 |
vtkHexagonalPrism | 6个顶点 + 6个顶点组成的规则六棱柱 |
vtkPyramid | 金字塔拓扑 |
dodechedron | 规则五边形12面体 |
vtkTetra | 规则三角形4面体 |
vtkVoxel | 规则四边形六面体 |
vtkWedge | 三棱柱 |
/*
* ModuleName: 模块名称
* Description:
* 参考代码:https://lorensen.github.io/VTKExamples/site/Cxx/GeometricObjects/IsoparametricCellsDemo/
* Author: HSW
* Date: 2020-03-15
*
*/
// QT
#include <QMainWindow>
#include <QDebug>
// VTK
#include <vtkActor.h>
#include <vtkActor2D.h>
#include <vtkCamera.h>
#include <vtkCellArray.h>
#include <vtkDataSetMapper.h>
#include <vtkGlyph3DMapper.h>
#include <vtkLabeledDataMapper.h>
#include <vtkNamedColors.h>
#include <vtkPoints.h>
#include <vtkProperty.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkSmartPointer.h>
#include <vtkSphereSource.h>
#include <vtkTextMapper.h>
#include <vtkTextProperty.h>
#include <vtkTextProperty.h>
#include <vtkUnstructuredGrid.h>
#include <vtkBiQuadraticQuad.h>
#include <vtkBiQuadraticQuadraticHexahedron.h>
#include <vtkBiQuadraticQuadraticWedge.h>
#include <vtkBiQuadraticTriangle.h>
#include <vtkCubicLine.h>
#include <vtkQuadraticEdge.h>
#include <vtkQuadraticHexahedron.h>
#include <vtkQuadraticLinearQuad.h>
#include <vtkQuadraticLinearWedge.h>
#include <vtkQuadraticPolygon.h>
#include <vtkQuadraticPyramid.h>
#include <vtkQuadraticQuad.h>
#include <vtkQuadraticTetra.h>
#include <vtkQuadraticTriangle.h>
#include <vtkQuadraticWedge.h>
#include <vtkTriQuadraticHexahedron.h>
#include <vtkAutoInit.h>
// C++
#include <algorithm>
#include <array>
#include <cstdlib>
#include <string>
#include <vector>
namespace Ui {
class MainWindow;
}
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
VTK_MODULE_INIT(vtkRenderingContextOpenGL2);
VTK_MODULE_INIT(vtkRenderingFreeType);
namespace
{
template<typename T> vtkSmartPointer<vtkUnstructuredGrid> MakeUnstructuredGrid(vtkSmartPointer<T>);
vtkSmartPointer<vtkUnstructuredGrid> MakeQuadraticPolygon();
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
private:
vtkSmartPointer<vtkNamedColors> colors;
vtkSmartPointer<vtkPoints> points;
vtkSmartPointer<vtkHexahedron> hex;
vtkSmartPointer<vtkCellArray&