예제 #1
0
 def AddPolyDataMeshActor(self, pd):
     "Add a supplied vtkPolyData object to the visualizer"
     obj = VTKObject()
     obj.CreateFromPolyData(pd)
     self.pointObjects.append(obj)
     self.renderer.AddActor(obj.GetActor())
     return obj
예제 #2
0
 def AddPLYActor(self, filename):
     "Load a mesh from a PLY file and add it to the visualizer"
     obj = VTKObject()
     obj.CreateFromPLY(filename)
     self.pointObjects.append(obj)
     self.renderer.AddActor(obj.GetActor())
     return obj
예제 #3
0
 def AddBox(self, bounds):
     "Add a box witih the given bounds=[xmin,xmax,ymin,ymax,zmin,zmax]"
     obj = VTKObject()
     obj.CreateBox(bounds)
     self.pointObjects.append(obj)
     self.renderer.AddActor(obj.GetActor())
     return obj
예제 #4
0
 def AddLine(self, p1, p2):
     "Add a 3D line from p1=[x1,y1,z1] to p2=[x2,y2,z2]"
     obj = VTKObject()
     obj.CreateLine(p1, p2)
     self.pointObjects.append(obj)
     self.renderer.AddActor(obj.GetActor())
     return obj
예제 #5
0
 def AddSphere(self, origin, r):
     "Add a sphere with given origin (x,y,z) and radius r"
     obj = VTKObject()
     obj.CreateSphere(origin, r)
     self.pointObjects.append(obj)
     self.renderer.AddActor(obj.GetActor())
     return obj
예제 #6
0
 def AddCylinder(self, origin, r, h):
     "Add a cylinder with given origin (x,y,z), radius r and height h"
     obj = VTKObject()
     obj.CreateCylinder(origin, r, h)
     self.pointObjects.append(obj)
     self.renderer.AddActor(obj.GetActor())
     return obj
예제 #7
0
 def AddActor(self, actor):
     "Add a supplied vtkActor object to the visualizer"
     obj = VTKObject()
     obj.CreateFromActor(actor)
     self.pointObjects.append(obj)
     self.renderer.AddActor(obj.GetActor())
     return obj
예제 #8
0
 def AddPolygonActor(self, points, color=(255, 255, 255)):
     obj = VTKObject()
     obj.CreatePolygon(points)
     obj.actor.GetProperty().SetColor(*color)
     self.pointObjects.append(obj)
     self.renderer.AddActor(obj.GetActor())
     return obj
예제 #9
0
 def AddAxesActor(self, length):
     "Add coordinate system axes with specified length"
     obj = VTKObject()
     obj.CreateAxes(length)
     self.pointObjects.append(obj)
     self.renderer.AddActor(obj.GetActor())
     return obj
예제 #10
0
 def AddPlane(self, normal=None, origin=None):
     """Add a plane (optionally with a given normal vector and origin)
     
     Note: SetActorScale can be used to scale the extent of the plane"""
     obj = VTKObject()
     obj.CreatePlane(normal, origin)
     self.pointObjects.append(obj)
     self.renderer.AddActor(obj.GetActor())
     return obj
예제 #11
0
 def AddTrajectoryActor(self, pose_matrices, scale=1):
     "Add coordinate system axes with specified length"
     obj = VTKObject()
     obj.CreateAxesSimplified(scale)
     obj.AddPoses(pose_matrices)
     obj.SetupPipelinePose()
     self.pointObjects.append(obj)
     self.renderer.AddActor(obj.GetActor())
     return obj
예제 #12
0
 def AddTrianglesActor(self, pc, triangles):
     """Add mesh consists of triangles
     Example: 
         viz.AddTrianglesActor(pc_3d, scipy.spatial.Delaunay(pc_2d).simplices)
     """
     obj = VTKObject()
     obj.CreateTriangles(pc, triangles)
     obj.SetupPipelineMesh()
     self.pointObjects.append(obj)
     self.renderer.AddActor(obj.GetActor())
     return obj
예제 #13
0
    def AddShadedPointsActor(self, pc):
        """Add a point cloud with shaded points based on supplied normal vectors
        
        The NumPy array should have dimension Nx6 where the first three
        dimensions correspond to x, y and z and the last three dimensions
        correspond to surface normals (nx, ny, nz)
        """

        obj = VTKObject()
        obj.CreateFromArray(pc[:, 0:3])
        obj.AddNormals(pc[:, 3:6])
        self.pointObjects.append(obj)
        self.renderer.AddActor(obj.GetActor())
        return obj
예제 #14
0
    def AddColoredPointCloudActor(self, pc):
        """Add a point cloud with colors from a given NumPy array
        
        The NumPy array should have dimension Nx6 where the first three
        dimensions correspond to X, Y and Z and the last three dimensions
        correspond to R, G and B values (between 0 and 255)        
        """

        obj = VTKObject()
        obj.CreateFromArray(pc[:, :3])
        obj.AddColors(pc[:, 3:6].astype(np.uint8))
        self.pointObjects.append(obj)
        self.renderer.AddActor(obj.GetActor())
        return obj
예제 #15
0
 def AddPointCloudActor(self, pc):
     """Add a point cloud from a given NumPy array
     
     The NumPy array should have dimension Nxd where d >= 3
     
     If d>3, the points will be colored according to the last column
     in the supplied array (values should be between 0 and 1, where 
     0 is black and 1 is white)
     """
     obj = VTKObject()
     obj.CreateFromArray(pc)
     self.pointObjects.append(obj)
     self.renderer.AddActor(obj.GetActor())
     return obj
예제 #16
0
    def AddNormalsActor(self, pc, scale):
        """Add a set of surface normals to the visualizer
        
        The input is a NumPy array with dimension Nx6 with (x,y,z) and
        (nx,ny,nz) values for the points and associated surface normals
        
        The normals will be scaled according to given scale factor"""

        obj = VTKObject()
        obj.CreateFromArray(pc[:, 0:3])
        obj.AddNormals(pc[:, 3:6])
        obj.SetupPipelineHedgeHog(scale)
        self.pointObjects.append(obj)
        self.renderer.AddActor(obj.GetActor())
        return obj