text: # -*- coding: utf-8 -*-
  from ....Classes.MeshMat import MeshMat
  from ....Classes.NodeMat import NodeMat
  from ....Classes.CellMat import CellMat
  from ....Classes.Interpolation import Interpolation
  from ....Classes.FPGNSeg import FPGNSeg
  from ....Classes.FPGNTri import FPGNTri
  
  from ....Classes.ScalarProductL2 import ScalarProductL2
  from ....Classes.RefSegmentP1 import RefSegmentP1
  from ....Classes.RefTriangle3 import RefTriangle3
  
  
  from numpy import array, linspace
  
  
  def convert(self, meshtype, scale):
      """Convert this object to another type of Mesh object.
  
      Parameters
      ----------
      self : MeshVTK
          a MeshVTK object
      meshtype : str
          a type of Mesh object
      scale : float
          scale factor
  
          Returns
      -------
      new_mesh : Mesh
          a Mesh object
      """
  
      if meshtype == "MeshVTK":
          new_mesh = self.copy()
      elif meshtype == "MeshMat":
          new_mesh = MeshMat(dimension=self.dimension)
  
          connect_all = self.get_cell()[0]
          nodes = array(self.get_node())
          nb_node = nodes.shape[0]
  
          new_mesh.node = NodeMat(
              coordinate=scale * nodes,
              nb_node=nb_node,
              indice=linspace(0, nb_node - 1, nb_node),
          )
  
          min_indice = 0
          for key in connect_all:
              connect = connect_all[key]
              nb_cell = connect.shape[0]
              indices = linspace(min_indice, min_indice + nb_cell - 1, nb_cell, dtype=int)
              min_indice = min_indice + nb_cell
  
              if key == "line":
                  new_mesh.cell["line"] = CellMat(
                      nb_node_per_cell=2,
                      connectivity=connect,
                      nb_cell=nb_cell,
                      indice=indices,
                  )
                  interp = Interpolation()
                  interp.gauss_point = FPGNSeg()
                  interp.ref_cell = RefSegmentP1()
                  interp.scalar_product = ScalarProductL2()
                  new_mesh.cell["line"].interpolation = interp
              elif key == "line3":
                  new_mesh.cell["line3"] = CellMat(
                      nb_node_per_cell=3,
                      connectivity=connect,
                      nb_cell=nb_cell,
                      indice=indices,
                  )
                  interp = Interpolation()
                  interp.gauss_point = None  # TODO
                  interp.ref_cell = None  # TODO
                  interp.scalar_product = None  # TODO
                  new_mesh.cell["line3"].interpolation = interp
              elif key == "triangle3":
                  new_mesh.cell["triangle"] = CellMat(
                      nb_node_per_cell=3,
                      connectivity=connect,
                      nb_cell=nb_cell,
                      indice=indices,
                  )
                  interp = Interpolation()
                  interp.gauss_point = FPGNTri()
                  interp.ref_cell = RefTriangle3()
                  interp.scalar_product = ScalarProductL2()
                  new_mesh.cell["triangle"].interpolation = interp
              elif key == "quad9":
                  new_mesh.cell["quad9"] = CellMat(
                      nb_node_per_cell=9,
                      connectivity=connect,
                      nb_cell=nb_cell,
                      indice=indices,
                  )
                  interp = Interpolation()
                  interp.gauss_point = None  # TODO
                  interp.ref_cell = None  # TODO
                  interp.scalar_product = None  # TODO
                  new_mesh.cell["quad9"].interpolation = interp
  
      return new_mesh
  