docstr: Build a hypercube with triangulations symmetric to C0.
  
  Parameters
  ----------
  origin : vec
  supremum : vec (tuple)
  gen : generation
  hgr : parent homology group rank
docstr_tok: ["Build","a","hypercube","with","triangulations","symmetric","to","C0",".","Parameters","--","--","--","--","--","origin",":","vec","supremum",":","vec","(","tuple",")","gen",":","generation","hgr",":","parent","homology","group","rank"]
code: def construct_hypercube(
      self, origin, supremum, gen, hgr, printout=False
  ):
      """
      Build a hypercube with triangulations symmetric to C0.
  
      Parameters
      ----------
      origin : vec
      supremum : vec (tuple)
      gen : generation
      hgr : parent homology group rank
      """
      # Initiate new cell
      v_o = np.array(origin)
      v_s = np.array(supremum)
  
      C_new = Cell(gen, hgr, origin, supremum)
      C_new.centroid = tuple((v_o + v_s) * 0.5)
  
      # Build new indexed vertex list
      V_new = []
  
      for i, v in enumerate(self.C0()[:-1]):
          v_x = np.array(v.x)
          sub_cell_t1 = v_o - v_o * v_x
          sub_cell_t2 = v_s * v_x
  
          vec = sub_cell_t1 + sub_cell_t2
  
          vec = tuple(vec)
          C_new.add_vertex(self.V[vec])
          V_new.append(vec)
  
      # Add new centroid
      C_new.add_vertex(self.V[C_new.centroid])
      V_new.append(C_new.centroid)
  
      # Connect new vertices #TODO: Thread into other loop; no need for V_new
      for i, connections in enumerate(self.graph):
          # Present vertex V_new[i]; connect to all connections:
          for j in connections:
              self.V[V_new[i]].connect(self.V[V_new[j]])
  
      if printout:
          print("A sub hyper cube with:")
          print("origin: {}".format(origin))
          print("supremum: {}".format(supremum))
          for v in C_new():
              v.print_out()
  
      # Append the new cell to the to complex
      self.H[gen].append(C_new)
  
      return C_new
  
imports: import numpy
  import copy
label_desc: Use image node_id 11 for calling the Complex obj's underlying member method code with example usage: obj.construct_hypercube(origin, supremum, gen, hgr, printout) and returns: C_new