class_docstr: A TriMesh represents a mesh of triangles represented as the
  simplices and nodes. The simplices represent a indices into the
  nodes array. The mesh therefore follows a datastructure very
  similar to a graph, with the abstract connectivity between nodes
  stored on the TriMesh element itself, the node positions stored on
  a Nodes element and the concrete paths making up each triangle
  generated when required by accessing the edgepaths.
  
  Unlike a Graph each simplex is represented as the node indices of
  the three corners of each triangle.
class_docstr_tok: ["A","TriMesh","represents","a","mesh","of","triangles","represented","as","the","simplices","and","nodes",".","The","simplices","represent","a","indices","into","the","nodes","array",".","The","mesh","therefore","follows","a","datastructure","very","similar","to","a","graph",",","with","the","abstract","connectivity","between","nodes","stored","on","the","TriMesh","element","itself",",","the","node","positions","stored","on","a","Nodes","element","and","the","concrete","paths","making","up","each","triangle","generated","when","required","by","accessing","the","edgepaths",".","Unlike","a","Graph","each","simplex","is","represented","as","the","node","indices","of","the","three","corners","of","each","triangle","."]
docstr: Allows selecting data by the slices, sets and scalar values
  along a particular dimension. The indices should be supplied as
  keywords mapping between the selected dimension and
  value. Additionally selection_specs (taking the form of a list
  of type.group.label strings, types or functions) may be
  supplied, which will ensure the selection is only applied if the
  specs match the selected object.
docstr_tok: ["Allows","selecting","data","by","the","slices",",","sets","and","scalar","values","along","a","particular","dimension",".","The","indices","should","be","supplied","as","keywords","mapping","between","the","selected","dimension","and","value",".","Additionally","selection_specs","(","taking","the","form","of","a","list","of","type.group.label","strings",",","types","or","functions",")","may","be","supplied",",","which","will","ensure","the","selection","is","only","applied","if","the","specs","match","the","selected","object","."]
code: def select(self, selection_specs=None, **selection):
      """
      Allows selecting data by the slices, sets and scalar values
      along a particular dimension. The indices should be supplied as
      keywords mapping between the selected dimension and
      value. Additionally selection_specs (taking the form of a list
      of type.group.label strings, types or functions) may be
      supplied, which will ensure the selection is only applied if the
      specs match the selected object.
      """
      self._initialize_edgepaths()
      return super().select(
          selection_specs=None, selection_mode="nodes", **selection
      )
  
imports: from collections import defaultdict
  from types import FunctionType
  import numpy
  import pandas
  import param
  from ..core import Dataset, Dimension, Element2D
  from ..core.accessors import Redim
  from ..core.operation import Operation
  from ..core.util import is_dataframe, max_range, search_indices
  from .chart import Points
  from .path import Path
  from .util import circular_layout, connect_edges_pd, connect_tri_edges_pd, quadratic_bezier, split_path
label_desc: Use image node_id 5 for calling the TriMesh obj's underlying member method code with example usage: obj.select(selection_specs) and returns: super