Exemple #1
0
    def get_vtk_cell_data(self, position, point_offset, cell_offset):
        cells = []
        for triangle in self.rt_triangles:  # TODO:offset can be done simpler
            cells.append(triangle[1] + point_offset)
            point_offset += triangle[0].shape[0]
        vtk_cells = vstack(cells)
#        vtk_cells = vstack([triangle[1]
#                     for triangle in self.rt_triangles])
        # print "vtk_cells_array", vtk_cells
        n_cell_points = vtk_cells.shape[1]
        n_cells = vtk_cells.shape[0]
        vtk_cell_array = hstack((ones((n_cells, 1), dtype=int) * n_cell_points,
                                 vtk_cells))
        vtk_cell_offsets = arange(
            n_cells, dtype=int) * (n_cell_points + 1) + cell_offset
        if n_cell_points == 3:
            cell_str = 'Triangle'
        elif n_cell_points == 2:
            cell_str = 'Line'
        cell_class = tvtk_helper.get_class(cell_str)
        cell_type = cell_class().cell_type
        vtk_cell_types = ones(n_cells, dtype=int) * cell_type
        if self.debug_cell_data:
            print 'vtk_cells_array', vtk_cell_array
            print 'vtk_cell_offsets', vtk_cell_offsets
            print 'vtk_cell_types', vtk_cell_types

        return vtk_cell_array.flatten(), vtk_cell_offsets, vtk_cell_types
Exemple #2
0
    def _get_vtk_ip_cell_data(self):

        n_ip_pnts = self.ip_coords.shape[0]

        cell_types = array([(tvtk_helper.get_class('PolyVertex')()).cell_type])

        return (array([
            0,
        ], dtype=int), array([n_ip_pnts],
                             dtype=int), arange(n_ip_pnts), cell_types)
Exemple #3
0
    def _get_vtk_ip_cell_data(self):

        n_ip_pnts = self.ip_coords.shape[0]

        cell_types = array([(tvtk_helper.get_class('PolyVertex')()).cell_type])

        return (array([0, ], dtype=int),
                array([n_ip_pnts], dtype=int),
                arange(n_ip_pnts),
                cell_types)
Exemple #4
0
    def _get_vtk_ip_cell_data(self):
        from tvtk.tvtk_classes import tvtk_helper

        n_ip_pnts = self.ip_coords.shape[0]

        cell_types = np.array([
            (tvtk_helper.get_class('PolyVertex')()).cell_type
        ])

        return (np.array([
            0,
        ], dtype=int), np.array([n_ip_pnts],
                                dtype=int), np.arange(n_ip_pnts), cell_types)
Exemple #5
0
    def _get_vtk_node_cell_data(self):

        n_cells = len(self.vtk_cells)

        # check if vtk_cell_types is a list, if not make one
        if isinstance(self.vtk_cell_types, str):
            cell_classes = [self.vtk_cell_types for i in range(n_cells)]
        else:
            cell_classes = self.vtk_cell_types

        from tvtk.tvtk_classes import tvtk_helper

        cell_types = []
        for cell_str in cell_classes:
            cell_class = tvtk_helper.get_class(cell_str)
            cell_types.append(cell_class().cell_type)

        if isinstance(self.vtk_cells[0], int):
            # just a single cell defined
            return (np.array([
                0,
            ], dtype=int), np.array(self.vtk_cells.shape[0], dtype=int),
                    np.array(self.vtk_cells, dtype=int), cell_types)

        offset_list = []
        length_list = []
        cell_list = []
        vtk_offset = 0
        for cell in self.vtk_cells:
            cell_len = len(cell)
            cell_list += cell
            length_list.append(cell_len)
            offset_list.append(vtk_offset)
            vtk_offset += cell_len + 1

        return (np.array(offset_list,
                         dtype=int), np.array(length_list, dtype=int),
                np.array(cell_list, dtype=int), np.array(cell_types,
                                                         dtype=int))
Exemple #6
0
    def _get_vtk_node_cell_data(self):

        n_cells = len(self.vtk_cells)

        # check if vtk_cell_types is a list, if not make one
        if isinstance(self.vtk_cell_types, str):
            cell_classes = [self.vtk_cell_types for i in range(n_cells)]
        else:
            cell_classes = self.vtk_cell_types

        cell_types = []
        for cell_str in cell_classes:
            cell_class = tvtk_helper.get_class(cell_str)
            cell_types.append(cell_class().cell_type)

        if isinstance(self.vtk_cells[0], int):
            # just a single cell defined
            return (array([0, ], dtype=int),
                    array(self.vtk_cells.shape[0], dtype=int),
                    array(self.vtk_cells, dtype=int),
                    cell_types)

        offset_list = []
        length_list = []
        cell_list = []
        vtk_offset = 0
        for cell in self.vtk_cells:
            cell_len = len(cell)
            cell_list += cell
            length_list.append(cell_len)
            offset_list.append(vtk_offset)
            vtk_offset += cell_len + 1

        return (array(offset_list, dtype=int),
                array(length_list, dtype=int),
                array(cell_list, dtype=int),
                array(cell_types, dtype=int))
Exemple #7
0
 def _get_vtk_cell_class(self):
     from tvtk.tvtk_classes import tvtk_helper
     return tvtk_helper.get_class(self.vtk_cell_type)
Exemple #8
0
 def _get_vtk_cell_class(self):
     return tvtk_helper.get_class(self.vtk_cell_type)