Translate Object in Python

Hey all, I hope all is well.

I’m looking for some help with translating my 3D object. For some context, I need to translate my 3D object in order for a matrix rotation to apply at the correct location, but I’m having trouble getting that to happen. I looked at this page to explain how the transform class work, but my render isnt properly showing it.

Here is what I currently have:

        # Instance of OpenGL Class
        vtkWidget = QVTKRenderWindowInteractor(self.uic.openGLViewer)
        vtkWidget.setGeometry(0, 0, 481, 341)

        vtkWidget.GetRenderWindow().AddRenderer(self.ren)
        iren = self.vtkWidget.GetRenderWindow().GetInteractor()
        iren.SetInteractorStyle(NoneInteractorStyle())

        reader = vtkSTLReader()
        reader.SetFileName(filename)

        # Create a mapper
        mapper = vtkPolyDataMapper()
        mapper.SetInputConnection(reader.GetOutputPort())

        # Create an actor
        actor = vtkActor()
        actor.SetMapper(mapper)

        ren.AddActor(self.actor)
        ren.SetBackground(0.1, 0.1, 0.1)
        ren.ResetCamera()
        ren.GetActiveCamera().Zoom(0.8)


        # Matrix 
        vtk_matrix = vtk.vtkTransform
        vtk_matrix.Translate(0, 1000, 0)
        actor.SetUserMatrix(vtk_matrix)
        
        ren.Render()
                    

None interactor is a custom class meant to prevent the user from being able to rotate the object with the mouse. I want the backend to handle all of it’s rotations.

# Prevents mouse movements from moving visual 
class NoneInteractorStyle(vtk.vtkInteractorStyleTrackballCamera):
    def __init__(self):
        self.SetKeyPressActivation(False)
        self.SetMouseWheelMotionFactor(0)
        self.SetMotionFactor(0)

When ran, the object isn’t translate in any way.

Thanks in advance!



Edit:
Here is how I was able to apply the translation, but it didn’t apply my rotation to a different point on my model.

                    # Gyro values 
                    gyroX = 0 #float(line[4]) + gyroX_old
                    gyroY = -float(line[5]) + gryoY_old
                    gyroZ = float(line[6]) + gyroZ_old

                    # Integration
                    gyroX_old = gyroX
                    gryoY_old = gyroY
                    gyroZ_old = gyroZ

                    # Matrix 

                    rotation_matrix = euler_to_rotation_matrix(np.radians(round(gyroZ, 2)), np.radians(round(gyroX, 2)), np.radians(round(gyroY, 2)))
                    vtk_matrix = rotation_matrix_to_vtk(rotation_matrix)

                    translation = vtk.vtkTransform()
                    translation.Translate(0, 100, 0)
                    
                    transform = vtk.vtkTransform()
                    transform.SetMatrix(vtk_matrix)

                    translation_down = vtk.vtkTransform()
                    translation_down.Translate(0, -100, 0)

                    combined_transform = vtk.vtkTransform()
                    combined_transform.PostMultiply()
                    combined_transform.Concatenate(transform)
                    combined_transform.Concatenate(translation)
                    combined_transform.Concatenate(translation_down)

                    self.actor.SetUserTransform(combined_transform)