#include <vtkOBJReader.h>
#include <vtkTriangleFilter.h>
#include <vtkSmartPointer.h>
#include <vtkMassProperties.h>
#include <iostream>
using namespace std;
int main()
{
vtkSmartPointer<vtkOBJReader> reader =vtkSmartPointer<vtkOBJReader>::New();
reader->SetFileName("C:\\Users\\HuangWang\\Desktop\\兔子.obj");
reader->Update();
vtkSmartPointer< vtkTriangleFilter > triangleFilter= vtkSmartPointer< vtkTriangleFilter >::New();
triangleFilter->SetInput( reader->GetOutput());
triangleFilter->Update();
vtkSmartPointer<vtkMassProperties> polygonProperties = vtkSmartPointer< vtkMassProperties >::New();
polygonProperties->SetInput(triangleFilter->GetOutput());
polygonProperties->Update();
double vol = polygonProperties->GetVolume();
double area= polygonProperties->GetSurfaceArea();
cout<<vol<<" "<<area<<endl;
return 0;
}
经过后续的相关测试,发现了这个类对于比较复杂的obj模型和不封闭的obj模型的几何属性计算并不是特别的精确,所以谨慎使用。
如果您觉得这篇博文有用,请访问我的个人站:http://www.stubbornhuang.com,更多博文干货等着您。