Exemple #1
0
    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)
Exemple #2
0
    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())
Exemple #3
0
    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())