def addEllipsoid(self, center, radii, color=[1, 1, 1], alpha=1.0, resolution=24): """ Add an ellipsoid centered at [center] with x, y, and z principal axis radii given by radii = [x_scale, y_scale, z_scale] """ sphere = vtk.vtkSphereSource() sphere.SetCenter([0, 0, 0]) sphere.SetThetaResolution(resolution) sphere.SetPhiResolution(resolution) sphere.SetRadius(1.0) sphere.Update() transform = vtk.vtkTransform() transform.Translate(center) transform.Scale(radii) transformFilter = vtk.vtkTransformPolyDataFilter() transformFilter.SetTransform(transform) transformFilter.SetInputConnection(sphere.GetOutputPort()) transformFilter.Update() self.addPolyData(transformFilter.GetOutput(), color)
def addTorus(self, radius, thickness, resolution=30): q = vtk.vtkSuperquadricSource() q.SetToroidal(1) q.SetSize(radius) q.SetThetaResolution(resolution) # thickness doesnt seem to match to Eucliean units. 0 is none. 1 is full. .1 is a good valve q.SetThickness(thickness) q.Update() # rotate Torus so that the hole axis (internally y), is set to be z, which we use for valves transform = vtk.vtkTransform() transform.RotateWXYZ(90,1,0,0) transformFilter=vtk.vtkTransformPolyDataFilter() transformFilter.SetTransform(transform) transformFilter.SetInputConnection(q.GetOutputPort()) transformFilter.Update() self.addPolyData(transformFilter.GetOutput())
def addEllipsoid(self, center, radii, color=[1,1,1], alpha=1.0, resolution=24): """ Add an ellipsoid centered at [center] with x, y, and z principal axis radii given by radii = [x_scale, y_scale, z_scale] """ sphere = vtk.vtkSphereSource() sphere.SetCenter([0,0,0]) sphere.SetThetaResolution(resolution) sphere.SetPhiResolution(resolution) sphere.SetRadius(1.0) sphere.Update() transform = vtk.vtkTransform() transform.Translate(center) transform.Scale(radii) transformFilter = vtk.vtkTransformPolyDataFilter() transformFilter.SetTransform(transform) transformFilter.SetInputConnection(sphere.GetOutputPort()) transformFilter.Update() self.addPolyData(transformFilter.GetOutput())