应用转换后如何更新 Actor?

How to update Actor after applying Transformation?

目前我通过以下代码将翻译应用于演员:

vtkSmartPointer<vtkTransform> translation =
    vtkSmartPointer<vtkTransform>::New();
translation->PostMultiply(); //this is the key line
translation->Translate(translationVector);
patella->getActor()->SetUserTransform(translation);

但是,如果我申请

patella->getActor()->SetUserTransform(translation);

再次。演员保持在同一个位置,就好像我只应用了一次一样。我知道这是因为原点没有更新。因此,如何在每次翻译后更新 origin/actor?

您想连接转换。类似于:

vtkActor* patellaActor = patella->GetActor();
vtkTransform* patellaXfm = patellaActor->GetUserTransform();
if (!patellaXfm) {
    patellaActor->SetUserTransform(translation);
} else {
    patellaXfm->Concatenate(translation);
}