利用box边界和中点Center坐标,反向移动坐标即实现模型归位。
vtkTransform transform = vtkTransform.New();
transform.PostMultiply();
transform.Scale(1,1,1);
transform.Translate(0,0,0);
transformPolyDataFilter.SetInputConnection(decimateAnimal.GetOutputPort());
transformPolyDataFilter.SetTransform(transform);
transformPolyDataFilter.Update();
double[] toothbox = transformPolyDataFilter.GetOutput().GetCenter();
double[] newpositon = new double[3];
newpositon[0] = -toothbox[0];
newpositon[1] = -toothbox[1];
newpositon[2] = -toothbox[2];
transform.Translate(newpositon[0], newpositon[1], newpositon[2]);
transformPolyDataFilter.Update();
vtkTriangleFilter tf = vtkTriangleFilter.New();
tf.SetInputConnection(transformPolyDataFilter.GetOutputPort());
tf.Update();