Salome HOME
Merge remote-tracking branch 'origin/master' into V9_dev V9_dev V9_0_0
authorrnv <rnv@opencascade.com>
Thu, 28 Dec 2017 15:13:11 +0000 (18:13 +0300)
committerrnv <rnv@opencascade.com>
Thu, 28 Dec 2017 15:13:11 +0000 (18:13 +0300)
48 files changed:
bin/runHEXABLOCK.in
bin/runHEXABLOCK.py
doc/cas_test_python/BIELLE.py
doc/pyplots/BIELLE1.py
doc/pyplots/bielle.py
doc/pyplots/bielle_JPL.py
doc/pyplots/bride.py
doc/pyplots/process_vtk.py
doc/pyplots/test_cut.py
doc/pyplots/test_disconnect.py
doc/pyplots/test_join_quads.py
doc/pyplots/test_make_cart_grid.py
doc/pyplots/test_make_cyl_grid.py
doc/pyplots/test_make_cylinder.py
doc/pyplots/test_make_elmts_transform.py
doc/pyplots/test_make_pipe.py
doc/pyplots/test_make_spher_grid.py
doc/pyplots/test_prism_quads.py
doc/pyplots/test_propagation.py
doc/test_doc/edge/edge.py
doc/test_doc/hexa/hexa.py
doc/test_doc/quad/quad.py
doc/test_doc/vertex/vertex.py
doc/tui_component.rst
src/HEXABLOCK/work/geompy.py
src/HEXABLOCK/work/hexablock.py
src/HEXABLOCKGUI/HEXABLOCKGUI.cxx
src/HEXABLOCKGUI/HEXABLOCKGUI.hxx
src/HEXABLOCKGUI/HEXABLOCKGUI_SalomeTools.cxx
src/HEXABLOCKGUI/HEXABLOCKGUI_SalomeTools.hxx
src/HEXABLOCK_SWIG/CMakeLists.txt
src/HEXABLOCK_SWIG/hexablock.py
src/HEXABLOCK_SWIG/hexablock_swig.py
src/HEXABLOCK_SWIG/hexablock_swig_wrap.cc
src/TEST_PY/cas_2013/cas_2013.py
src/TEST_PY/cas_2013/make_pave.py
src/TEST_PY/foo.py
src/TEST_PY/non_regression/k21592_getAsso.py
src/TEST_PY/recettes/bielle.py
src/TEST_PY/recettes/cuve.py
src/TEST_PY/recettes/tuyau.py
src/TEST_PY/recettes/tuyauterie.py
src/TEST_PY/test_unit/asso_grid.py
src/TEST_PY/test_unit/cut_grille.py
src/TEST_PY/test_unit/revolution.py
src/TEST_PY/test_unit/test_shapes.py
src/TEST_PY/test_unit/troisCylindres_v5.py
src/TEST_PY/test_v6/monica.py

index 7f15edc13824ae9feaa98f0005b2e0a0fdfa3920..a0243861a536cfe5123bdb8ff5fc18d23c188c26 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 # Copyright (C) 2009-2016  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
@@ -41,7 +41,7 @@ searchFreePort() {
             local myhost=`hostname`
             export OMNIORB_CONFIG=${HOME}/.omniORB_${myhost}_${NSPORT}.cfg
             local initref="NameService=corbaname::"`hostname`":$NSPORT"
-            if [[ `python -c "import CORBA; print CORBA.ORB_ID"` = "omniORB4" ]]; then
+            if [[ `python -c "import CORBA; print(CORBA.ORB_ID)"` = "omniORB4" ]]; then
                 echo "InitRef = $initref" > $OMNIORB_CONFIG
             else
                 echo "ORBInitRef $initref" > $OMNIORB_CONFIG
index 610250c0792a59034cfd624ad315fa5c01c15ab8..06fa129351f4ee864e1cd1c511da74aa8707cd52 100755 (executable)
@@ -33,7 +33,6 @@ def test(clt):
 #
 
 if __name__ == "__main__":
-   import user
    from runSalome import *
    clt,args = main()
    
@@ -42,8 +41,8 @@ if __name__ == "__main__":
    #
    
    if clt != None:
-     print
-     print " --- registered objects tree in Naming Service ---"
+     print()
+     print(" --- registered objects tree in Naming Service ---")
      clt.showNS()
      session=clt.waitNS("/Kernel/Session")
      catalog=clt.waitNS("/Kernel/ModulCatalog")
index 8fb8ce95c0402e9f19d5333f61a5755f3cde65a5..49123f6ce9dfb87ac602426c01c47af374a5f209 100644 (file)
@@ -961,34 +961,34 @@ for j in range(N_Propa):
 # Générer des maillages
 #====================================
 
-print  " --- MAILLAGE HEXAHEDRIQUE --- "
+print(" --- MAILLAGE HEXAHEDRIQUE --- ")
 mesh_hexas = hexablock.mesh(doc, "Bielle:hexas")
 
-print "Nombre d hexaedres:"   , mesh_hexas.NbHexas()
-print "Nombre de quadrangles:", mesh_hexas.NbQuadrangles()
-print "Nombre de segments:"   , mesh_hexas.NbEdges()
-print "Nombre de noeuds:"     , mesh_hexas.NbNodes()
+print(("Nombre d hexaedres:"   , mesh_hexas.NbHexas()))
+print(("Nombre de quadrangles:", mesh_hexas.NbQuadrangles()))
+print(("Nombre de segments:"   , mesh_hexas.NbEdges()))
+print(("Nombre de noeuds:"     , mesh_hexas.NbNodes()))
 
-print  " --- MAILLAGE QUADRANGULAIRE --- "
+print(" --- MAILLAGE QUADRANGULAIRE --- ")
 mesh_quads = hexablock.mesh(doc, "Bielle:quads", 2)
 
-print "Nombre d hexaedres:"   , mesh_quads.NbHexas()
-print "Nombre de quadrangles:", mesh_quads.NbQuadrangles()
-print "Nombre de segments:"   , mesh_quads.NbEdges()
-print "Nombre de noeuds:"     , mesh_quads.NbNodes()
+print(("Nombre d hexaedres:"   , mesh_quads.NbHexas()))
+print(("Nombre de quadrangles:", mesh_quads.NbQuadrangles()))
+print(("Nombre de segments:"   , mesh_quads.NbEdges()))
+print(("Nombre de noeuds:"     , mesh_quads.NbNodes()))
 
-print  " --- MAILLAGE 1D --- "
+print(" --- MAILLAGE 1D --- ")
 mesh_edges = hexablock.mesh(doc, "Bielle:edges", 1)
 
-print "Nombre d hexaedres:"   , mesh_edges.NbHexas()
-print "Nombre de quadrangles:", mesh_edges.NbQuadrangles()
-print "Nombre de segments:"   , mesh_edges.NbEdges()
-print "Nombre de noeuds:"     , mesh_edges.NbNodes()
+print(("Nombre d hexaedres:"   , mesh_edges.NbHexas()))
+print(("Nombre de quadrangles:", mesh_edges.NbQuadrangles()))
+print(("Nombre de segments:"   , mesh_edges.NbEdges()))
+print(("Nombre de noeuds:"     , mesh_edges.NbNodes()))
 
-print  " --- MAILLAGE des sommets --- "
+print(" --- MAILLAGE des sommets --- ")
 mesh_nodes = hexablock.mesh(doc, "Bielle:nodes", 0)
 
-print "Nombre d hexaedres:"   , mesh_nodes.NbHexas()
-print "Nombre de quadrangles:", mesh_nodes.NbQuadrangles()
-print "Nombre de segments:"   , mesh_nodes.NbEdges()
-print "Nombre de noeuds:"     , mesh_nodes.NbNodes()
+print(("Nombre d hexaedres:"   , mesh_nodes.NbHexas()))
+print(("Nombre de quadrangles:", mesh_nodes.NbQuadrangles()))
+print(("Nombre de segments:"   , mesh_nodes.NbEdges()))
+print(("Nombre de noeuds:"     , mesh_nodes.NbNodes()))
index c4818af084b9afd76e9b22053371596a5a5024fd..ad685594588c84eea78c5652d69e039bc14b875d 100644 (file)
@@ -1,4 +1,4 @@
-# -*- coding: latin-1 -*-
+# -*- coding: utf8 -*-
 # Copyright (C) 2009-2016  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
@@ -334,8 +334,8 @@ Face_haut = geompy.GetFaceNearPoint(Bielle_geom, Pt_A)
 Face_bas = geompy.GetFaceNearPoint(Bielle_geom, Pt_B)
 
 
-# Paramtre pour:
-# -r�cup�ration des points.
+# Paramètre pour:
+# -récupération des points.
 # -et associations.
 u_1 = 0.75#0.8
 u_2 = 0.5
@@ -958,40 +958,37 @@ for j in range(N_Propa):
     Propa.setLaw( Law )# appliquer la loi de discretisation sur tout le modele et generer le maillage
 
 #====================================
-# G�n�rer des maillages
+# Générer des maillages
 #====================================
 
-print  " --- MAILLAGE HEXAHEDRIQUE --- "
+print(" --- MAILLAGE HEXAHEDRIQUE --- ")
 mesh_hexas = hexablock.mesh(doc, "Bielle:hexas")
 
-print "Nombre d hexaedres:"   , mesh_hexas.NbHexas()
-print "Nombre de quadrangles:", mesh_hexas.NbQuadrangles()
-print "Nombre de segments:"   , mesh_hexas.NbEdges()
-print "Nombre de noeuds:"     , mesh_hexas.NbNodes()
+print("Nombre d hexaedres:"   , mesh_hexas.NbHexas())
+print("Nombre de quadrangles:", mesh_hexas.NbQuadrangles())
+print("Nombre de segments:"   , mesh_hexas.NbEdges())
+print("Nombre de noeuds:"     , mesh_hexas.NbNodes())
 
-print  " --- MAILLAGE QUADRANGULAIRE --- "
+print(" --- MAILLAGE QUADRANGULAIRE --- ")
 mesh_quads = hexablock.mesh(doc, "Bielle:quads", 2)
 
-print "Nombre d hexaedres:"   , mesh_quads.NbHexas()
-print "Nombre de quadrangles:", mesh_quads.NbQuadrangles()
-print "Nombre de segments:"   , mesh_quads.NbEdges()
-print "Nombre de noeuds:"     , mesh_quads.NbNodes()
+print("Nombre d hexaedres:"   , mesh_quads.NbHexas())
+print("Nombre de quadrangles:", mesh_quads.NbQuadrangles())
+print("Nombre de segments:"   , mesh_quads.NbEdges())
+print("Nombre de noeuds:"     , mesh_quads.NbNodes())
 
-print  " --- MAILLAGE 1D --- "
+print(" --- MAILLAGE 1D --- ")
 mesh_edges = hexablock.mesh(doc, "Bielle:edges", 1)
 
-print "Nombre d hexaedres:"   , mesh_edges.NbHexas()
-print "Nombre de quadrangles:", mesh_edges.NbQuadrangles()
-print "Nombre de segments:"   , mesh_edges.NbEdges()
-print "Nombre de noeuds:"     , mesh_edges.NbNodes()
+print("Nombre d hexaedres:"   , mesh_edges.NbHexas())
+print("Nombre de quadrangles:", mesh_edges.NbQuadrangles())
+print("Nombre de segments:"   , mesh_edges.NbEdges())
+print("Nombre de noeuds:"     , mesh_edges.NbNodes())
 
-print  " --- MAILLAGE des sommets --- "
+print(" --- MAILLAGE des sommets --- ")
 mesh_nodes = hexablock.mesh(doc, "Bielle:nodes", 0)
 
-print "Nombre d hexaedres:"   , mesh_nodes.NbHexas()
-print "Nombre de quadrangles:", mesh_nodes.NbQuadrangles()
-print "Nombre de segments:"   , mesh_nodes.NbEdges()
-print "Nombre de noeuds:"     , mesh_nodes.NbNodes()
-xaedres:"   , mesh_edges.NbHexas()
-print "Nombre de quadrangles:", mesh_edges.NbQuadrangles()
-print "Nombre de segments:"   
+print("Nombre d hexaedres:"   , mesh_nodes.NbHexas())
+print("Nombre de quadrangles:", mesh_nodes.NbQuadrangles())
+print("Nombre de segments:"   , mesh_nodes.NbEdges())
+print("Nombre de noeuds:"     , mesh_nodes.NbNodes())
index 49102d9a05f8d0d63d30aa4f667a47e3f50e9e97..1e1fd93c7b8a315a6ab836edcf8dbe8607e16e7f 100644 (file)
@@ -564,12 +564,12 @@ doc.saveVtk(file_name)
 ## #=================================================
 
 # vertices :
-for key, value in dic_vert_names.iteritems():
+for key, value in list(dic_vert_names.items()):
     geompy.addToStudy(geom_vert_grd[value], key + '_g')
     geompy.addToStudy(geom_vert_pte[value], key + '_p')
 
 # edges :
-for key, value in dic_edge_names.iteritems():
+for key, value in list(dic_edge_names.items()):
     geompy.addToStudy(all_edges_bielle[value], key)
 
 #====================================
@@ -621,7 +621,7 @@ for j in range(doc.countPropagation()):
 # G�n�rer des maillages
 #====================================
 
-print  " --- MAILLAGE HEXAHEDRIQUE --- "
+print(" --- MAILLAGE HEXAHEDRIQUE --- ")
 mesh_hexas = hexablock.mesh(doc)
 
 ## print "Nombre d hexaedres:", mesh_hexas.NbHexas()
index 92a3f4c8d20e70e511717b0e2fb6f1ce3fd5fa40..40b8bc14460aee2943740560e8a39ce10cb34e84 100644 (file)
@@ -67,13 +67,13 @@ def get_vertices_from_cylindrical(grille_cyl, nr, na, nl=1):
 
     # dans cette première version, on considère une grille cylindrique avec nr = 1 et nl = 1
     if (nr !=1) or (nl != 1):
-        print "nr ou nl invalide(s) !!"
+        print("nr ou nl invalide(s) !!")
         return None
     
     vertices = []
     li_z = [nl, 0] # indice nl => face du haut, indice 0 => face du bas
     li_x = [nr, 0] # indice nr => externe, indice 0 => interne
-    li_y = range(na) # indices de 0 à (na-1)
+    li_y = list(range(na)) # indices de 0 à (na-1)
     for k in li_z: # suivant z
         for i in li_x: # suivant x
             for j in li_y: # suivant y 
@@ -297,7 +297,7 @@ geom_vert_grd_bas = [geompy.MakeVertexWithRef(vertex, 0.0, 0.0, -h) for vertex i
 geom_vert_grd.extend(geom_vert_grd_bas)
 
 
-print "nombre vertex grand cylindre geom = ", len(geom_vert_grd)
+print("nombre vertex grand cylindre geom = ", len(geom_vert_grd))
 
 # ajout des vertex de la géométrie à l'étude :
 for num, vertex in enumerate(geom_vert_grd):
@@ -344,7 +344,7 @@ geom_vert_pte.extend([y_h_p_t, x_h_p_t, z_h_p_t, u_h_p_t, w_h_p_t, v_h_p_t])
 geom_vert_pte_bas = [geompy.MakeVertexWithRef(vertex, 0.0, 0.0, -h) for vertex in geom_vert_pte]
 geom_vert_pte.extend(geom_vert_pte_bas)
 
-print "nombre vertex petit cylindre geom = ", len(geom_vert_pte)
+print("nombre vertex petit cylindre geom = ", len(geom_vert_pte))
 
 # ajout des vertex de la géométrie à l'étude :
 for num, vertex in enumerate(geom_vert_pte):
@@ -353,12 +353,3 @@ for num, vertex in enumerate(geom_vert_pte):
 
 # association :
 set_association_from_cylindrical(mod_pte, geom_vert_pte)
-
-le meme ordre :
-# sommets externes puis internes) :
-geom_vert_pte_bas = [geompy.MakeVertexWithRef(vertex, 0.0, 0.0, -h) for vertex in geom_vert_pte]
-geom_vert_pte.extend(geom_vert_pte_bas)
-
-print "nombre vertex petit cylindre geom = ", len(geom_vert_pte)
-
-# ajout des vertex
\ No newline at end of file
index e08d2edf4637f12e3291054b658199330ca6978f..4148784c63d668297ee8e715ed6a7ca969df48b1 100644 (file)
@@ -83,7 +83,7 @@ def merge_quads(doc, quart, demi, ni1, nj1, ni2, nj2, option=0) :
         pass
     else:
 ##         doc.closeQuads(dest, orig)
-        print "closeQuads() : not yet implemented"
+        print("closeQuads() : not yet implemented")
         pass
 
     return None
index 99e2be147da176a880784bc1fea504e679923e58..cff68a176d2288ebca108f75d1af98f00ffe9553 100755 (executable)
@@ -18,7 +18,7 @@
 #
 import sys
 import os
-from optparse import OptionParser
+from argparse import ArgumentParser
 
 def process (file_name):
     """
@@ -27,12 +27,12 @@ def process (file_name):
     """
 
     wr_data = ""
-    with open(file_name, 'r') as f:
+    with open(file_name, 'r', encoding='utf8') as f:
         read_data = f.read()
         wr_data = read_data.replace(',', '.')
         pass
 
-    with open(file_name, 'w') as f:
+    with open(file_name, 'w', encoding='utf8') as f:
         f.write(wr_data)
         pass
 
@@ -40,17 +40,13 @@ def process (file_name):
 
 if __name__ == '__main__':
 
-    usage = "usage: %prog file_name"
-    parser = OptionParser(usage=usage)
-    (options, args) = parser.parse_args()
-
-    if len(args) != 1:
-        print usage
-        sys.exit(1)
+    parser = ArgumentParser()
+    parser.add_argument('file_name', help='Nom du fichier vtk dans $TMP')
+    args = parser.parse_args()
     
-    file_name = os.path.join(os.environ['TMP'], args[0])
+    file_name = os.path.join(os.environ['TMP'], args.file_name)
 
-    print file_name
+    print(file_name)
     process(file_name)
     
     sys.exit() 
index 76ac94fe6e53efbe27a5b8f09cb0c8d89017713d..3811de72da08f3bfbd2b4feefdb85ed28bd2dfc9 100644 (file)
@@ -24,7 +24,7 @@ import GEOM
 import SALOMEDS
 import hexablock
 
-print "test cut hexaedra..."
+print("test cut hexaedra...")
 doc = hexablock.addDocument()
 
 size_x = 2
@@ -50,6 +50,6 @@ file_name = os.path.join(os.environ['TMP'], 'decoupe.vtk')
 ####  doc.saveVtk(file_name)
 
 
-print "...test cut hexaedra OK"
+print("...test cut hexaedra OK")
 
 
index ab076bc076450c3ed0364e8ffb77ac3a1bc815ec..6c2ca918d7fc719aaface472bfd49a4d040c87b5 100644 (file)
@@ -27,7 +27,7 @@ import hexablock
 # differents cas possibles de remplissage possibles :
 
 
-print "test disconnect elements..."
+print("test disconnect elements...")
 doc = hexablock.addDocument()
 
 size_x = 2;
@@ -76,6 +76,6 @@ file_name = os.path.join(os.environ['TMP'], 'disconnect2.vtk')
 ####  doc.saveVtk(file_name)
 
 
-print "...test disconnect elements OK"
+print("...test disconnect elements OK")
 
 
index 5b802ffaf41297b068a787acbe1b8a6c75f57f33..69f04e54b88e7dec8eb9e84129c47c26152178d4 100644 (file)
@@ -26,7 +26,7 @@ import GEOM
 import SALOMEDS
 import hexablock
 
-print "test join..."
+print("test join...")
 doc = hexablock.addDocument()
 
 orig1 = doc.addVertex(0, 0, 0)
@@ -76,4 +76,4 @@ for nh in range(height):
 file_name = os.path.join(os.environ['TMP'], 'joint.vtk')
 ####  elts.saveVtk(file_name)
 
-print "...test join OK"
+print("...test join OK")
index e33bfca5d1f8fd8d348249ac9bbd7888b35da43b..e0a904f6afca482490019df98d3c98d9a9151879 100644 (file)
@@ -27,7 +27,7 @@ import SALOMEDS
 import hexablock
 
 
-print "test grille cartesienne..."
+print("test grille cartesienne...")
 doc = hexablock.addDocument()
 
 orig = doc.addVertex(0, 0, 0)
@@ -47,4 +47,4 @@ grid = doc.makeCartesian(orig, dx, dy, dz, ni, nj, nk)
 file_name = os.path.join(os.environ['TMP'], 'grille_cartesienne.vtk')
 ####  grid.saveVtk(file_name)
 
-print "...test grille cartesienne OK"
+print("...test grille cartesienne OK")
index 9adc43d2fccca30d0b2a8f7f344abd8a2040a914..5ba94d5991ae042eca739b68cf87bcd63625c4b3 100644 (file)
@@ -27,7 +27,7 @@ import hexablock
 # differents cas possibles de remplissage possibles :
 
 
-print "test grille cylindrique..."
+print("test grille cylindrique...")
 doc = hexablock.addDocument()
 
 orig1 = doc.addVertex(0, 0, 0)
@@ -59,6 +59,6 @@ for i in range(2):
 file_name = os.path.join(os.environ['TMP'], 'grilles_cylindriques.vtk')
 ####  doc.saveVtk(file_name)
 
-print "...test grille cylindrique OK"
+print("...test grille cylindrique OK")
 
 
index fe41dea214a78a0c71114dd9e7a9f08e43f8412a..7f4881ce2083682ca841d01c39e2916d6231622b 100644 (file)
@@ -26,7 +26,7 @@ import GEOM
 import SALOMEDS
 import hexablock
 
-print "test cylindre..."
+print("test cylindre...")
 doc = hexablock.addDocument()
 
 base = doc.addVertex(0, 0, 0)
@@ -47,4 +47,4 @@ elts = doc.makeCylinder(cyl, vb, nr, na, nl)
 file_name = os.path.join(os.environ['TMP'], 'cylindre.vtk')
 ####  elts.saveVtk(file_name)
 
-print "...test cylindre OK"
+print("...test cylindre OK")
index 1117c7cbe67d4e774162b250359773ac6c4df873..9967b537f54aaa9f07d075e921e7daad86d2da45 100644 (file)
@@ -24,7 +24,7 @@ import GEOM
 import SALOMEDS
 import hexablock
 
-print "test make elements by transforming elements..."
+print("test make elements by transforming elements...")
 doc = hexablock.addDocument()
 
 size_x = 1
@@ -53,6 +53,6 @@ file_name = os.path.join(os.environ['TMP'], 'transfo_rotation.vtk')
 ####  doc.saveVtk(file_name)
 
 
-print "...test make elements by transforming elements OK"
+print("...test make elements by transforming elements OK")
 
 
index e3ebf6ba023059f94ef97f309c5ae54ef69a524b..0c8793cdd4f892717c589fafbba2c1a44faa7a11 100644 (file)
@@ -26,7 +26,7 @@ import GEOM
 import SALOMEDS
 import hexablock
 
-print "test pipe..."
+print("test pipe...")
 doc = hexablock.addDocument()
 
 orig = doc.addVertex(50, 0, 0)
@@ -48,4 +48,4 @@ elts = doc.makePipe(pi, vb, nr, na, nl)
 file_name = os.path.join(os.environ['TMP'], 'pipe.vtk')
 ####  elts.saveVtk(file_name)
 
-print "...test pipe OK"
+print("...test pipe OK")
index 91bd9cc6817db93a5b3f1ef2d9177e69bfe5dfac..b4460102b9032cc5df01535901dd3070192bdb9c 100644 (file)
@@ -27,7 +27,7 @@ import SALOMEDS
 import hexablock
 
 
-print "test grille spherique..."
+print("test grille spherique...")
 doc = hexablock.addDocument()
 
 orig = doc.addVertex(0, 0, 0)
@@ -47,4 +47,4 @@ grid = doc.makeSpherical(orig, direction, n, k)
 file_name = os.path.join(os.environ['TMP'], 'grille_spherique.vtk')
 ####  grid.saveVtk(file_name)
 
-print "...test grille spherique OK"
+print("...test grille spherique OK")
index 55a71a6ea54ede4b524195d6dd5791dfc7805845..0d92d5903e644c67fe93b7a4120919f9bac710a2 100644 (file)
@@ -26,7 +26,7 @@ import GEOM
 import SALOMEDS
 import hexablock
 
-print "test prism..."
+print("test prism...")
 doc = hexablock.addDocument()
 
 orig = doc.addVertex(0, 0, 0)
@@ -53,4 +53,4 @@ elts = doc.prismQuads(liste, vec, 5)
 file_name = os.path.join(os.environ['TMP'], 'prisme.vtk')
 ####  elts.saveVtk(file_name)
 
-print "...test prism OK"
+print("...test prism OK")
index a8556b0a8c1641c2cc96e2a883dc4dab193e76a7..3c4343e44e938e1cd580f45df3f5c7a28f2cca86 100644 (file)
@@ -24,7 +24,7 @@ import GEOM
 import SALOMEDS
 import hexablock
 
-print "test propagation..."
+print("test propagation...")
 doc = hexablock.addDocument()
 
 size_x = 2
@@ -41,13 +41,13 @@ for nro in range(doc.countPropagation()):
     prop = doc.getPropagation(nro)
     edges = prop.getEdges()
 
-    print("____________________________________ Prop nro %d" % (nro))
+    print(("____________________________________ Prop nro %d" % (nro)))
     for edge in edges:
 # test impossible en python car impossible de recuperer le nom des vertex
         if edge.getWay():
-            print "( ", edge.getVertex(0).name, ",", edge.getVertex(1).name, " )"
+            print(("( ", edge.getVertex(0).name, ",", edge.getVertex(1).name, " )"))
         else:
-            print "( ", edge.getVertex(1).getName(), ",", edge.getVertex(0).getName(), " )"
+            print(("( ", edge.getVertex(1).getName(), ",", edge.getVertex(0).getName(), " )"))
         pass
     pass
 
@@ -56,6 +56,6 @@ for nro in range(doc.countPropagation()):
 file_name = os.path.join(os.environ['TMP'], 'propagation.vtk')
 ####  doc.saveVtk(file_name)
 
-print "...test propagation OK"
+print("...test propagation OK")
 
 
index f5b40fcb7e4357d9f6bccff6c8b2b1bf14f5d2b3..e0eac6da52f97d0867e9da81138160dbd49efc1c 100644 (file)
@@ -20,6 +20,6 @@
 
 used_edges = []
 
-for i in xrange( doc.countUsedEdge() ):
+for i in range( doc.countUsedEdge() ):
     edge_i = doc.getUsedEdge(i)
     used_edges.append(edge_i)   
index 12072fe031cff307c9ae86392b4b8085b79e16ea..e42cc2503e264a28a8cf24df83e017f6b3291092 100644 (file)
@@ -20,6 +20,6 @@
 
 used_hexas = []
 
-for i in xrange( doc.countUsedHexa() ):
+for i in range( doc.countUsedHexa() ):
     hexa_i = doc.getUsedHexa(i)
     used_hexas.append(hexa_i)   
index 7539595b5810a2c0afa79d7684e3bb1a99050d1d..791cc5324dfa8e52ef4c8bbbec6cd1aa52d58662 100644 (file)
@@ -20,6 +20,6 @@
 
 used_quads = []
 
-for i in xrange( doc.countUsedQuad() ):
+for i in range( doc.countUsedQuad() ):
     quad_i = doc.getUsedQuad(i)
     used_quads.append(quad_i)   
index 1868cf13a8d1ed533ccec88c958ae5f8612e0bfc..40e15dc4ddb0387281ccb45bf01a347d0279b0e4 100644 (file)
@@ -20,6 +20,6 @@
 
 used_vertices = []
 
-for i in xrange( doc.countUsedVertex() ):
+for i in range( doc.countUsedVertex() ):
     vertex_i = doc.getUsedVertex(i)
     used_vertices.append(vertex_i)      
index d35241d42510b79e3ac5eccc0e738979968b672c..1a74d04c22785918d6576cd3223445cb51cafe94 100644 (file)
@@ -31,10 +31,6 @@ Get the document number *i*::
 Remove a document in the session::
 
     hexablock.removeDocument(doc_i)
-    
-Set the current study::
-
-       hexablock.SetCurrentStudy(theStudy)
 
 Get a document from the current study::
 
index cead4b77efb0e9118743c486003d663eb1d32335..befcd897104fa18522ff7379bb045f28c48023de 100644 (file)
@@ -1,2 +1,2 @@
-def coucou () :\r
-    print "Coucou, coucou, coucou !"\r
+def coucou () :
+    print("Coucou, coucou, coucou !")
index 675018f0887ae8f7d65dcb3253c22c5fbbc04899..9647cba74b75dd09831b5e2a18b5adf2fa58dd2c 100644 (file)
@@ -76,5 +76,5 @@ def printMessage () :
        return
     for ni in range (nl) :
         mess = hexa.getMessageLine (ni)
-        print mess
+        print(mess)
 
index cff4a467fde55d51bdb98f74cded0ef99e854d12..5ea5168593f5d45134ab95909a28d7eeb74da442 100755 (executable)
 using namespace std;
 using namespace HEXABLOCK::GUI;
 
-int  HEXABLOCKGUI::_oldStudyId = -1;
-
 // HEXABLOCK_ORB::HEXABLOCK_Gen_var HEXABLOCKGUI::_hexaEngine  = HEXABLOCK_ORB::HEXABLOCK_Gen::_nil();
 //
 VtkDocumentGraphicView* HEXABLOCKGUI::currentDocGView = NULL;
@@ -252,7 +250,6 @@ void HEXABLOCKGUI::initialize( CAM_Application* app )
     createActions();
     createMenus();
     createTools();
-    studyActivated();
 }
 
 void HEXABLOCKGUI::viewManagers( QStringList& list ) const
@@ -340,15 +337,6 @@ bool HEXABLOCKGUI::activateModule( SUIT_Study* theStudy )
                 this, SLOT( onWindowClosed(SUIT_ViewWindow *) ), Qt::UniqueConnection );
     }
 
-    /* ************************************   TODO Hexa6
-    _hexaEngine->SetCurrentStudy(SALOMEDS::Study::_nil());
-    if ( SalomeApp_Study* s = dynamic_cast<SalomeApp_Study*>( theStudy ))
-        if ( _PTR(Study) aStudy = s->studyDS()) {
-            _hexaEngine->SetCurrentStudy( _CAST(Study,aStudy)->GetStudy() );
-            updateObjBrowser(); // objects can be removed
-        }
-     ************************************ */
-
     if (currentOccGView != NULL && currentOccGView->getViewWindow() != NULL)
             currentOccGView->getViewWindow()->installEventFilter(this);
 
@@ -421,13 +409,11 @@ bool HEXABLOCKGUI::deactivateModule( SUIT_Study* theStudy )
     return bOk;
 }
 
-SALOMEDS::Study_var HEXABLOCKGUI::ClientStudyToStudy (_PTR(Study) theStudy)
+SALOMEDS::Study_var HEXABLOCKGUI::getStudyServant()
 {
   SALOME_NamingService *aNamingService = SalomeApp_Application::namingService();
-  CORBA::Object_var aSMObject = aNamingService->Resolve("/myStudyManager");
-  SALOMEDS::StudyManager_var aStudyManager = SALOMEDS::StudyManager::_narrow(aSMObject);
-  int aStudyID = theStudy->StudyId();
-  SALOMEDS::Study_var aDSStudy = aStudyManager->GetStudyByID(aStudyID);
+  CORBA::Object_var aSMObject = aNamingService->Resolve("/Study");
+  SALOMEDS::Study_var aDSStudy = SALOMEDS::Study::_narrow(aSMObject);
   return aDSStudy._retn();
 }
 
@@ -440,8 +426,7 @@ void HEXABLOCKGUI::addInStudy(QMap<QString, TopoDS_Shape>& topo_shapes,
 
     SalomeApp_Study* appStudy = HEXABLOCKGUI::activeStudy();
     if(!appStudy) return;
-    _PTR(Study) aStudy = appStudy->studyDS();
-    SALOMEDS::Study_var aDSStudy = ClientStudyToStudy( aStudy );
+    SALOMEDS::Study_var aDSStudy = getStudyServant();
     SALOMEDS::StudyBuilder_var     aBuilder (aDSStudy->NewBuilder());
     QString entry = currentDocGView->getDocumentModel()->documentEntry();
     SALOMEDS::SObject_var aFatherSO = aDSStudy->FindObjectID( qPrintable(entry) );
@@ -505,29 +490,18 @@ bool HEXABLOCKGUI::renameObject( const QString& entry, const QString& name)
     if (dgview == NULL || dgview->getDocumentModel() == NULL)
         return result;
 
-    SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>( SUIT_Session::session()->activeApplication());
-    SalomeApp_Study* appStudy = app ? dynamic_cast<SalomeApp_Study*>( app->activeStudy() ) : 0;
-
-    if(!appStudy)
-        return result;
-
-    _PTR(Study) aStudy = appStudy->studyDS();
-
-    if(!aStudy)
-        return result;;
-
-    _PTR(SObject) obj ( aStudy->FindObjectID(qPrintable(entry)) );
+    _PTR(SObject) obj ( SalomeApp_Application::getStudy()->FindObjectID(qPrintable(entry)) );
     _PTR(GenericAttribute) anAttr;
     if ( obj ){
-        if ( obj->FindAttribute(anAttr, "AttributeName") ){
-            _PTR(AttributeName) aName (anAttr);
-            DocumentModel* docModel = dgview->getDocumentModel();
-            docModel->setName( name );
-            aName->SetValue( name.toLatin1().data() );
-            getApp()->updateObjectBrowser();
-//            _dwPattern->setWindowTitle( name );
-            result = true;
-        }
+      if ( obj->FindAttribute(anAttr, "AttributeName") ) {
+        _PTR(AttributeName) aName (anAttr);
+        DocumentModel* docModel = dgview->getDocumentModel();
+        docModel->setName( name );
+        aName->SetValue( name.toLatin1().data() );
+        getApp()->updateObjectBrowser();
+//        _dwPattern->setWindowTitle( name );
+        result = true;
+      }
     }
     return result;
 }
@@ -830,7 +804,7 @@ bool HEXABLOCKGUI::createSComponent() //addComponent
     DEBTRACE("HEXABLOCKGUI::createSComponent");
     // --- Find or create (if not done yet) "HEXABLOCK" SComponent in the study
 
-    _PTR(Study)            aStudy = (( SalomeApp_Study* )(getApp()->activeStudy()))->studyDS();
+    _PTR(Study)            aStudy = SalomeApp_Application::getStudy();
     _PTR(StudyBuilder)     aBuilder (aStudy->NewBuilder());
     _PTR(GenericAttribute) anAttr;
     _PTR(AttributeName)    aName;
@@ -875,26 +849,6 @@ void HEXABLOCKGUI::preferencesChanged( const QString& sect, const QString& name
 //        _genericGui->getCatalogWidget()->addCatalogFromFile(Resource::userCatalog.toStdString());
 }
 
-void HEXABLOCKGUI::studyActivated() //CS_TODO
-{
-    int newStudyId = getApp()->activeStudy()->id();
-    DEBTRACE("HEXABLOCKGUI::studyActivated " << _oldStudyId << " " << newStudyId);
-//    if (_oldStudyId != -1)
-//    {
-//        _studyContextMap[_oldStudyId] = QtGuiContext::getQtCurrent();
-//        if (_studyContextMap.count(newStudyId))
-//        {
-//            DEBTRACE("switch to valid context " << QtGuiContext::getQtCurrent() << " " << _studyContextMap[newStudyId]);
-//            QtGuiContext::setQtCurrent(_studyContextMap[newStudyId]);
-//        }
-//        else
-//        {
-//            DEBTRACE("no switch to null context");
-//        }
-//    }
-    _oldStudyId = newStudyId;
-}
-
 void HEXABLOCKGUI::treeContextMenu(const QPoint& aPosition)
 {
     QModelIndex currentIndex = _patternDataTreeView->currentIndex();
@@ -3239,8 +3193,7 @@ QString HEXABLOCKGUI::addDocInStudy (HEXA_NS::Document* document)
     if (app_study == NULL)
         return docEntry;
 
-    _PTR(Study)         study    = app_study->studyDS();
-    SALOMEDS::Study_var ds_study = ClientStudyToStudy (study);
+    SALOMEDS::Study_var ds_study = getStudyServant();
     SALOMEDS::StudyBuilder_var aBuilder (ds_study->NewBuilder());
     QString entry = app_study->centry("HEXABLOCK");
     SALOMEDS::SObject_var aFatherSO = ds_study->FindObjectID( qPrintable(entry) );
index 9b88c6aa04829f7988e54a87ea7266df05a3d594..2b37fa2757f4d1ea9f21f1d99290754b4721a4f2 100755 (executable)
@@ -136,7 +136,7 @@ public:
 
   // static HEXABLOCK_ORB::HEXABLOCK_Gen_ptr InitHEXABLOCKGen( SalomeApp_Application* );
   static LightApp_SelectionMgr*   selectionMgr();
-  static SALOMEDS::Study_var  ClientStudyToStudy (_PTR(Study) theStudy);
+  static SALOMEDS::Study_var  getStudyServant();
   static ViewType getActiveViewType();
   static HEXABLOCKGUI*  getInstance();
 
@@ -161,7 +161,6 @@ public:
   virtual void setResource(SUIT_ResourceMgr* r);
   virtual void createPreferences();
   virtual void preferencesChanged( const QString& sect, const QString& name );
-  virtual void studyActivated();
 
   ///Returns a new HEXA_NS::Document and it's entry in the study
   std::pair <QString, HEXA_NS::Document*> newHexaDocument();
@@ -247,7 +246,6 @@ protected:
   HEXABLOCK::GUI::VtkDocumentGraphicView* lastVtkDocGView;
 
   HEXABLOCKGUI_Resource* _myresource;
-  static int _oldStudyId;
   // static HEXABLOCK_ORB::HEXABLOCK_Gen_var _hexaEngine;  // Hexa6 TODo
 private slots:
 
index 2fed0c5e7d3f62bf475189e60ae161532a48ad90..1dae5ca782ea2dfdedc600aabb0c3e7088aaa9be 100644 (file)
@@ -30,7 +30,6 @@
 
 #include <SUIT_Session.h>
 
-#include <SalomeApp_Study.h>
 #include <SalomeApp_Application.h>
 
 #include <OCCViewer_ViewWindow.h>
@@ -87,13 +86,12 @@ namespace GUI
        }
 
 
-       _PTR(Study) GetActiveStudyDocument()
+       _PTR(Study) getStudy()
        {
-               SalomeApp_Study* aStudy = dynamic_cast<SalomeApp_Study*>(GetActiveStudy());
-               if (aStudy)
-                       return aStudy->studyDS();
-               else
-                       return _PTR(Study)();
+      static _PTR(Study) _study;
+        if(!_study)
+          _study = SalomeApp_Application::getStudy();
+      return _study;
        }
 
 
index 2683d4857dc82bae92f554325039dd3ec2e1953b..9515fa0903eb3f0e8b718b3fdbd93cadfef2e596 100644 (file)
@@ -41,7 +41,7 @@ namespace HEXABLOCK
   {
 
 HEXABLOCK_EXPORT  SALOME_Actor* findActorByEntry( SVTK_ViewWindow *theVtkViewWindow, const char* theEntry );
-  _PTR(Study)   GetActiveStudyDocument();
+  _PTR(Study)   getStudy();
 
 HEXABLOCK_EXPORT int GetNameOfSelectedElements( SVTK_ViewWindow *theWindow,/* SVTK_Selector* theSelector,*/
                                  const Handle(SALOME_InteractiveObject)& theIO,
index 5541e9989f2908d9d179e266e03977ccfc4ca1fe..076a2dd8d627eec11b3d236a6d1bcc68e20cc9b8 100644 (file)
@@ -59,7 +59,7 @@ SET(_link_LIBRARIES
 
 # swig flags
 SET_SOURCE_FILES_PROPERTIES(hexablock_swig.i PROPERTIES CPLUSPLUS ON)
-SET_SOURCE_FILES_PROPERTIES(hexablock_swig.i PROPERTIES SWIG_DEFINITIONS "-shadow")
+SET_SOURCE_FILES_PROPERTIES(hexablock_swig.i PROPERTIES SWIG_FLAGS "-py3")
 
 # --- sources ---
 
index 6698c87884a1b72765d92795c2037b16e96ee759..f1f8b71885823d598c8c5122bee98b6d7b214d36 100644 (file)
@@ -28,12 +28,12 @@ import salome
 salome.salome_init()
 
 from salome.geom import geomBuilder
-geompy = geomBuilder.New(salome.myStudy)
+geompy = geomBuilder.New()
 
 
 import SMESH
 from salome.smesh import smeshBuilder
-smesh = smeshBuilder.New(salome.myStudy)
+smesh = smeshBuilder.New()
 
 component = hexablock_swig.hex_instance ()
 
@@ -80,43 +80,43 @@ def findDocument (name) :
 def dump(doc, mesh=None, full=False):
     if full:
         hn = doc.countUsedHexa()
-        print "Model dump: number of hexas: ", hn
-        for hi in xrange(hn):
+        print("Model dump: number of hexas: ", hn)
+        for hi in range(hn):
             hh = doc.getUsedHexa(hi)
-            print "  hexa: ", hi, "name: ", hh.getName()
-            for fi in xrange(6):
+            print("  hexa: ", hi, "name: ", hh.getName())
+            for fi in range(6):
                 ff = hh.getQuad(fi)
                 fa = ff.getAssociations()
-                print "    quadrangle: ", fi, "name: ", ff.getName(), " associated: ", fa!=[]
-                for ei in xrange(4):
+                print("    quadrangle: ", fi, "name: ", ff.getName(), " associated: ", fa!=[])
+                for ei in range(4):
                     ee = ff.getEdge(ei)
                     ea = ee.getAssociations()
-                    print "      edge: ", ei, "name: ", ee.getName(), " associated: ", ea!=[]
-                    for vi in xrange(2):
+                    print("      edge: ", ei, "name: ", ee.getName(), " associated: ", ea!=[])
+                    for vi in range(2):
                         vv = ee.getVertex(vi)
                         va = vv.getAssociation()
-                        print "        vertex: ", vi, "name: ", vv.getName(), " associated: ", va!=None
-                        print "          model: x= ", vv.getX(), " y= ", vv.getY(), " z= ", vv.getZ()
+                        print("        vertex: ", vi, "name: ", vv.getName(), " associated: ", va!=None)
+                        print("          model: x= ", vv.getX(), " y= ", vv.getY(), " z= ", vv.getZ())
                         if va!=None:
                             x, y, z = geompy.PointCoordinates(va)
-                            print "          assoc: x= ", x, " y= ", y, " z= ", z
+                            print("          assoc: x= ", x, " y= ", y, " z= ", z)
 
     uv = doc.countUsedVertex()
     ue = doc.countUsedEdge()
     uq = doc.countUsedQuad()
     uh = doc.countUsedHexa()
 
-    print "Model vertices    number: ", uv
-    print "Model edges       number: ", ue
-    print "Model quadrangles number: ", uq
-    print "Model blocks      number: ", uh
+    print("Model vertices    number: ", uv)
+    print("Model edges       number: ", ue)
+    print("Model quadrangles number: ", uq)
+    print("Model blocks      number: ", uh)
 
     if mesh != None:
-        print
-        print "Mesh nodes       number: ", mesh.NbNodes()
-        print "Mesh segments    number: ", mesh.NbEdges()
-        print "Mesh quadrangles number: ", mesh.NbQuadrangles()
-        print "Mesh hexas       number: ", mesh.NbHexas()
+        print()
+        print("Mesh nodes       number: ", mesh.NbNodes())
+        print("Mesh segments    number: ", mesh.NbEdges())
+        print("Mesh quadrangles number: ", mesh.NbQuadrangles())
+        print("Mesh hexas       number: ", mesh.NbHexas())
 
     return uv, ue, uq, uh
 
@@ -125,7 +125,7 @@ def dump(doc, mesh=None, full=False):
 def mesh (doc, name=None, dim=3, container="FactoryServer"):
     study = salome.myStudy
 
-    if type(doc) == type(""):
+    if isinstance(doc, type("")):
         doc = component.findDocument (doc)
     docname = doc.getName()
 
@@ -149,7 +149,7 @@ def mesh (doc, name=None, dim=3, container="FactoryServer"):
 
     geompy.addToStudy(shape, name)
     comp_smesh = salome.lcc.FindOrLoadComponent(container, "SMESH")
-    comp_smesh.init_smesh(study, geomBuilder.geom)
+    comp_smesh.init_smesh(geomBuilder.geom)
     meshexa = comp_smesh.Mesh(shape)
 
     so = "libHexaBlockPluginEngine.so"
@@ -161,7 +161,7 @@ def mesh (doc, name=None, dim=3, container="FactoryServer"):
     meshexa.mesh.AddHypothesis(shape, hypo)
 
     ### hypo.SetDocument(doc.getXml())   ## Hexa6 TODO et a verifier
-    print " Maillage du document ", docname
+    print(" Maillage du document ", docname)
     hypo.SetDocument (docname);
     hypo.SetDimension(dim)
 
@@ -174,7 +174,7 @@ def getFromStudy(entry):
     study    = salome.myStudy
     sobject  = study.FindObjectID(entry)
     if sobject == None :
-       print " **** Entry ", entry, " is undefined"
+       print(" **** Entry ", entry, " is undefined")
        return None
 
     builder  = study.NewBuilder()
@@ -182,14 +182,14 @@ def getFromStudy(entry):
     docname  = attname.Value()
     doc = component.findDocument(docname)
     if doc == None :
-       print " **** Entry ", entry, " doesn't correspond to an HexaBlock Document"
+       print(" **** Entry ", entry, " doesn't correspond to an HexaBlock Document")
 
     return doc
 
 # ==================================================== findOrCreateComponent
 # Find or create HexaBlock Study Component
-def findOrCreateComponent( study, builder ):
-    father = study.FindComponent( moduleName() )
+def findOrCreateComponent( builder ):
+    father = salome.myStudy.FindComponent( moduleName() )
     if father is None:
        father = builder.NewComponent( moduleName() )
        attr = builder.FindOrCreateAttribute( father, "AttributeName" )
@@ -203,17 +203,17 @@ def findOrCreateComponent( study, builder ):
 # Add a document in the current study
 def addToStudy(doc):
     if doc == None :
-       print " *** addToStudy : Bad Document Pointer"
+       print(" *** addToStudy : Bad Document Pointer")
        return
 
     study   = salome.myStudy
     builder = study.NewBuilder()
-    father  = findOrCreateComponent( study, builder )
+    father  = findOrCreateComponent( builder )
     name    = doc.getName ()
 
     present = study.FindObjectByName(name, moduleName())
     if present != [] :
-       print " *** addToStudy : Document ", name, "is already in the study"
+       print(" *** addToStudy : Document ", name, "is already in the study")
        return
 
     object  = builder.NewObject( father )
@@ -224,6 +224,6 @@ def addToStudy(doc):
 # ==================================================== addShape
 # Add a document in the current study
 def addShape (doc, shape, name):
-    print "Call addShape"
+    print("Call addShape")
     forme = doc.addShape (shape.getShape(), name)
     return forme
index d9829676d0a60fcaedf8d96e2688f0485d960d39..efb1dfa38a1bb0706458d1e642326ddae994ec31 100644 (file)
 # This file was automatically generated by SWIG (http://www.swig.org).
-# Version 1.3.31
+# Version 3.0.12
 #
-# Don't modify this file, modify the SWIG interface instead.
-# This file is compatible with both classic and new-style classes.
+# Do not make changes to this file unless you know what you are doing--modify
+# the SWIG interface file instead.
+
+from sys import version_info as _swig_python_version_info
+if _swig_python_version_info >= (2, 7, 0):
+    def swig_import_helper():
+        import importlib
+        pkg = __name__.rpartition('.')[0]
+        mname = '.'.join((pkg, '_hexablock_swig')).lstrip('.')
+        try:
+            return importlib.import_module(mname)
+        except ImportError:
+            return importlib.import_module('_hexablock_swig')
+    _hexablock_swig = swig_import_helper()
+    del swig_import_helper
+elif _swig_python_version_info >= (2, 6, 0):
+    def swig_import_helper():
+        from os.path import dirname
+        import imp
+        fp = None
+        try:
+            fp, pathname, description = imp.find_module('_hexablock_swig', [dirname(__file__)])
+        except ImportError:
+            import _hexablock_swig
+            return _hexablock_swig
+        try:
+            _mod = imp.load_module('_hexablock_swig', fp, pathname, description)
+        finally:
+            if fp is not None:
+                fp.close()
+        return _mod
+    _hexablock_swig = swig_import_helper()
+    del swig_import_helper
+else:
+    import _hexablock_swig
+del _swig_python_version_info
 
-import _hexablock_swig
-import new
-new_instancemethod = new.instancemethod
 try:
     _swig_property = property
 except NameError:
-    pass # Python < 2.2 doesn't have 'property'.
-def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
-    if (name == "thisown"): return self.this.own(value)
+    pass  # Python < 2.2 doesn't have 'property'.
+
+try:
+    import builtins as __builtin__
+except ImportError:
+    import __builtin__
+
+def _swig_setattr_nondynamic(self, class_type, name, value, static=1):
+    if (name == "thisown"):
+        return self.this.own(value)
     if (name == "this"):
-        if type(value).__name__ == 'PySwigObject':
+        if type(value).__name__ == 'SwigPyObject':
             self.__dict__[name] = value
             return
-    method = class_type.__swig_setmethods__.get(name,None)
-    if method: return method(self,value)
-    if (not static) or hasattr(self,name):
-        self.__dict__[name] = value
+    method = class_type.__swig_setmethods__.get(name, None)
+    if method:
+        return method(self, value)
+    if (not static):
+        if _newclass:
+            object.__setattr__(self, name, value)
+        else:
+            self.__dict__[name] = value
     else:
         raise AttributeError("You cannot add attributes to %s" % self)
 
-def _swig_setattr(self,class_type,name,value):
-    return _swig_setattr_nondynamic(self,class_type,name,value,0)
 
-def _swig_getattr(self,class_type,name):
-    if (name == "thisown"): return self.this.own()
-    method = class_type.__swig_getmethods__.get(name,None)
-    if method: return method(self)
-    raise AttributeError,name
+def _swig_setattr(self, class_type, name, value):
+    return _swig_setattr_nondynamic(self, class_type, name, value, 0)
+
+
+def _swig_getattr(self, class_type, name):
+    if (name == "thisown"):
+        return self.this.own()
+    method = class_type.__swig_getmethods__.get(name, None)
+    if method:
+        return method(self)
+    raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name))
+
 
 def _swig_repr(self):
-    try: strthis = "proxy of " + self.this.__repr__()
-    except: strthis = ""
+    try:
+        strthis = "proxy of " + self.this.__repr__()
+    except __builtin__.Exception:
+        strthis = ""
     return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
 
-import types
 try:
-    _object = types.ObjectType
+    _object = object
     _newclass = 1
-except AttributeError:
-    class _object : pass
+except __builtin__.Exception:
+    class _object:
+        pass
     _newclass = 0
-del types
-
 
-class PySwigIterator(_object):
+class SwigPyIterator(_object):
     __swig_setmethods__ = {}
-    __setattr__ = lambda self, name, value: _swig_setattr(self, PySwigIterator, name, value)
+    __setattr__ = lambda self, name, value: _swig_setattr(self, SwigPyIterator, name, value)
     __swig_getmethods__ = {}
-    __getattr__ = lambda self, name: _swig_getattr(self, PySwigIterator, name)
-    def __init__(self): raise AttributeError, "No constructor defined"
+    __getattr__ = lambda self, name: _swig_getattr(self, SwigPyIterator, name)
+
+    def __init__(self, *args, **kwargs):
+        raise AttributeError("No constructor defined - class is abstract")
     __repr__ = _swig_repr
-    __swig_destroy__ = _hexablock_swig.delete_PySwigIterator
-    __del__ = lambda self : None;
-    def value(*args): return _hexablock_swig.PySwigIterator_value(*args)
-    def incr(*args): return _hexablock_swig.PySwigIterator_incr(*args)
-    def decr(*args): return _hexablock_swig.PySwigIterator_decr(*args)
-    def distance(*args): return _hexablock_swig.PySwigIterator_distance(*args)
-    def equal(*args): return _hexablock_swig.PySwigIterator_equal(*args)
-    def copy(*args): return _hexablock_swig.PySwigIterator_copy(*args)
-    def next(*args): return _hexablock_swig.PySwigIterator_next(*args)
-    def previous(*args): return _hexablock_swig.PySwigIterator_previous(*args)
-    def advance(*args): return _hexablock_swig.PySwigIterator_advance(*args)
-    def __eq__(*args): return _hexablock_swig.PySwigIterator___eq__(*args)
-    def __ne__(*args): return _hexablock_swig.PySwigIterator___ne__(*args)
-    def __iadd__(*args): return _hexablock_swig.PySwigIterator___iadd__(*args)
-    def __isub__(*args): return _hexablock_swig.PySwigIterator___isub__(*args)
-    def __add__(*args): return _hexablock_swig.PySwigIterator___add__(*args)
-    def __sub__(*args): return _hexablock_swig.PySwigIterator___sub__(*args)
-    def __iter__(self): return self
-PySwigIterator_swigregister = _hexablock_swig.PySwigIterator_swigregister
-PySwigIterator_swigregister(PySwigIterator)
+    __swig_destroy__ = _hexablock_swig.delete_SwigPyIterator
+    __del__ = lambda self: None
+
+    def value(self):
+        return _hexablock_swig.SwigPyIterator_value(self)
+
+    def incr(self, n=1):
+        return _hexablock_swig.SwigPyIterator_incr(self, n)
+
+    def decr(self, n=1):
+        return _hexablock_swig.SwigPyIterator_decr(self, n)
+
+    def distance(self, x):
+        return _hexablock_swig.SwigPyIterator_distance(self, x)
+
+    def equal(self, x):
+        return _hexablock_swig.SwigPyIterator_equal(self, x)
+
+    def copy(self):
+        return _hexablock_swig.SwigPyIterator_copy(self)
+
+    def next(self):
+        return _hexablock_swig.SwigPyIterator_next(self)
+
+    def __next__(self):
+        return _hexablock_swig.SwigPyIterator___next__(self)
+
+    def previous(self):
+        return _hexablock_swig.SwigPyIterator_previous(self)
+
+    def advance(self, n):
+        return _hexablock_swig.SwigPyIterator_advance(self, n)
+
+    def __eq__(self, x):
+        return _hexablock_swig.SwigPyIterator___eq__(self, x)
+
+    def __ne__(self, x):
+        return _hexablock_swig.SwigPyIterator___ne__(self, x)
+
+    def __iadd__(self, n):
+        return _hexablock_swig.SwigPyIterator___iadd__(self, n)
+
+    def __isub__(self, n):
+        return _hexablock_swig.SwigPyIterator___isub__(self, n)
+
+    def __add__(self, n):
+        return _hexablock_swig.SwigPyIterator___add__(self, n)
+
+    def __sub__(self, *args):
+        return _hexablock_swig.SwigPyIterator___sub__(self, *args)
+    def __iter__(self):
+        return self
+SwigPyIterator_swigregister = _hexablock_swig.SwigPyIterator_swigregister
+SwigPyIterator_swigregister(SwigPyIterator)
 
 class VectorHexas(_object):
     __swig_setmethods__ = {}
@@ -82,43 +165,110 @@ class VectorHexas(_object):
     __swig_getmethods__ = {}
     __getattr__ = lambda self, name: _swig_getattr(self, VectorHexas, name)
     __repr__ = _swig_repr
-    def iterator(*args): return _hexablock_swig.VectorHexas_iterator(*args)
-    def __iter__(self): return self.iterator()
-    def __nonzero__(*args): return _hexablock_swig.VectorHexas___nonzero__(*args)
-    def __len__(*args): return _hexablock_swig.VectorHexas___len__(*args)
-    def pop(*args): return _hexablock_swig.VectorHexas_pop(*args)
-    def __getslice__(*args): return _hexablock_swig.VectorHexas___getslice__(*args)
-    def __setslice__(*args): return _hexablock_swig.VectorHexas___setslice__(*args)
-    def __delslice__(*args): return _hexablock_swig.VectorHexas___delslice__(*args)
-    def __delitem__(*args): return _hexablock_swig.VectorHexas___delitem__(*args)
-    def __getitem__(*args): return _hexablock_swig.VectorHexas___getitem__(*args)
-    def __setitem__(*args): return _hexablock_swig.VectorHexas___setitem__(*args)
-    def append(*args): return _hexablock_swig.VectorHexas_append(*args)
-    def empty(*args): return _hexablock_swig.VectorHexas_empty(*args)
-    def size(*args): return _hexablock_swig.VectorHexas_size(*args)
-    def clear(*args): return _hexablock_swig.VectorHexas_clear(*args)
-    def swap(*args): return _hexablock_swig.VectorHexas_swap(*args)
-    def get_allocator(*args): return _hexablock_swig.VectorHexas_get_allocator(*args)
-    def begin(*args): return _hexablock_swig.VectorHexas_begin(*args)
-    def end(*args): return _hexablock_swig.VectorHexas_end(*args)
-    def rbegin(*args): return _hexablock_swig.VectorHexas_rbegin(*args)
-    def rend(*args): return _hexablock_swig.VectorHexas_rend(*args)
-    def pop_back(*args): return _hexablock_swig.VectorHexas_pop_back(*args)
-    def erase(*args): return _hexablock_swig.VectorHexas_erase(*args)
-    def __init__(self, *args): 
+
+    def iterator(self):
+        return _hexablock_swig.VectorHexas_iterator(self)
+    def __iter__(self):
+        return self.iterator()
+
+    def __nonzero__(self):
+        return _hexablock_swig.VectorHexas___nonzero__(self)
+
+    def __bool__(self):
+        return _hexablock_swig.VectorHexas___bool__(self)
+
+    def __len__(self):
+        return _hexablock_swig.VectorHexas___len__(self)
+
+    def __getslice__(self, i, j):
+        return _hexablock_swig.VectorHexas___getslice__(self, i, j)
+
+    def __setslice__(self, *args):
+        return _hexablock_swig.VectorHexas___setslice__(self, *args)
+
+    def __delslice__(self, i, j):
+        return _hexablock_swig.VectorHexas___delslice__(self, i, j)
+
+    def __delitem__(self, *args):
+        return _hexablock_swig.VectorHexas___delitem__(self, *args)
+
+    def __getitem__(self, *args):
+        return _hexablock_swig.VectorHexas___getitem__(self, *args)
+
+    def __setitem__(self, *args):
+        return _hexablock_swig.VectorHexas___setitem__(self, *args)
+
+    def pop(self):
+        return _hexablock_swig.VectorHexas_pop(self)
+
+    def append(self, x):
+        return _hexablock_swig.VectorHexas_append(self, x)
+
+    def empty(self):
+        return _hexablock_swig.VectorHexas_empty(self)
+
+    def size(self):
+        return _hexablock_swig.VectorHexas_size(self)
+
+    def swap(self, v):
+        return _hexablock_swig.VectorHexas_swap(self, v)
+
+    def begin(self):
+        return _hexablock_swig.VectorHexas_begin(self)
+
+    def end(self):
+        return _hexablock_swig.VectorHexas_end(self)
+
+    def rbegin(self):
+        return _hexablock_swig.VectorHexas_rbegin(self)
+
+    def rend(self):
+        return _hexablock_swig.VectorHexas_rend(self)
+
+    def clear(self):
+        return _hexablock_swig.VectorHexas_clear(self)
+
+    def get_allocator(self):
+        return _hexablock_swig.VectorHexas_get_allocator(self)
+
+    def pop_back(self):
+        return _hexablock_swig.VectorHexas_pop_back(self)
+
+    def erase(self, *args):
+        return _hexablock_swig.VectorHexas_erase(self, *args)
+
+    def __init__(self, *args):
         this = _hexablock_swig.new_VectorHexas(*args)
-        try: self.this.append(this)
-        except: self.this = this
-    def push_back(*args): return _hexablock_swig.VectorHexas_push_back(*args)
-    def front(*args): return _hexablock_swig.VectorHexas_front(*args)
-    def back(*args): return _hexablock_swig.VectorHexas_back(*args)
-    def assign(*args): return _hexablock_swig.VectorHexas_assign(*args)
-    def resize(*args): return _hexablock_swig.VectorHexas_resize(*args)
-    def insert(*args): return _hexablock_swig.VectorHexas_insert(*args)
-    def reserve(*args): return _hexablock_swig.VectorHexas_reserve(*args)
-    def capacity(*args): return _hexablock_swig.VectorHexas_capacity(*args)
+        try:
+            self.this.append(this)
+        except __builtin__.Exception:
+            self.this = this
+
+    def push_back(self, x):
+        return _hexablock_swig.VectorHexas_push_back(self, x)
+
+    def front(self):
+        return _hexablock_swig.VectorHexas_front(self)
+
+    def back(self):
+        return _hexablock_swig.VectorHexas_back(self)
+
+    def assign(self, n, x):
+        return _hexablock_swig.VectorHexas_assign(self, n, x)
+
+    def resize(self, *args):
+        return _hexablock_swig.VectorHexas_resize(self, *args)
+
+    def insert(self, *args):
+        return _hexablock_swig.VectorHexas_insert(self, *args)
+
+    def reserve(self, n):
+        return _hexablock_swig.VectorHexas_reserve(self, n)
+
+    def capacity(self):
+        return _hexablock_swig.VectorHexas_capacity(self)
     __swig_destroy__ = _hexablock_swig.delete_VectorHexas
-    __del__ = lambda self : None;
+    __del__ = lambda self: None
 VectorHexas_swigregister = _hexablock_swig.VectorHexas_swigregister
 VectorHexas_swigregister(VectorHexas)
 
@@ -128,43 +278,110 @@ class VectorQuads(_object):
     __swig_getmethods__ = {}
     __getattr__ = lambda self, name: _swig_getattr(self, VectorQuads, name)
     __repr__ = _swig_repr
-    def iterator(*args): return _hexablock_swig.VectorQuads_iterator(*args)
-    def __iter__(self): return self.iterator()
-    def __nonzero__(*args): return _hexablock_swig.VectorQuads___nonzero__(*args)
-    def __len__(*args): return _hexablock_swig.VectorQuads___len__(*args)
-    def pop(*args): return _hexablock_swig.VectorQuads_pop(*args)
-    def __getslice__(*args): return _hexablock_swig.VectorQuads___getslice__(*args)
-    def __setslice__(*args): return _hexablock_swig.VectorQuads___setslice__(*args)
-    def __delslice__(*args): return _hexablock_swig.VectorQuads___delslice__(*args)
-    def __delitem__(*args): return _hexablock_swig.VectorQuads___delitem__(*args)
-    def __getitem__(*args): return _hexablock_swig.VectorQuads___getitem__(*args)
-    def __setitem__(*args): return _hexablock_swig.VectorQuads___setitem__(*args)
-    def append(*args): return _hexablock_swig.VectorQuads_append(*args)
-    def empty(*args): return _hexablock_swig.VectorQuads_empty(*args)
-    def size(*args): return _hexablock_swig.VectorQuads_size(*args)
-    def clear(*args): return _hexablock_swig.VectorQuads_clear(*args)
-    def swap(*args): return _hexablock_swig.VectorQuads_swap(*args)
-    def get_allocator(*args): return _hexablock_swig.VectorQuads_get_allocator(*args)
-    def begin(*args): return _hexablock_swig.VectorQuads_begin(*args)
-    def end(*args): return _hexablock_swig.VectorQuads_end(*args)
-    def rbegin(*args): return _hexablock_swig.VectorQuads_rbegin(*args)
-    def rend(*args): return _hexablock_swig.VectorQuads_rend(*args)
-    def pop_back(*args): return _hexablock_swig.VectorQuads_pop_back(*args)
-    def erase(*args): return _hexablock_swig.VectorQuads_erase(*args)
-    def __init__(self, *args): 
+
+    def iterator(self):
+        return _hexablock_swig.VectorQuads_iterator(self)
+    def __iter__(self):
+        return self.iterator()
+
+    def __nonzero__(self):
+        return _hexablock_swig.VectorQuads___nonzero__(self)
+
+    def __bool__(self):
+        return _hexablock_swig.VectorQuads___bool__(self)
+
+    def __len__(self):
+        return _hexablock_swig.VectorQuads___len__(self)
+
+    def __getslice__(self, i, j):
+        return _hexablock_swig.VectorQuads___getslice__(self, i, j)
+
+    def __setslice__(self, *args):
+        return _hexablock_swig.VectorQuads___setslice__(self, *args)
+
+    def __delslice__(self, i, j):
+        return _hexablock_swig.VectorQuads___delslice__(self, i, j)
+
+    def __delitem__(self, *args):
+        return _hexablock_swig.VectorQuads___delitem__(self, *args)
+
+    def __getitem__(self, *args):
+        return _hexablock_swig.VectorQuads___getitem__(self, *args)
+
+    def __setitem__(self, *args):
+        return _hexablock_swig.VectorQuads___setitem__(self, *args)
+
+    def pop(self):
+        return _hexablock_swig.VectorQuads_pop(self)
+
+    def append(self, x):
+        return _hexablock_swig.VectorQuads_append(self, x)
+
+    def empty(self):
+        return _hexablock_swig.VectorQuads_empty(self)
+
+    def size(self):
+        return _hexablock_swig.VectorQuads_size(self)
+
+    def swap(self, v):
+        return _hexablock_swig.VectorQuads_swap(self, v)
+
+    def begin(self):
+        return _hexablock_swig.VectorQuads_begin(self)
+
+    def end(self):
+        return _hexablock_swig.VectorQuads_end(self)
+
+    def rbegin(self):
+        return _hexablock_swig.VectorQuads_rbegin(self)
+
+    def rend(self):
+        return _hexablock_swig.VectorQuads_rend(self)
+
+    def clear(self):
+        return _hexablock_swig.VectorQuads_clear(self)
+
+    def get_allocator(self):
+        return _hexablock_swig.VectorQuads_get_allocator(self)
+
+    def pop_back(self):
+        return _hexablock_swig.VectorQuads_pop_back(self)
+
+    def erase(self, *args):
+        return _hexablock_swig.VectorQuads_erase(self, *args)
+
+    def __init__(self, *args):
         this = _hexablock_swig.new_VectorQuads(*args)
-        try: self.this.append(this)
-        except: self.this = this
-    def push_back(*args): return _hexablock_swig.VectorQuads_push_back(*args)
-    def front(*args): return _hexablock_swig.VectorQuads_front(*args)
-    def back(*args): return _hexablock_swig.VectorQuads_back(*args)
-    def assign(*args): return _hexablock_swig.VectorQuads_assign(*args)
-    def resize(*args): return _hexablock_swig.VectorQuads_resize(*args)
-    def insert(*args): return _hexablock_swig.VectorQuads_insert(*args)
-    def reserve(*args): return _hexablock_swig.VectorQuads_reserve(*args)
-    def capacity(*args): return _hexablock_swig.VectorQuads_capacity(*args)
+        try:
+            self.this.append(this)
+        except __builtin__.Exception:
+            self.this = this
+
+    def push_back(self, x):
+        return _hexablock_swig.VectorQuads_push_back(self, x)
+
+    def front(self):
+        return _hexablock_swig.VectorQuads_front(self)
+
+    def back(self):
+        return _hexablock_swig.VectorQuads_back(self)
+
+    def assign(self, n, x):
+        return _hexablock_swig.VectorQuads_assign(self, n, x)
+
+    def resize(self, *args):
+        return _hexablock_swig.VectorQuads_resize(self, *args)
+
+    def insert(self, *args):
+        return _hexablock_swig.VectorQuads_insert(self, *args)
+
+    def reserve(self, n):
+        return _hexablock_swig.VectorQuads_reserve(self, n)
+
+    def capacity(self):
+        return _hexablock_swig.VectorQuads_capacity(self)
     __swig_destroy__ = _hexablock_swig.delete_VectorQuads
-    __del__ = lambda self : None;
+    __del__ = lambda self: None
 VectorQuads_swigregister = _hexablock_swig.VectorQuads_swigregister
 VectorQuads_swigregister(VectorQuads)
 
@@ -174,43 +391,110 @@ class VectorEdges(_object):
     __swig_getmethods__ = {}
     __getattr__ = lambda self, name: _swig_getattr(self, VectorEdges, name)
     __repr__ = _swig_repr
-    def iterator(*args): return _hexablock_swig.VectorEdges_iterator(*args)
-    def __iter__(self): return self.iterator()
-    def __nonzero__(*args): return _hexablock_swig.VectorEdges___nonzero__(*args)
-    def __len__(*args): return _hexablock_swig.VectorEdges___len__(*args)
-    def pop(*args): return _hexablock_swig.VectorEdges_pop(*args)
-    def __getslice__(*args): return _hexablock_swig.VectorEdges___getslice__(*args)
-    def __setslice__(*args): return _hexablock_swig.VectorEdges___setslice__(*args)
-    def __delslice__(*args): return _hexablock_swig.VectorEdges___delslice__(*args)
-    def __delitem__(*args): return _hexablock_swig.VectorEdges___delitem__(*args)
-    def __getitem__(*args): return _hexablock_swig.VectorEdges___getitem__(*args)
-    def __setitem__(*args): return _hexablock_swig.VectorEdges___setitem__(*args)
-    def append(*args): return _hexablock_swig.VectorEdges_append(*args)
-    def empty(*args): return _hexablock_swig.VectorEdges_empty(*args)
-    def size(*args): return _hexablock_swig.VectorEdges_size(*args)
-    def clear(*args): return _hexablock_swig.VectorEdges_clear(*args)
-    def swap(*args): return _hexablock_swig.VectorEdges_swap(*args)
-    def get_allocator(*args): return _hexablock_swig.VectorEdges_get_allocator(*args)
-    def begin(*args): return _hexablock_swig.VectorEdges_begin(*args)
-    def end(*args): return _hexablock_swig.VectorEdges_end(*args)
-    def rbegin(*args): return _hexablock_swig.VectorEdges_rbegin(*args)
-    def rend(*args): return _hexablock_swig.VectorEdges_rend(*args)
-    def pop_back(*args): return _hexablock_swig.VectorEdges_pop_back(*args)
-    def erase(*args): return _hexablock_swig.VectorEdges_erase(*args)
-    def __init__(self, *args): 
+
+    def iterator(self):
+        return _hexablock_swig.VectorEdges_iterator(self)
+    def __iter__(self):
+        return self.iterator()
+
+    def __nonzero__(self):
+        return _hexablock_swig.VectorEdges___nonzero__(self)
+
+    def __bool__(self):
+        return _hexablock_swig.VectorEdges___bool__(self)
+
+    def __len__(self):
+        return _hexablock_swig.VectorEdges___len__(self)
+
+    def __getslice__(self, i, j):
+        return _hexablock_swig.VectorEdges___getslice__(self, i, j)
+
+    def __setslice__(self, *args):
+        return _hexablock_swig.VectorEdges___setslice__(self, *args)
+
+    def __delslice__(self, i, j):
+        return _hexablock_swig.VectorEdges___delslice__(self, i, j)
+
+    def __delitem__(self, *args):
+        return _hexablock_swig.VectorEdges___delitem__(self, *args)
+
+    def __getitem__(self, *args):
+        return _hexablock_swig.VectorEdges___getitem__(self, *args)
+
+    def __setitem__(self, *args):
+        return _hexablock_swig.VectorEdges___setitem__(self, *args)
+
+    def pop(self):
+        return _hexablock_swig.VectorEdges_pop(self)
+
+    def append(self, x):
+        return _hexablock_swig.VectorEdges_append(self, x)
+
+    def empty(self):
+        return _hexablock_swig.VectorEdges_empty(self)
+
+    def size(self):
+        return _hexablock_swig.VectorEdges_size(self)
+
+    def swap(self, v):
+        return _hexablock_swig.VectorEdges_swap(self, v)
+
+    def begin(self):
+        return _hexablock_swig.VectorEdges_begin(self)
+
+    def end(self):
+        return _hexablock_swig.VectorEdges_end(self)
+
+    def rbegin(self):
+        return _hexablock_swig.VectorEdges_rbegin(self)
+
+    def rend(self):
+        return _hexablock_swig.VectorEdges_rend(self)
+
+    def clear(self):
+        return _hexablock_swig.VectorEdges_clear(self)
+
+    def get_allocator(self):
+        return _hexablock_swig.VectorEdges_get_allocator(self)
+
+    def pop_back(self):
+        return _hexablock_swig.VectorEdges_pop_back(self)
+
+    def erase(self, *args):
+        return _hexablock_swig.VectorEdges_erase(self, *args)
+
+    def __init__(self, *args):
         this = _hexablock_swig.new_VectorEdges(*args)
-        try: self.this.append(this)
-        except: self.this = this
-    def push_back(*args): return _hexablock_swig.VectorEdges_push_back(*args)
-    def front(*args): return _hexablock_swig.VectorEdges_front(*args)
-    def back(*args): return _hexablock_swig.VectorEdges_back(*args)
-    def assign(*args): return _hexablock_swig.VectorEdges_assign(*args)
-    def resize(*args): return _hexablock_swig.VectorEdges_resize(*args)
-    def insert(*args): return _hexablock_swig.VectorEdges_insert(*args)
-    def reserve(*args): return _hexablock_swig.VectorEdges_reserve(*args)
-    def capacity(*args): return _hexablock_swig.VectorEdges_capacity(*args)
+        try:
+            self.this.append(this)
+        except __builtin__.Exception:
+            self.this = this
+
+    def push_back(self, x):
+        return _hexablock_swig.VectorEdges_push_back(self, x)
+
+    def front(self):
+        return _hexablock_swig.VectorEdges_front(self)
+
+    def back(self):
+        return _hexablock_swig.VectorEdges_back(self)
+
+    def assign(self, n, x):
+        return _hexablock_swig.VectorEdges_assign(self, n, x)
+
+    def resize(self, *args):
+        return _hexablock_swig.VectorEdges_resize(self, *args)
+
+    def insert(self, *args):
+        return _hexablock_swig.VectorEdges_insert(self, *args)
+
+    def reserve(self, n):
+        return _hexablock_swig.VectorEdges_reserve(self, n)
+
+    def capacity(self):
+        return _hexablock_swig.VectorEdges_capacity(self)
     __swig_destroy__ = _hexablock_swig.delete_VectorEdges
-    __del__ = lambda self : None;
+    __del__ = lambda self: None
 VectorEdges_swigregister = _hexablock_swig.VectorEdges_swigregister
 VectorEdges_swigregister(VectorEdges)
 
@@ -220,43 +504,110 @@ class VectorVertices(_object):
     __swig_getmethods__ = {}
     __getattr__ = lambda self, name: _swig_getattr(self, VectorVertices, name)
     __repr__ = _swig_repr
-    def iterator(*args): return _hexablock_swig.VectorVertices_iterator(*args)
-    def __iter__(self): return self.iterator()
-    def __nonzero__(*args): return _hexablock_swig.VectorVertices___nonzero__(*args)
-    def __len__(*args): return _hexablock_swig.VectorVertices___len__(*args)
-    def pop(*args): return _hexablock_swig.VectorVertices_pop(*args)
-    def __getslice__(*args): return _hexablock_swig.VectorVertices___getslice__(*args)
-    def __setslice__(*args): return _hexablock_swig.VectorVertices___setslice__(*args)
-    def __delslice__(*args): return _hexablock_swig.VectorVertices___delslice__(*args)
-    def __delitem__(*args): return _hexablock_swig.VectorVertices___delitem__(*args)
-    def __getitem__(*args): return _hexablock_swig.VectorVertices___getitem__(*args)
-    def __setitem__(*args): return _hexablock_swig.VectorVertices___setitem__(*args)
-    def append(*args): return _hexablock_swig.VectorVertices_append(*args)
-    def empty(*args): return _hexablock_swig.VectorVertices_empty(*args)
-    def size(*args): return _hexablock_swig.VectorVertices_size(*args)
-    def clear(*args): return _hexablock_swig.VectorVertices_clear(*args)
-    def swap(*args): return _hexablock_swig.VectorVertices_swap(*args)
-    def get_allocator(*args): return _hexablock_swig.VectorVertices_get_allocator(*args)
-    def begin(*args): return _hexablock_swig.VectorVertices_begin(*args)
-    def end(*args): return _hexablock_swig.VectorVertices_end(*args)
-    def rbegin(*args): return _hexablock_swig.VectorVertices_rbegin(*args)
-    def rend(*args): return _hexablock_swig.VectorVertices_rend(*args)
-    def pop_back(*args): return _hexablock_swig.VectorVertices_pop_back(*args)
-    def erase(*args): return _hexablock_swig.VectorVertices_erase(*args)
-    def __init__(self, *args): 
+
+    def iterator(self):
+        return _hexablock_swig.VectorVertices_iterator(self)
+    def __iter__(self):
+        return self.iterator()
+
+    def __nonzero__(self):
+        return _hexablock_swig.VectorVertices___nonzero__(self)
+
+    def __bool__(self):
+        return _hexablock_swig.VectorVertices___bool__(self)
+
+    def __len__(self):
+        return _hexablock_swig.VectorVertices___len__(self)
+
+    def __getslice__(self, i, j):
+        return _hexablock_swig.VectorVertices___getslice__(self, i, j)
+
+    def __setslice__(self, *args):
+        return _hexablock_swig.VectorVertices___setslice__(self, *args)
+
+    def __delslice__(self, i, j):
+        return _hexablock_swig.VectorVertices___delslice__(self, i, j)
+
+    def __delitem__(self, *args):
+        return _hexablock_swig.VectorVertices___delitem__(self, *args)
+
+    def __getitem__(self, *args):
+        return _hexablock_swig.VectorVertices___getitem__(self, *args)
+
+    def __setitem__(self, *args):
+        return _hexablock_swig.VectorVertices___setitem__(self, *args)
+
+    def pop(self):
+        return _hexablock_swig.VectorVertices_pop(self)
+
+    def append(self, x):
+        return _hexablock_swig.VectorVertices_append(self, x)
+
+    def empty(self):
+        return _hexablock_swig.VectorVertices_empty(self)
+
+    def size(self):
+        return _hexablock_swig.VectorVertices_size(self)
+
+    def swap(self, v):
+        return _hexablock_swig.VectorVertices_swap(self, v)
+
+    def begin(self):
+        return _hexablock_swig.VectorVertices_begin(self)
+
+    def end(self):
+        return _hexablock_swig.VectorVertices_end(self)
+
+    def rbegin(self):
+        return _hexablock_swig.VectorVertices_rbegin(self)
+
+    def rend(self):
+        return _hexablock_swig.VectorVertices_rend(self)
+
+    def clear(self):
+        return _hexablock_swig.VectorVertices_clear(self)
+
+    def get_allocator(self):
+        return _hexablock_swig.VectorVertices_get_allocator(self)
+
+    def pop_back(self):
+        return _hexablock_swig.VectorVertices_pop_back(self)
+
+    def erase(self, *args):
+        return _hexablock_swig.VectorVertices_erase(self, *args)
+
+    def __init__(self, *args):
         this = _hexablock_swig.new_VectorVertices(*args)
-        try: self.this.append(this)
-        except: self.this = this
-    def push_back(*args): return _hexablock_swig.VectorVertices_push_back(*args)
-    def front(*args): return _hexablock_swig.VectorVertices_front(*args)
-    def back(*args): return _hexablock_swig.VectorVertices_back(*args)
-    def assign(*args): return _hexablock_swig.VectorVertices_assign(*args)
-    def resize(*args): return _hexablock_swig.VectorVertices_resize(*args)
-    def insert(*args): return _hexablock_swig.VectorVertices_insert(*args)
-    def reserve(*args): return _hexablock_swig.VectorVertices_reserve(*args)
-    def capacity(*args): return _hexablock_swig.VectorVertices_capacity(*args)
+        try:
+            self.this.append(this)
+        except __builtin__.Exception:
+            self.this = this
+
+    def push_back(self, x):
+        return _hexablock_swig.VectorVertices_push_back(self, x)
+
+    def front(self):
+        return _hexablock_swig.VectorVertices_front(self)
+
+    def back(self):
+        return _hexablock_swig.VectorVertices_back(self)
+
+    def assign(self, n, x):
+        return _hexablock_swig.VectorVertices_assign(self, n, x)
+
+    def resize(self, *args):
+        return _hexablock_swig.VectorVertices_resize(self, *args)
+
+    def insert(self, *args):
+        return _hexablock_swig.VectorVertices_insert(self, *args)
+
+    def reserve(self, n):
+        return _hexablock_swig.VectorVertices_reserve(self, n)
+
+    def capacity(self):
+        return _hexablock_swig.VectorVertices_capacity(self)
     __swig_destroy__ = _hexablock_swig.delete_VectorVertices
-    __del__ = lambda self : None;
+    __del__ = lambda self: None
 VectorVertices_swigregister = _hexablock_swig.VectorVertices_swigregister
 VectorVertices_swigregister(VectorVertices)
 
@@ -266,43 +617,110 @@ class VectorShapes(_object):
     __swig_getmethods__ = {}
     __getattr__ = lambda self, name: _swig_getattr(self, VectorShapes, name)
     __repr__ = _swig_repr
-    def iterator(*args): return _hexablock_swig.VectorShapes_iterator(*args)
-    def __iter__(self): return self.iterator()
-    def __nonzero__(*args): return _hexablock_swig.VectorShapes___nonzero__(*args)
-    def __len__(*args): return _hexablock_swig.VectorShapes___len__(*args)
-    def pop(*args): return _hexablock_swig.VectorShapes_pop(*args)
-    def __getslice__(*args): return _hexablock_swig.VectorShapes___getslice__(*args)
-    def __setslice__(*args): return _hexablock_swig.VectorShapes___setslice__(*args)
-    def __delslice__(*args): return _hexablock_swig.VectorShapes___delslice__(*args)
-    def __delitem__(*args): return _hexablock_swig.VectorShapes___delitem__(*args)
-    def __getitem__(*args): return _hexablock_swig.VectorShapes___getitem__(*args)
-    def __setitem__(*args): return _hexablock_swig.VectorShapes___setitem__(*args)
-    def append(*args): return _hexablock_swig.VectorShapes_append(*args)
-    def empty(*args): return _hexablock_swig.VectorShapes_empty(*args)
-    def size(*args): return _hexablock_swig.VectorShapes_size(*args)
-    def clear(*args): return _hexablock_swig.VectorShapes_clear(*args)
-    def swap(*args): return _hexablock_swig.VectorShapes_swap(*args)
-    def get_allocator(*args): return _hexablock_swig.VectorShapes_get_allocator(*args)
-    def begin(*args): return _hexablock_swig.VectorShapes_begin(*args)
-    def end(*args): return _hexablock_swig.VectorShapes_end(*args)
-    def rbegin(*args): return _hexablock_swig.VectorShapes_rbegin(*args)
-    def rend(*args): return _hexablock_swig.VectorShapes_rend(*args)
-    def pop_back(*args): return _hexablock_swig.VectorShapes_pop_back(*args)
-    def erase(*args): return _hexablock_swig.VectorShapes_erase(*args)
-    def __init__(self, *args): 
+
+    def iterator(self):
+        return _hexablock_swig.VectorShapes_iterator(self)
+    def __iter__(self):
+        return self.iterator()
+
+    def __nonzero__(self):
+        return _hexablock_swig.VectorShapes___nonzero__(self)
+
+    def __bool__(self):
+        return _hexablock_swig.VectorShapes___bool__(self)
+
+    def __len__(self):
+        return _hexablock_swig.VectorShapes___len__(self)
+
+    def __getslice__(self, i, j):
+        return _hexablock_swig.VectorShapes___getslice__(self, i, j)
+
+    def __setslice__(self, *args):
+        return _hexablock_swig.VectorShapes___setslice__(self, *args)
+
+    def __delslice__(self, i, j):
+        return _hexablock_swig.VectorShapes___delslice__(self, i, j)
+
+    def __delitem__(self, *args):
+        return _hexablock_swig.VectorShapes___delitem__(self, *args)
+
+    def __getitem__(self, *args):
+        return _hexablock_swig.VectorShapes___getitem__(self, *args)
+
+    def __setitem__(self, *args):
+        return _hexablock_swig.VectorShapes___setitem__(self, *args)
+
+    def pop(self):
+        return _hexablock_swig.VectorShapes_pop(self)
+
+    def append(self, x):
+        return _hexablock_swig.VectorShapes_append(self, x)
+
+    def empty(self):
+        return _hexablock_swig.VectorShapes_empty(self)
+
+    def size(self):
+        return _hexablock_swig.VectorShapes_size(self)
+
+    def swap(self, v):
+        return _hexablock_swig.VectorShapes_swap(self, v)
+
+    def begin(self):
+        return _hexablock_swig.VectorShapes_begin(self)
+
+    def end(self):
+        return _hexablock_swig.VectorShapes_end(self)
+
+    def rbegin(self):
+        return _hexablock_swig.VectorShapes_rbegin(self)
+
+    def rend(self):
+        return _hexablock_swig.VectorShapes_rend(self)
+
+    def clear(self):
+        return _hexablock_swig.VectorShapes_clear(self)
+
+    def get_allocator(self):
+        return _hexablock_swig.VectorShapes_get_allocator(self)
+
+    def pop_back(self):
+        return _hexablock_swig.VectorShapes_pop_back(self)
+
+    def erase(self, *args):
+        return _hexablock_swig.VectorShapes_erase(self, *args)
+
+    def __init__(self, *args):
         this = _hexablock_swig.new_VectorShapes(*args)
-        try: self.this.append(this)
-        except: self.this = this
-    def push_back(*args): return _hexablock_swig.VectorShapes_push_back(*args)
-    def front(*args): return _hexablock_swig.VectorShapes_front(*args)
-    def back(*args): return _hexablock_swig.VectorShapes_back(*args)
-    def assign(*args): return _hexablock_swig.VectorShapes_assign(*args)
-    def resize(*args): return _hexablock_swig.VectorShapes_resize(*args)
-    def insert(*args): return _hexablock_swig.VectorShapes_insert(*args)
-    def reserve(*args): return _hexablock_swig.VectorShapes_reserve(*args)
-    def capacity(*args): return _hexablock_swig.VectorShapes_capacity(*args)
+        try:
+            self.this.append(this)
+        except __builtin__.Exception:
+            self.this = this
+
+    def push_back(self, x):
+        return _hexablock_swig.VectorShapes_push_back(self, x)
+
+    def front(self):
+        return _hexablock_swig.VectorShapes_front(self)
+
+    def back(self):
+        return _hexablock_swig.VectorShapes_back(self)
+
+    def assign(self, n, x):
+        return _hexablock_swig.VectorShapes_assign(self, n, x)
+
+    def resize(self, *args):
+        return _hexablock_swig.VectorShapes_resize(self, *args)
+
+    def insert(self, *args):
+        return _hexablock_swig.VectorShapes_insert(self, *args)
+
+    def reserve(self, n):
+        return _hexablock_swig.VectorShapes_reserve(self, n)
+
+    def capacity(self):
+        return _hexablock_swig.VectorShapes_capacity(self)
     __swig_destroy__ = _hexablock_swig.delete_VectorShapes
-    __del__ = lambda self : None;
+    __del__ = lambda self: None
 VectorShapes_swigregister = _hexablock_swig.VectorShapes_swigregister
 VectorShapes_swigregister(VectorShapes)
 
@@ -312,43 +730,110 @@ class VectorReal(_object):
     __swig_getmethods__ = {}
     __getattr__ = lambda self, name: _swig_getattr(self, VectorReal, name)
     __repr__ = _swig_repr
-    def iterator(*args): return _hexablock_swig.VectorReal_iterator(*args)
-    def __iter__(self): return self.iterator()
-    def __nonzero__(*args): return _hexablock_swig.VectorReal___nonzero__(*args)
-    def __len__(*args): return _hexablock_swig.VectorReal___len__(*args)
-    def pop(*args): return _hexablock_swig.VectorReal_pop(*args)
-    def __getslice__(*args): return _hexablock_swig.VectorReal___getslice__(*args)
-    def __setslice__(*args): return _hexablock_swig.VectorReal___setslice__(*args)
-    def __delslice__(*args): return _hexablock_swig.VectorReal___delslice__(*args)
-    def __delitem__(*args): return _hexablock_swig.VectorReal___delitem__(*args)
-    def __getitem__(*args): return _hexablock_swig.VectorReal___getitem__(*args)
-    def __setitem__(*args): return _hexablock_swig.VectorReal___setitem__(*args)
-    def append(*args): return _hexablock_swig.VectorReal_append(*args)
-    def empty(*args): return _hexablock_swig.VectorReal_empty(*args)
-    def size(*args): return _hexablock_swig.VectorReal_size(*args)
-    def clear(*args): return _hexablock_swig.VectorReal_clear(*args)
-    def swap(*args): return _hexablock_swig.VectorReal_swap(*args)
-    def get_allocator(*args): return _hexablock_swig.VectorReal_get_allocator(*args)
-    def begin(*args): return _hexablock_swig.VectorReal_begin(*args)
-    def end(*args): return _hexablock_swig.VectorReal_end(*args)
-    def rbegin(*args): return _hexablock_swig.VectorReal_rbegin(*args)
-    def rend(*args): return _hexablock_swig.VectorReal_rend(*args)
-    def pop_back(*args): return _hexablock_swig.VectorReal_pop_back(*args)
-    def erase(*args): return _hexablock_swig.VectorReal_erase(*args)
-    def __init__(self, *args): 
+
+    def iterator(self):
+        return _hexablock_swig.VectorReal_iterator(self)
+    def __iter__(self):
+        return self.iterator()
+
+    def __nonzero__(self):
+        return _hexablock_swig.VectorReal___nonzero__(self)
+
+    def __bool__(self):
+        return _hexablock_swig.VectorReal___bool__(self)
+
+    def __len__(self):
+        return _hexablock_swig.VectorReal___len__(self)
+
+    def __getslice__(self, i, j):
+        return _hexablock_swig.VectorReal___getslice__(self, i, j)
+
+    def __setslice__(self, *args):
+        return _hexablock_swig.VectorReal___setslice__(self, *args)
+
+    def __delslice__(self, i, j):
+        return _hexablock_swig.VectorReal___delslice__(self, i, j)
+
+    def __delitem__(self, *args):
+        return _hexablock_swig.VectorReal___delitem__(self, *args)
+
+    def __getitem__(self, *args):
+        return _hexablock_swig.VectorReal___getitem__(self, *args)
+
+    def __setitem__(self, *args):
+        return _hexablock_swig.VectorReal___setitem__(self, *args)
+
+    def pop(self):
+        return _hexablock_swig.VectorReal_pop(self)
+
+    def append(self, x):
+        return _hexablock_swig.VectorReal_append(self, x)
+
+    def empty(self):
+        return _hexablock_swig.VectorReal_empty(self)
+
+    def size(self):
+        return _hexablock_swig.VectorReal_size(self)
+
+    def swap(self, v):
+        return _hexablock_swig.VectorReal_swap(self, v)
+
+    def begin(self):
+        return _hexablock_swig.VectorReal_begin(self)
+
+    def end(self):
+        return _hexablock_swig.VectorReal_end(self)
+
+    def rbegin(self):
+        return _hexablock_swig.VectorReal_rbegin(self)
+
+    def rend(self):
+        return _hexablock_swig.VectorReal_rend(self)
+
+    def clear(self):
+        return _hexablock_swig.VectorReal_clear(self)
+
+    def get_allocator(self):
+        return _hexablock_swig.VectorReal_get_allocator(self)
+
+    def pop_back(self):
+        return _hexablock_swig.VectorReal_pop_back(self)
+
+    def erase(self, *args):
+        return _hexablock_swig.VectorReal_erase(self, *args)
+
+    def __init__(self, *args):
         this = _hexablock_swig.new_VectorReal(*args)
-        try: self.this.append(this)
-        except: self.this = this
-    def push_back(*args): return _hexablock_swig.VectorReal_push_back(*args)
-    def front(*args): return _hexablock_swig.VectorReal_front(*args)
-    def back(*args): return _hexablock_swig.VectorReal_back(*args)
-    def assign(*args): return _hexablock_swig.VectorReal_assign(*args)
-    def resize(*args): return _hexablock_swig.VectorReal_resize(*args)
-    def insert(*args): return _hexablock_swig.VectorReal_insert(*args)
-    def reserve(*args): return _hexablock_swig.VectorReal_reserve(*args)
-    def capacity(*args): return _hexablock_swig.VectorReal_capacity(*args)
+        try:
+            self.this.append(this)
+        except __builtin__.Exception:
+            self.this = this
+
+    def push_back(self, x):
+        return _hexablock_swig.VectorReal_push_back(self, x)
+
+    def front(self):
+        return _hexablock_swig.VectorReal_front(self)
+
+    def back(self):
+        return _hexablock_swig.VectorReal_back(self)
+
+    def assign(self, n, x):
+        return _hexablock_swig.VectorReal_assign(self, n, x)
+
+    def resize(self, *args):
+        return _hexablock_swig.VectorReal_resize(self, *args)
+
+    def insert(self, *args):
+        return _hexablock_swig.VectorReal_insert(self, *args)
+
+    def reserve(self, n):
+        return _hexablock_swig.VectorReal_reserve(self, n)
+
+    def capacity(self):
+        return _hexablock_swig.VectorReal_capacity(self)
     __swig_destroy__ = _hexablock_swig.delete_VectorReal
-    __del__ = lambda self : None;
+    __del__ = lambda self: None
 VectorReal_swigregister = _hexablock_swig.VectorReal_swigregister
 VectorReal_swigregister(VectorReal)
 
@@ -358,46 +843,114 @@ class VectorInt(_object):
     __swig_getmethods__ = {}
     __getattr__ = lambda self, name: _swig_getattr(self, VectorInt, name)
     __repr__ = _swig_repr
-    def iterator(*args): return _hexablock_swig.VectorInt_iterator(*args)
-    def __iter__(self): return self.iterator()
-    def __nonzero__(*args): return _hexablock_swig.VectorInt___nonzero__(*args)
-    def __len__(*args): return _hexablock_swig.VectorInt___len__(*args)
-    def pop(*args): return _hexablock_swig.VectorInt_pop(*args)
-    def __getslice__(*args): return _hexablock_swig.VectorInt___getslice__(*args)
-    def __setslice__(*args): return _hexablock_swig.VectorInt___setslice__(*args)
-    def __delslice__(*args): return _hexablock_swig.VectorInt___delslice__(*args)
-    def __delitem__(*args): return _hexablock_swig.VectorInt___delitem__(*args)
-    def __getitem__(*args): return _hexablock_swig.VectorInt___getitem__(*args)
-    def __setitem__(*args): return _hexablock_swig.VectorInt___setitem__(*args)
-    def append(*args): return _hexablock_swig.VectorInt_append(*args)
-    def empty(*args): return _hexablock_swig.VectorInt_empty(*args)
-    def size(*args): return _hexablock_swig.VectorInt_size(*args)
-    def clear(*args): return _hexablock_swig.VectorInt_clear(*args)
-    def swap(*args): return _hexablock_swig.VectorInt_swap(*args)
-    def get_allocator(*args): return _hexablock_swig.VectorInt_get_allocator(*args)
-    def begin(*args): return _hexablock_swig.VectorInt_begin(*args)
-    def end(*args): return _hexablock_swig.VectorInt_end(*args)
-    def rbegin(*args): return _hexablock_swig.VectorInt_rbegin(*args)
-    def rend(*args): return _hexablock_swig.VectorInt_rend(*args)
-    def pop_back(*args): return _hexablock_swig.VectorInt_pop_back(*args)
-    def erase(*args): return _hexablock_swig.VectorInt_erase(*args)
-    def __init__(self, *args): 
+
+    def iterator(self):
+        return _hexablock_swig.VectorInt_iterator(self)
+    def __iter__(self):
+        return self.iterator()
+
+    def __nonzero__(self):
+        return _hexablock_swig.VectorInt___nonzero__(self)
+
+    def __bool__(self):
+        return _hexablock_swig.VectorInt___bool__(self)
+
+    def __len__(self):
+        return _hexablock_swig.VectorInt___len__(self)
+
+    def __getslice__(self, i, j):
+        return _hexablock_swig.VectorInt___getslice__(self, i, j)
+
+    def __setslice__(self, *args):
+        return _hexablock_swig.VectorInt___setslice__(self, *args)
+
+    def __delslice__(self, i, j):
+        return _hexablock_swig.VectorInt___delslice__(self, i, j)
+
+    def __delitem__(self, *args):
+        return _hexablock_swig.VectorInt___delitem__(self, *args)
+
+    def __getitem__(self, *args):
+        return _hexablock_swig.VectorInt___getitem__(self, *args)
+
+    def __setitem__(self, *args):
+        return _hexablock_swig.VectorInt___setitem__(self, *args)
+
+    def pop(self):
+        return _hexablock_swig.VectorInt_pop(self)
+
+    def append(self, x):
+        return _hexablock_swig.VectorInt_append(self, x)
+
+    def empty(self):
+        return _hexablock_swig.VectorInt_empty(self)
+
+    def size(self):
+        return _hexablock_swig.VectorInt_size(self)
+
+    def swap(self, v):
+        return _hexablock_swig.VectorInt_swap(self, v)
+
+    def begin(self):
+        return _hexablock_swig.VectorInt_begin(self)
+
+    def end(self):
+        return _hexablock_swig.VectorInt_end(self)
+
+    def rbegin(self):
+        return _hexablock_swig.VectorInt_rbegin(self)
+
+    def rend(self):
+        return _hexablock_swig.VectorInt_rend(self)
+
+    def clear(self):
+        return _hexablock_swig.VectorInt_clear(self)
+
+    def get_allocator(self):
+        return _hexablock_swig.VectorInt_get_allocator(self)
+
+    def pop_back(self):
+        return _hexablock_swig.VectorInt_pop_back(self)
+
+    def erase(self, *args):
+        return _hexablock_swig.VectorInt_erase(self, *args)
+
+    def __init__(self, *args):
         this = _hexablock_swig.new_VectorInt(*args)
-        try: self.this.append(this)
-        except: self.this = this
-    def push_back(*args): return _hexablock_swig.VectorInt_push_back(*args)
-    def front(*args): return _hexablock_swig.VectorInt_front(*args)
-    def back(*args): return _hexablock_swig.VectorInt_back(*args)
-    def assign(*args): return _hexablock_swig.VectorInt_assign(*args)
-    def resize(*args): return _hexablock_swig.VectorInt_resize(*args)
-    def insert(*args): return _hexablock_swig.VectorInt_insert(*args)
-    def reserve(*args): return _hexablock_swig.VectorInt_reserve(*args)
-    def capacity(*args): return _hexablock_swig.VectorInt_capacity(*args)
+        try:
+            self.this.append(this)
+        except __builtin__.Exception:
+            self.this = this
+
+    def push_back(self, x):
+        return _hexablock_swig.VectorInt_push_back(self, x)
+
+    def front(self):
+        return _hexablock_swig.VectorInt_front(self)
+
+    def back(self):
+        return _hexablock_swig.VectorInt_back(self)
+
+    def assign(self, n, x):
+        return _hexablock_swig.VectorInt_assign(self, n, x)
+
+    def resize(self, *args):
+        return _hexablock_swig.VectorInt_resize(self, *args)
+
+    def insert(self, *args):
+        return _hexablock_swig.VectorInt_insert(self, *args)
+
+    def reserve(self, n):
+        return _hexablock_swig.VectorInt_reserve(self, n)
+
+    def capacity(self):
+        return _hexablock_swig.VectorInt_capacity(self)
     __swig_destroy__ = _hexablock_swig.delete_VectorInt
-    __del__ = lambda self : None;
+    __del__ = lambda self: None
 VectorInt_swigregister = _hexablock_swig.VectorInt_swigregister
 VectorInt_swigregister(VectorInt)
 
+DumpActif = _hexablock_swig.DumpActif
 HOK = _hexablock_swig.HOK
 HERR = _hexablock_swig.HERR
 NOTHING = _hexablock_swig.NOTHING
@@ -539,29 +1092,113 @@ CylSmall = _hexablock_swig.CylSmall
 CylBig = _hexablock_swig.CylBig
 NxInt = _hexablock_swig.NxInt
 NxExt = _hexablock_swig.NxExt
+
+def get_temp_name(format, nomfic):
+    return _hexablock_swig.get_temp_name(format, nomfic)
 get_temp_name = _hexablock_swig.get_temp_name
+
+def fatal_error(format, info1=None, info2=None):
+    return _hexablock_swig.fatal_error(format, info1, info2)
+fatal_error = _hexablock_swig.fatal_error
+
+def prod_scalaire(v1, v2):
+    return _hexablock_swig.prod_scalaire(v1, v2)
 prod_scalaire = _hexablock_swig.prod_scalaire
+
+def prod_vectoriel(v1, v2, v3):
+    return _hexablock_swig.prod_vectoriel(v1, v2, v3)
 prod_vectoriel = _hexablock_swig.prod_vectoriel
+
+def prod_mixte(vi, vj, vk):
+    return _hexablock_swig.prod_mixte(vi, vj, vk)
 prod_mixte = _hexablock_swig.prod_mixte
+
+def deg2radians(angle):
+    return _hexablock_swig.deg2radians(angle)
 deg2radians = _hexablock_swig.deg2radians
+
+def rad2degres(angle):
+    return _hexablock_swig.rad2degres(angle)
 rad2degres = _hexablock_swig.rad2degres
+
+def calc_norme(v1):
+    return _hexablock_swig.calc_norme(v1)
 calc_norme = _hexablock_swig.calc_norme
+
+def calc_distance(v1, v2):
+    return _hexablock_swig.calc_distance(v1, v2)
 calc_distance = _hexablock_swig.calc_distance
+
+def calc_d2(v1, v2):
+    return _hexablock_swig.calc_d2(v1, v2)
 calc_d2 = _hexablock_swig.calc_d2
+
+def calc_vecteur(pta, ptb, vab):
+    return _hexablock_swig.calc_vecteur(pta, ptb, vab)
 calc_vecteur = _hexablock_swig.calc_vecteur
+
+def copy_vecteur(va, vb):
+    return _hexablock_swig.copy_vecteur(va, vb)
 copy_vecteur = _hexablock_swig.copy_vecteur
+
+def calc_milieu(pta, ptb, milieu):
+    return _hexablock_swig.calc_milieu(pta, ptb, milieu)
 calc_milieu = _hexablock_swig.calc_milieu
+
+def normer_vecteur(v1):
+    return _hexablock_swig.normer_vecteur(v1)
 normer_vecteur = _hexablock_swig.normer_vecteur
+
+def carre(val):
+    return _hexablock_swig.carre(val)
 carre = _hexablock_swig.carre
+
+def same_coords(pa, pb, epsilon=1e-6):
+    return _hexablock_swig.same_coords(pa, pb, epsilon)
+same_coords = _hexablock_swig.same_coords
+
+def requals(*args):
+    return _hexablock_swig.requals(*args)
+requals = _hexablock_swig.requals
+
+def on_debug():
+    return _hexablock_swig.on_debug()
 on_debug = _hexablock_swig.on_debug
+
+def in_test():
+    return _hexablock_swig.in_test()
 in_test = _hexablock_swig.in_test
+
+def niv_debug():
+    return _hexablock_swig.niv_debug()
 niv_debug = _hexablock_swig.niv_debug
+
+def set_minus(chaine):
+    return _hexablock_swig.set_minus(chaine)
 set_minus = _hexablock_swig.set_minus
+
+def special_option():
+    return _hexablock_swig.special_option()
 special_option = _hexablock_swig.special_option
+
+def set_special_option(opt):
+    return _hexablock_swig.set_special_option(opt)
 set_special_option = _hexablock_swig.set_special_option
+
+def sizeof_file(filename):
+    return _hexablock_swig.sizeof_file(filename)
 sizeof_file = _hexablock_swig.sizeof_file
+
+def read_file(filename, size):
+    return _hexablock_swig.read_file(filename, size)
 read_file = _hexablock_swig.read_file
+
+def get_time(buffer):
+    return _hexablock_swig.get_time(buffer)
 get_time = _hexablock_swig.get_time
+
+def make_basename(filename, base):
+    return _hexablock_swig.make_basename(filename, base)
 make_basename = _hexablock_swig.make_basename
 class EltBase(_object):
     __swig_setmethods__ = {}
@@ -569,366 +1206,851 @@ class EltBase(_object):
     __swig_getmethods__ = {}
     __getattr__ = lambda self, name: _swig_getattr(self, EltBase, name)
     __repr__ = _swig_repr
-    def countHexa(*args): return _hexablock_swig.EltBase_countHexa(*args)
-    def countQuad(*args): return _hexablock_swig.EltBase_countQuad(*args)
-    def countEdge(*args): return _hexablock_swig.EltBase_countEdge(*args)
-    def countVertex(*args): return _hexablock_swig.EltBase_countVertex(*args)
-    def setError(*args): return _hexablock_swig.EltBase_setError(*args)
-    def getError(*args): return _hexablock_swig.EltBase_getError(*args)
-    def isValid(*args): return _hexablock_swig.EltBase_isValid(*args)
-    def isBad(*args): return _hexablock_swig.EltBase_isBad(*args)
-    def duplicate(*args): return _hexablock_swig.EltBase_duplicate(*args)
-    def clearAssociation(*args): return _hexablock_swig.EltBase_clearAssociation(*args)
-    def replaceEdge(*args): return _hexablock_swig.EltBase_replaceEdge(*args)
-    def replaceVertex(*args): return _hexablock_swig.EltBase_replaceVertex(*args)
-    def __init__(self, *args): 
+
+    def countHexa(self):
+        return _hexablock_swig.EltBase_countHexa(self)
+
+    def countQuad(self):
+        return _hexablock_swig.EltBase_countQuad(self)
+
+    def countEdge(self):
+        return _hexablock_swig.EltBase_countEdge(self)
+
+    def countVertex(self):
+        return _hexablock_swig.EltBase_countVertex(self)
+
+    def setError(self, kod=1):
+        return _hexablock_swig.EltBase_setError(self, kod)
+
+    def getError(self):
+        return _hexablock_swig.EltBase_getError(self)
+
+    def isValid(self):
+        return _hexablock_swig.EltBase_isValid(self)
+
+    def isBad(self):
+        return _hexablock_swig.EltBase_isBad(self)
+
+    def duplicate(self):
+        return _hexablock_swig.EltBase_duplicate(self)
+
+    def clearAssociation(self):
+        return _hexablock_swig.EltBase_clearAssociation(self)
+
+    def replaceEdge(self, old, nouveau):
+        return _hexablock_swig.EltBase_replaceEdge(self, old, nouveau)
+
+    def replaceVertex(self, old, nouveau):
+        return _hexablock_swig.EltBase_replaceVertex(self, old, nouveau)
+
+    def __init__(self, *args):
         this = _hexablock_swig.new_EltBase(*args)
-        try: self.this.append(this)
-        except: self.this = this
+        try:
+            self.this.append(this)
+        except __builtin__.Exception:
+            self.this = this
     __swig_destroy__ = _hexablock_swig.delete_EltBase
-    __del__ = lambda self : None;
-    def remove(*args): return _hexablock_swig.EltBase_remove(*args)
-    def suppress(*args): return _hexablock_swig.EltBase_suppress(*args)
-    def dump(*args): return _hexablock_swig.EltBase_dump(*args)
-    def saveXml(*args): return _hexablock_swig.EltBase_saveXml(*args)
-    def majReferences(*args): return _hexablock_swig.EltBase_majReferences(*args)
-    def makeVarName(*args): return _hexablock_swig.EltBase_makeVarName(*args)
-    __swig_getmethods__["makeName"] = lambda x: _hexablock_swig.EltBase_makeName
-    if _newclass:makeName = staticmethod(_hexablock_swig.EltBase_makeName)
-    def next(*args): return _hexablock_swig.EltBase_next(*args)
-    def setNext(*args): return _hexablock_swig.EltBase_setNext(*args)
-    def getId(*args): return _hexablock_swig.EltBase_getId(*args)
-    def setId(*args): return _hexablock_swig.EltBase_setId(*args)
-    def dad(*args): return _hexablock_swig.EltBase_dad(*args)
-    def getType(*args): return _hexablock_swig.EltBase_getType(*args)
-    def isHere(*args): return _hexablock_swig.EltBase_isHere(*args)
-    def isDeleted(*args): return _hexablock_swig.EltBase_isDeleted(*args)
-    def razReferences(*args): return _hexablock_swig.EltBase_razReferences(*args)
-    def addParent(*args): return _hexablock_swig.EltBase_addParent(*args)
-    def getNbrParents(*args): return _hexablock_swig.EltBase_getNbrParents(*args)
-    def hasParents(*args): return _hexablock_swig.EltBase_hasParents(*args)
-    def getFather(*args): return _hexablock_swig.EltBase_getFather(*args)
-    def getMark(*args): return _hexablock_swig.EltBase_getMark(*args)
-    def setMark(*args): return _hexablock_swig.EltBase_setMark(*args)
-    def printName(*args): return _hexablock_swig.EltBase_printName(*args)
-    def dumpRef(*args): return _hexablock_swig.EltBase_dumpRef(*args)
-    def getName(*args): return _hexablock_swig.EltBase_getName(*args)
-    def setName(*args): return _hexablock_swig.EltBase_setName(*args)
-    def debug(*args): return _hexablock_swig.EltBase_debug(*args)
-    def isAssociated(*args): return _hexablock_swig.EltBase_isAssociated(*args)
-    def getNextName(*args): return _hexablock_swig.EltBase_getNextName(*args)
+    __del__ = lambda self: None
+
+    def remove(self):
+        return _hexablock_swig.EltBase_remove(self)
+
+    def suppress(self):
+        return _hexablock_swig.EltBase_suppress(self)
+
+    def dump(self):
+        return _hexablock_swig.EltBase_dump(self)
+
+    def saveXml(self, xml):
+        return _hexablock_swig.EltBase_saveXml(self, xml)
+
+    def majReferences(self):
+        return _hexablock_swig.EltBase_majReferences(self)
+
+    def makeVarName(self, nom):
+        return _hexablock_swig.EltBase_makeVarName(self, nom)
+    if _newclass:
+        makeName = staticmethod(_hexablock_swig.EltBase_makeName)
+    else:
+        makeName = _hexablock_swig.EltBase_makeName
+
+    def next(self):
+        return _hexablock_swig.EltBase_next(self)
+
+    def setNext(self, suivant):
+        return _hexablock_swig.EltBase_setNext(self, suivant)
+
+    def getId(self):
+        return _hexablock_swig.EltBase_getId(self)
+
+    def setId(self, ln):
+        return _hexablock_swig.EltBase_setId(self, ln)
+
+    def dad(self):
+        return _hexablock_swig.EltBase_dad(self)
+
+    def getType(self):
+        return _hexablock_swig.EltBase_getType(self)
+
+    def isHere(self):
+        return _hexablock_swig.EltBase_isHere(self)
+
+    def isDeleted(self):
+        return _hexablock_swig.EltBase_isDeleted(self)
+
+    def razReferences(self):
+        return _hexablock_swig.EltBase_razReferences(self)
+
+    def addParent(self, dad):
+        return _hexablock_swig.EltBase_addParent(self, dad)
+
+    def getNbrParents(self):
+        return _hexablock_swig.EltBase_getNbrParents(self)
+
+    def hasParents(self):
+        return _hexablock_swig.EltBase_hasParents(self)
+
+    def getFather(self, nro):
+        return _hexablock_swig.EltBase_getFather(self, nro)
+
+    def getMark(self):
+        return _hexablock_swig.EltBase_getMark(self)
+
+    def setMark(self, ln):
+        return _hexablock_swig.EltBase_setMark(self, ln)
+
+    def printName(self, *args):
+        return _hexablock_swig.EltBase_printName(self, *args)
+
+    def dumpRef(self):
+        return _hexablock_swig.EltBase_dumpRef(self)
+
+    def getName(self, *args):
+        return _hexablock_swig.EltBase_getName(self, *args)
+
+    def setName(self, *args):
+        return _hexablock_swig.EltBase_setName(self, *args)
+
+    def debug(self, niv=0):
+        return _hexablock_swig.EltBase_debug(self, niv)
+
+    def isAssociated(self):
+        return _hexablock_swig.EltBase_isAssociated(self)
+
+    def getNextName(self):
+        return _hexablock_swig.EltBase_getNextName(self)
 EltBase_swigregister = _hexablock_swig.EltBase_swigregister
 EltBase_swigregister(EltBase)
 cvar = _hexablock_swig.cvar
 ABR_TYPES = cvar.ABR_TYPES
-fatal_error = _hexablock_swig.fatal_error
-same_coords = _hexablock_swig.same_coords
-requals = _hexablock_swig.requals
 Epsil = cvar.Epsil
 UnEpsil = cvar.UnEpsil
 Epsil2 = cvar.Epsil2
+
+def EltBase_makeName(type, id, name):
+    return _hexablock_swig.EltBase_makeName(type, id, name)
 EltBase_makeName = _hexablock_swig.EltBase_makeName
 
 class Vertex(EltBase):
     __swig_setmethods__ = {}
-    for _s in [EltBase]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
+    for _s in [EltBase]:
+        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
     __setattr__ = lambda self, name, value: _swig_setattr(self, Vertex, name, value)
     __swig_getmethods__ = {}
-    for _s in [EltBase]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
+    for _s in [EltBase]:
+        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
     __getattr__ = lambda self, name: _swig_getattr(self, Vertex, name)
     __repr__ = _swig_repr
-    def getX(*args): return _hexablock_swig.Vertex_getX(*args)
-    def getY(*args): return _hexablock_swig.Vertex_getY(*args)
-    def getZ(*args): return _hexablock_swig.Vertex_getZ(*args)
-    def setX(*args): return _hexablock_swig.Vertex_setX(*args)
-    def setY(*args): return _hexablock_swig.Vertex_setY(*args)
-    def setZ(*args): return _hexablock_swig.Vertex_setZ(*args)
-    def getAssoX(*args): return _hexablock_swig.Vertex_getAssoX(*args)
-    def getAssoY(*args): return _hexablock_swig.Vertex_getAssoY(*args)
-    def getAssoZ(*args): return _hexablock_swig.Vertex_getAssoZ(*args)
-    def setAssociation(*args): return _hexablock_swig.Vertex_setAssociation(*args)
-    def clearAssociation(*args): return _hexablock_swig.Vertex_clearAssociation(*args)
-    def setColor(*args): return _hexablock_swig.Vertex_setColor(*args)
-    def __init__(self, *args): 
-        this = _hexablock_swig.new_Vertex(*args)
-        try: self.this.append(this)
-        except: self.this = this
+
+    def getX(self):
+        return _hexablock_swig.Vertex_getX(self)
+
+    def getY(self):
+        return _hexablock_swig.Vertex_getY(self)
+
+    def getZ(self):
+        return _hexablock_swig.Vertex_getZ(self)
+
+    def setX(self, v):
+        return _hexablock_swig.Vertex_setX(self, v)
+
+    def setY(self, v):
+        return _hexablock_swig.Vertex_setY(self, v)
+
+    def setZ(self, v):
+        return _hexablock_swig.Vertex_setZ(self, v)
+
+    def getAssoX(self):
+        return _hexablock_swig.Vertex_getAssoX(self)
+
+    def getAssoY(self):
+        return _hexablock_swig.Vertex_getAssoY(self)
+
+    def getAssoZ(self):
+        return _hexablock_swig.Vertex_getAssoZ(self)
+
+    def setAssociation(self, geom, subid):
+        return _hexablock_swig.Vertex_setAssociation(self, geom, subid)
+
+    def clearAssociation(self):
+        return _hexablock_swig.Vertex_clearAssociation(self)
+
+    def setColor(self, valeur):
+        return _hexablock_swig.Vertex_setColor(self, valeur)
+
+    def __init__(self, prev, x, y, z):
+        this = _hexablock_swig.new_Vertex(prev, x, y, z)
+        try:
+            self.this.append(this)
+        except __builtin__.Exception:
+            self.this = this
     __swig_destroy__ = _hexablock_swig.delete_Vertex
-    __del__ = lambda self : None;
+    __del__ = lambda self: None
 Vertex_swigregister = _hexablock_swig.Vertex_swigregister
 Vertex_swigregister(Vertex)
 
 class Edge(EltBase):
     __swig_setmethods__ = {}
-    for _s in [EltBase]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
+    for _s in [EltBase]:
+        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
     __setattr__ = lambda self, name, value: _swig_setattr(self, Edge, name, value)
     __swig_getmethods__ = {}
-    for _s in [EltBase]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
+    for _s in [EltBase]:
+        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
     __getattr__ = lambda self, name: _swig_getattr(self, Edge, name)
     __repr__ = _swig_repr
-    def getVertex(*args): return _hexablock_swig.Edge_getVertex(*args)
-    def addAssociation(*args): return _hexablock_swig.Edge_addAssociation(*args)
-    def setAssociation(*args): return _hexablock_swig.Edge_setAssociation(*args)
-    def findAssociation(*args): return _hexablock_swig.Edge_findAssociation(*args)
-    def clearAssociation(*args): return _hexablock_swig.Edge_clearAssociation(*args)
-    def setColor(*args): return _hexablock_swig.Edge_setColor(*args)
-    def getWay(*args): return _hexablock_swig.Edge_getWay(*args)
-    def getLength(*args): return _hexablock_swig.Edge_getLength(*args)
-    def __init__(self, *args): 
-        this = _hexablock_swig.new_Edge(*args)
-        try: self.this.append(this)
-        except: self.this = this
+
+    def getVertex(self, nro):
+        return _hexablock_swig.Edge_getVertex(self, nro)
+
+    def addAssociation(self, geom, subid, deb, fin):
+        return _hexablock_swig.Edge_addAssociation(self, geom, subid, deb, fin)
+
+    def setAssociation(self, geom, subid):
+        return _hexablock_swig.Edge_setAssociation(self, geom, subid)
+
+    def findAssociation(self, geom):
+        return _hexablock_swig.Edge_findAssociation(self, geom)
+
+    def clearAssociation(self):
+        return _hexablock_swig.Edge_clearAssociation(self)
+
+    def setColor(self, valeur):
+        return _hexablock_swig.Edge_setColor(self, valeur)
+
+    def getWay(self):
+        return _hexablock_swig.Edge_getWay(self)
+
+    def getLength(self):
+        return _hexablock_swig.Edge_getLength(self)
+
+    def __init__(self, va, vb):
+        this = _hexablock_swig.new_Edge(va, vb)
+        try:
+            self.this.append(this)
+        except __builtin__.Exception:
+            self.this = this
     __swig_destroy__ = _hexablock_swig.delete_Edge
-    __del__ = lambda self : None;
+    __del__ = lambda self: None
 Edge_swigregister = _hexablock_swig.Edge_swigregister
 Edge_swigregister(Edge)
 
 class Quad(EltBase):
     __swig_setmethods__ = {}
-    for _s in [EltBase]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
+    for _s in [EltBase]:
+        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
     __setattr__ = lambda self, name, value: _swig_setattr(self, Quad, name, value)
     __swig_getmethods__ = {}
-    for _s in [EltBase]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
+    for _s in [EltBase]:
+        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
     __getattr__ = lambda self, name: _swig_getattr(self, Quad, name)
     __repr__ = _swig_repr
-    def getEdge(*args): return _hexablock_swig.Quad_getEdge(*args)
-    def getVertex(*args): return _hexablock_swig.Quad_getVertex(*args)
-    def addAssociation(*args): return _hexablock_swig.Quad_addAssociation(*args)
-    def clearAssociation(*args): return _hexablock_swig.Quad_clearAssociation(*args)
-    def setColor(*args): return _hexablock_swig.Quad_setColor(*args)
-    def nearestVertex(*args): return _hexablock_swig.Quad_nearestVertex(*args)
-    def getCenter(*args): return _hexablock_swig.Quad_getCenter(*args)
-    def __init__(self, *args): 
-        this = _hexablock_swig.new_Quad(*args)
-        try: self.this.append(this)
-        except: self.this = this
+
+    def getEdge(self, nro):
+        return _hexablock_swig.Quad_getEdge(self, nro)
+
+    def getVertex(self, nro):
+        return _hexablock_swig.Quad_getVertex(self, nro)
+
+    def addAssociation(self, forme, subid):
+        return _hexablock_swig.Quad_addAssociation(self, forme, subid)
+
+    def clearAssociation(self):
+        return _hexablock_swig.Quad_clearAssociation(self)
+
+    def setColor(self, valeur):
+        return _hexablock_swig.Quad_setColor(self, valeur)
+
+    def nearestVertex(self, other):
+        return _hexablock_swig.Quad_nearestVertex(self, other)
+
+    def getCenter(self, center):
+        return _hexablock_swig.Quad_getCenter(self, center)
+
+    def __init__(self, va, vb, vc, vd):
+        this = _hexablock_swig.new_Quad(va, vb, vc, vd)
+        try:
+            self.this.append(this)
+        except __builtin__.Exception:
+            self.this = this
     __swig_destroy__ = _hexablock_swig.delete_Quad
-    __del__ = lambda self : None;
+    __del__ = lambda self: None
 Quad_swigregister = _hexablock_swig.Quad_swigregister
 Quad_swigregister(Quad)
 
 class Hexa(EltBase):
     __swig_setmethods__ = {}
-    for _s in [EltBase]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
+    for _s in [EltBase]:
+        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
     __setattr__ = lambda self, name, value: _swig_setattr(self, Hexa, name, value)
     __swig_getmethods__ = {}
-    for _s in [EltBase]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
+    for _s in [EltBase]:
+        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
     __getattr__ = lambda self, name: _swig_getattr(self, Hexa, name)
     __repr__ = _swig_repr
-    def getQuad(*args): return _hexablock_swig.Hexa_getQuad(*args)
-    def getEdge(*args): return _hexablock_swig.Hexa_getEdge(*args)
-    def getVertex(*args): return _hexablock_swig.Hexa_getVertex(*args)
-    def setColor(*args): return _hexablock_swig.Hexa_setColor(*args)
-    def __init__(self, *args): 
-        this = _hexablock_swig.new_Hexa(*args)
-        try: self.this.append(this)
-        except: self.this = this
+
+    def getQuad(self, nro):
+        return _hexablock_swig.Hexa_getQuad(self, nro)
+
+    def getEdge(self, nro):
+        return _hexablock_swig.Hexa_getEdge(self, nro)
+
+    def getVertex(self, nro):
+        return _hexablock_swig.Hexa_getVertex(self, nro)
+
+    def setColor(self, valeur):
+        return _hexablock_swig.Hexa_setColor(self, valeur)
+
+    def __init__(self, qa, qb, qc, qd, qe, qf):
+        this = _hexablock_swig.new_Hexa(qa, qb, qc, qd, qe, qf)
+        try:
+            self.this.append(this)
+        except __builtin__.Exception:
+            self.this = this
     __swig_destroy__ = _hexablock_swig.delete_Hexa
-    __del__ = lambda self : None;
+    __del__ = lambda self: None
 Hexa_swigregister = _hexablock_swig.Hexa_swigregister
 Hexa_swigregister(Hexa)
 
 class Vector(EltBase):
     __swig_setmethods__ = {}
-    for _s in [EltBase]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
+    for _s in [EltBase]:
+        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
     __setattr__ = lambda self, name, value: _swig_setattr(self, Vector, name, value)
     __swig_getmethods__ = {}
-    for _s in [EltBase]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
+    for _s in [EltBase]:
+        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
     __getattr__ = lambda self, name: _swig_getattr(self, Vector, name)
     __repr__ = _swig_repr
-    def getDx(*args): return _hexablock_swig.Vector_getDx(*args)
-    def getDy(*args): return _hexablock_swig.Vector_getDy(*args)
-    def getDz(*args): return _hexablock_swig.Vector_getDz(*args)
-    def getNorm(*args): return _hexablock_swig.Vector_getNorm(*args)
-    def getAngleX(*args): return _hexablock_swig.Vector_getAngleX(*args)
-    def __init__(self, *args): 
-        this = _hexablock_swig.new_Vector(*args)
-        try: self.this.append(this)
-        except: self.this = this
+
+    def getDx(self):
+        return _hexablock_swig.Vector_getDx(self)
+
+    def getDy(self):
+        return _hexablock_swig.Vector_getDy(self)
+
+    def getDz(self):
+        return _hexablock_swig.Vector_getDz(self)
+
+    def getNorm(self):
+        return _hexablock_swig.Vector_getNorm(self)
+
+    def getAngleX(self):
+        return _hexablock_swig.Vector_getAngleX(self)
+
+    def __init__(self, doc, dx=0, dy=0, dz=0):
+        this = _hexablock_swig.new_Vector(doc, dx, dy, dz)
+        try:
+            self.this.append(this)
+        except __builtin__.Exception:
+            self.this = this
     __swig_destroy__ = _hexablock_swig.delete_Vector
-    __del__ = lambda self : None;
+    __del__ = lambda self: None
 Vector_swigregister = _hexablock_swig.Vector_swigregister
 Vector_swigregister(Vector)
 
 class Document(EltBase):
     __swig_setmethods__ = {}
-    for _s in [EltBase]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
+    for _s in [EltBase]:
+        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
     __setattr__ = lambda self, name, value: _swig_setattr(self, Document, name, value)
     __swig_getmethods__ = {}
-    for _s in [EltBase]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
+    for _s in [EltBase]:
+        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
     __getattr__ = lambda self, name: _swig_getattr(self, Document, name)
     __repr__ = _swig_repr
-    def __init__(self, *args): 
-        this = _hexablock_swig.new_Document(*args)
-        try: self.this.append(this)
-        except: self.this = this
-    def dump(*args): return _hexablock_swig.Document_dump(*args)
-    def setName(*args): return _hexablock_swig.Document_setName(*args)
-    def setLevel(*args): return _hexablock_swig.Document_setLevel(*args)
-    def save(*args): return _hexablock_swig.Document_save(*args)
-    def saveVtk(*args): return _hexablock_swig.Document_saveVtk(*args)
-    def purge(*args): return _hexablock_swig.Document_purge(*args)
-    def setTolerance(*args): return _hexablock_swig.Document_setTolerance(*args)
-    def getTolerance(*args): return _hexablock_swig.Document_getTolerance(*args)
-    def addVertex(*args): return _hexablock_swig.Document_addVertex(*args)
-    def addEdge(*args): return _hexablock_swig.Document_addEdge(*args)
-    def addEdgeVector(*args): return _hexablock_swig.Document_addEdgeVector(*args)
-    def addQuad(*args): return _hexablock_swig.Document_addQuad(*args)
-    def addQuadVertices(*args): return _hexablock_swig.Document_addQuadVertices(*args)
-    def addHexa(*args): return _hexablock_swig.Document_addHexa(*args)
-    def addHexaVertices(*args): return _hexablock_swig.Document_addHexaVertices(*args)
-    def addHexa2Quads(*args): return _hexablock_swig.Document_addHexa2Quads(*args)
-    def addHexa3Quads(*args): return _hexablock_swig.Document_addHexa3Quads(*args)
-    def addHexa4Quads(*args): return _hexablock_swig.Document_addHexa4Quads(*args)
-    def addHexa5Quads(*args): return _hexablock_swig.Document_addHexa5Quads(*args)
-    def addVector(*args): return _hexablock_swig.Document_addVector(*args)
-    def addVectorVertices(*args): return _hexablock_swig.Document_addVectorVertices(*args)
-    def addLaws(*args): return _hexablock_swig.Document_addLaws(*args)
-    def addHexaGroup(*args): return _hexablock_swig.Document_addHexaGroup(*args)
-    def addQuadGroup(*args): return _hexablock_swig.Document_addQuadGroup(*args)
-    def addQuadNodeGroup(*args): return _hexablock_swig.Document_addQuadNodeGroup(*args)
-    def addHexaNodeGroup(*args): return _hexablock_swig.Document_addHexaNodeGroup(*args)
-    def addEdgeGroup(*args): return _hexablock_swig.Document_addEdgeGroup(*args)
-    def addEdgeNodeGroup(*args): return _hexablock_swig.Document_addEdgeNodeGroup(*args)
-    def addVertexNodeGroup(*args): return _hexablock_swig.Document_addVertexNodeGroup(*args)
-    def makeTranslation(*args): return _hexablock_swig.Document_makeTranslation(*args)
-    def makeScale(*args): return _hexablock_swig.Document_makeScale(*args)
-    def makeRotation(*args): return _hexablock_swig.Document_makeRotation(*args)
-    def makeSymmetryPoint(*args): return _hexablock_swig.Document_makeSymmetryPoint(*args)
-    def makeSymmetryLine(*args): return _hexablock_swig.Document_makeSymmetryLine(*args)
-    def makeSymmetryPlane(*args): return _hexablock_swig.Document_makeSymmetryPlane(*args)
-    def performTranslation(*args): return _hexablock_swig.Document_performTranslation(*args)
-    def performScale(*args): return _hexablock_swig.Document_performScale(*args)
-    def performRotation(*args): return _hexablock_swig.Document_performRotation(*args)
-    def performSymmetryPoint(*args): return _hexablock_swig.Document_performSymmetryPoint(*args)
-    def performSymmetryLine(*args): return _hexablock_swig.Document_performSymmetryLine(*args)
-    def performSymmetryPlane(*args): return _hexablock_swig.Document_performSymmetryPlane(*args)
-    def disconnectQuad(*args): return _hexablock_swig.Document_disconnectQuad(*args)
-    def disconnectEdge(*args): return _hexablock_swig.Document_disconnectEdge(*args)
-    def disconnectVertex(*args): return _hexablock_swig.Document_disconnectVertex(*args)
-    def disconnectEdges(*args): return _hexablock_swig.Document_disconnectEdges(*args)
-    def replace(*args): return _hexablock_swig.Document_replace(*args)
-    def mergeVertices(*args): return _hexablock_swig.Document_mergeVertices(*args)
-    def mergeEdges(*args): return _hexablock_swig.Document_mergeEdges(*args)
-    def mergeQuads(*args): return _hexablock_swig.Document_mergeQuads(*args)
-    def clearAssociation(*args): return _hexablock_swig.Document_clearAssociation(*args)
-    def associateOpenedLine(*args): return _hexablock_swig.Document_associateOpenedLine(*args)
-    def associateClosedLine(*args): return _hexablock_swig.Document_associateClosedLine(*args)
-    def countHexa(*args): return _hexablock_swig.Document_countHexa(*args)
-    def countQuad(*args): return _hexablock_swig.Document_countQuad(*args)
-    def countEdge(*args): return _hexablock_swig.Document_countEdge(*args)
-    def countVertex(*args): return _hexablock_swig.Document_countVertex(*args)
-    def countVector(*args): return _hexablock_swig.Document_countVector(*args)
-    def countGroup(*args): return _hexablock_swig.Document_countGroup(*args)
-    def countLaw(*args): return _hexablock_swig.Document_countLaw(*args)
-    def countPropagation(*args): return _hexablock_swig.Document_countPropagation(*args)
-    def countShape(*args): return _hexablock_swig.Document_countShape(*args)
-    def countUsedHexa(*args): return _hexablock_swig.Document_countUsedHexa(*args)
-    def countUsedQuad(*args): return _hexablock_swig.Document_countUsedQuad(*args)
-    def countUsedEdge(*args): return _hexablock_swig.Document_countUsedEdge(*args)
-    def countUsedVertex(*args): return _hexablock_swig.Document_countUsedVertex(*args)
-    def getHexa(*args): return _hexablock_swig.Document_getHexa(*args)
-    def getQuad(*args): return _hexablock_swig.Document_getQuad(*args)
-    def getEdge(*args): return _hexablock_swig.Document_getEdge(*args)
-    def getVertex(*args): return _hexablock_swig.Document_getVertex(*args)
-    def getUsedHexa(*args): return _hexablock_swig.Document_getUsedHexa(*args)
-    def getUsedQuad(*args): return _hexablock_swig.Document_getUsedQuad(*args)
-    def getUsedEdge(*args): return _hexablock_swig.Document_getUsedEdge(*args)
-    def getUsedVertex(*args): return _hexablock_swig.Document_getUsedVertex(*args)
-    def getVector(*args): return _hexablock_swig.Document_getVector(*args)
-    def getShape(*args): return _hexablock_swig.Document_getShape(*args)
-    def getGroup(*args): return _hexablock_swig.Document_getGroup(*args)
-    def getLaw(*args): return _hexablock_swig.Document_getLaw(*args)
-    def getPropagation(*args): return _hexablock_swig.Document_getPropagation(*args)
-    def getFirstExplicitShape(*args): return _hexablock_swig.Document_getFirstExplicitShape(*args)
-    def findEdge(*args): return _hexablock_swig.Document_findEdge(*args)
-    def findQuad(*args): return _hexablock_swig.Document_findQuad(*args)
-    def findHexa(*args): return _hexablock_swig.Document_findHexa(*args)
-    def findGroup(*args): return _hexablock_swig.Document_findGroup(*args)
-    def findLaw(*args): return _hexablock_swig.Document_findLaw(*args)
-    def findPropagation(*args): return _hexablock_swig.Document_findPropagation(*args)
-    def removeHexa(*args): return _hexablock_swig.Document_removeHexa(*args)
-    def removeQuad(*args): return _hexablock_swig.Document_removeQuad(*args)
-    def removeConnectedHexa(*args): return _hexablock_swig.Document_removeConnectedHexa(*args)
-    def removeElements(*args): return _hexablock_swig.Document_removeElements(*args)
-    def removeGroup(*args): return _hexablock_swig.Document_removeGroup(*args)
-    def removeLaw(*args): return _hexablock_swig.Document_removeLaw(*args)
-    def makeCartesianTop(*args): return _hexablock_swig.Document_makeCartesianTop(*args)
-    def makeCartesianUni(*args): return _hexablock_swig.Document_makeCartesianUni(*args)
-    def makeCartesian(*args): return _hexablock_swig.Document_makeCartesian(*args)
-    def makeCylinderTop(*args): return _hexablock_swig.Document_makeCylinderTop(*args)
-    def makeCylinderUni(*args): return _hexablock_swig.Document_makeCylinderUni(*args)
-    def makeCylinder(*args): return _hexablock_swig.Document_makeCylinder(*args)
-    def makePipeTop(*args): return _hexablock_swig.Document_makePipeTop(*args)
-    def makePipeUni(*args): return _hexablock_swig.Document_makePipeUni(*args)
-    def makePipe(*args): return _hexablock_swig.Document_makePipe(*args)
-    def makeSphericalTop(*args): return _hexablock_swig.Document_makeSphericalTop(*args)
-    def makeSphericalUni(*args): return _hexablock_swig.Document_makeSphericalUni(*args)
-    def makeSpherical(*args): return _hexablock_swig.Document_makeSpherical(*args)
-    def makeSphereTop(*args): return _hexablock_swig.Document_makeSphereTop(*args)
-    def makeSphereUni(*args): return _hexablock_swig.Document_makeSphereUni(*args)
-    def makeSphere(*args): return _hexablock_swig.Document_makeSphere(*args)
-    def makeRindTop(*args): return _hexablock_swig.Document_makeRindTop(*args)
-    def makeRindUni(*args): return _hexablock_swig.Document_makeRindUni(*args)
-    def makeRind(*args): return _hexablock_swig.Document_makeRind(*args)
-    def makeCylinders(*args): return _hexablock_swig.Document_makeCylinders(*args)
-    def makePipes(*args): return _hexablock_swig.Document_makePipes(*args)
-    def extrudeQuadTop(*args): return _hexablock_swig.Document_extrudeQuadTop(*args)
-    def extrudeQuadUni(*args): return _hexablock_swig.Document_extrudeQuadUni(*args)
-    def extrudeQuad(*args): return _hexablock_swig.Document_extrudeQuad(*args)
-    def extrudeQuadsTop(*args): return _hexablock_swig.Document_extrudeQuadsTop(*args)
-    def extrudeQuadsUni(*args): return _hexablock_swig.Document_extrudeQuadsUni(*args)
-    def extrudeQuads(*args): return _hexablock_swig.Document_extrudeQuads(*args)
-    def revolutionQuadUni(*args): return _hexablock_swig.Document_revolutionQuadUni(*args)
-    def revolutionQuad(*args): return _hexablock_swig.Document_revolutionQuad(*args)
-    def revolutionQuadsUni(*args): return _hexablock_swig.Document_revolutionQuadsUni(*args)
-    def revolutionQuads(*args): return _hexablock_swig.Document_revolutionQuads(*args)
-    def joinQuadUni(*args): return _hexablock_swig.Document_joinQuadUni(*args)
-    def joinQuadsUni(*args): return _hexablock_swig.Document_joinQuadsUni(*args)
-    def joinQuad(*args): return _hexablock_swig.Document_joinQuad(*args)
-    def joinQuads(*args): return _hexablock_swig.Document_joinQuads(*args)
-    def cutUni(*args): return _hexablock_swig.Document_cutUni(*args)
-    def cut(*args): return _hexablock_swig.Document_cut(*args)
-    def addGroup(*args): return _hexablock_swig.Document_addGroup(*args)
-    def isSaved(*args): return _hexablock_swig.Document_isSaved(*args)
-    def appendXml(*args): return _hexablock_swig.Document_appendXml(*args)
-    def getXml(*args): return _hexablock_swig.Document_getXml(*args)
-    def getLevel(*args): return _hexablock_swig.Document_getLevel(*args)
-    def findVertex(*args): return _hexablock_swig.Document_findVertex(*args)
-    def closeQuads(*args): return _hexablock_swig.Document_closeQuads(*args)
-    def addLaw(*args): return _hexablock_swig.Document_addLaw(*args)
-    def checkAssociations(*args): return _hexablock_swig.Document_checkAssociations(*args)
-    def addShape(*args): return _hexablock_swig.Document_addShape(*args)
+
+    def __init__(self, name, dad=None):
+        this = _hexablock_swig.new_Document(name, dad)
+        try:
+            self.this.append(this)
+        except __builtin__.Exception:
+            self.this = this
+
+    def dump(self):
+        return _hexablock_swig.Document_dump(self)
+
+    def setName(self, name):
+        return _hexablock_swig.Document_setName(self, name)
+
+    def setLevel(self, niv):
+        return _hexablock_swig.Document_setLevel(self, niv)
+
+    def save(self, ficxml):
+        return _hexablock_swig.Document_save(self, ficxml)
+
+    def saveVtk(self, nomfic):
+        return _hexablock_swig.Document_saveVtk(self, nomfic)
+
+    def purge(self):
+        return _hexablock_swig.Document_purge(self)
+
+    def setTolerance(self, tol):
+        return _hexablock_swig.Document_setTolerance(self, tol)
+
+    def getTolerance(self):
+        return _hexablock_swig.Document_getTolerance(self)
+
+    def addVertex(self, x=0.0, y=0.0, z=0.0):
+        return _hexablock_swig.Document_addVertex(self, x, y, z)
+
+    def addEdge(self, va, vb):
+        return _hexablock_swig.Document_addEdge(self, va, vb)
+
+    def addEdgeVector(self, va, vec):
+        return _hexablock_swig.Document_addEdgeVector(self, va, vec)
+
+    def addQuad(self, v1, v2, v3, v4):
+        return _hexablock_swig.Document_addQuad(self, v1, v2, v3, v4)
+
+    def addQuadVertices(self, v1, v2, v3, v4):
+        return _hexablock_swig.Document_addQuadVertices(self, v1, v2, v3, v4)
+
+    def addHexa(self, qa, qb, qc, qd, qe, qf):
+        return _hexablock_swig.Document_addHexa(self, qa, qb, qc, qd, qe, qf)
+
+    def addHexaVertices(self, v1, v2, v3, v4, v5, v6, v7, v8):
+        return _hexablock_swig.Document_addHexaVertices(self, v1, v2, v3, v4, v5, v6, v7, v8)
+
+    def addHexa2Quads(self, q1, q2):
+        return _hexablock_swig.Document_addHexa2Quads(self, q1, q2)
+
+    def addHexa3Quads(self, q1, q2, q3):
+        return _hexablock_swig.Document_addHexa3Quads(self, q1, q2, q3)
+
+    def addHexa4Quads(self, q1, q2, q3, q4):
+        return _hexablock_swig.Document_addHexa4Quads(self, q1, q2, q3, q4)
+
+    def addHexa5Quads(self, q1, q2, q3, q4, q5):
+        return _hexablock_swig.Document_addHexa5Quads(self, q1, q2, q3, q4, q5)
+
+    def addVector(self, dx=0.0, dy=0.0, dz=0.0):
+        return _hexablock_swig.Document_addVector(self, dx, dy, dz)
+
+    def addVectorVertices(self, va, vb):
+        return _hexablock_swig.Document_addVectorVertices(self, va, vb)
+
+    def addLaws(self, lgmoy, usemax=True):
+        return _hexablock_swig.Document_addLaws(self, lgmoy, usemax)
+
+    def addHexaGroup(self, name):
+        return _hexablock_swig.Document_addHexaGroup(self, name)
+
+    def addQuadGroup(self, name):
+        return _hexablock_swig.Document_addQuadGroup(self, name)
+
+    def addQuadNodeGroup(self, name):
+        return _hexablock_swig.Document_addQuadNodeGroup(self, name)
+
+    def addHexaNodeGroup(self, name):
+        return _hexablock_swig.Document_addHexaNodeGroup(self, name)
+
+    def addEdgeGroup(self, name):
+        return _hexablock_swig.Document_addEdgeGroup(self, name)
+
+    def addEdgeNodeGroup(self, name):
+        return _hexablock_swig.Document_addEdgeNodeGroup(self, name)
+
+    def addVertexNodeGroup(self, name):
+        return _hexablock_swig.Document_addVertexNodeGroup(self, name)
+
+    def makeTranslation(self, elts, trans):
+        return _hexablock_swig.Document_makeTranslation(self, elts, trans)
+
+    def makeScale(self, elts, ver, k):
+        return _hexablock_swig.Document_makeScale(self, elts, ver, k)
+
+    def makeRotation(self, elts, ver, vec, angle):
+        return _hexablock_swig.Document_makeRotation(self, elts, ver, vec, angle)
+
+    def makeSymmetryPoint(self, elts, ver):
+        return _hexablock_swig.Document_makeSymmetryPoint(self, elts, ver)
+
+    def makeSymmetryLine(self, elts, ver, vec):
+        return _hexablock_swig.Document_makeSymmetryLine(self, elts, ver, vec)
+
+    def makeSymmetryPlane(self, elts, ver, vec):
+        return _hexablock_swig.Document_makeSymmetryPlane(self, elts, ver, vec)
+
+    def performTranslation(self, elts, trans):
+        return _hexablock_swig.Document_performTranslation(self, elts, trans)
+
+    def performScale(self, elts, ver, k):
+        return _hexablock_swig.Document_performScale(self, elts, ver, k)
+
+    def performRotation(self, elts, ver, vec, angle):
+        return _hexablock_swig.Document_performRotation(self, elts, ver, vec, angle)
+
+    def performSymmetryPoint(self, elts, ver):
+        return _hexablock_swig.Document_performSymmetryPoint(self, elts, ver)
+
+    def performSymmetryLine(self, elts, ver, vec):
+        return _hexablock_swig.Document_performSymmetryLine(self, elts, ver, vec)
+
+    def performSymmetryPlane(self, elts, ver, vec):
+        return _hexablock_swig.Document_performSymmetryPlane(self, elts, ver, vec)
+
+    def disconnectQuad(self, maille, face):
+        return _hexablock_swig.Document_disconnectQuad(self, maille, face)
+
+    def disconnectEdge(self, maille, arete):
+        return _hexablock_swig.Document_disconnectEdge(self, maille, arete)
+
+    def disconnectVertex(self, maille, noeud):
+        return _hexablock_swig.Document_disconnectVertex(self, maille, noeud)
+
+    def disconnectEdges(self, thexas, edges):
+        return _hexablock_swig.Document_disconnectEdges(self, thexas, edges)
+
+    def replace(self, pattern, cible, p1, c1, p2, c2):
+        return _hexablock_swig.Document_replace(self, pattern, cible, p1, c1, p2, c2)
+
+    def mergeVertices(self, v1, v2):
+        return _hexablock_swig.Document_mergeVertices(self, v1, v2)
+
+    def mergeEdges(self, e1, e2, v1, v2):
+        return _hexablock_swig.Document_mergeEdges(self, e1, e2, v1, v2)
+
+    def mergeQuads(self, q1, q2, v1, v2, v3, v4):
+        return _hexablock_swig.Document_mergeQuads(self, q1, q2, v1, v2, v3, v4)
+
+    def clearAssociation(self):
+        return _hexablock_swig.Document_clearAssociation(self)
+
+    def associateOpenedLine(self, mline, gline, tabid, pstart, pend):
+        return _hexablock_swig.Document_associateOpenedLine(self, mline, gline, tabid, pstart, pend)
+
+    def associateClosedLine(self, mfirst, mline, gline, tabid, pstart, inv):
+        return _hexablock_swig.Document_associateClosedLine(self, mfirst, mline, gline, tabid, pstart, inv)
+
+    def countHexa(self):
+        return _hexablock_swig.Document_countHexa(self)
+
+    def countQuad(self):
+        return _hexablock_swig.Document_countQuad(self)
+
+    def countEdge(self):
+        return _hexablock_swig.Document_countEdge(self)
+
+    def countVertex(self):
+        return _hexablock_swig.Document_countVertex(self)
+
+    def countVector(self):
+        return _hexablock_swig.Document_countVector(self)
+
+    def countGroup(self):
+        return _hexablock_swig.Document_countGroup(self)
+
+    def countLaw(self):
+        return _hexablock_swig.Document_countLaw(self)
+
+    def countPropagation(self):
+        return _hexablock_swig.Document_countPropagation(self)
+
+    def countShape(self):
+        return _hexablock_swig.Document_countShape(self)
+
+    def countUsedHexa(self):
+        return _hexablock_swig.Document_countUsedHexa(self)
+
+    def countUsedQuad(self):
+        return _hexablock_swig.Document_countUsedQuad(self)
+
+    def countUsedEdge(self):
+        return _hexablock_swig.Document_countUsedEdge(self)
+
+    def countUsedVertex(self):
+        return _hexablock_swig.Document_countUsedVertex(self)
+
+    def getHexa(self, nro):
+        return _hexablock_swig.Document_getHexa(self, nro)
+
+    def getQuad(self, nro):
+        return _hexablock_swig.Document_getQuad(self, nro)
+
+    def getEdge(self, nro):
+        return _hexablock_swig.Document_getEdge(self, nro)
+
+    def getVertex(self, nro):
+        return _hexablock_swig.Document_getVertex(self, nro)
+
+    def getUsedHexa(self, nro):
+        return _hexablock_swig.Document_getUsedHexa(self, nro)
+
+    def getUsedQuad(self, nro):
+        return _hexablock_swig.Document_getUsedQuad(self, nro)
+
+    def getUsedEdge(self, nro):
+        return _hexablock_swig.Document_getUsedEdge(self, nro)
+
+    def getUsedVertex(self, nro):
+        return _hexablock_swig.Document_getUsedVertex(self, nro)
+
+    def getVector(self, nro):
+        return _hexablock_swig.Document_getVector(self, nro)
+
+    def getShape(self, nro):
+        return _hexablock_swig.Document_getShape(self, nro)
+
+    def getGroup(self, nro):
+        return _hexablock_swig.Document_getGroup(self, nro)
+
+    def getLaw(self, nro):
+        return _hexablock_swig.Document_getLaw(self, nro)
+
+    def getPropagation(self, nro):
+        return _hexablock_swig.Document_getPropagation(self, nro)
+
+    def getFirstExplicitShape(self):
+        return _hexablock_swig.Document_getFirstExplicitShape(self)
+
+    def findEdge(self, va, vb):
+        return _hexablock_swig.Document_findEdge(self, va, vb)
+
+    def findQuad(self, *args):
+        return _hexablock_swig.Document_findQuad(self, *args)
+
+    def findHexa(self, va, vb):
+        return _hexablock_swig.Document_findHexa(self, va, vb)
+
+    def findGroup(self, name):
+        return _hexablock_swig.Document_findGroup(self, name)
+
+    def findLaw(self, name):
+        return _hexablock_swig.Document_findLaw(self, name)
+
+    def findPropagation(self, arete):
+        return _hexablock_swig.Document_findPropagation(self, arete)
+
+    def removeHexa(self, maille):
+        return _hexablock_swig.Document_removeHexa(self, maille)
+
+    def removeQuad(self, maille):
+        return _hexablock_swig.Document_removeQuad(self, maille)
+
+    def removeConnectedHexa(self, maille):
+        return _hexablock_swig.Document_removeConnectedHexa(self, maille)
+
+    def removeElements(self, bloc):
+        return _hexablock_swig.Document_removeElements(self, bloc)
+
+    def removeGroup(self, grp):
+        return _hexablock_swig.Document_removeGroup(self, grp)
+
+    def removeLaw(self, lau):
+        return _hexablock_swig.Document_removeLaw(self, lau)
+
+    def makeCartesianTop(self, nx, ny, nz):
+        return _hexablock_swig.Document_makeCartesianTop(self, nx, ny, nz)
+
+    def makeCartesianUni(self, ori, vx, vy, vz, lx, ly, lz, nx, ny, nz):
+        return _hexablock_swig.Document_makeCartesianUni(self, ori, vx, vy, vz, lx, ly, lz, nx, ny, nz)
+
+    def makeCartesian(self, ori, vx, vy, vz, tlx, tly, tlz):
+        return _hexablock_swig.Document_makeCartesian(self, ori, vx, vy, vz, tlx, tly, tlz)
+
+    def makeCylinderTop(self, nr, na, nh):
+        return _hexablock_swig.Document_makeCylinderTop(self, nr, na, nh)
+
+    def makeCylinderUni(self, orig, vx, vz, rint, rext, ang, haut, nr, na, nh):
+        return _hexablock_swig.Document_makeCylinderUni(self, orig, vx, vz, rint, rext, ang, haut, nr, na, nh)
+
+    def makeCylinder(self, orig, vx, vz, tray, tang, thaut):
+        return _hexablock_swig.Document_makeCylinder(self, orig, vx, vz, tray, tang, thaut)
+
+    def makePipeTop(self, nr, na, nh):
+        return _hexablock_swig.Document_makePipeTop(self, nr, na, nh)
+
+    def makePipeUni(self, orig, vx, vz, rint, rext, angle, haut, nr, na, nh):
+        return _hexablock_swig.Document_makePipeUni(self, orig, vx, vz, rint, rext, angle, haut, nr, na, nh)
+
+    def makePipe(self, orig, vx, vz, tray, tang, thaut):
+        return _hexablock_swig.Document_makePipe(self, orig, vx, vz, tray, tang, thaut)
+
+    def makeSphericalTop(self, nbre, crit=0):
+        return _hexablock_swig.Document_makeSphericalTop(self, nbre, crit)
+
+    def makeSphericalUni(self, centre, vx, vz, rayon, nbre, crit=0):
+        return _hexablock_swig.Document_makeSphericalUni(self, centre, vx, vz, rayon, nbre, crit)
+
+    def makeSpherical(self, centre, vx, vz, rayon, crit=0):
+        return _hexablock_swig.Document_makeSpherical(self, centre, vx, vz, rayon, crit)
+
+    def makeSphereTop(self, nr, na, nh):
+        return _hexablock_swig.Document_makeSphereTop(self, nr, na, nh)
+
+    def makeSphereUni(self, centre, vx, vz, rtrou, rext, ang, vplan, nr, na, nh):
+        return _hexablock_swig.Document_makeSphereUni(self, centre, vx, vz, rtrou, rext, ang, vplan, nr, na, nh)
+
+    def makeSphere(self, centre, vx, vz, tray, tang, thaut):
+        return _hexablock_swig.Document_makeSphere(self, centre, vx, vz, tray, tang, thaut)
+
+    def makeRindTop(self, nr, na, nh):
+        return _hexablock_swig.Document_makeRindTop(self, nr, na, nh)
+
+    def makeRindUni(self, centre, vx, vz, raytrou, rint, rext, ang, vplan, nr, na, nh):
+        return _hexablock_swig.Document_makeRindUni(self, centre, vx, vz, raytrou, rint, rext, ang, vplan, nr, na, nh)
+
+    def makeRind(self, centre, vx, vz, tray, tang, thaut):
+        return _hexablock_swig.Document_makeRind(self, centre, vx, vz, tray, tang, thaut)
+
+    def makeCylinders(self, ori1, z1, r1, h1, ori2, z2, r2, h2):
+        return _hexablock_swig.Document_makeCylinders(self, ori1, z1, r1, h1, ori2, z2, r2, h2)
+
+    def makePipes(self, ori1, z1, rint1, rex1, h1, ori2, z2, rint2, rex2, h2):
+        return _hexablock_swig.Document_makePipes(self, ori1, z1, rint1, rex1, h1, ori2, z2, rint2, rex2, h2)
+
+    def extrudeQuadTop(self, start, nbre):
+        return _hexablock_swig.Document_extrudeQuadTop(self, start, nbre)
+
+    def extrudeQuadUni(self, start, dv, len, nbre):
+        return _hexablock_swig.Document_extrudeQuadUni(self, start, dv, len, nbre)
+
+    def extrudeQuad(self, start, dv, tlen):
+        return _hexablock_swig.Document_extrudeQuad(self, start, dv, tlen)
+
+    def extrudeQuadsTop(self, start, nbre):
+        return _hexablock_swig.Document_extrudeQuadsTop(self, start, nbre)
+
+    def extrudeQuadsUni(self, start, axis, len, nbre):
+        return _hexablock_swig.Document_extrudeQuadsUni(self, start, axis, len, nbre)
+
+    def extrudeQuads(self, start, axis, tlen):
+        return _hexablock_swig.Document_extrudeQuads(self, start, axis, tlen)
+
+    def revolutionQuadUni(self, start, center, axis, angle, nbre):
+        return _hexablock_swig.Document_revolutionQuadUni(self, start, center, axis, angle, nbre)
+
+    def revolutionQuad(self, start, center, axis, angles):
+        return _hexablock_swig.Document_revolutionQuad(self, start, center, axis, angles)
+
+    def revolutionQuadsUni(self, start, center, axis, angle, nbre):
+        return _hexablock_swig.Document_revolutionQuadsUni(self, start, center, axis, angle, nbre)
+
+    def revolutionQuads(self, start, center, axis, angles):
+        return _hexablock_swig.Document_revolutionQuads(self, start, center, axis, angles)
+
+    def joinQuadUni(self, start, dest, v1, v2, v3, v4, nb):
+        return _hexablock_swig.Document_joinQuadUni(self, start, dest, v1, v2, v3, v4, nb)
+
+    def joinQuadsUni(self, start, dest, v1, v2, v3, v4, nb):
+        return _hexablock_swig.Document_joinQuadsUni(self, start, dest, v1, v2, v3, v4, nb)
+
+    def joinQuad(self, start, dest, va1, vb1, va2, vb2, tlen):
+        return _hexablock_swig.Document_joinQuad(self, start, dest, va1, vb1, va2, vb2, tlen)
+
+    def joinQuads(self, start, dest, va1, vb1, va2, vb2, tlen):
+        return _hexablock_swig.Document_joinQuads(self, start, dest, va1, vb1, va2, vb2, tlen)
+
+    def cutUni(self, eddge, nbre):
+        return _hexablock_swig.Document_cutUni(self, eddge, nbre)
+
+    def cut(self, eddge, tlen):
+        return _hexablock_swig.Document_cut(self, eddge, tlen)
+
+    def addGroup(self, name, kind):
+        return _hexablock_swig.Document_addGroup(self, name, kind)
+
+    def isSaved(self):
+        return _hexablock_swig.Document_isSaved(self)
+
+    def appendXml(self, fstudy):
+        return _hexablock_swig.Document_appendXml(self, fstudy)
+
+    def getXml(self):
+        return _hexablock_swig.Document_getXml(self)
+
+    def getLevel(self):
+        return _hexablock_swig.Document_getLevel(self)
+
+    def findVertex(self, *args):
+        return _hexablock_swig.Document_findVertex(self, *args)
+
+    def closeQuads(self, q1, q2):
+        return _hexablock_swig.Document_closeQuads(self, q1, q2)
+
+    def addLaw(self, *args):
+        return _hexablock_swig.Document_addLaw(self, *args)
+
+    def checkAssociations(self):
+        return _hexablock_swig.Document_checkAssociations(self)
+
+    def addShape(self, forme, name):
+        return _hexablock_swig.Document_addShape(self, forme, name)
     __swig_destroy__ = _hexablock_swig.delete_Document
-    __del__ = lambda self : None;
+    __del__ = lambda self: None
 Document_swigregister = _hexablock_swig.Document_swigregister
 Document_swigregister(Document)
 
 class Propagation(EltBase):
     __swig_setmethods__ = {}
-    for _s in [EltBase]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
+    for _s in [EltBase]:
+        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
     __setattr__ = lambda self, name, value: _swig_setattr(self, Propagation, name, value)
     __swig_getmethods__ = {}
-    for _s in [EltBase]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
+    for _s in [EltBase]:
+        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
     __getattr__ = lambda self, name: _swig_getattr(self, Propagation, name)
     __repr__ = _swig_repr
-    def getEdges(*args): return _hexablock_swig.Propagation_getEdges(*args)
-    def getLaw(*args): return _hexablock_swig.Propagation_getLaw(*args)
-    def getWay(*args): return _hexablock_swig.Propagation_getWay(*args)
-    def setWay(*args): return _hexablock_swig.Propagation_setWay(*args)
-    def setLaw(*args): return _hexablock_swig.Propagation_setLaw(*args)
-    def __init__(self, *args): 
-        this = _hexablock_swig.new_Propagation(*args)
-        try: self.this.append(this)
-        except: self.this = this
-    def saveXml(*args): return _hexablock_swig.Propagation_saveXml(*args)
-    def addEdge(*args): return _hexablock_swig.Propagation_addEdge(*args)
-    def majLaw(*args): return _hexablock_swig.Propagation_majLaw(*args)
+
+    def getEdges(self):
+        return _hexablock_swig.Propagation_getEdges(self)
+
+    def getLaw(self):
+        return _hexablock_swig.Propagation_getLaw(self)
+
+    def getWay(self):
+        return _hexablock_swig.Propagation_getWay(self)
+
+    def setWay(self, sens):
+        return _hexablock_swig.Propagation_setWay(self, sens)
+
+    def setLaw(self, loi):
+        return _hexablock_swig.Propagation_setLaw(self, loi)
+
+    def __init__(self, doc):
+        this = _hexablock_swig.new_Propagation(doc)
+        try:
+            self.this.append(this)
+        except __builtin__.Exception:
+            self.this = this
+
+    def saveXml(self, xml):
+        return _hexablock_swig.Propagation_saveXml(self, xml)
+
+    def addEdge(self, arete):
+        return _hexablock_swig.Propagation_addEdge(self, arete)
+
+    def majLaw(self):
+        return _hexablock_swig.Propagation_majLaw(self)
     __swig_destroy__ = _hexablock_swig.delete_Propagation
-    __del__ = lambda self : None;
+    __del__ = lambda self: None
 Propagation_swigregister = _hexablock_swig.Propagation_swigregister
 Propagation_swigregister(Propagation)
 
+
+def hex_instance():
+    return _hexablock_swig.hex_instance()
 hex_instance = _hexablock_swig.hex_instance
 class Hex(_object):
     __swig_setmethods__ = {}
@@ -936,138 +2058,274 @@ class Hex(_object):
     __swig_getmethods__ = {}
     __getattr__ = lambda self, name: _swig_getattr(self, Hex, name)
     __repr__ = _swig_repr
-    __swig_getmethods__["getInstance"] = lambda x: _hexablock_swig.Hex_getInstance
-    if _newclass:getInstance = staticmethod(_hexablock_swig.Hex_getInstance)
-    def countDocument(*args): return _hexablock_swig.Hex_countDocument(*args)
-    def getDocument(*args): return _hexablock_swig.Hex_getDocument(*args)
-    def removeDocument(*args): return _hexablock_swig.Hex_removeDocument(*args)
-    def addDocument(*args): return _hexablock_swig.Hex_addDocument(*args)
-    def loadDocument(*args): return _hexablock_swig.Hex_loadDocument(*args)
-    def findDocument(*args): return _hexablock_swig.Hex_findDocument(*args)
-    def what(*args): return _hexablock_swig.Hex_what(*args)
-    def sizeofMessage(*args): return _hexablock_swig.Hex_sizeofMessage(*args)
-    def getMessageLine(*args): return _hexablock_swig.Hex_getMessageLine(*args)
-    def __init__(self, *args): 
-        this = _hexablock_swig.new_Hex(*args)
-        try: self.this.append(this)
-        except: self.this = this
+    if _newclass:
+        getInstance = staticmethod(_hexablock_swig.Hex_getInstance)
+    else:
+        getInstance = _hexablock_swig.Hex_getInstance
+
+    def countDocument(self):
+        return _hexablock_swig.Hex_countDocument(self)
+
+    def getDocument(self, nro):
+        return _hexablock_swig.Hex_getDocument(self, nro)
+
+    def removeDocument(self, doc):
+        return _hexablock_swig.Hex_removeDocument(self, doc)
+
+    def addDocument(self, *args):
+        return _hexablock_swig.Hex_addDocument(self, *args)
+
+    def loadDocument(self, name):
+        return _hexablock_swig.Hex_loadDocument(self, name)
+
+    def findDocument(self, *args):
+        return _hexablock_swig.Hex_findDocument(self, *args)
+
+    def what(self):
+        return _hexablock_swig.Hex_what(self)
+
+    def sizeofMessage(self):
+        return _hexablock_swig.Hex_sizeofMessage(self)
+
+    def getMessageLine(self, nlig):
+        return _hexablock_swig.Hex_getMessageLine(self, nlig)
+
+    def __init__(self):
+        this = _hexablock_swig.new_Hex()
+        try:
+            self.this.append(this)
+        except __builtin__.Exception:
+            self.this = this
     __swig_destroy__ = _hexablock_swig.delete_Hex
-    __del__ = lambda self : None;
+    __del__ = lambda self: None
 Hex_swigregister = _hexablock_swig.Hex_swigregister
 Hex_swigregister(Hex)
+
+def Hex_getInstance():
+    return _hexablock_swig.Hex_getInstance()
 Hex_getInstance = _hexablock_swig.Hex_getInstance
 
+
+def what():
+    return _hexablock_swig.what()
 what = _hexablock_swig.what
 class Elements(EltBase):
     __swig_setmethods__ = {}
-    for _s in [EltBase]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
+    for _s in [EltBase]:
+        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
     __setattr__ = lambda self, name, value: _swig_setattr(self, Elements, name, value)
     __swig_getmethods__ = {}
-    for _s in [EltBase]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
+    for _s in [EltBase]:
+        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
     __getattr__ = lambda self, name: _swig_getattr(self, Elements, name)
     __repr__ = _swig_repr
-    def getHexa(*args): return _hexablock_swig.Elements_getHexa(*args)
-    def getQuad(*args): return _hexablock_swig.Elements_getQuad(*args)
-    def getEdge(*args): return _hexablock_swig.Elements_getEdge(*args)
-    def getVertex(*args): return _hexablock_swig.Elements_getVertex(*args)
-    def getHexaIJK(*args): return _hexablock_swig.Elements_getHexaIJK(*args)
-    def getQuadIJ(*args): return _hexablock_swig.Elements_getQuadIJ(*args)
-    def getQuadJK(*args): return _hexablock_swig.Elements_getQuadJK(*args)
-    def getQuadIK(*args): return _hexablock_swig.Elements_getQuadIK(*args)
-    def getEdgeI(*args): return _hexablock_swig.Elements_getEdgeI(*args)
-    def getEdgeJ(*args): return _hexablock_swig.Elements_getEdgeJ(*args)
-    def getEdgeK(*args): return _hexablock_swig.Elements_getEdgeK(*args)
-    def getVertexIJK(*args): return _hexablock_swig.Elements_getVertexIJK(*args)
-    def countHexa(*args): return _hexablock_swig.Elements_countHexa(*args)
-    def countQuad(*args): return _hexablock_swig.Elements_countQuad(*args)
-    def countEdge(*args): return _hexablock_swig.Elements_countEdge(*args)
-    def countVertex(*args): return _hexablock_swig.Elements_countVertex(*args)
-    def nearestVertex(*args): return _hexablock_swig.Elements_nearestVertex(*args)
-    def findVertex(*args): return _hexablock_swig.Elements_findVertex(*args)
-    def clearAssociation(*args): return _hexablock_swig.Elements_clearAssociation(*args)
-    def saveVtk(*args): return _hexablock_swig.Elements_saveVtk(*args)
-    def __init__(self, *args): 
-        this = _hexablock_swig.new_Elements(*args)
-        try: self.this.append(this)
-        except: self.this = this
+
+    def getHexa(self, nro):
+        return _hexablock_swig.Elements_getHexa(self, nro)
+
+    def getQuad(self, nro):
+        return _hexablock_swig.Elements_getQuad(self, nro)
+
+    def getEdge(self, nro):
+        return _hexablock_swig.Elements_getEdge(self, nro)
+
+    def getVertex(self, nro):
+        return _hexablock_swig.Elements_getVertex(self, nro)
+
+    def getHexaIJK(self, nx, ny, nz):
+        return _hexablock_swig.Elements_getHexaIJK(self, nx, ny, nz)
+
+    def getQuadIJ(self, nx, ny, nz):
+        return _hexablock_swig.Elements_getQuadIJ(self, nx, ny, nz)
+
+    def getQuadJK(self, nx, ny, nz):
+        return _hexablock_swig.Elements_getQuadJK(self, nx, ny, nz)
+
+    def getQuadIK(self, nx, ny, nz):
+        return _hexablock_swig.Elements_getQuadIK(self, nx, ny, nz)
+
+    def getEdgeI(self, nx, ny, nz):
+        return _hexablock_swig.Elements_getEdgeI(self, nx, ny, nz)
+
+    def getEdgeJ(self, nx, ny, nz):
+        return _hexablock_swig.Elements_getEdgeJ(self, nx, ny, nz)
+
+    def getEdgeK(self, nx, ny, nz):
+        return _hexablock_swig.Elements_getEdgeK(self, nx, ny, nz)
+
+    def getVertexIJK(self, nx, ny, nz):
+        return _hexablock_swig.Elements_getVertexIJK(self, nx, ny, nz)
+
+    def countHexa(self):
+        return _hexablock_swig.Elements_countHexa(self)
+
+    def countQuad(self):
+        return _hexablock_swig.Elements_countQuad(self)
+
+    def countEdge(self):
+        return _hexablock_swig.Elements_countEdge(self)
+
+    def countVertex(self):
+        return _hexablock_swig.Elements_countVertex(self)
+
+    def nearestVertex(self, other):
+        return _hexablock_swig.Elements_nearestVertex(self, other)
+
+    def findVertex(self, elt):
+        return _hexablock_swig.Elements_findVertex(self, elt)
+
+    def clearAssociation(self):
+        return _hexablock_swig.Elements_clearAssociation(self)
+
+    def saveVtk(self, nomfic):
+        return _hexablock_swig.Elements_saveVtk(self, nomfic)
+
+    def __init__(self, doc):
+        this = _hexablock_swig.new_Elements(doc)
+        try:
+            self.this.append(this)
+        except __builtin__.Exception:
+            self.this = this
     __swig_destroy__ = _hexablock_swig.delete_Elements
-    __del__ = lambda self : None;
+    __del__ = lambda self: None
 Elements_swigregister = _hexablock_swig.Elements_swigregister
 Elements_swigregister(Elements)
 
 class BiCylinder(Elements):
     __swig_setmethods__ = {}
-    for _s in [Elements]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
+    for _s in [Elements]:
+        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
     __setattr__ = lambda self, name, value: _swig_setattr(self, BiCylinder, name, value)
     __swig_getmethods__ = {}
-    for _s in [Elements]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
+    for _s in [Elements]:
+        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
     __getattr__ = lambda self, name: _swig_getattr(self, BiCylinder, name)
     __repr__ = _swig_repr
-    def __init__(self, *args): 
-        this = _hexablock_swig.new_BiCylinder(*args)
-        try: self.this.append(this)
-        except: self.this = this
-    def getHexaIJK(*args): return _hexablock_swig.BiCylinder_getHexaIJK(*args)
-    def getQuadIJ(*args): return _hexablock_swig.BiCylinder_getQuadIJ(*args)
-    def getQuadJK(*args): return _hexablock_swig.BiCylinder_getQuadJK(*args)
-    def getQuadIK(*args): return _hexablock_swig.BiCylinder_getQuadIK(*args)
-    def getEdgeI(*args): return _hexablock_swig.BiCylinder_getEdgeI(*args)
-    def getEdgeJ(*args): return _hexablock_swig.BiCylinder_getEdgeJ(*args)
-    def getEdgeK(*args): return _hexablock_swig.BiCylinder_getEdgeK(*args)
-    def getVertexIJK(*args): return _hexablock_swig.BiCylinder_getVertexIJK(*args)
+
+    def __init__(self, doc):
+        this = _hexablock_swig.new_BiCylinder(doc)
+        try:
+            self.this.append(this)
+        except __builtin__.Exception:
+            self.this = this
+
+    def getHexaIJK(self, part, nx, ny, nz):
+        return _hexablock_swig.BiCylinder_getHexaIJK(self, part, nx, ny, nz)
+
+    def getQuadIJ(self, part, nx, ny, nz):
+        return _hexablock_swig.BiCylinder_getQuadIJ(self, part, nx, ny, nz)
+
+    def getQuadJK(self, part, nx, ny, nz):
+        return _hexablock_swig.BiCylinder_getQuadJK(self, part, nx, ny, nz)
+
+    def getQuadIK(self, part, nx, ny, nz):
+        return _hexablock_swig.BiCylinder_getQuadIK(self, part, nx, ny, nz)
+
+    def getEdgeI(self, part, nx, ny, nz):
+        return _hexablock_swig.BiCylinder_getEdgeI(self, part, nx, ny, nz)
+
+    def getEdgeJ(self, part, nx, ny, nz):
+        return _hexablock_swig.BiCylinder_getEdgeJ(self, part, nx, ny, nz)
+
+    def getEdgeK(self, part, nx, ny, nz):
+        return _hexablock_swig.BiCylinder_getEdgeK(self, part, nx, ny, nz)
+
+    def getVertexIJK(self, part, nx, ny, nz):
+        return _hexablock_swig.BiCylinder_getVertexIJK(self, part, nx, ny, nz)
     __swig_destroy__ = _hexablock_swig.delete_BiCylinder
-    __del__ = lambda self : None;
+    __del__ = lambda self: None
 BiCylinder_swigregister = _hexablock_swig.BiCylinder_swigregister
 BiCylinder_swigregister(BiCylinder)
 
 class NewShape(EltBase):
     __swig_setmethods__ = {}
-    for _s in [EltBase]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
+    for _s in [EltBase]:
+        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
     __setattr__ = lambda self, name, value: _swig_setattr(self, NewShape, name, value)
     __swig_getmethods__ = {}
-    for _s in [EltBase]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
+    for _s in [EltBase]:
+        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
     __getattr__ = lambda self, name: _swig_getattr(self, NewShape, name)
     __repr__ = _swig_repr
-    def countVertex(*args): return _hexablock_swig.NewShape_countVertex(*args)
-    def countEdge(*args): return _hexablock_swig.NewShape_countEdge(*args)
-    def countFace(*args): return _hexablock_swig.NewShape_countFace(*args)
-    def getVertex(*args): return _hexablock_swig.NewShape_getVertex(*args)
-    def getEdge(*args): return _hexablock_swig.NewShape_getEdge(*args)
-    def getFace(*args): return _hexablock_swig.NewShape_getFace(*args)
-    def getNameVertex(*args): return _hexablock_swig.NewShape_getNameVertex(*args)
-    def getNameEdge(*args): return _hexablock_swig.NewShape_getNameEdge(*args)
-    def getNameFace(*args): return _hexablock_swig.NewShape_getNameFace(*args)
-    def __init__(self, *args): 
+
+    def countVertex(self):
+        return _hexablock_swig.NewShape_countVertex(self)
+
+    def countEdge(self):
+        return _hexablock_swig.NewShape_countEdge(self)
+
+    def countFace(self):
+        return _hexablock_swig.NewShape_countFace(self)
+
+    def getVertex(self, nro):
+        return _hexablock_swig.NewShape_getVertex(self, nro)
+
+    def getEdge(self, nro):
+        return _hexablock_swig.NewShape_getEdge(self, nro)
+
+    def getFace(self, nro):
+        return _hexablock_swig.NewShape_getFace(self, nro)
+
+    def getNameVertex(self, nro):
+        return _hexablock_swig.NewShape_getNameVertex(self, nro)
+
+    def getNameEdge(self, nro):
+        return _hexablock_swig.NewShape_getNameEdge(self, nro)
+
+    def getNameFace(self, nro):
+        return _hexablock_swig.NewShape_getNameFace(self, nro)
+
+    def __init__(self, *args):
         this = _hexablock_swig.new_NewShape(*args)
-        try: self.this.append(this)
-        except: self.this = this
+        try:
+            self.this.append(this)
+        except __builtin__.Exception:
+            self.this = this
     __swig_destroy__ = _hexablock_swig.delete_NewShape
-    __del__ = lambda self : None;
+    __del__ = lambda self: None
 NewShape_swigregister = _hexablock_swig.NewShape_swigregister
 NewShape_swigregister(NewShape)
 
 class Group(EltBase):
     __swig_setmethods__ = {}
-    for _s in [EltBase]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
+    for _s in [EltBase]:
+        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
     __setattr__ = lambda self, name, value: _swig_setattr(self, Group, name, value)
     __swig_getmethods__ = {}
-    for _s in [EltBase]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
+    for _s in [EltBase]:
+        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
     __getattr__ = lambda self, name: _swig_getattr(self, Group, name)
     __repr__ = _swig_repr
-    def addElement(*args): return _hexablock_swig.Group_addElement(*args)
-    def countElement(*args): return _hexablock_swig.Group_countElement(*args)
-    def getKind(*args): return _hexablock_swig.Group_getKind(*args)
-    def clearElement(*args): return _hexablock_swig.Group_clearElement(*args)
-    def removeElement(*args): return _hexablock_swig.Group_removeElement(*args)
-    def getElement(*args): return _hexablock_swig.Group_getElement(*args)
-    def __init__(self, *args): 
-        this = _hexablock_swig.new_Group(*args)
-        try: self.this.append(this)
-        except: self.this = this
+
+    def addElement(self, elt):
+        return _hexablock_swig.Group_addElement(self, elt)
+
+    def countElement(self):
+        return _hexablock_swig.Group_countElement(self)
+
+    def getKind(self):
+        return _hexablock_swig.Group_getKind(self)
+
+    def clearElement(self):
+        return _hexablock_swig.Group_clearElement(self)
+
+    def removeElement(self, *args):
+        return _hexablock_swig.Group_removeElement(self, *args)
+
+    def getElement(self, nro):
+        return _hexablock_swig.Group_getElement(self, nro)
+
+    def __init__(self, dad, nom, grp):
+        this = _hexablock_swig.new_Group(dad, nom, grp)
+        try:
+            self.this.append(this)
+        except __builtin__.Exception:
+            self.this = this
     __swig_destroy__ = _hexablock_swig.delete_Group
-    __del__ = lambda self : None;
+    __del__ = lambda self: None
 Group_swigregister = _hexablock_swig.Group_swigregister
 Group_swigregister(Group)
 
+# This file is compatible with both classic and new-style classes.
 
 
index 17abc168a247556f19141143c5b8d94c5a4ab86b..4d790002e12c1431b91d9252560a296064df2810 100644 (file)
@@ -1,30 +1,42 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.31
- * 
- * This file is not intended to be easily readable and contains a number of 
+ * Version 3.0.12
+ *
+ * This file is not intended to be easily readable and contains a number of
  * coding conventions designed to improve portability and efficiency. Do not make
- * changes to this file unless you know what you are doing--modify the SWIG 
- * interface file instead. 
+ * changes to this file unless you know what you are doing--modify the SWIG
+ * interface file instead.
  * ----------------------------------------------------------------------------- */
 
+
+#ifndef SWIGPYTHON
 #define SWIGPYTHON
+#endif
+
 #define SWIG_PYTHON_DIRECTOR_NO_VTABLE
 
+
 #ifdef __cplusplus
-template<class T> class SwigValueWrapper {
-    T *tt;
+/* SwigValueWrapper is described in swig.swg */
+template<typename T> class SwigValueWrapper {
+  struct SwigMovePointer {
+    T *ptr;
+    SwigMovePointer(T *p) : ptr(p) { }
+    ~SwigMovePointer() { delete ptr; }
+    SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
+  } pointer;
+  SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
+  SwigValueWrapper(const SwigValueWrapper<T>& rhs);
 public:
-    SwigValueWrapper() : tt(0) { }
-    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
-    SwigValueWrapper(const T& t) : tt(new T(t)) { }
-    ~SwigValueWrapper() { delete tt; } 
-    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
-    operator T&() const { return *tt; }
-    T *operator&() { return tt; }
-private:
-    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
+  SwigValueWrapper() : pointer(0) { }
+  SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; }
+  operator T&() const { return *pointer.ptr; }
+  T *operator&() { return pointer.ptr; }
 };
+
+template <typename T> T SwigValueInit() {
+  return T();
+}
 #endif
 
 /* -----------------------------------------------------------------------------
@@ -34,14 +46,14 @@ private:
 
 /* template workaround for compilers that cannot correctly implement the C++ standard */
 #ifndef SWIGTEMPLATEDISAMBIGUATOR
-# if defined(__SUNPRO_CC)
-#   if (__SUNPRO_CC <= 0x560)
-#     define SWIGTEMPLATEDISAMBIGUATOR template
-#   else
-#     define SWIGTEMPLATEDISAMBIGUATOR 
-#   endif
+# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# elif defined(__HP_aCC)
+/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
+/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
+#  define SWIGTEMPLATEDISAMBIGUATOR template
 # else
-#   define SWIGTEMPLATEDISAMBIGUATOR 
+#  define SWIGTEMPLATEDISAMBIGUATOR
 # endif
 #endif
 
@@ -58,14 +70,20 @@ private:
 #ifndef SWIGUNUSED
 # if defined(__GNUC__)
 #   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
-#     define SWIGUNUSED __attribute__ ((__unused__)) 
+#     define SWIGUNUSED __attribute__ ((__unused__))
 #   else
 #     define SWIGUNUSED
 #   endif
 # elif defined(__ICC)
-#   define SWIGUNUSED __attribute__ ((__unused__)) 
+#   define SWIGUNUSED __attribute__ ((__unused__))
 # else
-#   define SWIGUNUSED 
+#   define SWIGUNUSED
+# endif
+#endif
+
+#ifndef SWIG_MSC_UNSUPPRESS_4505
+# if defined(_MSC_VER)
+#   pragma warning(disable : 4505) /* unreferenced local function has been removed */
 # endif
 #endif
 
@@ -73,7 +91,7 @@ private:
 # ifdef __cplusplus
 #   define SWIGUNUSEDPARM(p)
 # else
-#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
+#   define SWIGUNUSEDPARM(p) p SWIGUNUSED
 # endif
 #endif
 
@@ -88,9 +106,11 @@ private:
 #endif
 
 /* exporting methods */
-#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
-#  ifndef GCC_HASCLASSVISIBILITY
-#    define GCC_HASCLASSVISIBILITY
+#if defined(__GNUC__)
+#  if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+#    ifndef GCC_HASCLASSVISIBILITY
+#      define GCC_HASCLASSVISIBILITY
+#    endif
 #  endif
 #endif
 
@@ -116,7 +136,7 @@ private:
 #   define SWIGSTDCALL __stdcall
 # else
 #   define SWIGSTDCALL
-# endif 
+# endif
 #endif
 
 /* Deal with Microsoft's attempt at deprecating C standard runtime functions */
@@ -124,20 +144,45 @@ private:
 # define _CRT_SECURE_NO_DEPRECATE
 #endif
 
+/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
+#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
+# define _SCL_SECURE_NO_DEPRECATE
+#endif
+
+/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */
+#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES)
+# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
+#endif
+
+/* Intel's compiler complains if a variable which was never initialised is
+ * cast to void, which is a common idiom which we use to indicate that we
+ * are aware a variable isn't used.  So we just silence that warning.
+ * See: https://github.com/swig/swig/issues/192 for more discussion.
+ */
+#ifdef __INTEL_COMPILER
+# pragma warning disable 592
+#endif
+
 
-/* Python.h has to appear first */
-#include <Python.h>
+#if defined(_DEBUG) && defined(SWIG_PYTHON_INTERPRETER_NO_DEBUG)
+/* Use debug wrappers with the Python release dll */
+# undef _DEBUG
+# include <Python.h>
+# define _DEBUG
+#else
+# include <Python.h>
+#endif
 
 /* -----------------------------------------------------------------------------
  * swigrun.swg
  *
- * This file contains generic CAPI SWIG runtime support for pointer
+ * This file contains generic C API SWIG runtime support for pointer
  * type checking.
  * ----------------------------------------------------------------------------- */
 
 /* This should only be incremented when either the layout of swig_type_info changes,
    or for whatever reason, the runtime changes incompatibly */
-#define SWIG_RUNTIME_VERSION "3"
+#define SWIG_RUNTIME_VERSION "4"
 
 /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
 #ifdef SWIG_TYPE_TABLE
@@ -150,11 +195,11 @@ private:
 
 /*
   You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
-  creating a static or dynamic library from the swig runtime code.
-  In 99.9% of the cases, swig just needs to declare them as 'static'.
-  
-  But only do this if is strictly necessary, ie, if you have problems
-  with your compiler or so.
+  creating a static or dynamic library from the SWIG runtime code.
+  In 99.9% of the cases, SWIG just needs to declare them as 'static'.
+
+  But only do this if strictly necessary, ie, if you have problems
+  with your compiler or suchlike.
 */
 
 #ifndef SWIGRUNTIME
@@ -172,22 +217,23 @@ private:
 
 /* Flags for pointer conversions */
 #define SWIG_POINTER_DISOWN        0x1
+#define SWIG_CAST_NEW_MEMORY       0x2
 
 /* Flags for new pointer objects */
 #define SWIG_POINTER_OWN           0x1
 
 
-/* 
+/*
    Flags/methods for returning states.
-   
-   The swig conversion methods, as ConvertPtr, return and integer 
+
+   The SWIG conversion methods, as ConvertPtr, return an integer
    that tells if the conversion was successful or not. And if not,
    an error code can be returned (see swigerrors.swg for the codes).
-   
+
    Use the following macros/flags to set or process the returning
    states.
-   
-   In old swig versions, you usually write code as:
+
+   In old versions of SWIG, code such as the following was usually written:
 
      if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
        // success code
@@ -195,7 +241,7 @@ private:
        //fail code
      }
 
-   Now you can be more explicit as:
+   Now you can be more explicit:
 
     int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
     if (SWIG_IsOK(res)) {
@@ -204,7 +250,7 @@ private:
       // fail code
     }
 
-   that seems to be the same, but now you can also do
+   which is the same really, but now you can also do
 
     Type *ptr;
     int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
@@ -219,28 +265,28 @@ private:
     } else {
       // fail code
     }
-    
+
    I.e., now SWIG_ConvertPtr can return new objects and you can
    identify the case and take care of the deallocation. Of course that
-   requires also to SWIG_ConvertPtr to return new result values, as
-
-      int SWIG_ConvertPtr(obj, ptr,...) {         
-        if (<obj is ok>) {                            
-          if (<need new object>) {                    
-            *ptr = <ptr to new allocated object>; 
-            return SWIG_NEWOBJ;                       
-          } else {                                    
-            *ptr = <ptr to old object>;               
-            return SWIG_OLDOBJ;                       
-          }                                   
-        } else {                                      
-          return SWIG_BADOBJ;                 
-        }                                             
+   also requires SWIG_ConvertPtr to return new result values, such as
+
+      int SWIG_ConvertPtr(obj, ptr,...) {
+        if (<obj is ok>) {
+          if (<need new object>) {
+            *ptr = <ptr to new allocated object>;
+            return SWIG_NEWOBJ;
+          } else {
+            *ptr = <ptr to old object>;
+            return SWIG_OLDOBJ;
+          }
+        } else {
+          return SWIG_BADOBJ;
+        }
       }
 
    Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
    more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
-   swig errors code.
+   SWIG errors code.
 
    Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
    allows to return the 'cast rank', for example, if you have this
@@ -249,18 +295,17 @@ private:
        int fooi(int);
 
    and you call
+
       food(1)   // cast rank '1'  (1 -> 1.0)
       fooi(1)   // cast rank '0'
 
    just use the SWIG_AddCast()/SWIG_CheckState()
+*/
 
-
- */
-#define SWIG_OK                    (0) 
+#define SWIG_OK                    (0)
 #define SWIG_ERROR                 (-1)
 #define SWIG_IsOK(r)               (r >= 0)
-#define SWIG_ArgError(r)           ((r != SWIG_ERROR) ? r : SWIG_TypeError)  
+#define SWIG_ArgError(r)           ((r != SWIG_ERROR) ? r : SWIG_TypeError)
 
 /* The CastRankLimit says how many bits are used for the cast rank */
 #define SWIG_CASTRANKLIMIT         (1 << 8)
@@ -281,7 +326,6 @@ private:
 #define SWIG_DelTmpMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r)
 #define SWIG_IsTmpObj(r)           (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK))
 
-
 /* Cast-Rank Mode */
 #if defined(SWIG_CASTRANK_MODE)
 #  ifndef SWIG_TypeRank
@@ -292,30 +336,28 @@ private:
 #  endif
 #  define SWIG_CASTRANKMASK          ((SWIG_CASTRANKLIMIT) -1)
 #  define SWIG_CastRank(r)           (r & SWIG_CASTRANKMASK)
-SWIGINTERNINLINE int SWIG_AddCast(int r) { 
+SWIGINTERNINLINE int SWIG_AddCast(int r) {
   return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r;
 }
-SWIGINTERNINLINE int SWIG_CheckState(int r) { 
-  return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; 
+SWIGINTERNINLINE int SWIG_CheckState(int r) {
+  return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0;
 }
 #else /* no cast-rank mode */
-#  define SWIG_AddCast
+#  define SWIG_AddCast(r) (r)
 #  define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
 #endif
 
 
-
-
 #include <string.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-typedef void *(*swig_converter_func)(void *);
+typedef void *(*swig_converter_func)(void *, int *);
 typedef struct swig_type_info *(*swig_dycast_func)(void **);
 
-/* Structure to store inforomation on one type */
+/* Structure to store information on one type */
 typedef struct swig_type_info {
   const char             *name;                        /* mangled name of this type */
   const char             *str;                 /* human readable name of this type */
@@ -345,7 +387,7 @@ typedef struct swig_module_info {
   void                    *clientdata;         /* Language specific module data */
 } swig_module_info;
 
-/* 
+/*
   Compare two type names skipping the space characters, therefore
   "char*" == "char *" and "Class<int>" == "Class<int >", etc.
 
@@ -360,23 +402,23 @@ SWIG_TypeNameComp(const char *f1, const char *l1,
     while ((*f2 == ' ') && (f2 != l2)) ++f2;
     if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1;
   }
-  return (l1 - f1) - (l2 - f2);
+  return (int)((l1 - f1) - (l2 - f2));
 }
 
 /*
   Check type equivalence in a name list like <name1>|<name2>|...
-  Return 0 if not equal, 1 if equal
+  Return 0 if equal, -1 if nb < tb, 1 if nb > tb
 */
 SWIGRUNTIME int
-SWIG_TypeEquiv(const char *nb, const char *tb) {
-  int equiv = 0;
+SWIG_TypeCmp(const char *nb, const char *tb) {
+  int equiv = 1;
   const char* te = tb + strlen(tb);
   const char* ne = nb;
-  while (!equiv && *ne) {
+  while (equiv != 0 && *ne) {
     for (nb = ne; *ne; ++ne) {
       if (*ne == '|') break;
     }
-    equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
+    equiv = SWIG_TypeNameComp(nb, ne, tb, te);
     if (*ne) ++ne;
   }
   return equiv;
@@ -384,69 +426,76 @@ SWIG_TypeEquiv(const char *nb, const char *tb) {
 
 /*
   Check type equivalence in a name list like <name1>|<name2>|...
-  Return 0 if equal, -1 if nb < tb, 1 if nb > tb
+  Return 0 if not equal, 1 if equal
 */
 SWIGRUNTIME int
-SWIG_TypeCompare(const char *nb, const char *tb) {
-  int equiv = 0;
-  const char* te = tb + strlen(tb);
-  const char* ne = nb;
-  while (!equiv && *ne) {
-    for (nb = ne; *ne; ++ne) {
-      if (*ne == '|') break;
-    }
-    equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
-    if (*ne) ++ne;
-  }
-  return equiv;
+SWIG_TypeEquiv(const char *nb, const char *tb) {
+  return SWIG_TypeCmp(nb, tb) == 0 ? 1 : 0;
 }
 
-
-/* think of this as a c++ template<> or a scheme macro */
-#define SWIG_TypeCheck_Template(comparison, ty)         \
-  if (ty) {                                             \
-    swig_cast_info *iter = ty->cast;                    \
-    while (iter) {                                      \
-      if (comparison) {                                 \
-        if (iter == ty->cast) return iter;              \
-        /* Move iter to the top of the linked list */   \
-        iter->prev->next = iter->next;                  \
-        if (iter->next)                                 \
-          iter->next->prev = iter->prev;                \
-        iter->next = ty->cast;                          \
-        iter->prev = 0;                                 \
-        if (ty->cast) ty->cast->prev = iter;            \
-        ty->cast = iter;                                \
-        return iter;                                    \
-      }                                                 \
-      iter = iter->next;                                \
-    }                                                   \
-  }                                                     \
-  return 0
-
 /*
   Check the typename
 */
 SWIGRUNTIME swig_cast_info *
 SWIG_TypeCheck(const char *c, swig_type_info *ty) {
-  SWIG_TypeCheck_Template(strcmp(iter->type->name, c) == 0, ty);
+  if (ty) {
+    swig_cast_info *iter = ty->cast;
+    while (iter) {
+      if (strcmp(iter->type->name, c) == 0) {
+        if (iter == ty->cast)
+          return iter;
+        /* Move iter to the top of the linked list */
+        iter->prev->next = iter->next;
+        if (iter->next)
+          iter->next->prev = iter->prev;
+        iter->next = ty->cast;
+        iter->prev = 0;
+        if (ty->cast) ty->cast->prev = iter;
+        ty->cast = iter;
+        return iter;
+      }
+      iter = iter->next;
+    }
+  }
+  return 0;
 }
 
-/* Same as previous function, except strcmp is replaced with a pointer comparison */
+/*
+  Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison
+*/
 SWIGRUNTIME swig_cast_info *
-SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *into) {
-  SWIG_TypeCheck_Template(iter->type == from, into);
+SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) {
+  if (ty) {
+    swig_cast_info *iter = ty->cast;
+    while (iter) {
+      if (iter->type == from) {
+        if (iter == ty->cast)
+          return iter;
+        /* Move iter to the top of the linked list */
+        iter->prev->next = iter->next;
+        if (iter->next)
+          iter->next->prev = iter->prev;
+        iter->next = ty->cast;
+        iter->prev = 0;
+        if (ty->cast) ty->cast->prev = iter;
+        ty->cast = iter;
+        return iter;
+      }
+      iter = iter->next;
+    }
+  }
+  return 0;
 }
 
 /*
   Cast a pointer up an inheritance hierarchy
 */
 SWIGRUNTIMEINLINE void *
-SWIG_TypeCast(swig_cast_info *ty, void *ptr) {
-  return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr);
+SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
+  return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
 }
 
-/* 
+/*
    Dynamic pointer casting. Down an inheritance hierarchy
 */
 SWIGRUNTIME swig_type_info *
@@ -490,7 +539,7 @@ SWIG_TypePrettyName(const swig_type_info *type) {
     return type->name;
 }
 
-/* 
+/*
    Set the clientdata field for a type
 */
 SWIGRUNTIME void
@@ -498,14 +547,14 @@ SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
   swig_cast_info *cast = ti->cast;
   /* if (ti->clientdata == clientdata) return; */
   ti->clientdata = clientdata;
-  
+
   while (cast) {
     if (!cast->converter) {
       swig_type_info *tc = cast->type;
       if (!tc->clientdata) {
        SWIG_TypeClientData(tc, clientdata);
       }
-    }    
+    }
     cast = cast->next;
   }
 }
@@ -514,31 +563,31 @@ SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) {
   SWIG_TypeClientData(ti, clientdata);
   ti->owndata = 1;
 }
-  
+
 /*
   Search for a swig_type_info structure only by mangled name
   Search is a O(log #types)
-  
-  We start searching at module start, and finish searching when start == end.  
+
+  We start searching at module start, and finish searching when start == end.
   Note: if start == end at the beginning of the function, we go all the way around
   the circular list.
 */
 SWIGRUNTIME swig_type_info *
-SWIG_MangledTypeQueryModule(swig_module_info *start, 
-                            swig_module_info *end, 
+SWIG_MangledTypeQueryModule(swig_module_info *start,
+                            swig_module_info *end,
                            const char *name) {
   swig_module_info *iter = start;
   do {
     if (iter->size) {
-      register size_t l = 0;
-      register size_t r = iter->size - 1;
+      size_t l = 0;
+      size_t r = iter->size - 1;
       do {
        /* since l+r >= 0, we can (>> 1) instead (/ 2) */
-       register size_t i = (l + r) >> 1; 
+       size_t i = (l + r) >> 1;
        const char *iname = iter->types[i]->name;
        if (iname) {
-         register int compare = strcmp(name, iname);
-         if (compare == 0) {       
+         int compare = strcmp(name, iname);
+         if (compare == 0) {
            return iter->types[i];
          } else if (compare < 0) {
            if (i) {
@@ -563,14 +612,14 @@ SWIG_MangledTypeQueryModule(swig_module_info *start,
   Search for a swig_type_info structure for either a mangled name or a human readable name.
   It first searches the mangled names of the types, which is a O(log #types)
   If a type is not found it then searches the human readable names, which is O(#types).
-  
-  We start searching at module start, and finish searching when start == end.  
+
+  We start searching at module start, and finish searching when start == end.
   Note: if start == end at the beginning of the function, we go all the way around
   the circular list.
 */
 SWIGRUNTIME swig_type_info *
-SWIG_TypeQueryModule(swig_module_info *start, 
-                     swig_module_info *end, 
+SWIG_TypeQueryModule(swig_module_info *start,
+                     swig_module_info *end,
                     const char *name) {
   /* STEP 1: Search the name field using binary search */
   swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name);
@@ -581,7 +630,7 @@ SWIG_TypeQueryModule(swig_module_info *start,
        of the str field (the human readable name) */
     swig_module_info *iter = start;
     do {
-      register size_t i = 0;
+      size_t i = 0;
       for (; i < iter->size; ++i) {
        if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
          return iter->types[i];
@@ -589,56 +638,56 @@ SWIG_TypeQueryModule(swig_module_info *start,
       iter = iter->next;
     } while (iter != end);
   }
-  
+
   /* neither found a match */
   return 0;
 }
 
-/* 
+/*
    Pack binary data into a string
 */
 SWIGRUNTIME char *
 SWIG_PackData(char *c, void *ptr, size_t sz) {
   static const char hex[17] = "0123456789abcdef";
-  register const unsigned char *u = (unsigned char *) ptr;
-  register const unsigned char *eu =  u + sz;
+  const unsigned char *u = (unsigned char *) ptr;
+  const unsigned char *eu =  u + sz;
   for (; u != eu; ++u) {
-    register unsigned char uu = *u;
+    unsigned char uu = *u;
     *(c++) = hex[(uu & 0xf0) >> 4];
     *(c++) = hex[uu & 0xf];
   }
   return c;
 }
 
-/* 
+/*
    Unpack binary data from a string
 */
 SWIGRUNTIME const char *
 SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
-  register unsigned char *u = (unsigned char *) ptr;
-  register const unsigned char *eu = u + sz;
+  unsigned char *u = (unsigned char *) ptr;
+  const unsigned char *eu = u + sz;
   for (; u != eu; ++u) {
-    register char d = *(c++);
-    register unsigned char uu;
+    char d = *(c++);
+    unsigned char uu;
     if ((d >= '0') && (d <= '9'))
-      uu = ((d - '0') << 4);
+      uu = (unsigned char)((d - '0') << 4);
     else if ((d >= 'a') && (d <= 'f'))
-      uu = ((d - ('a'-10)) << 4);
-    else 
+      uu = (unsigned char)((d - ('a'-10)) << 4);
+    else
       return (char *) 0;
     d = *(c++);
     if ((d >= '0') && (d <= '9'))
-      uu |= (d - '0');
+      uu |= (unsigned char)(d - '0');
     else if ((d >= 'a') && (d <= 'f'))
-      uu |= (d - ('a'-10));
-    else 
+      uu |= (unsigned char)(d - ('a'-10));
+    else
       return (char *) 0;
     *u = uu;
   }
   return c;
 }
 
-/* 
+/*
    Pack 'void *' into a string buffer.
 */
 SWIGRUNTIME char *
@@ -698,22 +747,92 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
 #endif
 
 /*  Errors in SWIG */
-#define  SWIG_UnknownError        -1 
-#define  SWIG_IOError             -2 
-#define  SWIG_RuntimeError        -3 
-#define  SWIG_IndexError          -4 
-#define  SWIG_TypeError           -5 
-#define  SWIG_DivisionByZero      -6 
-#define  SWIG_OverflowError       -7 
-#define  SWIG_SyntaxError         -8 
-#define  SWIG_ValueError          -9 
+#define  SWIG_UnknownError        -1
+#define  SWIG_IOError             -2
+#define  SWIG_RuntimeError        -3
+#define  SWIG_IndexError          -4
+#define  SWIG_TypeError           -5
+#define  SWIG_DivisionByZero      -6
+#define  SWIG_OverflowError       -7
+#define  SWIG_SyntaxError         -8
+#define  SWIG_ValueError          -9
 #define  SWIG_SystemError         -10
 #define  SWIG_AttributeError      -11
-#define  SWIG_MemoryError         -12 
+#define  SWIG_MemoryError         -12
 #define  SWIG_NullReferenceError   -13
 
 
 
+/* Compatibility macros for Python 3 */
+#if PY_VERSION_HEX >= 0x03000000
+
+#define PyClass_Check(obj) PyObject_IsInstance(obj, (PyObject *)&PyType_Type)
+#define PyInt_Check(x) PyLong_Check(x)
+#define PyInt_AsLong(x) PyLong_AsLong(x)
+#define PyInt_FromLong(x) PyLong_FromLong(x)
+#define PyInt_FromSize_t(x) PyLong_FromSize_t(x)
+#define PyString_Check(name) PyBytes_Check(name)
+#define PyString_FromString(x) PyUnicode_FromString(x)
+#define PyString_Format(fmt, args)  PyUnicode_Format(fmt, args)
+#define PyString_AsString(str) PyBytes_AsString(str)
+#define PyString_Size(str) PyBytes_Size(str)   
+#define PyString_InternFromString(key) PyUnicode_InternFromString(key)
+#define Py_TPFLAGS_HAVE_CLASS Py_TPFLAGS_BASETYPE
+#define PyString_AS_STRING(x) PyUnicode_AS_STRING(x)
+#define _PyLong_FromSsize_t(x) PyLong_FromSsize_t(x)
+
+#endif
+
+#ifndef Py_TYPE
+#  define Py_TYPE(op) ((op)->ob_type)
+#endif
+
+/* SWIG APIs for compatibility of both Python 2 & 3 */
+
+#if PY_VERSION_HEX >= 0x03000000
+#  define SWIG_Python_str_FromFormat PyUnicode_FromFormat
+#else
+#  define SWIG_Python_str_FromFormat PyString_FromFormat
+#endif
+
+
+/* Warning: This function will allocate a new string in Python 3,
+ * so please call SWIG_Python_str_DelForPy3(x) to free the space.
+ */
+SWIGINTERN char*
+SWIG_Python_str_AsChar(PyObject *str)
+{
+#if PY_VERSION_HEX >= 0x03000000
+  char *cstr;
+  char *newstr;
+  Py_ssize_t len;
+  str = PyUnicode_AsUTF8String(str);
+  PyBytes_AsStringAndSize(str, &cstr, &len);
+  newstr = (char *) malloc(len+1);
+  memcpy(newstr, cstr, len+1);
+  Py_XDECREF(str);
+  return newstr;
+#else
+  return PyString_AsString(str);
+#endif
+}
+
+#if PY_VERSION_HEX >= 0x03000000
+#  define SWIG_Python_str_DelForPy3(x) free( (void*) (x) )
+#else
+#  define SWIG_Python_str_DelForPy3(x) 
+#endif
+
+
+SWIGINTERN PyObject*
+SWIG_Python_str_FromChar(const char *c)
+{
+#if PY_VERSION_HEX >= 0x03000000
+  return PyUnicode_FromString(c); 
+#else
+  return PyString_FromString(c);
+#endif
+}
 
 /* Add PyOS_snprintf for old Pythons */
 #if PY_VERSION_HEX < 0x02020000
@@ -743,10 +862,6 @@ PyString_FromFormat(const char *fmt, ...) {
 }
 #endif
 
-/* Add PyObject_Del for old Pythons */
-#if PY_VERSION_HEX < 0x01060000
-# define PyObject_Del(op) PyMem_DEL((op))
-#endif
 #ifndef PyObject_DEL
 # define PyObject_DEL PyObject_Del
 #endif
@@ -760,6 +875,7 @@ PyString_FromFormat(const char *fmt, ...) {
 #  define PyObject_GenericGetAttr 0
 # endif
 #endif
+
 /* Py_NotImplemented is defined in 2.1 and up. */
 #if PY_VERSION_HEX < 0x02010000
 # ifndef Py_NotImplemented
@@ -767,7 +883,6 @@ PyString_FromFormat(const char *fmt, ...) {
 # endif
 #endif
 
-
 /* A crude PyString_AsStringAndSize implementation for old Pythons */
 #if PY_VERSION_HEX < 0x02010000
 # ifndef PyString_AsStringAndSize
@@ -782,7 +897,6 @@ PyString_FromFormat(const char *fmt, ...) {
 # endif
 #endif
 
-
 /* PyBool_FromLong for old Pythons */
 #if PY_VERSION_HEX < 0x02030000
 static
@@ -801,6 +915,68 @@ PyObject *PyBool_FromLong(long ok)
 typedef int Py_ssize_t;
 # define PY_SSIZE_T_MAX INT_MAX
 # define PY_SSIZE_T_MIN INT_MIN
+typedef inquiry lenfunc;
+typedef intargfunc ssizeargfunc;
+typedef intintargfunc ssizessizeargfunc;
+typedef intobjargproc ssizeobjargproc;
+typedef intintobjargproc ssizessizeobjargproc;
+typedef getreadbufferproc readbufferproc;
+typedef getwritebufferproc writebufferproc;
+typedef getsegcountproc segcountproc;
+typedef getcharbufferproc charbufferproc;
+static long PyNumber_AsSsize_t (PyObject *x, void *SWIGUNUSEDPARM(exc))
+{
+  long result = 0;
+  PyObject *i = PyNumber_Int(x);
+  if (i) {
+    result = PyInt_AsLong(i);
+    Py_DECREF(i);
+  }
+  return result;
+}
+#endif
+
+#if PY_VERSION_HEX < 0x02050000
+#define PyInt_FromSize_t(x) PyInt_FromLong((long)x)
+#endif
+
+#if PY_VERSION_HEX < 0x02040000
+#define Py_VISIT(op)                           \
+  do {                                                 \
+    if (op) {                                  \
+      int vret = visit((op), arg);             \
+      if (vret)                                        \
+        return vret;                           \
+    }                                          \
+  } while (0)
+#endif
+
+#if PY_VERSION_HEX < 0x02030000
+typedef struct {
+  PyTypeObject type;
+  PyNumberMethods as_number;
+  PyMappingMethods as_mapping;
+  PySequenceMethods as_sequence;
+  PyBufferProcs as_buffer;
+  PyObject *name, *slots;
+} PyHeapTypeObject;
+#endif
+
+#if PY_VERSION_HEX < 0x02030000
+typedef destructor freefunc;
+#endif
+
+#if ((PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION > 6) || \
+     (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION > 0) || \
+     (PY_MAJOR_VERSION > 3))
+# define SWIGPY_USE_CAPSULE
+# define SWIGPY_CAPSULE_NAME ((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION ".type_pointer_capsule" SWIG_TYPE_TABLE_NAME)
+#endif
+
+#if PY_VERSION_HEX < 0x03020000
+#define PyDescr_TYPE(x) (((PyDescrObject *)(x))->d_type)
+#define PyDescr_NAME(x) (((PyDescrObject *)(x))->d_name)
+#define Py_hash_t long
 #endif
 
 /* -----------------------------------------------------------------------------
@@ -860,19 +1036,20 @@ SWIG_Python_AddErrorMsg(const char* mesg)
 
   if (PyErr_Occurred()) PyErr_Fetch(&type, &value, &traceback);
   if (value) {
+    char *tmp;
     PyObject *old_str = PyObject_Str(value);
     PyErr_Clear();
     Py_XINCREF(type);
-    PyErr_Format(type, "%s %s", PyString_AsString(old_str), mesg);
+
+    PyErr_Format(type, "%s %s", tmp = SWIG_Python_str_AsChar(old_str), mesg);
+    SWIG_Python_str_DelForPy3(tmp);
     Py_DECREF(old_str);
     Py_DECREF(value);
   } else {
-    PyErr_Format(PyExc_RuntimeError, mesg);
+    PyErr_SetString(PyExc_RuntimeError, mesg);
   }
 }
 
-
-
 #if defined(SWIG_PYTHON_NO_THREADS)
 #  if defined(SWIG_PYTHON_THREADS)
 #    undef SWIG_PYTHON_THREADS
@@ -946,9 +1123,6 @@ SWIG_Python_AddErrorMsg(const char* mesg)
 
 #ifdef __cplusplus
 extern "C" {
-#if 0
-} /* cc-mode */
-#endif
 #endif
 
 /* -----------------------------------------------------------------------------
@@ -969,18 +1143,29 @@ typedef struct swig_const_info {
   swig_type_info **ptype;
 } swig_const_info;
 
-#ifdef __cplusplus
-#if 0
-{ /* cc-mode */
+
+/* -----------------------------------------------------------------------------
+ * Wrapper of PyInstanceMethod_New() used in Python 3
+ * It is exported to the generated module, used for -fastproxy
+ * ----------------------------------------------------------------------------- */
+#if PY_VERSION_HEX >= 0x03000000
+SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func)
+{
+  return PyInstanceMethod_New(func);
+}
+#else
+SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *SWIGUNUSEDPARM(func))
+{
+  return NULL;
+}
 #endif
+
+#ifdef __cplusplus
 }
 #endif
 
 
 /* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
  * pyrun.swg
  *
  * This file contains the runtime support for Python modules
@@ -995,7 +1180,15 @@ typedef struct swig_const_info {
 #define SWIG_Python_ConvertPtr(obj, pptr, type, flags)  SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0)
 #define SWIG_ConvertPtr(obj, pptr, type, flags)         SWIG_Python_ConvertPtr(obj, pptr, type, flags)
 #define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own)  SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, own)
-#define SWIG_NewPointerObj(ptr, type, flags)            SWIG_Python_NewPointerObj(ptr, type, flags)
+
+#ifdef SWIGPYTHON_BUILTIN
+#define SWIG_NewPointerObj(ptr, type, flags)            SWIG_Python_NewPointerObj(self, ptr, type, flags)
+#else
+#define SWIG_NewPointerObj(ptr, type, flags)            SWIG_Python_NewPointerObj(NULL, ptr, type, flags)
+#endif
+
+#define SWIG_InternalNewPointerObj(ptr, type, flags)   SWIG_Python_NewPointerObj(NULL, ptr, type, flags)
+
 #define SWIG_CheckImplicit(ty)                          SWIG_Python_CheckImplicit(ty) 
 #define SWIG_AcquirePtr(ptr, src)                       SWIG_Python_AcquirePtr(ptr, src)
 #define swig_owntype                                    int
@@ -1010,7 +1203,7 @@ typedef struct swig_const_info {
 
 /* for C or C++ function pointers */
 #define SWIG_ConvertFunctionPtr(obj, pptr, type)        SWIG_Python_ConvertFunctionPtr(obj, pptr, type)
-#define SWIG_NewFunctionPtrObj(ptr, type)               SWIG_Python_NewPointerObj(ptr, type, 0)
+#define SWIG_NewFunctionPtrObj(ptr, type)               SWIG_Python_NewPointerObj(NULL, ptr, type, 0)
 
 /* for C++ member pointers, ie, member methods */
 #define SWIG_ConvertMember(obj, ptr, sz, ty)            SWIG_Python_ConvertPacked(obj, ptr, sz, ty)
@@ -1019,9 +1212,9 @@ typedef struct swig_const_info {
 
 /* Runtime API */
 
-#define SWIG_GetModule(clientdata)                      SWIG_Python_GetModule()
+#define SWIG_GetModule(clientdata)                      SWIG_Python_GetModule(clientdata)
 #define SWIG_SetModule(clientdata, pointer)             SWIG_Python_SetModule(pointer)
-#define SWIG_NewClientData(obj)                         PySwigClientData_New(obj)
+#define SWIG_NewClientData(obj)                         SwigPyClientData_New(obj)
 
 #define SWIG_SetErrorObj                                SWIG_Python_SetErrorObj                            
 #define SWIG_SetErrorMsg                               SWIG_Python_SetErrorMsg                            
@@ -1045,7 +1238,7 @@ SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj) {
 SWIGINTERN void 
 SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) {
   SWIG_PYTHON_THREAD_BEGIN_BLOCK;
-  PyErr_SetString(errtype, (char *) msg);
+  PyErr_SetString(errtype, msg);
   SWIG_PYTHON_THREAD_END_BLOCK;
 }
 
@@ -1053,12 +1246,41 @@ SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) {
 
 /* Set a constant value */
 
+#if defined(SWIGPYTHON_BUILTIN)
+
+SWIGINTERN void
+SwigPyBuiltin_AddPublicSymbol(PyObject *seq, const char *key) {
+  PyObject *s = PyString_InternFromString(key);
+  PyList_Append(seq, s);
+  Py_DECREF(s);
+}
+
+SWIGINTERN void
+SWIG_Python_SetConstant(PyObject *d, PyObject *public_interface, const char *name, PyObject *obj) {   
+#if PY_VERSION_HEX < 0x02030000
+  PyDict_SetItemString(d, (char *)name, obj);
+#else
+  PyDict_SetItemString(d, name, obj);
+#endif
+  Py_DECREF(obj);
+  if (public_interface)
+    SwigPyBuiltin_AddPublicSymbol(public_interface, name);
+}
+
+#else
+
 SWIGINTERN void
 SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj) {   
-  PyDict_SetItemString(d, (char*) name, obj);
+#if PY_VERSION_HEX < 0x02030000
+  PyDict_SetItemString(d, (char *)name, obj);
+#else
+  PyDict_SetItemString(d, name, obj);
+#endif
   Py_DECREF(obj);                            
 }
 
+#endif
+
 /* Append a value to the result obj */
 
 SWIGINTERN PyObject*
@@ -1106,33 +1328,41 @@ SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) {
 
 /* Unpack the argument tuple */
 
-SWIGINTERN int
-SWIG_Python_UnpackTuple(PyObject *args, const char *name, int min, int max, PyObject **objs)
+SWIGINTERN Py_ssize_t
+SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs)
 {
   if (!args) {
     if (!min && !max) {
       return 1;
     } else {
       PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got none", 
-                  name, (min == max ? "" : "at least "), min);
+                  name, (min == max ? "" : "at least "), (int)min);
       return 0;
     }
   }  
   if (!PyTuple_Check(args)) {
+    if (min <= 1 && max >= 1) {
+      Py_ssize_t i;
+      objs[0] = args;
+      for (i = 1; i < max; ++i) {
+       objs[i] = 0;
+      }
+      return 2;
+    }
     PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple");
     return 0;
   } else {
-    register int l = PyTuple_GET_SIZE(args);
+    Py_ssize_t l = PyTuple_GET_SIZE(args);
     if (l < min) {
       PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", 
-                  name, (min == max ? "" : "at least "), min, l);
+                  name, (min == max ? "" : "at least "), (int)min, (int)l);
       return 0;
     } else if (l > max) {
       PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", 
-                  name, (min == max ? "" : "at most "), max, l);
+                  name, (min == max ? "" : "at most "), (int)max, (int)l);
       return 0;
     } else {
-      register int i;
+      Py_ssize_t i;
       for (i = 0; i < l; ++i) {
        objs[i] = PyTuple_GET_ITEM(args, i);
       }
@@ -1171,11 +1401,11 @@ SWIG_Python_UnpackTuple(PyObject *args, const char *name, int min, int max, PyOb
 
 #define SWIG_POINTER_IMPLICIT_CONV  (SWIG_POINTER_DISOWN   << 1)
 
+#define SWIG_BUILTIN_TP_INIT       (SWIG_POINTER_OWN << 2)
+#define SWIG_BUILTIN_INIT          (SWIG_BUILTIN_TP_INIT | SWIG_POINTER_OWN)
+
 #ifdef __cplusplus
 extern "C" {
-#if 0
-} /* cc-mode */
-#endif
 #endif
 
 /*  How to access Py_None */
@@ -1217,7 +1447,7 @@ SWIG_Py_Void(void)
   return none;
 }
 
-/* PySwigClientData */
+/* SwigPyClientData */
 
 typedef struct {
   PyObject *klass;
@@ -1226,30 +1456,31 @@ typedef struct {
   PyObject *destroy;
   int delargs;
   int implicitconv;
-} PySwigClientData;
+  PyTypeObject *pytype;
+} SwigPyClientData;
 
 SWIGRUNTIMEINLINE int 
 SWIG_Python_CheckImplicit(swig_type_info *ty)
 {
-  PySwigClientData *data = (PySwigClientData *)ty->clientdata;
+  SwigPyClientData *data = (SwigPyClientData *)ty->clientdata;
   return data ? data->implicitconv : 0;
 }
 
 SWIGRUNTIMEINLINE PyObject *
 SWIG_Python_ExceptionType(swig_type_info *desc) {
-  PySwigClientData *data = desc ? (PySwigClientData *) desc->clientdata : 0;
+  SwigPyClientData *data = desc ? (SwigPyClientData *) desc->clientdata : 0;
   PyObject *klass = data ? data->klass : 0;
   return (klass ? klass : PyExc_RuntimeError);
 }
 
 
-SWIGRUNTIME PySwigClientData * 
-PySwigClientData_New(PyObject* obj)
+SWIGRUNTIME SwigPyClientData * 
+SwigPyClientData_New(PyObject* obj)
 {
   if (!obj) {
     return 0;
   } else {
-    PySwigClientData *data = (PySwigClientData *)malloc(sizeof(PySwigClientData));
+    SwigPyClientData *data = (SwigPyClientData *)malloc(sizeof(SwigPyClientData));
     /* the klass element */
     data->klass = obj;
     Py_INCREF(data->klass);
@@ -1292,19 +1523,19 @@ PySwigClientData_New(PyObject* obj)
       data->delargs = 0;
     }
     data->implicitconv = 0;
+    data->pytype = 0;
     return data;
   }
 }
 
 SWIGRUNTIME void 
-PySwigClientData_Del(PySwigClientData* data)
-{
+SwigPyClientData_Del(SwigPyClientData *data) {
   Py_XDECREF(data->newraw);
   Py_XDECREF(data->newargs);
   Py_XDECREF(data->destroy);
 }
 
-/* =============== PySwigObject =====================*/
+/* =============== SwigPyObject =====================*/
 
 typedef struct {
   PyObject_HEAD
@@ -1312,24 +1543,48 @@ typedef struct {
   swig_type_info *ty;
   int own;
   PyObject *next;
-} PySwigObject;
+#ifdef SWIGPYTHON_BUILTIN
+  PyObject *dict;
+#endif
+} SwigPyObject;
+
+
+#ifdef SWIGPYTHON_BUILTIN
+
+SWIGRUNTIME PyObject *
+SwigPyObject_get___dict__(PyObject *v, PyObject *SWIGUNUSEDPARM(args))
+{
+  SwigPyObject *sobj = (SwigPyObject *)v;
+
+  if (!sobj->dict)
+    sobj->dict = PyDict_New();
+
+  Py_INCREF(sobj->dict);
+  return sobj->dict;
+}
+
+#endif
 
 SWIGRUNTIME PyObject *
-PySwigObject_long(PySwigObject *v)
+SwigPyObject_long(SwigPyObject *v)
 {
   return PyLong_FromVoidPtr(v->ptr);
 }
 
 SWIGRUNTIME PyObject *
-PySwigObject_format(const char* fmt, PySwigObject *v)
+SwigPyObject_format(const char* fmt, SwigPyObject *v)
 {
   PyObject *res = NULL;
   PyObject *args = PyTuple_New(1);
   if (args) {
-    if (PyTuple_SetItem(args, 0, PySwigObject_long(v)) == 0) {
-      PyObject *ofmt = PyString_FromString(fmt);
+    if (PyTuple_SetItem(args, 0, SwigPyObject_long(v)) == 0) {
+      PyObject *ofmt = SWIG_Python_str_FromChar(fmt);
       if (ofmt) {
+#if PY_VERSION_HEX >= 0x03000000
+       res = PyUnicode_Format(ofmt,args);
+#else
        res = PyString_Format(ofmt,args);
+#endif
        Py_DECREF(ofmt);
       }
       Py_DECREF(args);
@@ -1339,133 +1594,165 @@ PySwigObject_format(const char* fmt, PySwigObject *v)
 }
 
 SWIGRUNTIME PyObject *
-PySwigObject_oct(PySwigObject *v)
+SwigPyObject_oct(SwigPyObject *v)
 {
-  return PySwigObject_format("%o",v);
+  return SwigPyObject_format("%o",v);
 }
 
 SWIGRUNTIME PyObject *
-PySwigObject_hex(PySwigObject *v)
+SwigPyObject_hex(SwigPyObject *v)
 {
-  return PySwigObject_format("%x",v);
+  return SwigPyObject_format("%x",v);
 }
 
 SWIGRUNTIME PyObject *
 #ifdef METH_NOARGS
-PySwigObject_repr(PySwigObject *v)
+SwigPyObject_repr(SwigPyObject *v)
 #else
-PySwigObject_repr(PySwigObject *v, PyObject *args)
+SwigPyObject_repr(SwigPyObject *v, PyObject *args)
 #endif
 {
   const char *name = SWIG_TypePrettyName(v->ty);
-  PyObject *hex = PySwigObject_hex(v);    
-  PyObject *repr = PyString_FromFormat("<Swig Object of type '%s' at 0x%s>", name, PyString_AsString(hex));
-  Py_DECREF(hex);
+  PyObject *repr = SWIG_Python_str_FromFormat("<Swig Object of type '%s' at %p>", (name ? name : "unknown"), (void *)v);
   if (v->next) {
-#ifdef METH_NOARGS
-    PyObject *nrep = PySwigObject_repr((PySwigObject *)v->next);
-#else
-    PyObject *nrep = PySwigObject_repr((PySwigObject *)v->next, args);
-#endif
+# ifdef METH_NOARGS
+    PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next);
+# else
+    PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next, args);
+# endif
+# if PY_VERSION_HEX >= 0x03000000
+    PyObject *joined = PyUnicode_Concat(repr, nrep);
+    Py_DecRef(repr);
+    Py_DecRef(nrep);
+    repr = joined;
+# else
     PyString_ConcatAndDel(&repr,nrep);
+# endif
   }
   return repr;  
 }
 
 SWIGRUNTIME int
-PySwigObject_print(PySwigObject *v, FILE *fp, int SWIGUNUSEDPARM(flags))
+SwigPyObject_compare(SwigPyObject *v, SwigPyObject *w)
 {
-#ifdef METH_NOARGS
-  PyObject *repr = PySwigObject_repr(v);
-#else
-  PyObject *repr = PySwigObject_repr(v, NULL);
-#endif
-  if (repr) {
-    fputs(PyString_AsString(repr), fp);
-    Py_DECREF(repr);
-    return 0; 
-  } else {
-    return 1; 
-  }
+  void *i = v->ptr;
+  void *j = w->ptr;
+  return (i < j) ? -1 : ((i > j) ? 1 : 0);
 }
 
-SWIGRUNTIME PyObject *
-PySwigObject_str(PySwigObject *v)
+/* Added for Python 3.x, would it also be useful for Python 2.x? */
+SWIGRUNTIME PyObject*
+SwigPyObject_richcompare(SwigPyObject *v, SwigPyObject *w, int op)
 {
-  char result[SWIG_BUFFER_SIZE];
-  return SWIG_PackVoidPtr(result, v->ptr, v->ty->name, sizeof(result)) ?
-    PyString_FromString(result) : 0;
+  PyObject* res;
+  if( op != Py_EQ && op != Py_NE ) {
+    Py_INCREF(Py_NotImplemented);
+    return Py_NotImplemented;
+  }
+  res = PyBool_FromLong( (SwigPyObject_compare(v, w)==0) == (op == Py_EQ) ? 1 : 0);
+  return res;  
 }
 
-SWIGRUNTIME int
-PySwigObject_compare(PySwigObject *v, PySwigObject *w)
-{
-  void *i = v->ptr;
-  void *j = w->ptr;
-  return (i < j) ? -1 : ((i > j) ? 1 : 0);
-}
 
-SWIGRUNTIME PyTypeObject* _PySwigObject_type(void);
+SWIGRUNTIME PyTypeObject* SwigPyObject_TypeOnce(void);
 
+#ifdef SWIGPYTHON_BUILTIN
+static swig_type_info *SwigPyObject_stype = 0;
+SWIGRUNTIME PyTypeObject*
+SwigPyObject_type(void) {
+    SwigPyClientData *cd;
+    assert(SwigPyObject_stype);
+    cd = (SwigPyClientData*) SwigPyObject_stype->clientdata;
+    assert(cd);
+    assert(cd->pytype);
+    return cd->pytype;
+}
+#else
 SWIGRUNTIME PyTypeObject*
-PySwigObject_type(void) {
-  static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigObject_type();
+SwigPyObject_type(void) {
+  static PyTypeObject *SWIG_STATIC_POINTER(type) = SwigPyObject_TypeOnce();
   return type;
 }
+#endif
 
 SWIGRUNTIMEINLINE int
-PySwigObject_Check(PyObject *op) {
-  return ((op)->ob_type == PySwigObject_type())
-    || (strcmp((op)->ob_type->tp_name,"PySwigObject") == 0);
+SwigPyObject_Check(PyObject *op) {
+#ifdef SWIGPYTHON_BUILTIN
+  PyTypeObject *target_tp = SwigPyObject_type();
+  if (PyType_IsSubtype(op->ob_type, target_tp))
+    return 1;
+  return (strcmp(op->ob_type->tp_name, "SwigPyObject") == 0);
+#else
+  return (Py_TYPE(op) == SwigPyObject_type())
+    || (strcmp(Py_TYPE(op)->tp_name,"SwigPyObject") == 0);
+#endif
 }
 
 SWIGRUNTIME PyObject *
-PySwigObject_New(void *ptr, swig_type_info *ty, int own);
+SwigPyObject_New(void *ptr, swig_type_info *ty, int own);
 
 SWIGRUNTIME void
-PySwigObject_dealloc(PyObject *v)
+SwigPyObject_dealloc(PyObject *v)
 {
-  PySwigObject *sobj = (PySwigObject *) v;
+  SwigPyObject *sobj = (SwigPyObject *) v;
   PyObject *next = sobj->next;
-  if (sobj->own) {
+  if (sobj->own == SWIG_POINTER_OWN) {
     swig_type_info *ty = sobj->ty;
-    PySwigClientData *data = ty ? (PySwigClientData *) ty->clientdata : 0;
+    SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0;
     PyObject *destroy = data ? data->destroy : 0;
     if (destroy) {
       /* destroy is always a VARARGS method */
       PyObject *res;
+
+      /* PyObject_CallFunction() has the potential to silently drop
+         the active active exception.  In cases of unnamed temporary
+         variable or where we just finished iterating over a generator
+         StopIteration will be active right now, and this needs to
+         remain true upon return from SwigPyObject_dealloc.  So save
+         and restore. */
+      
+      PyObject *val = NULL, *type = NULL, *tb = NULL;
+      PyErr_Fetch(&val, &type, &tb);
+
       if (data->delargs) {
-       /* we need to create a temporal object to carry the destroy operation */
-       PyObject *tmp = PySwigObject_New(sobj->ptr, ty, 0);
-       res = SWIG_Python_CallFunctor(destroy, tmp);
-       Py_DECREF(tmp);
+        /* we need to create a temporary object to carry the destroy operation */
+        PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0);
+        res = SWIG_Python_CallFunctor(destroy, tmp);
+        Py_DECREF(tmp);
       } else {
-       PyCFunction meth = PyCFunction_GET_FUNCTION(destroy);
-       PyObject *mself = PyCFunction_GET_SELF(destroy);
-       res = ((*meth)(mself, v));
+        PyCFunction meth = PyCFunction_GET_FUNCTION(destroy);
+        PyObject *mself = PyCFunction_GET_SELF(destroy);
+        res = ((*meth)(mself, v));
       }
+      if (!res)
+        PyErr_WriteUnraisable(destroy);
+
+      PyErr_Restore(val, type, tb);
+
       Py_XDECREF(res);
-    } else {
-      const char *name = SWIG_TypePrettyName(ty);
+    } 
 #if !defined(SWIG_PYTHON_SILENT_MEMLEAK)
-      printf("swig/python detected a memory leak of type '%s', no destructor found.\n", name);
-#endif
+    else {
+      const char *name = SWIG_TypePrettyName(ty);
+      printf("swig/python detected a memory leak of type '%s', no destructor found.\n", (name ? name : "unknown"));
     }
+#endif
   } 
   Py_XDECREF(next);
   PyObject_DEL(v);
 }
 
 SWIGRUNTIME PyObject* 
-PySwigObject_append(PyObject* v, PyObject* next)
+SwigPyObject_append(PyObject* v, PyObject* next)
 {
-  PySwigObject *sobj = (PySwigObject *) v;
+  SwigPyObject *sobj = (SwigPyObject *) v;
 #ifndef METH_O
   PyObject *tmp = 0;
   if (!PyArg_ParseTuple(next,(char *)"O:append", &tmp)) return NULL;
   next = tmp;
 #endif
-  if (!PySwigObject_Check(next)) {
+  if (!SwigPyObject_Check(next)) {
+    PyErr_SetString(PyExc_TypeError, "Attempt to append a non SwigPyObject");
     return NULL;
   }
   sobj->next = next;
@@ -1475,12 +1762,12 @@ PySwigObject_append(PyObject* v, PyObject* next)
 
 SWIGRUNTIME PyObject* 
 #ifdef METH_NOARGS
-PySwigObject_next(PyObject* v)
+SwigPyObject_next(PyObject* v)
 #else
-PySwigObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
+SwigPyObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
 #endif
 {
-  PySwigObject *sobj = (PySwigObject *) v;
+  SwigPyObject *sobj = (SwigPyObject *) v;
   if (sobj->next) {    
     Py_INCREF(sobj->next);
     return sobj->next;
@@ -1491,56 +1778,58 @@ PySwigObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
 
 SWIGINTERN PyObject*
 #ifdef METH_NOARGS
-PySwigObject_disown(PyObject *v)
+SwigPyObject_disown(PyObject *v)
 #else
-PySwigObject_disown(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
+SwigPyObject_disown(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
 #endif
 {
-  PySwigObject *sobj = (PySwigObject *)v;
+  SwigPyObject *sobj = (SwigPyObject *)v;
   sobj->own = 0;
   return SWIG_Py_Void();
 }
 
 SWIGINTERN PyObject*
 #ifdef METH_NOARGS
-PySwigObject_acquire(PyObject *v)
+SwigPyObject_acquire(PyObject *v)
 #else
-PySwigObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
+SwigPyObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
 #endif
 {
-  PySwigObject *sobj = (PySwigObject *)v;
+  SwigPyObject *sobj = (SwigPyObject *)v;
   sobj->own = SWIG_POINTER_OWN;
   return SWIG_Py_Void();
 }
 
 SWIGINTERN PyObject*
-PySwigObject_own(PyObject *v, PyObject *args)
+SwigPyObject_own(PyObject *v, PyObject *args)
 {
   PyObject *val = 0;
 #if (PY_VERSION_HEX < 0x02020000)
   if (!PyArg_ParseTuple(args,(char *)"|O:own",&val))
-#else
+#elif (PY_VERSION_HEX < 0x02050000)
   if (!PyArg_UnpackTuple(args, (char *)"own", 0, 1, &val)) 
+#else
+  if (!PyArg_UnpackTuple(args, "own", 0, 1, &val)) 
 #endif
     {
       return NULL;
     } 
   else
     {
-      PySwigObject *sobj = (PySwigObject *)v;
+      SwigPyObject *sobj = (SwigPyObject *)v;
       PyObject *obj = PyBool_FromLong(sobj->own);
       if (val) {
 #ifdef METH_NOARGS
        if (PyObject_IsTrue(val)) {
-         PySwigObject_acquire(v);
+         SwigPyObject_acquire(v);
        } else {
-         PySwigObject_disown(v);
+         SwigPyObject_disown(v);
        }
 #else
        if (PyObject_IsTrue(val)) {
-         PySwigObject_acquire(v,args);
+         SwigPyObject_acquire(v,args);
        } else {
-         PySwigObject_disown(v,args);
+         SwigPyObject_disown(v,args);
        }
 #endif
       } 
@@ -1551,44 +1840,47 @@ PySwigObject_own(PyObject *v, PyObject *args)
 #ifdef METH_O
 static PyMethodDef
 swigobject_methods[] = {
-  {(char *)"disown",  (PyCFunction)PySwigObject_disown,  METH_NOARGS,  (char *)"releases ownership of the pointer"},
-  {(char *)"acquire", (PyCFunction)PySwigObject_acquire, METH_NOARGS,  (char *)"aquires ownership of the pointer"},
-  {(char *)"own",     (PyCFunction)PySwigObject_own,     METH_VARARGS, (char *)"returns/sets ownership of the pointer"},
-  {(char *)"append",  (PyCFunction)PySwigObject_append,  METH_O,       (char *)"appends another 'this' object"},
-  {(char *)"next",    (PyCFunction)PySwigObject_next,    METH_NOARGS,  (char *)"returns the next 'this' object"},
-  {(char *)"__repr__",(PyCFunction)PySwigObject_repr,    METH_NOARGS,  (char *)"returns object representation"},
+  {(char *)"disown",  (PyCFunction)SwigPyObject_disown,  METH_NOARGS,  (char *)"releases ownership of the pointer"},
+  {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_NOARGS,  (char *)"acquires ownership of the pointer"},
+  {(char *)"own",     (PyCFunction)SwigPyObject_own,     METH_VARARGS, (char *)"returns/sets ownership of the pointer"},
+  {(char *)"append",  (PyCFunction)SwigPyObject_append,  METH_O,       (char *)"appends another 'this' object"},
+  {(char *)"next",    (PyCFunction)SwigPyObject_next,    METH_NOARGS,  (char *)"returns the next 'this' object"},
+  {(char *)"__repr__",(PyCFunction)SwigPyObject_repr,    METH_NOARGS,  (char *)"returns object representation"},
   {0, 0, 0, 0}  
 };
 #else
 static PyMethodDef
 swigobject_methods[] = {
-  {(char *)"disown",  (PyCFunction)PySwigObject_disown,  METH_VARARGS,  (char *)"releases ownership of the pointer"},
-  {(char *)"acquire", (PyCFunction)PySwigObject_acquire, METH_VARARGS,  (char *)"aquires ownership of the pointer"},
-  {(char *)"own",     (PyCFunction)PySwigObject_own,     METH_VARARGS,  (char *)"returns/sets ownership of the pointer"},
-  {(char *)"append",  (PyCFunction)PySwigObject_append,  METH_VARARGS,  (char *)"appends another 'this' object"},
-  {(char *)"next",    (PyCFunction)PySwigObject_next,    METH_VARARGS,  (char *)"returns the next 'this' object"},
-  {(char *)"__repr__",(PyCFunction)PySwigObject_repr,   METH_VARARGS,  (char *)"returns object representation"},
+  {(char *)"disown",  (PyCFunction)SwigPyObject_disown,  METH_VARARGS,  (char *)"releases ownership of the pointer"},
+  {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_VARARGS,  (char *)"acquires ownership of the pointer"},
+  {(char *)"own",     (PyCFunction)SwigPyObject_own,     METH_VARARGS,  (char *)"returns/sets ownership of the pointer"},
+  {(char *)"append",  (PyCFunction)SwigPyObject_append,  METH_VARARGS,  (char *)"appends another 'this' object"},
+  {(char *)"next",    (PyCFunction)SwigPyObject_next,    METH_VARARGS,  (char *)"returns the next 'this' object"},
+  {(char *)"__repr__",(PyCFunction)SwigPyObject_repr,   METH_VARARGS,  (char *)"returns object representation"},
   {0, 0, 0, 0}  
 };
 #endif
 
 #if PY_VERSION_HEX < 0x02020000
 SWIGINTERN PyObject *
-PySwigObject_getattr(PySwigObject *sobj,char *name)
+SwigPyObject_getattr(SwigPyObject *sobj,char *name)
 {
   return Py_FindMethod(swigobject_methods, (PyObject *)sobj, name);
 }
 #endif
 
 SWIGRUNTIME PyTypeObject*
-_PySwigObject_type(void) {
+SwigPyObject_TypeOnce(void) {
   static char swigobject_doc[] = "Swig object carries a C/C++ instance pointer";
-  
-  static PyNumberMethods PySwigObject_as_number = {
+
+  static PyNumberMethods SwigPyObject_as_number = {
     (binaryfunc)0, /*nb_add*/
     (binaryfunc)0, /*nb_subtract*/
     (binaryfunc)0, /*nb_multiply*/
+    /* nb_divide removed in Python 3 */
+#if PY_VERSION_HEX < 0x03000000
     (binaryfunc)0, /*nb_divide*/
+#endif
     (binaryfunc)0, /*nb_remainder*/
     (binaryfunc)0, /*nb_divmod*/
     (ternaryfunc)0,/*nb_power*/
@@ -1602,94 +1894,132 @@ _PySwigObject_type(void) {
     0,            /*nb_and*/
     0,            /*nb_xor*/
     0,            /*nb_or*/
-    (coercion)0,   /*nb_coerce*/
-    (unaryfunc)PySwigObject_long, /*nb_int*/
-    (unaryfunc)PySwigObject_long, /*nb_long*/
+#if PY_VERSION_HEX < 0x03000000
+    0,   /*nb_coerce*/
+#endif
+    (unaryfunc)SwigPyObject_long, /*nb_int*/
+#if PY_VERSION_HEX < 0x03000000
+    (unaryfunc)SwigPyObject_long, /*nb_long*/
+#else
+    0, /*nb_reserved*/
+#endif
     (unaryfunc)0,                 /*nb_float*/
-    (unaryfunc)PySwigObject_oct,  /*nb_oct*/
-    (unaryfunc)PySwigObject_hex,  /*nb_hex*/
-#if PY_VERSION_HEX >= 0x02020000
-    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */ 
-#elif PY_VERSION_HEX >= 0x02000000
+#if PY_VERSION_HEX < 0x03000000
+    (unaryfunc)SwigPyObject_oct,  /*nb_oct*/
+    (unaryfunc)SwigPyObject_hex,  /*nb_hex*/
+#endif
+#if PY_VERSION_HEX >= 0x03050000 /* 3.5 */
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_matrix_multiply */
+#elif PY_VERSION_HEX >= 0x03000000 /* 3.0 */
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index, nb_inplace_divide removed */
+#elif PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */
+#elif PY_VERSION_HEX >= 0x02020000 /* 2.2.0 */
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */
+#elif PY_VERSION_HEX >= 0x02000000 /* 2.0.0 */
     0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_or */
 #endif
   };
 
-  static PyTypeObject pyswigobject_type;  
+  static PyTypeObject swigpyobject_type;
   static int type_init = 0;
   if (!type_init) {
-    const PyTypeObject tmp
-      = {
-       PyObject_HEAD_INIT(NULL)
-       0,                                  /* ob_size */
-       (char *)"PySwigObject",             /* tp_name */
-       sizeof(PySwigObject),               /* tp_basicsize */
-       0,                                  /* tp_itemsize */
-       (destructor)PySwigObject_dealloc,   /* tp_dealloc */
-       (printfunc)PySwigObject_print,      /* tp_print */
+    const PyTypeObject tmp = {
+#if PY_VERSION_HEX >= 0x03000000
+      PyVarObject_HEAD_INIT(NULL, 0)
+#else
+      PyObject_HEAD_INIT(NULL)
+      0,                                    /* ob_size */
+#endif
+      (char *)"SwigPyObject",               /* tp_name */
+      sizeof(SwigPyObject),                 /* tp_basicsize */
+      0,                                    /* tp_itemsize */
+      (destructor)SwigPyObject_dealloc,     /* tp_dealloc */
+      0,                                    /* tp_print */
 #if PY_VERSION_HEX < 0x02020000
-       (getattrfunc)PySwigObject_getattr,  /* tp_getattr */ 
+      (getattrfunc)SwigPyObject_getattr,    /* tp_getattr */
 #else
-       (getattrfunc)0,                     /* tp_getattr */ 
+      (getattrfunc)0,                       /* tp_getattr */
 #endif
-       (setattrfunc)0,                     /* tp_setattr */ 
-       (cmpfunc)PySwigObject_compare,      /* tp_compare */ 
-       (reprfunc)PySwigObject_repr,        /* tp_repr */    
-       &PySwigObject_as_number,            /* tp_as_number */
-       0,                                  /* tp_as_sequence */
-       0,                                  /* tp_as_mapping */
-       (hashfunc)0,                        /* tp_hash */
-       (ternaryfunc)0,                     /* tp_call */
-       (reprfunc)PySwigObject_str,         /* tp_str */
-       PyObject_GenericGetAttr,            /* tp_getattro */
-       0,                                  /* tp_setattro */
-       0,                                  /* tp_as_buffer */
-       Py_TPFLAGS_DEFAULT,                 /* tp_flags */
-       swigobject_doc,                     /* tp_doc */        
-       0,                                  /* tp_traverse */
-       0,                                  /* tp_clear */
-       0,                                  /* tp_richcompare */
-       0,                                  /* tp_weaklistoffset */
+      (setattrfunc)0,                       /* tp_setattr */
+#if PY_VERSION_HEX >= 0x03000000
+      0, /* tp_reserved in 3.0.1, tp_compare in 3.0.0 but not used */
+#else
+      (cmpfunc)SwigPyObject_compare,        /* tp_compare */
+#endif
+      (reprfunc)SwigPyObject_repr,          /* tp_repr */
+      &SwigPyObject_as_number,              /* tp_as_number */
+      0,                                    /* tp_as_sequence */
+      0,                                    /* tp_as_mapping */
+      (hashfunc)0,                          /* tp_hash */
+      (ternaryfunc)0,                       /* tp_call */
+      0,                                    /* tp_str */
+      PyObject_GenericGetAttr,              /* tp_getattro */
+      0,                                    /* tp_setattro */
+      0,                                    /* tp_as_buffer */
+      Py_TPFLAGS_DEFAULT,                   /* tp_flags */
+      swigobject_doc,                       /* tp_doc */
+      0,                                    /* tp_traverse */
+      0,                                    /* tp_clear */
+      (richcmpfunc)SwigPyObject_richcompare,/* tp_richcompare */
+      0,                                    /* tp_weaklistoffset */
 #if PY_VERSION_HEX >= 0x02020000
-       0,                                  /* tp_iter */
-       0,                                  /* tp_iternext */
-       swigobject_methods,                 /* tp_methods */ 
-       0,                                  /* tp_members */
-       0,                                  /* tp_getset */             
-       0,                                  /* tp_base */               
-       0,                                  /* tp_dict */               
-       0,                                  /* tp_descr_get */          
-       0,                                  /* tp_descr_set */          
-       0,                                  /* tp_dictoffset */         
-       0,                                  /* tp_init */               
-       0,                                  /* tp_alloc */              
-       0,                                  /* tp_new */                
-       0,                                  /* tp_free */          
-        0,                                  /* tp_is_gc */  
-       0,                                  /* tp_bases */   
-       0,                                  /* tp_mro */
-       0,                                  /* tp_cache */   
-       0,                                  /* tp_subclasses */
-       0,                                  /* tp_weaklist */
+      0,                                    /* tp_iter */
+      0,                                    /* tp_iternext */
+      swigobject_methods,                   /* tp_methods */
+      0,                                    /* tp_members */
+      0,                                    /* tp_getset */
+      0,                                    /* tp_base */
+      0,                                    /* tp_dict */
+      0,                                    /* tp_descr_get */
+      0,                                    /* tp_descr_set */
+      0,                                    /* tp_dictoffset */
+      0,                                    /* tp_init */
+      0,                                    /* tp_alloc */
+      0,                                    /* tp_new */
+      0,                                    /* tp_free */
+      0,                                    /* tp_is_gc */
+      0,                                    /* tp_bases */
+      0,                                    /* tp_mro */
+      0,                                    /* tp_cache */
+      0,                                    /* tp_subclasses */
+      0,                                    /* tp_weaklist */
 #endif
 #if PY_VERSION_HEX >= 0x02030000
-       0,                                  /* tp_del */
+      0,                                    /* tp_del */
+#endif
+#if PY_VERSION_HEX >= 0x02060000
+      0,                                    /* tp_version_tag */
+#endif
+#if PY_VERSION_HEX >= 0x03040000
+      0,                                    /* tp_finalize */
 #endif
 #ifdef COUNT_ALLOCS
-       0,0,0,0                             /* tp_alloc -> tp_next */
+      0,                                    /* tp_allocs */
+      0,                                    /* tp_frees */
+      0,                                    /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+      0,                                    /* tp_prev */
 #endif
-      };
-    pyswigobject_type = tmp;
-    pyswigobject_type.ob_type = &PyType_Type;
+      0                                     /* tp_next */
+#endif
+    };
+    swigpyobject_type = tmp;
     type_init = 1;
+#if PY_VERSION_HEX < 0x02020000
+    swigpyobject_type.ob_type = &PyType_Type;
+#else
+    if (PyType_Ready(&swigpyobject_type) < 0)
+      return NULL;
+#endif
   }
-  return &pyswigobject_type;
+  return &swigpyobject_type;
 }
 
 SWIGRUNTIME PyObject *
-PySwigObject_New(void *ptr, swig_type_info *ty, int own)
+SwigPyObject_New(void *ptr, swig_type_info *ty, int own)
 {
-  PySwigObject *sobj = PyObject_NEW(PySwigObject, PySwigObject_type());
+  SwigPyObject *sobj = PyObject_NEW(SwigPyObject, SwigPyObject_type());
   if (sobj) {
     sobj->ptr  = ptr;
     sobj->ty   = ty;
@@ -1708,10 +2038,10 @@ typedef struct {
   void *pack;
   swig_type_info *ty;
   size_t size;
-} PySwigPacked;
+} SwigPyPacked;
 
 SWIGRUNTIME int
-PySwigPacked_print(PySwigPacked *v, FILE *fp, int SWIGUNUSEDPARM(flags))
+SwigPyPacked_print(SwigPyPacked *v, FILE *fp, int SWIGUNUSEDPARM(flags))
 {
   char result[SWIG_BUFFER_SIZE];
   fputs("<Swig Packed ", fp); 
@@ -1725,29 +2055,29 @@ PySwigPacked_print(PySwigPacked *v, FILE *fp, int SWIGUNUSEDPARM(flags))
 }
   
 SWIGRUNTIME PyObject *
-PySwigPacked_repr(PySwigPacked *v)
+SwigPyPacked_repr(SwigPyPacked *v)
 {
   char result[SWIG_BUFFER_SIZE];
   if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) {
-    return PyString_FromFormat("<Swig Packed at %s%s>", result, v->ty->name);
+    return SWIG_Python_str_FromFormat("<Swig Packed at %s%s>", result, v->ty->name);
   } else {
-    return PyString_FromFormat("<Swig Packed %s>", v->ty->name);
+    return SWIG_Python_str_FromFormat("<Swig Packed %s>", v->ty->name);
   }  
 }
 
 SWIGRUNTIME PyObject *
-PySwigPacked_str(PySwigPacked *v)
+SwigPyPacked_str(SwigPyPacked *v)
 {
   char result[SWIG_BUFFER_SIZE];
   if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))){
-    return PyString_FromFormat("%s%s", result, v->ty->name);
+    return SWIG_Python_str_FromFormat("%s%s", result, v->ty->name);
   } else {
-    return PyString_FromString(v->ty->name);
+    return SWIG_Python_str_FromChar(v->ty->name);
   }  
 }
 
 SWIGRUNTIME int
-PySwigPacked_compare(PySwigPacked *v, PySwigPacked *w)
+SwigPyPacked_compare(SwigPyPacked *v, SwigPyPacked *w)
 {
   size_t i = v->size;
   size_t j = w->size;
@@ -1755,104 +2085,128 @@ PySwigPacked_compare(PySwigPacked *v, PySwigPacked *w)
   return s ? s : strncmp((char *)v->pack, (char *)w->pack, 2*v->size);
 }
 
-SWIGRUNTIME PyTypeObject* _PySwigPacked_type(void);
+SWIGRUNTIME PyTypeObject* SwigPyPacked_TypeOnce(void);
 
 SWIGRUNTIME PyTypeObject*
-PySwigPacked_type(void) {
-  static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigPacked_type();
+SwigPyPacked_type(void) {
+  static PyTypeObject *SWIG_STATIC_POINTER(type) = SwigPyPacked_TypeOnce();
   return type;
 }
 
 SWIGRUNTIMEINLINE int
-PySwigPacked_Check(PyObject *op) {
-  return ((op)->ob_type == _PySwigPacked_type()) 
-    || (strcmp((op)->ob_type->tp_name,"PySwigPacked") == 0);
+SwigPyPacked_Check(PyObject *op) {
+  return ((op)->ob_type == SwigPyPacked_TypeOnce()) 
+    || (strcmp((op)->ob_type->tp_name,"SwigPyPacked") == 0);
 }
 
 SWIGRUNTIME void
-PySwigPacked_dealloc(PyObject *v)
+SwigPyPacked_dealloc(PyObject *v)
 {
-  if (PySwigPacked_Check(v)) {
-    PySwigPacked *sobj = (PySwigPacked *) v;
+  if (SwigPyPacked_Check(v)) {
+    SwigPyPacked *sobj = (SwigPyPacked *) v;
     free(sobj->pack);
   }
   PyObject_DEL(v);
 }
 
 SWIGRUNTIME PyTypeObject*
-_PySwigPacked_type(void) {
+SwigPyPacked_TypeOnce(void) {
   static char swigpacked_doc[] = "Swig object carries a C/C++ instance pointer";
-  static PyTypeObject pyswigpacked_type;
-  static int type_init = 0;  
+  static PyTypeObject swigpypacked_type;
+  static int type_init = 0;
   if (!type_init) {
-    const PyTypeObject tmp
-      = {
-       PyObject_HEAD_INIT(NULL)
-       0,                                  /* ob_size */       
-       (char *)"PySwigPacked",             /* tp_name */       
-       sizeof(PySwigPacked),               /* tp_basicsize */  
-       0,                                  /* tp_itemsize */   
-       (destructor)PySwigPacked_dealloc,   /* tp_dealloc */    
-       (printfunc)PySwigPacked_print,      /* tp_print */      
-       (getattrfunc)0,                     /* tp_getattr */    
-       (setattrfunc)0,                     /* tp_setattr */    
-       (cmpfunc)PySwigPacked_compare,      /* tp_compare */    
-       (reprfunc)PySwigPacked_repr,        /* tp_repr */       
-       0,                                  /* tp_as_number */  
-       0,                                  /* tp_as_sequence */
-       0,                                  /* tp_as_mapping */ 
-       (hashfunc)0,                        /* tp_hash */       
-       (ternaryfunc)0,                     /* tp_call */       
-       (reprfunc)PySwigPacked_str,         /* tp_str */        
-       PyObject_GenericGetAttr,            /* tp_getattro */
-       0,                                  /* tp_setattro */
-       0,                                  /* tp_as_buffer */
-       Py_TPFLAGS_DEFAULT,                 /* tp_flags */
-       swigpacked_doc,                     /* tp_doc */
-       0,                                  /* tp_traverse */
-       0,                                  /* tp_clear */
-       0,                                  /* tp_richcompare */
-       0,                                  /* tp_weaklistoffset */
+    const PyTypeObject tmp = {
+#if PY_VERSION_HEX>=0x03000000
+      PyVarObject_HEAD_INIT(NULL, 0)
+#else
+      PyObject_HEAD_INIT(NULL)
+      0,                                    /* ob_size */
+#endif
+      (char *)"SwigPyPacked",               /* tp_name */
+      sizeof(SwigPyPacked),                 /* tp_basicsize */
+      0,                                    /* tp_itemsize */
+      (destructor)SwigPyPacked_dealloc,     /* tp_dealloc */
+      (printfunc)SwigPyPacked_print,        /* tp_print */
+      (getattrfunc)0,                       /* tp_getattr */
+      (setattrfunc)0,                       /* tp_setattr */
+#if PY_VERSION_HEX>=0x03000000
+      0, /* tp_reserved in 3.0.1 */
+#else
+      (cmpfunc)SwigPyPacked_compare,        /* tp_compare */
+#endif
+      (reprfunc)SwigPyPacked_repr,          /* tp_repr */
+      0,                                    /* tp_as_number */
+      0,                                    /* tp_as_sequence */
+      0,                                    /* tp_as_mapping */
+      (hashfunc)0,                          /* tp_hash */
+      (ternaryfunc)0,                       /* tp_call */
+      (reprfunc)SwigPyPacked_str,           /* tp_str */
+      PyObject_GenericGetAttr,              /* tp_getattro */
+      0,                                    /* tp_setattro */
+      0,                                    /* tp_as_buffer */
+      Py_TPFLAGS_DEFAULT,                   /* tp_flags */
+      swigpacked_doc,                       /* tp_doc */
+      0,                                    /* tp_traverse */
+      0,                                    /* tp_clear */
+      0,                                    /* tp_richcompare */
+      0,                                    /* tp_weaklistoffset */
 #if PY_VERSION_HEX >= 0x02020000
-       0,                                  /* tp_iter */
-       0,                                  /* tp_iternext */
-       0,                                  /* tp_methods */ 
-       0,                                  /* tp_members */
-       0,                                  /* tp_getset */             
-       0,                                  /* tp_base */               
-       0,                                  /* tp_dict */               
-       0,                                  /* tp_descr_get */          
-       0,                                  /* tp_descr_set */          
-       0,                                  /* tp_dictoffset */         
-       0,                                  /* tp_init */               
-       0,                                  /* tp_alloc */              
-       0,                                  /* tp_new */                
-       0,                                  /* tp_free */          
-        0,                                  /* tp_is_gc */  
-       0,                                  /* tp_bases */   
-       0,                                  /* tp_mro */
-       0,                                  /* tp_cache */   
-       0,                                  /* tp_subclasses */
-       0,                                  /* tp_weaklist */
+      0,                                    /* tp_iter */
+      0,                                    /* tp_iternext */
+      0,                                    /* tp_methods */
+      0,                                    /* tp_members */
+      0,                                    /* tp_getset */
+      0,                                    /* tp_base */
+      0,                                    /* tp_dict */
+      0,                                    /* tp_descr_get */
+      0,                                    /* tp_descr_set */
+      0,                                    /* tp_dictoffset */
+      0,                                    /* tp_init */
+      0,                                    /* tp_alloc */
+      0,                                    /* tp_new */
+      0,                                    /* tp_free */
+      0,                                    /* tp_is_gc */
+      0,                                    /* tp_bases */
+      0,                                    /* tp_mro */
+      0,                                    /* tp_cache */
+      0,                                    /* tp_subclasses */
+      0,                                    /* tp_weaklist */
 #endif
 #if PY_VERSION_HEX >= 0x02030000
-       0,                                  /* tp_del */
+      0,                                    /* tp_del */
+#endif
+#if PY_VERSION_HEX >= 0x02060000
+      0,                                    /* tp_version_tag */
+#endif
+#if PY_VERSION_HEX >= 0x03040000
+      0,                                    /* tp_finalize */
 #endif
 #ifdef COUNT_ALLOCS
-       0,0,0,0                             /* tp_alloc -> tp_next */
+      0,                                    /* tp_allocs */
+      0,                                    /* tp_frees */
+      0,                                    /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+      0,                                    /* tp_prev */
 #endif
-      };
-    pyswigpacked_type = tmp;
-    pyswigpacked_type.ob_type = &PyType_Type;
+      0                                     /* tp_next */
+#endif
+    };
+    swigpypacked_type = tmp;
     type_init = 1;
+#if PY_VERSION_HEX < 0x02020000
+    swigpypacked_type.ob_type = &PyType_Type;
+#else
+    if (PyType_Ready(&swigpypacked_type) < 0)
+      return NULL;
+#endif
   }
-  return &pyswigpacked_type;
+  return &swigpypacked_type;
 }
 
 SWIGRUNTIME PyObject *
-PySwigPacked_New(void *ptr, size_t size, swig_type_info *ty)
+SwigPyPacked_New(void *ptr, size_t size, swig_type_info *ty)
 {
-  PySwigPacked *sobj = PyObject_NEW(PySwigPacked, PySwigPacked_type());
+  SwigPyPacked *sobj = PyObject_NEW(SwigPyPacked, SwigPyPacked_type());
   if (sobj) {
     void *pack = malloc(size);
     if (pack) {
@@ -1869,10 +2223,10 @@ PySwigPacked_New(void *ptr, size_t size, swig_type_info *ty)
 }
 
 SWIGRUNTIME swig_type_info *
-PySwigPacked_UnpackData(PyObject *obj, void *ptr, size_t size)
+SwigPyPacked_UnpackData(PyObject *obj, void *ptr, size_t size)
 {
-  if (PySwigPacked_Check(obj)) {
-    PySwigPacked *sobj = (PySwigPacked *)obj;
+  if (SwigPyPacked_Check(obj)) {
+    SwigPyPacked *sobj = (SwigPyPacked *)obj;
     if (sobj->size != size) return 0;
     memcpy(ptr, sobj->pack, size);
     return sobj->ty;
@@ -1888,73 +2242,96 @@ PySwigPacked_UnpackData(PyObject *obj, void *ptr, size_t size)
 SWIGRUNTIMEINLINE PyObject *
 _SWIG_This(void)
 {
-  return PyString_FromString("this");
+    return SWIG_Python_str_FromChar("this");
 }
 
+static PyObject *swig_this = NULL;
+
 SWIGRUNTIME PyObject *
 SWIG_This(void)
 {
-  static PyObject *SWIG_STATIC_POINTER(swig_this) = _SWIG_This();
+  if (swig_this == NULL)
+    swig_this = _SWIG_This();
   return swig_this;
 }
 
 /* #define SWIG_PYTHON_SLOW_GETSET_THIS */
 
-SWIGRUNTIME PySwigObject *
+/* TODO: I don't know how to implement the fast getset in Python 3 right now */
+#if PY_VERSION_HEX>=0x03000000
+#define SWIG_PYTHON_SLOW_GETSET_THIS 
+#endif
+
+SWIGRUNTIME SwigPyObject *
 SWIG_Python_GetSwigThis(PyObject *pyobj) 
 {
-  if (PySwigObject_Check(pyobj)) {
-    return (PySwigObject *) pyobj;
-  } else {
-    PyObject *obj = 0;
+  PyObject *obj;
+
+  if (SwigPyObject_Check(pyobj))
+    return (SwigPyObject *) pyobj;
+
+#ifdef SWIGPYTHON_BUILTIN
+  (void)obj;
+# ifdef PyWeakref_CheckProxy
+  if (PyWeakref_CheckProxy(pyobj)) {
+    pyobj = PyWeakref_GET_OBJECT(pyobj);
+    if (pyobj && SwigPyObject_Check(pyobj))
+      return (SwigPyObject*) pyobj;
+  }
+# endif
+  return NULL;
+#else
+
+  obj = 0;
+
 #if (!defined(SWIG_PYTHON_SLOW_GETSET_THIS) && (PY_VERSION_HEX >= 0x02030000))
-    if (PyInstance_Check(pyobj)) {
-      obj = _PyInstance_Lookup(pyobj, SWIG_This());      
+  if (PyInstance_Check(pyobj)) {
+    obj = _PyInstance_Lookup(pyobj, SWIG_This());      
+  } else {
+    PyObject **dictptr = _PyObject_GetDictPtr(pyobj);
+    if (dictptr != NULL) {
+      PyObject *dict = *dictptr;
+      obj = dict ? PyDict_GetItem(dict, SWIG_This()) : 0;
     } else {
-      PyObject **dictptr = _PyObject_GetDictPtr(pyobj);
-      if (dictptr != NULL) {
-       PyObject *dict = *dictptr;
-       obj = dict ? PyDict_GetItem(dict, SWIG_This()) : 0;
-      } else {
 #ifdef PyWeakref_CheckProxy
-       if (PyWeakref_CheckProxy(pyobj)) {
-         PyObject *wobj = PyWeakref_GET_OBJECT(pyobj);
-         return wobj ? SWIG_Python_GetSwigThis(wobj) : 0;
-       }
+      if (PyWeakref_CheckProxy(pyobj)) {
+       PyObject *wobj = PyWeakref_GET_OBJECT(pyobj);
+       return wobj ? SWIG_Python_GetSwigThis(wobj) : 0;
+      }
 #endif
-       obj = PyObject_GetAttr(pyobj,SWIG_This());
-       if (obj) {
-         Py_DECREF(obj);
-       } else {
-         if (PyErr_Occurred()) PyErr_Clear();
-         return 0;
-       }
+      obj = PyObject_GetAttr(pyobj,SWIG_This());
+      if (obj) {
+       Py_DECREF(obj);
+      } else {
+       if (PyErr_Occurred()) PyErr_Clear();
+       return 0;
       }
     }
+  }
 #else
-    obj = PyObject_GetAttr(pyobj,SWIG_This());
-    if (obj) {
-      Py_DECREF(obj);
-    } else {
-      if (PyErr_Occurred()) PyErr_Clear();
-      return 0;
-    }
+  obj = PyObject_GetAttr(pyobj,SWIG_This());
+  if (obj) {
+    Py_DECREF(obj);
+  } else {
+    if (PyErr_Occurred()) PyErr_Clear();
+    return 0;
+  }
 #endif
-    if (obj && !PySwigObject_Check(obj)) {
-      /* a PyObject is called 'this', try to get the 'real this'
-        PySwigObject from it */ 
-      return SWIG_Python_GetSwigThis(obj);
-    }
-    return (PySwigObject *)obj;
+  if (obj && !SwigPyObject_Check(obj)) {
+    /* a PyObject is called 'this', try to get the 'real this'
+       SwigPyObject from it */ 
+    return SWIG_Python_GetSwigThis(obj);
   }
+  return (SwigPyObject *)obj;
+#endif
 }
 
 /* Acquire a pointer value */
 
 SWIGRUNTIME int
 SWIG_Python_AcquirePtr(PyObject *obj, int own) {
-  if (own) {
-    PySwigObject *sobj = SWIG_Python_GetSwigThis(obj);
+  if (own == SWIG_POINTER_OWN) {
+    SwigPyObject *sobj = SWIG_Python_GetSwigThis(obj);
     if (sobj) {
       int oldown = sobj->own;
       sobj->own = own;
@@ -1968,80 +2345,105 @@ SWIG_Python_AcquirePtr(PyObject *obj, int own) {
 
 SWIGRUNTIME int
 SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own) {
-  if (!obj) return SWIG_ERROR;
-  if (obj == Py_None) {
-    if (ptr) *ptr = 0;
+  int res;
+  SwigPyObject *sobj;
+  int implicit_conv = (flags & SWIG_POINTER_IMPLICIT_CONV) != 0;
+
+  if (!obj)
+    return SWIG_ERROR;
+  if (obj == Py_None && !implicit_conv) {
+    if (ptr)
+      *ptr = 0;
     return SWIG_OK;
-  } else {
-    PySwigObject *sobj = SWIG_Python_GetSwigThis(obj);
-    while (sobj) {
-      void *vptr = sobj->ptr;
-      if (ty) {
-       swig_type_info *to = sobj->ty;
-       if (to == ty) {
-         /* no type cast needed */
-         if (ptr) *ptr = vptr;
-         break;
-       } else {
-         swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
-         if (!tc) {
-           sobj = (PySwigObject *)sobj->next;
-         } else {
-           if (ptr) *ptr = SWIG_TypeCast(tc,vptr);
-           break;
-         }
-       }
+  }
+
+  res = SWIG_ERROR;
+
+  sobj = SWIG_Python_GetSwigThis(obj);
+  if (own)
+    *own = 0;
+  while (sobj) {
+    void *vptr = sobj->ptr;
+    if (ty) {
+      swig_type_info *to = sobj->ty;
+      if (to == ty) {
+        /* no type cast needed */
+        if (ptr) *ptr = vptr;
+        break;
       } else {
-       if (ptr) *ptr = vptr;
-       break;
-      }
-    }
-    if (sobj) {
-      if (own) *own = sobj->own;
-      if (flags & SWIG_POINTER_DISOWN) {
-       sobj->own = 0;
+        swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
+        if (!tc) {
+          sobj = (SwigPyObject *)sobj->next;
+        } else {
+          if (ptr) {
+            int newmemory = 0;
+            *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
+            if (newmemory == SWIG_CAST_NEW_MEMORY) {
+              assert(own); /* badly formed typemap which will lead to a memory leak - it must set and use own to delete *ptr */
+              if (own)
+                *own = *own | SWIG_CAST_NEW_MEMORY;
+            }
+          }
+          break;
+        }
       }
-      return SWIG_OK;
     } else {
-      int res = SWIG_ERROR;
-      if (flags & SWIG_POINTER_IMPLICIT_CONV) {
-       PySwigClientData *data = ty ? (PySwigClientData *) ty->clientdata : 0;
-       if (data && !data->implicitconv) {
-         PyObject *klass = data->klass;
-         if (klass) {
-           PyObject *impconv;
-           data->implicitconv = 1; /* avoid recursion and call 'explicit' constructors*/
-           impconv = SWIG_Python_CallFunctor(klass, obj);
-           data->implicitconv = 0;
-           if (PyErr_Occurred()) {
-             PyErr_Clear();
-             impconv = 0;
-           }
-           if (impconv) {
-             PySwigObject *iobj = SWIG_Python_GetSwigThis(impconv);
-             if (iobj) {
-               void *vptr;
-               res = SWIG_Python_ConvertPtrAndOwn((PyObject*)iobj, &vptr, ty, 0, 0);
-               if (SWIG_IsOK(res)) {
-                 if (ptr) {
-                   *ptr = vptr;
-                   /* transfer the ownership to 'ptr' */
-                   iobj->own = 0;
-                   res = SWIG_AddCast(res);
-                   res = SWIG_AddNewMask(res);
-                 } else {
-                   res = SWIG_AddCast(res);                
-                 }
-               }
-             }
-             Py_DECREF(impconv);
-           }
-         }
-       }
+      if (ptr) *ptr = vptr;
+      break;
+    }
+  }
+  if (sobj) {
+    if (own)
+      *own = *own | sobj->own;
+    if (flags & SWIG_POINTER_DISOWN) {
+      sobj->own = 0;
+    }
+    res = SWIG_OK;
+  } else {
+    if (implicit_conv) {
+      SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0;
+      if (data && !data->implicitconv) {
+        PyObject *klass = data->klass;
+        if (klass) {
+          PyObject *impconv;
+          data->implicitconv = 1; /* avoid recursion and call 'explicit' constructors*/
+          impconv = SWIG_Python_CallFunctor(klass, obj);
+          data->implicitconv = 0;
+          if (PyErr_Occurred()) {
+            PyErr_Clear();
+            impconv = 0;
+          }
+          if (impconv) {
+            SwigPyObject *iobj = SWIG_Python_GetSwigThis(impconv);
+            if (iobj) {
+              void *vptr;
+              res = SWIG_Python_ConvertPtrAndOwn((PyObject*)iobj, &vptr, ty, 0, 0);
+              if (SWIG_IsOK(res)) {
+                if (ptr) {
+                  *ptr = vptr;
+                  /* transfer the ownership to 'ptr' */
+                  iobj->own = 0;
+                  res = SWIG_AddCast(res);
+                  res = SWIG_AddNewMask(res);
+                } else {
+                  res = SWIG_AddCast(res);                 
+                }
+              }
+            }
+            Py_DECREF(impconv);
+          }
+        }
       }
-      return res;
+    }
+    if (!SWIG_IsOK(res) && obj == Py_None) {
+      if (ptr)
+        *ptr = 0;
+      if (PyErr_Occurred())
+        PyErr_Clear();
+      res = SWIG_OK;
     }
   }
+  return res;
 }
 
 /* Convert a function ptr value */
@@ -2056,14 +2458,19 @@ SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) {
     /* here we get the method pointer for callbacks */
     const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc);
     const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0;
-    if (desc) {
+    if (desc)
       desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0;
-      if (!desc) return SWIG_ERROR;
-    }
+    if (!desc) 
+      return SWIG_ERROR;
     if (ty) {
       swig_cast_info *tc = SWIG_TypeCheck(desc,ty);
-      if (!tc) return SWIG_ERROR;
-      *ptr = SWIG_TypeCast(tc,vptr);
+      if (tc) {
+        int newmemory = 0;
+        *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
+        assert(!newmemory); /* newmemory handling not yet implemented */
+      } else {
+        return SWIG_ERROR;
+      }
     } else {
       *ptr = vptr;
     }
@@ -2075,7 +2482,7 @@ SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) {
 
 SWIGRUNTIME int
 SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty) {
-  swig_type_info *to = PySwigPacked_UnpackData(obj, ptr, sz);
+  swig_type_info *to = SwigPyPacked_UnpackData(obj, ptr, sz);
   if (!to) return SWIG_ERROR;
   if (ty) {
     if (to != ty) {
@@ -2092,12 +2499,12 @@ SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *t
  * ----------------------------------------------------------------------------- */
 
 /*
-  Create a new instance object, whitout calling __init__, and set the
+  Create a new instance object, without calling __init__, and set the
   'this' attribute.
 */
 
 SWIGRUNTIME PyObject* 
-SWIG_Python_NewShadowInstance(PySwigClientData *data, PyObject *swig_this)
+SWIG_Python_NewShadowInstance(SwigPyClientData *data, PyObject *swig_this)
 {
 #if (PY_VERSION_HEX >= 0x02020000)
   PyObject *inst = 0;
@@ -2121,19 +2528,31 @@ SWIG_Python_NewShadowInstance(PySwigClientData *data, PyObject *swig_this)
 #endif
     }
   } else {
+#if PY_VERSION_HEX >= 0x03000000
+    inst = ((PyTypeObject*) data->newargs)->tp_new((PyTypeObject*) data->newargs, Py_None, Py_None);
+    if (inst) {
+      PyObject_SetAttr(inst, SWIG_This(), swig_this);
+      Py_TYPE(inst)->tp_flags &= ~Py_TPFLAGS_VALID_VERSION_TAG;
+    }
+#else
     PyObject *dict = PyDict_New();
-    PyDict_SetItem(dict, SWIG_This(), swig_this);
-    inst = PyInstance_NewRaw(data->newargs, dict);
-    Py_DECREF(dict);
+    if (dict) {
+      PyDict_SetItem(dict, SWIG_This(), swig_this);
+      inst = PyInstance_NewRaw(data->newargs, dict);
+      Py_DECREF(dict);
+    }
+#endif
   }
   return inst;
 #else
 #if (PY_VERSION_HEX >= 0x02010000)
-  PyObject *inst;
+  PyObject *inst = 0;
   PyObject *dict = PyDict_New();
-  PyDict_SetItem(dict, SWIG_This(), swig_this);
-  inst = PyInstance_NewRaw(data->newargs, dict);
-  Py_DECREF(dict);
+  if (dict) {
+    PyDict_SetItem(dict, SWIG_This(), swig_this);
+    inst = PyInstance_NewRaw(data->newargs, dict);
+    Py_DECREF(dict);
+  }
   return (PyObject *) inst;
 #else
   PyInstanceObject *inst = PyObject_NEW(PyInstanceObject, &PyInstance_Type);
@@ -2184,12 +2603,12 @@ SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this)
 SWIGINTERN PyObject *
 SWIG_Python_InitShadowInstance(PyObject *args) {
   PyObject *obj[2];
-  if (!SWIG_Python_UnpackTuple(args,(char*)"swiginit", 2, 2, obj)) {
+  if (!SWIG_Python_UnpackTuple(args, "swiginit", 2, 2, obj)) {
     return NULL;
   } else {
-    PySwigObject *sthis = SWIG_Python_GetSwigThis(obj[0]);
+    SwigPyObject *sthis = SWIG_Python_GetSwigThis(obj[0]);
     if (sthis) {
-      PySwigObject_append((PyObject*) sthis, obj[1]);
+      SwigPyObject_append((PyObject*) sthis, obj[1]);
     } else {
       SWIG_Python_SetSwigThis(obj[0], obj[1]);
     }
@@ -2200,29 +2619,62 @@ SWIG_Python_InitShadowInstance(PyObject *args) {
 /* Create a new pointer object */
 
 SWIGRUNTIME PyObject *
-SWIG_Python_NewPointerObj(void *ptr, swig_type_info *type, int flags) {
-  if (!ptr) {
+SWIG_Python_NewPointerObj(PyObject *self, void *ptr, swig_type_info *type, int flags) {
+  SwigPyClientData *clientdata;
+  PyObject * robj;
+  int own;
+
+  if (!ptr)
     return SWIG_Py_Void();
-  } else {
-    int own = (flags & SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0;
-    PyObject *robj = PySwigObject_New(ptr, type, own);
-    PySwigClientData *clientdata = type ? (PySwigClientData *)(type->clientdata) : 0;
-    if (clientdata && !(flags & SWIG_POINTER_NOSHADOW)) {
-      PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj);
-      if (inst) {
-       Py_DECREF(robj);
-       robj = inst;
+
+  clientdata = type ? (SwigPyClientData *)(type->clientdata) : 0;
+  own = (flags & SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0;
+  if (clientdata && clientdata->pytype) {
+    SwigPyObject *newobj;
+    if (flags & SWIG_BUILTIN_TP_INIT) {
+      newobj = (SwigPyObject*) self;
+      if (newobj->ptr) {
+        PyObject *next_self = clientdata->pytype->tp_alloc(clientdata->pytype, 0);
+        while (newobj->next)
+         newobj = (SwigPyObject *) newobj->next;
+        newobj->next = next_self;
+        newobj = (SwigPyObject *)next_self;
+#ifdef SWIGPYTHON_BUILTIN
+        newobj->dict = 0;
+#endif
       }
+    } else {
+      newobj = PyObject_New(SwigPyObject, clientdata->pytype);
+#ifdef SWIGPYTHON_BUILTIN
+      newobj->dict = 0;
+#endif
     }
-    return robj;
+    if (newobj) {
+      newobj->ptr = ptr;
+      newobj->ty = type;
+      newobj->own = own;
+      newobj->next = 0;
+      return (PyObject*) newobj;
+    }
+    return SWIG_Py_Void();
   }
+
+  assert(!(flags & SWIG_BUILTIN_TP_INIT));
+
+  robj = SwigPyObject_New(ptr, type, own);
+  if (robj && clientdata && !(flags & SWIG_POINTER_NOSHADOW)) {
+    PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj);
+    Py_DECREF(robj);
+    robj = inst;
+  }
+  return robj;
 }
 
 /* Create a new packed object */
 
 SWIGRUNTIMEINLINE PyObject *
 SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type) {
-  return ptr ? PySwigPacked_New((void *) ptr, sz, type) : SWIG_Py_Void();
+  return ptr ? SwigPyPacked_New((void *) ptr, sz, type) : SWIG_Py_Void();
 }
 
 /* -----------------------------------------------------------------------------*
@@ -2234,15 +2686,19 @@ void *SWIG_ReturnGlobalTypeList(void *);
 #endif
 
 SWIGRUNTIME swig_module_info *
-SWIG_Python_GetModule(void) {
+SWIG_Python_GetModule(void *SWIGUNUSEDPARM(clientdata)) {
   static void *type_pointer = (void *)0;
   /* first check if module already created */
   if (!type_pointer) {
 #ifdef SWIG_LINK_RUNTIME
     type_pointer = SWIG_ReturnGlobalTypeList((void *)0);
 #else
+# ifdef SWIGPY_USE_CAPSULE
+    type_pointer = PyCapsule_Import(SWIGPY_CAPSULE_NAME, 0);
+# else
     type_pointer = PyCObject_Import((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION,
                                    (char*)"type_pointer" SWIG_TYPE_TABLE_NAME);
+# endif
     if (PyErr_Occurred()) {
       PyErr_Clear();
       type_pointer = (void *)0;
@@ -2260,13 +2716,11 @@ PyModule_AddObject(PyObject *m, char *name, PyObject *o)
 {
   PyObject *dict;
   if (!PyModule_Check(m)) {
-    PyErr_SetString(PyExc_TypeError,
-                   "PyModule_AddObject() needs module as first arg");
+    PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs module as first arg");
     return SWIG_ERROR;
   }
   if (!o) {
-    PyErr_SetString(PyExc_TypeError,
-                   "PyModule_AddObject() needs non-NULL value");
+    PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs non-NULL value");
     return SWIG_ERROR;
   }
   
@@ -2285,33 +2739,54 @@ PyModule_AddObject(PyObject *m, char *name, PyObject *o)
 #endif
 
 SWIGRUNTIME void
+#ifdef SWIGPY_USE_CAPSULE
+SWIG_Python_DestroyModule(PyObject *obj)
+#else
 SWIG_Python_DestroyModule(void *vptr)
+#endif
 {
+#ifdef SWIGPY_USE_CAPSULE
+  swig_module_info *swig_module = (swig_module_info *) PyCapsule_GetPointer(obj, SWIGPY_CAPSULE_NAME);
+#else
   swig_module_info *swig_module = (swig_module_info *) vptr;
+#endif
   swig_type_info **types = swig_module->types;
   size_t i;
   for (i =0; i < swig_module->size; ++i) {
     swig_type_info *ty = types[i];
     if (ty->owndata) {
-      PySwigClientData *data = (PySwigClientData *) ty->clientdata;
-      if (data) PySwigClientData_Del(data);
+      SwigPyClientData *data = (SwigPyClientData *) ty->clientdata;
+      if (data) SwigPyClientData_Del(data);
     }
   }
   Py_DECREF(SWIG_This());
+  swig_this = NULL;
 }
 
 SWIGRUNTIME void
 SWIG_Python_SetModule(swig_module_info *swig_module) {
-  static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} };/* Sentinel */
-
-  PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION,
-                                  swig_empty_runtime_method_table);
+#if PY_VERSION_HEX >= 0x03000000
+ /* Add a dummy module object into sys.modules */
+  PyObject *module = PyImport_AddModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION);
+#else
+  static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} }; /* Sentinel */
+  PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, swig_empty_runtime_method_table);
+#endif
+#ifdef SWIGPY_USE_CAPSULE
+  PyObject *pointer = PyCapsule_New((void *) swig_module, SWIGPY_CAPSULE_NAME, SWIG_Python_DestroyModule);
+  if (pointer && module) {
+    PyModule_AddObject(module, (char*)"type_pointer_capsule" SWIG_TYPE_TABLE_NAME, pointer);
+  } else {
+    Py_XDECREF(pointer);
+  }
+#else
   PyObject *pointer = PyCObject_FromVoidPtr((void *) swig_module, SWIG_Python_DestroyModule);
   if (pointer && module) {
     PyModule_AddObject(module, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME, pointer);
   } else {
     Py_XDECREF(pointer);
   }
+#endif
 }
 
 /* The python cached type query */
@@ -2325,16 +2800,24 @@ SWIGRUNTIME swig_type_info *
 SWIG_Python_TypeQuery(const char *type)
 {
   PyObject *cache = SWIG_Python_TypeCache();
-  PyObject *key = PyString_FromString(type); 
+  PyObject *key = SWIG_Python_str_FromChar(type); 
   PyObject *obj = PyDict_GetItem(cache, key);
   swig_type_info *descriptor;
   if (obj) {
+#ifdef SWIGPY_USE_CAPSULE
+    descriptor = (swig_type_info *) PyCapsule_GetPointer(obj, NULL);
+#else
     descriptor = (swig_type_info *) PyCObject_AsVoidPtr(obj);
+#endif
   } else {
-    swig_module_info *swig_module = SWIG_Python_GetModule();
+    swig_module_info *swig_module = SWIG_GetModule(0);
     descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type);
     if (descriptor) {
+#ifdef SWIGPY_USE_CAPSULE
+      obj = PyCapsule_New((void*) descriptor, NULL, NULL);
+#else
       obj = PyCObject_FromVoidPtr(descriptor, NULL);
+#endif
       PyDict_SetItem(cache, key, obj);
       Py_DECREF(obj);
     }
@@ -2352,21 +2835,23 @@ SWIG_Python_TypeQuery(const char *type)
 
 SWIGRUNTIME int
 SWIG_Python_AddErrMesg(const char* mesg, int infront)
-{
+{  
   if (PyErr_Occurred()) {
     PyObject *type = 0;
     PyObject *value = 0;
     PyObject *traceback = 0;
     PyErr_Fetch(&type, &value, &traceback);
     if (value) {
+      char *tmp;
       PyObject *old_str = PyObject_Str(value);
       Py_XINCREF(type);
       PyErr_Clear();
       if (infront) {
-       PyErr_Format(type, "%s %s", mesg, PyString_AsString(old_str));
+       PyErr_Format(type, "%s %s", mesg, tmp = SWIG_Python_str_AsChar(old_str));
       } else {
-       PyErr_Format(type, "%s %s", PyString_AsString(old_str), mesg);
+       PyErr_Format(type, "%s %s", tmp = SWIG_Python_str_AsChar(old_str), mesg);
       }
+      SWIG_Python_str_DelForPy3(tmp);
       Py_DECREF(old_str);
     }
     return 1;
@@ -2389,11 +2874,11 @@ SWIG_Python_ArgFail(int argnum)
 }
 
 SWIGRUNTIMEINLINE const char *
-PySwigObject_GetDesc(PyObject *self)
+SwigPyObject_GetDesc(PyObject *self)
 {
-  PySwigObject *v = (PySwigObject *)self;
+  SwigPyObject *v = (SwigPyObject *)self;
   swig_type_info *ty = v ? v->ty : 0;
-  return ty ? ty->str : (char*)"";
+  return ty ? ty->str : "";
 }
 
 SWIGRUNTIME void
@@ -2401,10 +2886,10 @@ SWIG_Python_TypeError(const char *type, PyObject *obj)
 {
   if (type) {
 #if defined(SWIG_COBJECT_TYPES)
-    if (obj && PySwigObject_Check(obj)) {
-      const char *otype = (const char *) PySwigObject_GetDesc(obj);
+    if (obj && SwigPyObject_Check(obj)) {
+      const char *otype = (const char *) SwigPyObject_GetDesc(obj);
       if (otype) {
-       PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'PySwigObject(%s)' is received",
+       PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'SwigPyObject(%s)' is received",
                     type, otype);
        return;
       }
@@ -2414,10 +2899,11 @@ SWIG_Python_TypeError(const char *type, PyObject *obj)
       const char *otype = (obj ? obj->ob_type->tp_name : 0); 
       if (otype) {
        PyObject *str = PyObject_Str(obj);
-       const char *cstr = str ? PyString_AsString(str) : 0;
+       const char *cstr = str ? SWIG_Python_str_AsChar(str) : 0;
        if (cstr) {
          PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received",
                       type, otype, cstr);
+          SWIG_Python_str_DelForPy3(cstr);
        } else {
          PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received",
                       type, otype);
@@ -2435,23 +2921,75 @@ SWIG_Python_TypeError(const char *type, PyObject *obj)
 
 /* Convert a pointer value, signal an exception on a type mismatch */
 SWIGRUNTIME void *
-SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags) {
+SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int SWIGUNUSEDPARM(argnum), int flags) {
   void *result;
   if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) {
     PyErr_Clear();
-    if (flags & SWIG_POINTER_EXCEPTION) {
+#if SWIG_POINTER_EXCEPTION
+    if (flags) {
       SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj);
       SWIG_Python_ArgFail(argnum);
     }
+#endif
   }
   return result;
 }
 
+#ifdef SWIGPYTHON_BUILTIN
+SWIGRUNTIME int
+SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) {
+  PyTypeObject *tp = obj->ob_type;
+  PyObject *descr;
+  PyObject *encoded_name;
+  descrsetfunc f;
+  int res = -1;
+
+# ifdef Py_USING_UNICODE
+  if (PyString_Check(name)) {
+    name = PyUnicode_Decode(PyString_AsString(name), PyString_Size(name), NULL, NULL);
+    if (!name)
+      return -1;
+  } else if (!PyUnicode_Check(name))
+# else
+  if (!PyString_Check(name))
+# endif
+  {
+    PyErr_Format(PyExc_TypeError, "attribute name must be string, not '%.200s'", name->ob_type->tp_name);
+    return -1;
+  } else {
+    Py_INCREF(name);
+  }
 
-#ifdef __cplusplus
-#if 0
-{ /* cc-mode */
+  if (!tp->tp_dict) {
+    if (PyType_Ready(tp) < 0)
+      goto done;
+  }
+
+  descr = _PyType_Lookup(tp, name);
+  f = NULL;
+  if (descr != NULL)
+    f = descr->ob_type->tp_descr_set;
+  if (!f) {
+    if (PyString_Check(name)) {
+      encoded_name = name;
+      Py_INCREF(name);
+    } else {
+      encoded_name = PyUnicode_AsUTF8String(name);
+    }
+    PyErr_Format(PyExc_AttributeError, "'%.100s' object has no attribute '%.200s'", tp->tp_name, PyString_AsString(encoded_name));
+    Py_DECREF(encoded_name);
+  } else {
+    res = f(descr, obj, value);
+  }
+  
+  done:
+  Py_DECREF(name);
+  return res;
+}
 #endif
+
+
+#ifdef __cplusplus
 }
 #endif
 
@@ -2476,58 +3014,54 @@ SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags)
 #define SWIGTYPE_p_Hex__EltBase swig_types[5]
 #define SWIGTYPE_p_Hex__Group swig_types[6]
 #define SWIGTYPE_p_Hex__Hex swig_types[7]
-#define SWIGTYPE_p_Hex__Hex__EltBase swig_types[8]
-#define SWIGTYPE_p_Hex__Hexa swig_types[9]
-#define SWIGTYPE_p_Hex__Law swig_types[10]
-#define SWIGTYPE_p_Hex__NewShape swig_types[11]
-#define SWIGTYPE_p_Hex__Propagation swig_types[12]
-#define SWIGTYPE_p_Hex__Quad swig_types[13]
-#define SWIGTYPE_p_Hex__Shape swig_types[14]
-#define SWIGTYPE_p_Hex__Vector swig_types[15]
-#define SWIGTYPE_p_Hex__Vertex swig_types[16]
-#define SWIGTYPE_p_Hex__XmlWriter swig_types[17]
-#define SWIGTYPE_p_a_Hex__DIM3__double swig_types[18]
-#define SWIGTYPE_p_allocator_type swig_types[19]
-#define SWIGTYPE_p_char swig_types[20]
-#define SWIGTYPE_p_const_reference swig_types[21]
-#define SWIGTYPE_p_difference_type swig_types[22]
-#define SWIGTYPE_p_double swig_types[23]
-#define SWIGTYPE_p_int swig_types[24]
-#define SWIGTYPE_p_p_PyObject swig_types[25]
-#define SWIGTYPE_p_reference swig_types[26]
-#define SWIGTYPE_p_size_type swig_types[27]
-#define SWIGTYPE_p_std__invalid_argument swig_types[28]
-#define SWIGTYPE_p_std__vectorTHex__AssoEdge_p_std__allocatorTHex__AssoEdge_p_t_t swig_types[29]
-#define SWIGTYPE_p_std__vectorTHex__EdgeShape_p_std__allocatorTHex__EdgeShape_p_t_t swig_types[30]
-#define SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t swig_types[31]
-#define SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__allocator_type swig_types[32]
-#define SWIGTYPE_p_std__vectorTHex__EltBase_p_std__allocatorTHex__EltBase_p_t_t swig_types[33]
-#define SWIGTYPE_p_std__vectorTHex__FaceShape_p_std__allocatorTHex__FaceShape_p_t_t swig_types[34]
-#define SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t swig_types[35]
-#define SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__allocator_type swig_types[36]
-#define SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t swig_types[37]
-#define SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__allocator_type swig_types[38]
-#define SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t swig_types[39]
-#define SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__allocator_type swig_types[40]
-#define SWIGTYPE_p_std__vectorTHex__Shape_p_std__allocatorTHex__Shape_p_t_t swig_types[41]
-#define SWIGTYPE_p_std__vectorTHex__SubShape_p_std__allocatorTHex__SubShape_p_t_t swig_types[42]
-#define SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t swig_types[43]
-#define SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__allocator_type swig_types[44]
-#define SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t swig_types[45]
-#define SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t__allocator_type swig_types[46]
-#define SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t swig_types[47]
-#define SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t__allocator_type swig_types[48]
-#define SWIGTYPE_p_std__vectorTstd__string_std__allocatorTstd__string_t_t swig_types[49]
-#define SWIGTYPE_p_string swig_types[50]
-#define SWIGTYPE_p_swig__PySwigIterator swig_types[51]
-#define SWIGTYPE_p_value_type swig_types[52]
-#define SWIGTYPE_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type swig_types[53]
-#define SWIGTYPE_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type swig_types[54]
-#define SWIGTYPE_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type swig_types[55]
-#define SWIGTYPE_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type swig_types[56]
-#define SWIGTYPE_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type swig_types[57]
-static swig_type_info *swig_types[59];
-static swig_module_info swig_module = {swig_types, 58, 0, 0, 0, 0};
+#define SWIGTYPE_p_Hex__Hex__Elements swig_types[8]
+#define SWIGTYPE_p_Hex__Hex__EltBase swig_types[9]
+#define SWIGTYPE_p_Hex__Hexa swig_types[10]
+#define SWIGTYPE_p_Hex__Law swig_types[11]
+#define SWIGTYPE_p_Hex__NewShape swig_types[12]
+#define SWIGTYPE_p_Hex__Propagation swig_types[13]
+#define SWIGTYPE_p_Hex__Quad swig_types[14]
+#define SWIGTYPE_p_Hex__Shape swig_types[15]
+#define SWIGTYPE_p_Hex__Vector swig_types[16]
+#define SWIGTYPE_p_Hex__Vertex swig_types[17]
+#define SWIGTYPE_p_Hex__XmlWriter swig_types[18]
+#define SWIGTYPE_p_a_Hex__DIM3__double swig_types[19]
+#define SWIGTYPE_p_allocator_type swig_types[20]
+#define SWIGTYPE_p_char swig_types[21]
+#define SWIGTYPE_p_const_reference swig_types[22]
+#define SWIGTYPE_p_difference_type swig_types[23]
+#define SWIGTYPE_p_double swig_types[24]
+#define SWIGTYPE_p_int swig_types[25]
+#define SWIGTYPE_p_p_PyObject swig_types[26]
+#define SWIGTYPE_p_reference swig_types[27]
+#define SWIGTYPE_p_size_type swig_types[28]
+#define SWIGTYPE_p_std__allocatorT_Hex__Edge_p_t swig_types[29]
+#define SWIGTYPE_p_std__allocatorT_Hex__Hexa_p_t swig_types[30]
+#define SWIGTYPE_p_std__allocatorT_Hex__NewShape_p_t swig_types[31]
+#define SWIGTYPE_p_std__allocatorT_Hex__Quad_p_t swig_types[32]
+#define SWIGTYPE_p_std__allocatorT_Hex__Vertex_p_t swig_types[33]
+#define SWIGTYPE_p_std__allocatorT_double_t swig_types[34]
+#define SWIGTYPE_p_std__allocatorT_int_t swig_types[35]
+#define SWIGTYPE_p_std__invalid_argument swig_types[36]
+#define SWIGTYPE_p_std__vectorT_Hex__AssoEdge_p_std__allocatorT_Hex__AssoEdge_p_t_t swig_types[37]
+#define SWIGTYPE_p_std__vectorT_Hex__EdgeShape_p_std__allocatorT_Hex__EdgeShape_p_t_t swig_types[38]
+#define SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t swig_types[39]
+#define SWIGTYPE_p_std__vectorT_Hex__EltBase_p_std__allocatorT_Hex__EltBase_p_t_t swig_types[40]
+#define SWIGTYPE_p_std__vectorT_Hex__FaceShape_p_std__allocatorT_Hex__FaceShape_p_t_t swig_types[41]
+#define SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t swig_types[42]
+#define SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t swig_types[43]
+#define SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t swig_types[44]
+#define SWIGTYPE_p_std__vectorT_Hex__Shape_p_std__allocatorT_Hex__Shape_p_t_t swig_types[45]
+#define SWIGTYPE_p_std__vectorT_Hex__SubShape_p_std__allocatorT_Hex__SubShape_p_t_t swig_types[46]
+#define SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t swig_types[47]
+#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[48]
+#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[49]
+#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[50]
+#define SWIGTYPE_p_string swig_types[51]
+#define SWIGTYPE_p_swig__SwigPyIterator swig_types[52]
+#define SWIGTYPE_p_value_type swig_types[53]
+static swig_type_info *swig_types[55];
+static swig_module_info swig_module = {swig_types, 54, 0, 0, 0, 0};
 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
 
@@ -2542,11 +3076,16 @@ static swig_module_info swig_module = {swig_types, 58, 0, 0, 0, 0};
 /*-----------------------------------------------
               @(target):= _hexablock_swig.so
   ------------------------------------------------*/
-#define SWIG_init    init_hexablock_swig
+#if PY_VERSION_HEX >= 0x03000000
+#  define SWIG_init    PyInit__hexablock_swig
 
+#else
+#  define SWIG_init    init_hexablock_swig
+
+#endif
 #define SWIG_name    "_hexablock_swig"
 
-#define SWIGVERSION 0x010331 
+#define SWIGVERSION 0x030012 
 #define SWIG_VERSION SWIGVERSION
 
 
@@ -2558,36 +3097,46 @@ static swig_module_info swig_module = {swig_types, 58, 0, 0, 0, 0};
 
 
 namespace swig {
-  class PyObject_ptr {
+  class SwigPtr_PyObject {
   protected:
     PyObject *_obj;
 
   public:
-    PyObject_ptr() :_obj(0)
+    SwigPtr_PyObject() :_obj(0)
     {
     }
 
-    PyObject_ptr(const PyObject_ptr& item) : _obj(item._obj)
+    SwigPtr_PyObject(const SwigPtr_PyObject& item) : _obj(item._obj)
     {
+      SWIG_PYTHON_THREAD_BEGIN_BLOCK;
       Py_XINCREF(_obj);      
+      SWIG_PYTHON_THREAD_END_BLOCK;
     }
     
-    PyObject_ptr(PyObject *obj, bool initial_ref = true) :_obj(obj)
+    SwigPtr_PyObject(PyObject *obj, bool initial_ref = true) :_obj(obj)
     {
-      if (initial_ref) Py_XINCREF(_obj);
+      if (initial_ref) {
+        SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+        Py_XINCREF(_obj);
+        SWIG_PYTHON_THREAD_END_BLOCK;
+      }
     }
     
-    PyObject_ptr & operator=(const PyObject_ptr& item) 
+    SwigPtr_PyObject & operator=(const SwigPtr_PyObject& item) 
     {
+      SWIG_PYTHON_THREAD_BEGIN_BLOCK;
       Py_XINCREF(item._obj);
       Py_XDECREF(_obj);
       _obj = item._obj;
+      SWIG_PYTHON_THREAD_END_BLOCK;
       return *this;      
     }
     
-    ~PyObject_ptr() 
+    ~SwigPtr_PyObject() 
     {
+      SWIG_PYTHON_THREAD_BEGIN_BLOCK;
       Py_XDECREF(_obj);
+      SWIG_PYTHON_THREAD_END_BLOCK;
     }
     
     operator PyObject *() const
@@ -2604,10 +3153,10 @@ namespace swig {
 
 
 namespace swig {
-  struct PyObject_var : PyObject_ptr {
-    PyObject_var(PyObject* obj = 0) : PyObject_ptr(obj, false) { }
+  struct SwigVar_PyObject : SwigPtr_PyObject {
+    SwigVar_PyObject(PyObject* obj = 0) : SwigPtr_PyObject(obj, false) { }
     
-    PyObject_var & operator = (PyObject* obj)
+    SwigVar_PyObject & operator = (PyObject* obj)
     {
       Py_XDECREF(_obj);
       _obj = obj;
@@ -2633,17 +3182,17 @@ namespace swig {
 
 #include <iostream>
 
+#if PY_VERSION_HEX >= 0x03020000
+# define SWIGPY_SLICE_ARG(obj) ((PyObject*) (obj))
+#else
+# define SWIGPY_SLICE_ARG(obj) ((PySliceObject*) (obj))
+#endif
+
 
+#include <typeinfo>
 #include <stdexcept>
 
 
-  
-#if defined(__SUNPRO_CC) && defined(_RWSTD_VER)
-#  define SWIG_STD_NOASSIGN_STL
-#  define SWIG_STD_NOINSERT_TEMPLATE_STL
-#  define SWIG_STD_NOITERATOR_TRAITS_STL
-#endif
-
 #if defined(__GNUC__)
 #  if __GNUC__ == 2 && __GNUC_MINOR <= 96
 #     define SWIG_STD_NOMODERN_STL
@@ -2651,103 +3200,114 @@ namespace swig {
 #endif
 
 
+#include <string>
 
 
-#include <string>
-#include <stdexcept>
+#include <stddef.h>
+
 
-  
 namespace swig {
   struct stop_iteration {
   };
 
-  struct PySwigIterator {
+  struct SwigPyIterator {
   private:
-    PyObject_ptr _seq;
+    SwigPtr_PyObject _seq;
 
   protected:
-    PySwigIterator(PyObject *seq) : _seq(seq)
+    SwigPyIterator(PyObject *seq) : _seq(seq)
     {
     }
       
   public:
-    virtual ~PySwigIterator() {}
+    virtual ~SwigPyIterator() {}
 
     // Access iterator method, required by Python
     virtual PyObject *value() const = 0;
 
     // Forward iterator method, required by Python
-    virtual PySwigIterator *incr(size_t n = 1) = 0;
+    virtual SwigPyIterator *incr(size_t n = 1) = 0;
     
     // Backward iterator method, very common in C++, but not required in Python
-    virtual PySwigIterator *decr(size_t n = 1)
+    virtual SwigPyIterator *decr(size_t /*n*/ = 1)
     {
       throw stop_iteration();
     }
 
     // Random access iterator methods, but not required in Python
-    virtual ptrdiff_t distance(const PySwigIterator &x) const
+    virtual ptrdiff_t distance(const SwigPyIterator &/*x*/) const
     {
       throw std::invalid_argument("operation not supported");
     }
 
-    virtual bool equal (const PySwigIterator &x) const
+    virtual bool equal (const SwigPyIterator &/*x*/) const
     {
       throw std::invalid_argument("operation not supported");
     }
     
     // C++ common/needed methods
-    virtual PySwigIterator *copy() const = 0;
+    virtual SwigPyIterator *copy() const = 0;
 
-    PyObject *next()
+    PyObject *next()     
     {
+      SWIG_PYTHON_THREAD_BEGIN_BLOCK; // disable threads       
       PyObject *obj = value();
-      incr();
-      return obj;
+      incr();       
+      SWIG_PYTHON_THREAD_END_BLOCK; // re-enable threads
+      return obj;     
+    }
+
+    /* Make an alias for Python 3.x */
+    PyObject *__next__()
+    {
+      return next();
     }
 
     PyObject *previous()
     {
+      SWIG_PYTHON_THREAD_BEGIN_BLOCK; // disable threads       
       decr();
-      return value();
+      PyObject *obj = value();
+      SWIG_PYTHON_THREAD_END_BLOCK; // re-enable threads       
+      return obj;
     }
 
-    PySwigIterator *advance(ptrdiff_t n)
+    SwigPyIterator *advance(ptrdiff_t n)
     {
       return  (n > 0) ?  incr(n) : decr(-n);
     }
       
-    bool operator == (const PySwigIterator& x)  const
+    bool operator == (const SwigPyIterator& x)  const
     {
       return equal(x);
     }
       
-    bool operator != (const PySwigIterator& x) const
+    bool operator != (const SwigPyIterator& x) const
     {
       return ! operator==(x);
     }
       
-    PySwigIterator& operator += (ptrdiff_t n)
+    SwigPyIterator& operator += (ptrdiff_t n)
     {
       return *advance(n);
     }
 
-    PySwigIterator& operator -= (ptrdiff_t n)
+    SwigPyIterator& operator -= (ptrdiff_t n)
     {
       return *advance(-n);
     }
       
-    PySwigIterator* operator + (ptrdiff_t n) const
+    SwigPyIterator* operator + (ptrdiff_t n) const
     {
       return copy()->advance(n);
     }
 
-    PySwigIterator* operator - (ptrdiff_t n) const
+    SwigPyIterator* operator - (ptrdiff_t n) const
     {
       return copy()->advance(-n);
     }
       
-    ptrdiff_t operator - (const PySwigIterator& x) const
+    ptrdiff_t operator - (const SwigPyIterator& x) const
     {
       return x.distance(*this);
     }
@@ -2756,12 +3316,20 @@ namespace swig {
       static int init = 0;
       static swig_type_info* desc = 0;
       if (!init) {
-       desc = SWIG_TypeQuery("swig::PySwigIterator *");
+       desc = SWIG_TypeQuery("swig::SwigPyIterator *");
        init = 1;
       }        
       return desc;
     }    
   };
+
+#if defined(SWIGPYTHON_BUILTIN)
+  inline PyObject* make_output_iterator_builtin (PyObject *pyself)
+  {
+    Py_INCREF(pyself);
+    return pyself;
+  }
+#endif
 }
 
 
@@ -2772,9 +3340,11 @@ SWIG_AsVal_double (PyObject *obj, double *val)
   if (PyFloat_Check(obj)) {
     if (val) *val = PyFloat_AsDouble(obj);
     return SWIG_OK;
+#if PY_VERSION_HEX < 0x03000000
   } else if (PyInt_Check(obj)) {
-    if (val) *val = PyInt_AsLong(obj);
+    if (val) *val = (double) PyInt_AsLong(obj);
     return SWIG_OK;
+#endif
   } else if (PyLong_Check(obj)) {
     double v = PyLong_AsDouble(obj);
     if (!PyErr_Occurred()) {
@@ -2848,6 +3418,7 @@ SWIG_CanCastAsInteger(double *d, double min, double max) {
 SWIGINTERN int
 SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val) 
 {
+#if PY_VERSION_HEX < 0x03000000
   if (PyInt_Check(obj)) {
     long v = PyInt_AsLong(obj);
     if (v >= 0) {
@@ -2856,13 +3427,16 @@ SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val)
     } else {
       return SWIG_OverflowError;
     }
-  } else if (PyLong_Check(obj)) {
+  } else
+#endif
+  if (PyLong_Check(obj)) {
     unsigned long v = PyLong_AsUnsignedLong(obj);
     if (!PyErr_Occurred()) {
       if (val) *val = v;
       return SWIG_OK;
     } else {
       PyErr_Clear();
+      return SWIG_OverflowError;
     }
   }
 #ifdef SWIG_PYTHON_CAST_MODE
@@ -2889,54 +3463,144 @@ SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val)
 }
 
 
-SWIGINTERNINLINE int
-SWIG_AsVal_size_t (PyObject * obj, size_t *val)
-{
-  unsigned long v;
-  int res = SWIG_AsVal_unsigned_SS_long (obj, val ? &v : 0);
-  if (SWIG_IsOK(res) && val) *val = static_cast< size_t >(v);
-  return res;
-}
-
-
-  #define SWIG_From_long   PyInt_FromLong 
-
-
-SWIGINTERNINLINE PyObject *
-SWIG_From_ptrdiff_t  (ptrdiff_t value)
-{    
-  return SWIG_From_long  (static_cast< long >(value));
-}
+#include <limits.h>
+#if !defined(SWIG_NO_LLONG_MAX)
+# if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__)
+#   define LLONG_MAX __LONG_LONG_MAX__
+#   define LLONG_MIN (-LLONG_MAX - 1LL)
+#   define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
+# endif
+#endif
 
 
-SWIGINTERNINLINE PyObject*
-  SWIG_From_bool  (bool value)
-{
-  return PyBool_FromLong(value ? 1 : 0);
-}
+#if defined(LLONG_MAX) && !defined(SWIG_LONG_LONG_AVAILABLE)
+#  define SWIG_LONG_LONG_AVAILABLE
+#endif
 
 
+#ifdef SWIG_LONG_LONG_AVAILABLE
 SWIGINTERN int
-SWIG_AsVal_long (PyObject *obj, long* val)
+SWIG_AsVal_unsigned_SS_long_SS_long (PyObject *obj, unsigned long long *val)
 {
-  if (PyInt_Check(obj)) {
-    if (val) *val = PyInt_AsLong(obj);
-    return SWIG_OK;
-  } else if (PyLong_Check(obj)) {
-    long v = PyLong_AsLong(obj);
+  int res = SWIG_TypeError;
+  if (PyLong_Check(obj)) {
+    unsigned long long v = PyLong_AsUnsignedLongLong(obj);
     if (!PyErr_Occurred()) {
       if (val) *val = v;
       return SWIG_OK;
     } else {
       PyErr_Clear();
+      res = SWIG_OverflowError;
+    }
+  } else {
+    unsigned long v;
+    res = SWIG_AsVal_unsigned_SS_long (obj,&v);
+    if (SWIG_IsOK(res)) {
+      if (val) *val = v;
+      return res;
     }
   }
 #ifdef SWIG_PYTHON_CAST_MODE
   {
-    int dispatch = 0;
-    long v = PyInt_AsLong(obj);
-    if (!PyErr_Occurred()) {
-      if (val) *val = v;
+    const double mant_max = 1LL << DBL_MANT_DIG;
+    double d;
+    res = SWIG_AsVal_double (obj,&d);
+    if (SWIG_IsOK(res) && !SWIG_CanCastAsInteger(&d, 0, mant_max))
+      return SWIG_OverflowError;
+    if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, mant_max)) {
+      if (val) *val = (unsigned long long)(d);
+      return SWIG_AddCast(res);
+    }
+    res = SWIG_TypeError;
+  }
+#endif
+  return res;
+}
+#endif
+
+
+SWIGINTERNINLINE int
+SWIG_AsVal_size_t (PyObject * obj, size_t *val)
+{
+  int res = SWIG_TypeError;
+#ifdef SWIG_LONG_LONG_AVAILABLE
+  if (sizeof(size_t) <= sizeof(unsigned long)) {
+#endif
+    unsigned long v;
+    res = SWIG_AsVal_unsigned_SS_long (obj, val ? &v : 0);
+    if (SWIG_IsOK(res) && val) *val = static_cast< size_t >(v);
+#ifdef SWIG_LONG_LONG_AVAILABLE
+  } else if (sizeof(size_t) <= sizeof(unsigned long long)) {
+    unsigned long long v;
+    res = SWIG_AsVal_unsigned_SS_long_SS_long (obj, val ? &v : 0);
+    if (SWIG_IsOK(res) && val) *val = static_cast< size_t >(v);
+  }
+#endif
+  return res;
+}
+
+
+  #define SWIG_From_long   PyInt_FromLong 
+
+
+#ifdef SWIG_LONG_LONG_AVAILABLE
+SWIGINTERNINLINE PyObject* 
+SWIG_From_long_SS_long  (long long value)
+{
+  return ((value < LONG_MIN) || (value > LONG_MAX)) ?
+    PyLong_FromLongLong(value) : PyInt_FromLong(static_cast< long >(value));
+}
+#endif
+
+
+SWIGINTERNINLINE PyObject *
+SWIG_From_ptrdiff_t  (ptrdiff_t value)
+{    
+#ifdef SWIG_LONG_LONG_AVAILABLE
+  if (sizeof(ptrdiff_t) <= sizeof(long)) {
+#endif
+    return SWIG_From_long  (static_cast< long >(value));
+#ifdef SWIG_LONG_LONG_AVAILABLE
+  } else {
+    /* assume sizeof(ptrdiff_t) <= sizeof(long long) */
+    return SWIG_From_long_SS_long  (static_cast< long long >(value));
+  }
+#endif
+}
+
+
+SWIGINTERNINLINE PyObject*
+  SWIG_From_bool  (bool value)
+{
+  return PyBool_FromLong(value ? 1 : 0);
+}
+
+
+SWIGINTERN int
+SWIG_AsVal_long (PyObject *obj, long* val)
+{
+#if PY_VERSION_HEX < 0x03000000
+  if (PyInt_Check(obj)) {
+    if (val) *val = PyInt_AsLong(obj);
+    return SWIG_OK;
+  } else
+#endif
+  if (PyLong_Check(obj)) {
+    long v = PyLong_AsLong(obj);
+    if (!PyErr_Occurred()) {
+      if (val) *val = v;
+      return SWIG_OK;
+    } else {
+      PyErr_Clear();
+      return SWIG_OverflowError;
+    }
+  }
+#ifdef SWIG_PYTHON_CAST_MODE
+  {
+    int dispatch = 0;
+    long v = PyInt_AsLong(obj);
+    if (!PyErr_Occurred()) {
+      if (val) *val = v;
       return SWIG_AddCast(SWIG_OK);
     } else {
       PyErr_Clear();
@@ -2955,17 +3619,67 @@ SWIG_AsVal_long (PyObject *obj, long* val)
 }
 
 
-SWIGINTERNINLINE int
-SWIG_AsVal_ptrdiff_t (PyObject * obj, ptrdiff_t *val)
+#ifdef SWIG_LONG_LONG_AVAILABLE
+SWIGINTERN int
+SWIG_AsVal_long_SS_long (PyObject *obj, long long *val)
 {
-  long v;
-  int res = SWIG_AsVal_long (obj, val ? &v : 0);
-  if (SWIG_IsOK(res) && val) *val = static_cast< ptrdiff_t >(v);
+  int res = SWIG_TypeError;
+  if (PyLong_Check(obj)) {
+    long long v = PyLong_AsLongLong(obj);
+    if (!PyErr_Occurred()) {
+      if (val) *val = v;
+      return SWIG_OK;
+    } else {
+      PyErr_Clear();
+      res = SWIG_OverflowError;
+    }
+  } else {
+    long v;
+    res = SWIG_AsVal_long (obj,&v);
+    if (SWIG_IsOK(res)) {
+      if (val) *val = v;
+      return res;
+    }
+  }
+#ifdef SWIG_PYTHON_CAST_MODE
+  {
+    const double mant_max = 1LL << DBL_MANT_DIG;
+    const double mant_min = -mant_max;
+    double d;
+    res = SWIG_AsVal_double (obj,&d);
+    if (SWIG_IsOK(res) && !SWIG_CanCastAsInteger(&d, mant_min, mant_max))
+      return SWIG_OverflowError;
+    if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, mant_min, mant_max)) {
+      if (val) *val = (long long)(d);
+      return SWIG_AddCast(res);
+    }
+    res = SWIG_TypeError;
+  }
+#endif
   return res;
 }
+#endif
 
 
-#include <stdexcept>
+SWIGINTERNINLINE int
+SWIG_AsVal_ptrdiff_t (PyObject * obj, ptrdiff_t *val)
+{
+  int res = SWIG_TypeError;
+#ifdef SWIG_LONG_LONG_AVAILABLE
+  if (sizeof(ptrdiff_t) <= sizeof(long)) {
+#endif
+    long v;
+    res = SWIG_AsVal_long (obj, val ? &v : 0);
+    if (SWIG_IsOK(res) && val) *val = static_cast< ptrdiff_t >(v);
+#ifdef SWIG_LONG_LONG_AVAILABLE
+  } else if (sizeof(ptrdiff_t) <= sizeof(long long)) {
+    long long v;
+    res = SWIG_AsVal_long_SS_long (obj, val ? &v : 0);
+    if (SWIG_IsOK(res) && val) *val = static_cast< ptrdiff_t >(v);
+  }
+#endif
+  return res;
+}
 
 
 #include <algorithm>
@@ -2974,7 +3688,7 @@ SWIG_AsVal_ptrdiff_t (PyObject * obj, ptrdiff_t *val)
 #include <vector>
 
 
-namespace swig {  
+namespace swig {
   template <class Type>
   struct noconst_traits {
     typedef Type noconst_type;
@@ -2988,7 +3702,7 @@ namespace swig {
   /*
     type categories
   */
-  struct pointer_category { };  
+  struct pointer_category { };
   struct value_category { };
 
   /*
@@ -3001,12 +3715,25 @@ namespace swig {
     return traits<typename noconst_traits<Type >::noconst_type >::type_name();
   }
 
-  template <class Type> 
-  struct traits_info {
+  template <class Type> struct traits_info {
     static swig_type_info *type_query(std::string name) {
       name += " *";
       return SWIG_TypeQuery(name.c_str());
-    }    
+    }
+    static swig_type_info *type_info() {
+      static swig_type_info *info = type_query(type_name<Type>());
+      return info;
+    }
+  };
+
+  /*
+    Partial specialization for pointers (traits_info)
+  */
+  template <class Type> struct traits_info<Type *> {
+    static swig_type_info *type_query(std::string name) {
+      name += " *";
+      return SWIG_TypeQuery(name.c_str());
+    }
     static swig_type_info *type_info() {
       static swig_type_info *info = type_query(type_name<Type>());
       return info;
@@ -3019,7 +3746,7 @@ namespace swig {
   }
 
   /*
-    Partial specialization for pointers
+    Partial specialization for pointers (traits)
   */
   template <class Type> struct traits <Type *> {
     typedef pointer_category category;
@@ -3027,17 +3754,17 @@ namespace swig {
       std::string ptrname = name;
       ptrname += " *";
       return ptrname;
-    }    
+    }
     static const char* type_name() {
       static std::string name = make_ptr_name(swig::type_name<Type>());
       return name.c_str();
     }
   };
 
-  template <class Type, class Category> 
+  template <class Type, class Category>
   struct traits_as { };
-  template <class Type, class Category> 
+
+  template <class Type, class Category>
   struct traits_check { };
 
 }
@@ -3049,7 +3776,7 @@ namespace swig {
   */
   template <class Type> struct traits_from_ptr {
     static PyObject *from(Type *val, int owner = 0) {
-      return SWIG_NewPointerObj(val, type_info<Type>(), owner);
+      return SWIG_InternalNewPointerObj(val, type_info<Type>(), owner);
     }
   };
 
@@ -3089,7 +3816,8 @@ namespace swig {
   struct traits_asptr {   
     static int asptr(PyObject *obj, Type **val) {
       Type *p;
-      int res = (SWIG_ConvertPtr(obj, (void**)&p, type_info<Type>(), 0) == SWIG_OK) ? SWIG_OLDOBJ : 0;
+      swig_type_info *descriptor = type_info<Type>();
+      int res = descriptor ? SWIG_ConvertPtr(obj, (void **)&p, descriptor, 0) : SWIG_ERROR;
       if (SWIG_IsOK(res)) {
        if (val) *val = p;
       }
@@ -3154,7 +3882,7 @@ namespace swig {
       int res = asval(obj, &v);
       if (!obj || !SWIG_IsOK(res)) {
        if (!PyErr_Occurred()) {
-         SWIG_Error(SWIG_TypeError,  swig::type_name<Type>());
+         ::SWIG_Error(SWIG_TypeError,  swig::type_name<Type>());
        }
        if (throw_error) throw std::invalid_argument("bad type");
       }
@@ -3237,34 +3965,45 @@ namespace swig {
 
 namespace std {
   template <>
-  struct less <PyObject *>: public binary_function<PyObject *, PyObject *, bool>
+  struct less <PyObject *>
   {
     bool
     operator()(PyObject * v, PyObject *w) const
     { 
       bool res;
       SWIG_PYTHON_THREAD_BEGIN_BLOCK;
-      res = PyObject_Compare(v, w) < 0;
+      res = PyObject_RichCompareBool(v, w, Py_LT) ? true : false;
+      /* This may fall into a case of inconsistent
+               eg. ObjA > ObjX > ObjB
+               but ObjA < ObjB
+      */
+      if( PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_TypeError) )
+      {
+        /* Objects can't be compared, this mostly occurred in Python 3.0 */
+        /* Compare their ptr directly for a workaround */
+        res = (v < w);
+        PyErr_Clear();
+      }
       SWIG_PYTHON_THREAD_END_BLOCK;
       return res;
     }
   };
 
   template <>
-  struct less <swig::PyObject_ptr>: public binary_function<swig::PyObject_ptr, swig::PyObject_ptr, bool>
+  struct less <swig::SwigPtr_PyObject>
   {
     bool
-    operator()(const swig::PyObject_ptr& v, const swig::PyObject_ptr& w) const
+    operator()(const swig::SwigPtr_PyObject& v, const swig::SwigPtr_PyObject& w) const
     {
       return std::less<PyObject *>()(v, w);
     }
   };
 
   template <>
-  struct less <swig::PyObject_var>: public binary_function<swig::PyObject_var, swig::PyObject_var, bool>
+  struct less <swig::SwigVar_PyObject>
   {
     bool
-    operator()(const swig::PyObject_var& v, const swig::PyObject_var& w) const
+    operator()(const swig::SwigVar_PyObject& v, const swig::SwigVar_PyObject& w) const
     {
       return std::less<PyObject *>()(v, w);
     }
@@ -3304,8 +4043,9 @@ namespace swig {
 }
 
 namespace swig {
+  template <class Difference>
   inline size_t
-  check_index(ptrdiff_t i, size_t size, bool insert = false) {
+  check_index(Difference i, size_t size, bool insert = false) {
     if ( i < 0 ) {
       if ((size_t) (-i) <= size)
        return (size_t) (i + size);
@@ -3314,20 +4054,46 @@ namespace swig {
     } else if (insert && ((size_t) i == size)) {
       return size;
     }
-    
     throw std::out_of_range("index out of range");
   }
 
-  inline size_t
-  slice_index(ptrdiff_t i, size_t size) {
-    if ( i < 0 ) {
-      if ((size_t) (-i) <= size) {
-       return (size_t) (i + size);
+  template <class Difference>
+  void
+  slice_adjust(Difference i, Difference j, Py_ssize_t step, size_t size, Difference &ii, Difference &jj, bool insert = false) {
+    if (step == 0) {
+      throw std::invalid_argument("slice step cannot be zero");
+    } else if (step > 0) {
+      // Required range: 0 <= i < size, 0 <= j < size, i <= j
+      if (i < 0) {
+        ii = 0;
+      } else if (i < (Difference)size) {
+        ii = i;
+      } else if (insert && (i >= (Difference)size)) {
+        ii = (Difference)size;
+      }
+      if (j < 0) {
+        jj = 0;
       } else {
-       throw std::out_of_range("index out of range");
+        jj = (j < (Difference)size) ? j : (Difference)size;
       }
+      if (jj < ii)
+        jj = ii;
     } else {
-      return ( (size_t) i < size ) ? ((size_t) i) : size;
+      // Required range: -1 <= i < size-1, -1 <= j < size-1, i >= j
+      if (i < -1) {
+        ii = -1;
+      } else if (i < (Difference) size) {
+        ii = i;
+      } else if (i >= (Difference)(size-1)) {
+        ii = (Difference)(size-1);
+      }
+      if (j < -1) {
+        jj = -1;
+      } else {
+        jj = (j < (Difference)size ) ? j : (Difference)(size-1);
+      }
+      if (ii < jj)
+        ii = jj;
     }
   }
 
@@ -3347,82 +4113,186 @@ namespace swig {
     return pos;
   }
 
+  template <class Sequence>
+  inline void
+  erase(Sequence* seq, const typename Sequence::iterator& position) {
+    seq->erase(position);
+  }
+
+  template <class Sequence>
+  struct traits_reserve {
+    static void reserve(Sequence & /*seq*/, typename Sequence::size_type /*n*/) {
+      // This should be specialized for types that support reserve
+    }
+  };
+
   template <class Sequence, class Difference>
   inline Sequence*
-  getslice(const Sequence* self, Difference i, Difference j) {
+  getslice(const Sequence* self, Difference i, Difference j, Py_ssize_t step) {
     typename Sequence::size_type size = self->size();
-    typename Sequence::size_type ii = swig::check_index(i, size);
-    typename Sequence::size_type jj = swig::slice_index(j, size);
-
-    if (jj > ii) {
-      typename Sequence::const_iterator vb = self->begin();
-      typename Sequence::const_iterator ve = self->begin();
-      std::advance(vb,ii);
-      std::advance(ve,jj);
-      return new Sequence(vb, ve);
+    Difference ii = 0;
+    Difference jj = 0;
+    swig::slice_adjust(i, j, step, size, ii, jj);
+
+    if (step > 0) {
+      typename Sequence::const_iterator sb = self->begin();
+      typename Sequence::const_iterator se = self->begin();
+      std::advance(sb,ii);
+      std::advance(se,jj);
+      if (step == 1) {
+        return new Sequence(sb, se);
+      } else {
+        Sequence *sequence = new Sequence();
+        swig::traits_reserve<Sequence>::reserve(*sequence, (jj - ii + step - 1) / step);
+        typename Sequence::const_iterator it = sb;
+        while (it!=se) {
+          sequence->push_back(*it);
+          for (Py_ssize_t c=0; c<step && it!=se; ++c)
+            it++;
+        }
+        return sequence;
+      } 
     } else {
-      return new Sequence();
+      Sequence *sequence = new Sequence();
+      swig::traits_reserve<Sequence>::reserve(*sequence, (ii - jj - step - 1) / -step);
+      typename Sequence::const_reverse_iterator sb = self->rbegin();
+      typename Sequence::const_reverse_iterator se = self->rbegin();
+      std::advance(sb,size-ii-1);
+      std::advance(se,size-jj-1);
+      typename Sequence::const_reverse_iterator it = sb;
+      while (it!=se) {
+        sequence->push_back(*it);
+        for (Py_ssize_t c=0; c<-step && it!=se; ++c)
+          it++;
+      }
+      return sequence;
     }
   }
 
   template <class Sequence, class Difference, class InputSeq>
   inline void
-  setslice(Sequence* self, Difference i, Difference j, const InputSeq& v) {
+  setslice(Sequence* self, Difference i, Difference j, Py_ssize_t step, const InputSeq& is = InputSeq()) {
     typename Sequence::size_type size = self->size();
-    typename Sequence::size_type ii = swig::check_index(i, size, true);
-    typename Sequence::size_type jj = swig::slice_index(j, size);
-    if (jj < ii) jj = ii;
-    size_t ssize = jj - ii;
-    if (ssize <= v.size()) {
-      typename Sequence::iterator sb = self->begin();
-      typename InputSeq::const_iterator vmid = v.begin();
-      std::advance(sb,ii);
-      std::advance(vmid, jj - ii);
-      self->insert(std::copy(v.begin(), vmid, sb), vmid, v.end());
+    Difference ii = 0;
+    Difference jj = 0;
+    swig::slice_adjust(i, j, step, size, ii, jj, true);
+    if (step > 0) {
+      if (step == 1) {
+        size_t ssize = jj - ii;
+        if (ssize <= is.size()) {
+          // expanding/staying the same size
+          swig::traits_reserve<Sequence>::reserve(*self, self->size() - ssize + is.size());
+          typename Sequence::iterator sb = self->begin();
+          typename InputSeq::const_iterator isit = is.begin();
+          std::advance(sb,ii);
+          std::advance(isit, jj - ii);
+          self->insert(std::copy(is.begin(), isit, sb), isit, is.end());
+        } else {
+          // shrinking
+          typename Sequence::iterator sb = self->begin();
+          typename Sequence::iterator se = self->begin();
+          std::advance(sb,ii);
+          std::advance(se,jj);
+          self->erase(sb,se);
+          sb = self->begin();
+          std::advance(sb,ii);
+          self->insert(sb, is.begin(), is.end());
+        }
+      } else {
+        size_t replacecount = (jj - ii + step - 1) / step;
+        if (is.size() != replacecount) {
+          char msg[1024];
+          sprintf(msg, "attempt to assign sequence of size %lu to extended slice of size %lu", (unsigned long)is.size(), (unsigned long)replacecount);
+          throw std::invalid_argument(msg);
+        }
+        typename Sequence::const_iterator isit = is.begin();
+        typename Sequence::iterator it = self->begin();
+        std::advance(it,ii);
+        for (size_t rc=0; rc<replacecount; ++rc) {
+          *it++ = *isit++;
+          for (Py_ssize_t c=0; c<(step-1) && it != self->end(); ++c)
+            it++;
+        }
+      }
     } else {
-      typename Sequence::iterator sb = self->begin();
-      typename Sequence::iterator se = self->begin();
-      std::advance(sb,ii);
-      std::advance(se,jj);
-      self->erase(sb,se);
-      self->insert(sb, v.begin(), v.end());
+      size_t replacecount = (ii - jj - step - 1) / -step;
+      if (is.size() != replacecount) {
+        char msg[1024];
+        sprintf(msg, "attempt to assign sequence of size %lu to extended slice of size %lu", (unsigned long)is.size(), (unsigned long)replacecount);
+        throw std::invalid_argument(msg);
+      }
+      typename Sequence::const_iterator isit = is.begin();
+      typename Sequence::reverse_iterator it = self->rbegin();
+      std::advance(it,size-ii-1);
+      for (size_t rc=0; rc<replacecount; ++rc) {
+        *it++ = *isit++;
+        for (Py_ssize_t c=0; c<(-step-1) && it != self->rend(); ++c)
+          it++;
+      }
     }
   }
 
   template <class Sequence, class Difference>
   inline void
-  delslice(Sequence* self, Difference i, Difference j) {
+  delslice(Sequence* self, Difference i, Difference j, Py_ssize_t step) {
     typename Sequence::size_type size = self->size();
-    typename Sequence::size_type ii = swig::check_index(i, size, true);
-    typename Sequence::size_type jj = swig::slice_index(j, size);
-    if (jj > ii) {
+    Difference ii = 0;
+    Difference jj = 0;
+    swig::slice_adjust(i, j, step, size, ii, jj, true);
+    if (step > 0) {
       typename Sequence::iterator sb = self->begin();
-      typename Sequence::iterator se = self->begin();
       std::advance(sb,ii);
-      std::advance(se,jj);
-      self->erase(sb,se);
+      if (step == 1) {
+        typename Sequence::iterator se = self->begin();
+        std::advance(se,jj);
+        self->erase(sb,se);
+      } else {
+        typename Sequence::iterator it = sb;
+        size_t delcount = (jj - ii + step - 1) / step;
+        while (delcount) {
+          it = self->erase(it);
+          for (Py_ssize_t c=0; c<(step-1) && it != self->end(); ++c)
+            it++;
+          delcount--;
+        }
+      }
+    } else {
+      typename Sequence::reverse_iterator sb = self->rbegin();
+      std::advance(sb,size-ii-1);
+      typename Sequence::reverse_iterator it = sb;
+      size_t delcount = (ii - jj - step - 1) / -step;
+      while (delcount) {
+        it = typename Sequence::reverse_iterator(self->erase((++it).base()));
+        for (Py_ssize_t c=0; c<(-step-1) && it != self->rend(); ++c)
+          it++;
+        delcount--;
+      }
     }
   }
 }
 
 
+#if defined(__SUNPRO_CC) && defined(_RWSTD_VER)
+#  if !defined(SWIG_NO_STD_NOITERATOR_TRAITS_STL)
+#    define SWIG_STD_NOITERATOR_TRAITS_STL
+#  endif
+#endif
+
 #if !defined(SWIG_STD_NOITERATOR_TRAITS_STL)
 #include <iterator>
 #else
-namespace std  {
+namespace std {
   template <class Iterator>
   struct iterator_traits {
     typedef ptrdiff_t difference_type;
     typedef typename Iterator::value_type value_type;
   };
 
-#if defined(__SUNPRO_CC) && defined(_RWSTD_VER)
   template <class Iterator, class Category,class T, class Reference, class Pointer, class Distance>
   struct iterator_traits<__reverse_bi_iterator<Iterator,Category,T,Reference,Pointer,Distance> > {
     typedef Distance difference_type;
     typedef T value_type;
   };
-#endif  
 
   template <class T>
   struct iterator_traits<T*> {
@@ -3440,22 +4310,21 @@ namespace std  {
     }
     return __n;
   }
-
-} 
+}
 #endif
 
 
 namespace swig {
   template<typename OutIterator>
-  class PySwigIterator_T :  public PySwigIterator
+  class SwigPyIterator_T :  public SwigPyIterator
   {
   public:
     typedef OutIterator out_iterator;
     typedef typename std::iterator_traits<out_iterator>::value_type value_type;    
-    typedef PySwigIterator_T<out_iterator> self_type;
+    typedef SwigPyIterator_T<out_iterator> self_type;
 
-    PySwigIterator_T(out_iterator curr, PyObject *seq)
-      : PySwigIterator(seq), current(curr)
+    SwigPyIterator_T(out_iterator curr, PyObject *seq)
+      : SwigPyIterator(seq), current(curr)
     {
     }
 
@@ -3465,7 +4334,7 @@ namespace swig {
     }
 
     
-    bool equal (const PySwigIterator &iter) const
+    bool equal (const SwigPyIterator &iter) const
     {
       const self_type *iters = dynamic_cast<const self_type *>(&iter);
       if (iters) {
@@ -3475,7 +4344,7 @@ namespace swig {
       }
     }
     
-    ptrdiff_t distance(const PySwigIterator &iter) const
+    ptrdiff_t distance(const SwigPyIterator &iter) const
     {
       const self_type *iters = dynamic_cast<const self_type *>(&iter);
       if (iters) {
@@ -3503,17 +4372,17 @@ namespace swig {
   template<typename OutIterator, 
           typename ValueType = typename std::iterator_traits<OutIterator>::value_type,
           typename FromOper = from_oper<ValueType> >
-  class PySwigIteratorOpen_T :  public PySwigIterator_T<OutIterator>
+  class SwigPyIteratorOpen_T :  public SwigPyIterator_T<OutIterator>
   {
   public:
     FromOper from;
     typedef OutIterator out_iterator;
     typedef ValueType value_type;
-    typedef PySwigIterator_T<out_iterator>  base;
-    typedef PySwigIteratorOpen_T<OutIterator, ValueType, FromOper> self_type;
+    typedef SwigPyIterator_T<out_iterator>  base;
+    typedef SwigPyIteratorOpen_T<OutIterator, ValueType, FromOper> self_type;
     
-    PySwigIteratorOpen_T(out_iterator curr, PyObject *seq)
-      : PySwigIterator_T<OutIterator>(curr, seq)
+    SwigPyIteratorOpen_T(out_iterator curr, PyObject *seq)
+      : SwigPyIterator_T<OutIterator>(curr, seq)
     {
     }
     
@@ -3521,12 +4390,12 @@ namespace swig {
       return from(static_cast<const value_type&>(*(base::current)));
     }
     
-    PySwigIterator *copy() const
+    SwigPyIterator *copy() const
     {
       return new self_type(*this);
     }
 
-    PySwigIterator *incr(size_t n = 1)
+    SwigPyIterator *incr(size_t n = 1)
     {
       while (n--) {
        ++base::current;
@@ -3534,7 +4403,7 @@ namespace swig {
       return this;
     }
 
-    PySwigIterator *decr(size_t n = 1)
+    SwigPyIterator *decr(size_t n = 1)
     {
       while (n--) {
        --base::current;
@@ -3546,17 +4415,17 @@ namespace swig {
   template<typename OutIterator, 
           typename ValueType = typename std::iterator_traits<OutIterator>::value_type,
           typename FromOper = from_oper<ValueType> >
-  class PySwigIteratorClosed_T :  public PySwigIterator_T<OutIterator>
+  class SwigPyIteratorClosed_T :  public SwigPyIterator_T<OutIterator>
   {
   public:
     FromOper from;
     typedef OutIterator out_iterator;
     typedef ValueType value_type;
-    typedef PySwigIterator_T<out_iterator>  base;    
-    typedef PySwigIteratorClosed_T<OutIterator, ValueType, FromOper> self_type;
+    typedef SwigPyIterator_T<out_iterator>  base;    
+    typedef SwigPyIteratorClosed_T<OutIterator, ValueType, FromOper> self_type;
     
-    PySwigIteratorClosed_T(out_iterator curr, out_iterator first, out_iterator last, PyObject *seq)
-      : PySwigIterator_T<OutIterator>(curr, seq), begin(first), end(last)
+    SwigPyIteratorClosed_T(out_iterator curr, out_iterator first, out_iterator last, PyObject *seq)
+      : SwigPyIterator_T<OutIterator>(curr, seq), begin(first), end(last)
     {
     }
     
@@ -3568,12 +4437,12 @@ namespace swig {
       }
     }
     
-    PySwigIterator *copy() const
+    SwigPyIterator *copy() const
     {
       return new self_type(*this);
     }
 
-    PySwigIterator *incr(size_t n = 1)
+    SwigPyIterator *incr(size_t n = 1)
     {
       while (n--) {
        if (base::current == end) {
@@ -3585,7 +4454,7 @@ namespace swig {
       return this;
     }
 
-    PySwigIterator *decr(size_t n = 1)
+    SwigPyIterator *decr(size_t n = 1)
     {
       while (n--) {
        if (base::current == begin) {
@@ -3603,41 +4472,42 @@ namespace swig {
   };
 
   template<typename OutIter>
-  inline PySwigIterator*
+  inline SwigPyIterator*
   make_output_iterator(const OutIter& current, const OutIter& begin,const OutIter& end, PyObject *seq = 0)
   {
-    return new PySwigIteratorClosed_T<OutIter>(current, begin, end, seq);
+    return new SwigPyIteratorClosed_T<OutIter>(current, begin, end, seq);
   }
 
   template<typename OutIter>
-  inline PySwigIterator*
+  inline SwigPyIterator*
   make_output_iterator(const OutIter& current, PyObject *seq = 0)
   {
-    return new PySwigIteratorOpen_T<OutIter>(current, seq);
+    return new SwigPyIteratorOpen_T<OutIter>(current, seq);
   }
+
 }
 
 
 namespace swig
 {
   template <class T>
-  struct PySequence_Ref
+  struct SwigPySequence_Ref
   {
-    PySequence_Ref(PyObject* seq, int index)
+    SwigPySequence_Ref(PyObject* seq, Py_ssize_t index)
       : _seq(seq), _index(index)
     {
     }
     
     operator T () const
     {
-      swig::PyObject_var item = PySequence_GetItem(_seq, _index);
+      swig::SwigVar_PyObject item = PySequence_GetItem(_seq, _index);
       try {
        return swig::as<T>(item, true);
       } catch (std::exception& e) {
        char msg[1024];
-       sprintf(msg, "in sequence element %d ", _index);
+       sprintf(msg, "in sequence element %d ", (int)_index);
        if (!PyErr_Occurred()) {
-         SWIG_Error(SWIG_TypeError,  swig::type_name<T>());
+         ::SWIG_Error(SWIG_TypeError,  swig::type_name<T>());
        }
        SWIG_Python_AddErrorMsg(msg);
        SWIG_Python_AddErrorMsg(e.what());
@@ -3645,7 +4515,7 @@ namespace swig
       }
     }
 
-    PySequence_Ref& operator=(const T& v)
+    SwigPySequence_Ref& operator=(const T& v)
     {
       PySequence_SetItem(_seq, _index, swig::from<T>(v));
       return *this;
@@ -3653,34 +4523,34 @@ namespace swig
 
   private:
     PyObject* _seq;
-    int _index;
+    Py_ssize_t _index;
   };
 
   template <class T>
-  struct PySequence_ArrowProxy
+  struct SwigPySequence_ArrowProxy
   {
-    PySequence_ArrowProxy(const T& x): m_value(x) {}
+    SwigPySequence_ArrowProxy(const T& x): m_value(x) {}
     const T* operator->() const { return &m_value; }
     operator const T*() const { return &m_value; }
     T m_value;
   };
 
   template <class T, class Reference >
-  struct PySequence_InputIterator
+  struct SwigPySequence_InputIterator
   {
-    typedef PySequence_InputIterator<T, Reference > self;
+    typedef SwigPySequence_InputIterator<T, Reference > self;
 
     typedef std::random_access_iterator_tag iterator_category;
     typedef Reference reference;
     typedef T value_type;
     typedef T* pointer;
-    typedef int difference_type;
+    typedef Py_ssize_t difference_type;
 
-    PySequence_InputIterator()
+    SwigPySequence_InputIterator()
     {
     }
 
-    PySequence_InputIterator(PyObject* seq, int index)
+    SwigPySequence_InputIterator(PyObject* seq, Py_ssize_t index)
       : _seq(seq), _index(index)
     {
     }
@@ -3690,9 +4560,9 @@ namespace swig
       return reference(_seq, _index);
     }
 
-    PySequence_ArrowProxy<T>
+    SwigPySequence_ArrowProxy<T>
     operator->() const {
-      return PySequence_ArrowProxy<T>(operator*());
+      return SwigPySequence_ArrowProxy<T>(operator*());
     }
 
     bool operator==(const self& ri) const
@@ -3760,20 +4630,21 @@ namespace swig
     difference_type _index;
   };
 
+  // STL container wrapper around a Python sequence
   template <class T>
-  struct PySequence_Cont
+  struct SwigPySequence_Cont
   {
-    typedef PySequence_Ref<T> reference;
-    typedef const PySequence_Ref<T> const_reference;
+    typedef SwigPySequence_Ref<T> reference;
+    typedef const SwigPySequence_Ref<T> const_reference;
     typedef T value_type;
     typedef T* pointer;
-    typedef int difference_type;
-    typedef int size_type;
+    typedef Py_ssize_t difference_type;
+    typedef size_t size_type;
     typedef const pointer const_pointer;
-    typedef PySequence_InputIterator<T, reference> iterator;
-    typedef PySequence_InputIterator<T, const_reference> const_iterator;
+    typedef SwigPySequence_InputIterator<T, reference> iterator;
+    typedef SwigPySequence_InputIterator<T, const_reference> const_iterator;
 
-    PySequence_Cont(PyObject* seq) : _seq(0)
+    SwigPySequence_Cont(PyObject* seq) : _seq(0)
     {
       if (!PySequence_Check(seq)) {
        throw std::invalid_argument("a sequence is expected");
@@ -3782,14 +4653,14 @@ namespace swig
       Py_INCREF(_seq);
     }
 
-    ~PySequence_Cont()
+    ~SwigPySequence_Cont()
     {
-      if (_seq) Py_DECREF(_seq);
+      Py_XDECREF(_seq);
     }
 
     size_type size() const
     {
-      return PySequence_Size(_seq);
+      return static_cast<size_type>(PySequence_Size(_seq));
     }
 
     bool empty() const
@@ -3829,13 +4700,13 @@ namespace swig
 
     bool check(bool set_err = true) const
     {
-      int s = size();
-      for (int i = 0; i < s; ++i) {
-       swig::PyObject_var item = PySequence_GetItem(_seq, i);
+      Py_ssize_t s = size();
+      for (Py_ssize_t i = 0; i < s; ++i) {
+       swig::SwigVar_PyObject item = PySequence_GetItem(_seq, i);
        if (!swig::check<value_type>(item)) {
          if (set_err) {
            char msg[1024];
-           sprintf(msg, "in sequence element %d", i);
+           sprintf(msg, "in sequence element %d", (int)i);
            SWIG_Error(SWIG_RuntimeError, msg);
          }
          return false;
@@ -3852,7 +4723,7 @@ namespace swig
 
 
   namespace swig {
-    template <>  struct traits<Hex::Hexa > {
+    template <>  struct traits< Hex::Hexa > {
       typedef pointer_category category;
       static const char* type_name() { return"Hex::Hexa"; }
     };
@@ -3860,18 +4731,15 @@ namespace swig
 
 
 namespace swig {
-  template <class PySeq, class Seq>
+  template <class SwigPySeq, class Seq>
   inline void
-  assign(const PySeq& pyseq, Seq* seq) {
-#ifdef SWIG_STD_NOASSIGN_STL
-    typedef typename PySeq::value_type value_type;
-    typename PySeq::const_iterator it = pyseq.begin();
-    for (;it != pyseq.end(); ++it) {
+  assign(const SwigPySeq& swigpyseq, Seq* seq) {
+    // seq->assign(swigpyseq.begin(), swigpyseq.end()); // not used as not always implemented
+    typedef typename SwigPySeq::value_type value_type;
+    typename SwigPySeq::const_iterator it = swigpyseq.begin();
+    for (;it != swigpyseq.end(); ++it) {
       seq->insert(seq->end(),(value_type)(*it));
     }
-#else
-    seq->assign(pyseq.begin(), pyseq.end());
-#endif
   }
 
   template <class Seq, class T = typename Seq::value_type >
@@ -3880,16 +4748,23 @@ namespace swig {
     typedef T value_type;
 
     static int asptr(PyObject *obj, sequence **seq) {
-      if (PySequence_Check(obj)) {
+      if (obj == Py_None || SWIG_Python_GetSwigThis(obj)) {
+       sequence *p;
+       swig_type_info *descriptor = swig::type_info<sequence>();
+       if (descriptor && SWIG_IsOK(::SWIG_ConvertPtr(obj, (void **)&p, descriptor, 0))) {
+         if (seq) *seq = p;
+         return SWIG_OLDOBJ;
+       }
+      } else if (PySequence_Check(obj)) {
        try {
-         PySequence_Cont<value_type> pyseq(obj);
+         SwigPySequence_Cont<value_type> swigpyseq(obj);
          if (seq) {
            sequence *pseq = new sequence();
-           assign(pyseq, pseq);
+           assign(swigpyseq, pseq);
            *seq = pseq;
            return SWIG_NEWOBJ;
          } else {
-           return pyseq.check() ? SWIG_OK : SWIG_ERROR;
+           return swigpyseq.check() ? SWIG_OK : SWIG_ERROR;
          }
        } catch (std::exception& e) {
          if (seq) {
@@ -3899,13 +4774,6 @@ namespace swig {
          }
          return SWIG_ERROR;
        }
-      } else {
-       sequence *p;
-       if (SWIG_ConvertPtr(obj,(void**)&p,
-                           swig::type_info<sequence>(),0) == SWIG_OK) {
-         if (seq) *seq = p;
-         return SWIG_OLDOBJ;
-       }
       }
       return SWIG_ERROR;
     }
@@ -3919,18 +4787,17 @@ namespace swig {
     typedef typename sequence::const_iterator const_iterator;
 
     static PyObject *from(const sequence& seq) {
-
-
-
-
-
-
+#ifdef SWIG_PYTHON_EXTRA_NATIVE_CONTAINERS
+      swig_type_info *desc = swig::type_info<sequence>();
+      if (desc && desc->clientdata) {
+       return SWIG_InternalNewPointerObj(new sequence(seq), desc, SWIG_POINTER_OWN);
+      }
+#endif
       size_type size = seq.size();
       if (size <= (size_type)INT_MAX) {
-       PyObject *obj = PyTuple_New((int)size);
-       int i = 0;
-       for (const_iterator it = seq.begin();
-            it != seq.end(); ++it, ++i) {
+       PyObject *obj = PyTuple_New((Py_ssize_t)size);
+       Py_ssize_t i = 0;
+       for (const_iterator it = seq.begin(); it != seq.end(); ++it, ++i) {
          PyTuple_SetItem(obj,i,swig::from<value_type>(*it));
        }
        return obj;
@@ -3944,6 +4811,13 @@ namespace swig {
 
 
   namespace swig {
+    template <class T>
+    struct traits_reserve<std::vector<T> > {
+      static void reserve(std::vector<T> &seq, typename std::vector<T>::size_type n) {
+        seq.reserve(n);
+      }
+    };
+
     template <class T>
     struct traits_asptr<std::vector<T> >  {
       static int asptr(PyObject *obj, std::vector<T> **vec) {
@@ -3961,21 +4835,24 @@ namespace swig {
 
 
       namespace swig {
-       template <>  struct traits<std::vector<Hex::Hexa*, std::allocator<Hex::Hexa * > > > {
+       template <>  struct traits<std::vector< Hex::Hexa*, std::allocator< Hex::Hexa * > > > {
          typedef value_category category;
          static const char* type_name() {
-           return "std::vector<" "Hex::Hexa" " *," "std::allocator<Hex::Hexa * >" " >";
+           return "std::vector<" "Hex::Hexa" " *," "std::allocator< Hex::Hexa * >" " >";
          }
        };
       }
     
-SWIGINTERN swig::PySwigIterator *std_vector_Sl_Hex_Hexa_Sm__Sg__iterator(std::vector<Hex::Hexa * > *self,PyObject **PYTHON_SELF){
+SWIGINTERN swig::SwigPyIterator *std_vector_Sl_Hex_Hexa_Sm__Sg__iterator(std::vector< Hex::Hexa * > *self,PyObject **PYTHON_SELF){
       return swig::make_output_iterator(self->begin(), self->begin(), self->end(), *PYTHON_SELF);
     }
-SWIGINTERN bool std_vector_Sl_Hex_Hexa_Sm__Sg____nonzero__(std::vector<Hex::Hexa * > const *self){
+SWIGINTERN bool std_vector_Sl_Hex_Hexa_Sm__Sg____nonzero__(std::vector< Hex::Hexa * > const *self){
+      return !(self->empty());
+    }
+SWIGINTERN bool std_vector_Sl_Hex_Hexa_Sm__Sg____bool__(std::vector< Hex::Hexa * > const *self){
       return !(self->empty());
     }
-SWIGINTERN std::vector<Hex::Hexa * >::size_type std_vector_Sl_Hex_Hexa_Sm__Sg____len__(std::vector<Hex::Hexa * > const *self){
+SWIGINTERN std::vector< Hex::Hexa * >::size_type std_vector_Sl_Hex_Hexa_Sm__Sg____len__(std::vector< Hex::Hexa * > const *self){
       return self->size();
     }
 
@@ -3983,47 +4860,117 @@ SWIGINTERNINLINE PyObject*
 SWIG_From_unsigned_SS_long  (unsigned long value)
 {
   return (value > LONG_MAX) ?
-    PyLong_FromUnsignedLong(value) : PyInt_FromLong(static_cast< long >(value)); 
+    PyLong_FromUnsignedLong(value) : PyInt_FromLong(static_cast< long >(value));
 }
 
 
+#ifdef SWIG_LONG_LONG_AVAILABLE
+SWIGINTERNINLINE PyObject* 
+SWIG_From_unsigned_SS_long_SS_long  (unsigned long long value)
+{
+  return (value > LONG_MAX) ?
+    PyLong_FromUnsignedLongLong(value) : PyInt_FromLong(static_cast< long >(value));
+}
+#endif
+
+
 SWIGINTERNINLINE PyObject *
 SWIG_From_size_t  (size_t value)
 {    
-  return SWIG_From_unsigned_SS_long  (static_cast< unsigned long >(value));
+#ifdef SWIG_LONG_LONG_AVAILABLE
+  if (sizeof(size_t) <= sizeof(unsigned long)) {
+#endif
+    return SWIG_From_unsigned_SS_long  (static_cast< unsigned long >(value));
+#ifdef SWIG_LONG_LONG_AVAILABLE
+  } else {
+    /* assume sizeof(size_t) <= sizeof(unsigned long long) */
+    return SWIG_From_unsigned_SS_long_SS_long  (static_cast< unsigned long long >(value));
+  }
+#endif
 }
 
-SWIGINTERN std::vector<Hex::Hexa * >::value_type std_vector_Sl_Hex_Hexa_Sm__Sg__pop(std::vector<Hex::Hexa * > *self){
-      if (self->size() == 0)
-       throw std::out_of_range("pop from empty container");
-      std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > >::value_type x = self->back();
-      self->pop_back();
-      return x;
+SWIGINTERN std::vector< Hex::Hexa *,std::allocator< Hex::Hexa * > > *std_vector_Sl_Hex_Hexa_Sm__Sg____getslice__(std::vector< Hex::Hexa * > *self,std::vector< Hex::Hexa * >::difference_type i,std::vector< Hex::Hexa * >::difference_type j){
+      return swig::getslice(self, i, j, 1);
+    }
+SWIGINTERN void std_vector_Sl_Hex_Hexa_Sm__Sg____setslice____SWIG_0(std::vector< Hex::Hexa * > *self,std::vector< Hex::Hexa * >::difference_type i,std::vector< Hex::Hexa * >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >());
     }
-SWIGINTERN std::vector<Hex::Hexa *,std::allocator<Hex::Hexa * > > *std_vector_Sl_Hex_Hexa_Sm__Sg____getslice__(std::vector<Hex::Hexa * > *self,std::vector<Hex::Hexa * >::difference_type i,std::vector<Hex::Hexa * >::difference_type j){
-      return swig::getslice(self, i, j);
+SWIGINTERN void std_vector_Sl_Hex_Hexa_Sm__Sg____setslice____SWIG_1(std::vector< Hex::Hexa * > *self,std::vector< Hex::Hexa * >::difference_type i,std::vector< Hex::Hexa * >::difference_type j,std::vector< Hex::Hexa *,std::allocator< Hex::Hexa * > > const &v){
+      swig::setslice(self, i, j, 1, v);
     }
-SWIGINTERN void std_vector_Sl_Hex_Hexa_Sm__Sg____setslice__(std::vector<Hex::Hexa * > *self,std::vector<Hex::Hexa * >::difference_type i,std::vector<Hex::Hexa * >::difference_type j,std::vector<Hex::Hexa *,std::allocator<Hex::Hexa * > > const &v){
-      swig::setslice(self, i, j, v);
+SWIGINTERN void std_vector_Sl_Hex_Hexa_Sm__Sg____delslice__(std::vector< Hex::Hexa * > *self,std::vector< Hex::Hexa * >::difference_type i,std::vector< Hex::Hexa * >::difference_type j){
+      swig::delslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_Hex_Hexa_Sm__Sg____delslice__(std::vector<Hex::Hexa * > *self,std::vector<Hex::Hexa * >::difference_type i,std::vector<Hex::Hexa * >::difference_type j){
-      swig::delslice(self, i, j);
+SWIGINTERN void std_vector_Sl_Hex_Hexa_Sm__Sg____delitem____SWIG_0(std::vector< Hex::Hexa * > *self,std::vector< Hex::Hexa * >::difference_type i){
+      swig::erase(self, swig::getpos(self, i));
     }
-SWIGINTERN void std_vector_Sl_Hex_Hexa_Sm__Sg____delitem__(std::vector<Hex::Hexa * > *self,std::vector<Hex::Hexa * >::difference_type i){
-      self->erase(swig::getpos(self,i));
+SWIGINTERN std::vector< Hex::Hexa *,std::allocator< Hex::Hexa * > > *std_vector_Sl_Hex_Hexa_Sm__Sg____getitem____SWIG_0(std::vector< Hex::Hexa * > *self,PySliceObject *slice){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return NULL;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >::difference_type id = i;
+      std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >::difference_type jd = j;
+      return swig::getslice(self, id, jd, step);
+    }
+SWIGINTERN void std_vector_Sl_Hex_Hexa_Sm__Sg____setitem____SWIG_0(std::vector< Hex::Hexa * > *self,PySliceObject *slice,std::vector< Hex::Hexa *,std::allocator< Hex::Hexa * > > const &v){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >::difference_type id = i;
+      std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >::difference_type jd = j;
+      swig::setslice(self, id, jd, step, v);
+    }
+SWIGINTERN void std_vector_Sl_Hex_Hexa_Sm__Sg____setitem____SWIG_1(std::vector< Hex::Hexa * > *self,PySliceObject *slice){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >::difference_type id = i;
+      std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >::difference_type jd = j;
+      swig::delslice(self, id, jd, step);
+    }
+SWIGINTERN void std_vector_Sl_Hex_Hexa_Sm__Sg____delitem____SWIG_1(std::vector< Hex::Hexa * > *self,PySliceObject *slice){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >::difference_type id = i;
+      std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >::difference_type jd = j;
+      swig::delslice(self, id, jd, step);
     }
-SWIGINTERN std::vector<Hex::Hexa * >::value_type std_vector_Sl_Hex_Hexa_Sm__Sg____getitem__(std::vector<Hex::Hexa * > *self,std::vector<Hex::Hexa * >::difference_type i){
+SWIGINTERN std::vector< Hex::Hexa * >::value_type std_vector_Sl_Hex_Hexa_Sm__Sg____getitem____SWIG_1(std::vector< Hex::Hexa * > *self,std::vector< Hex::Hexa * >::difference_type i){
       return *(swig::cgetpos(self, i));
     }
-SWIGINTERN void std_vector_Sl_Hex_Hexa_Sm__Sg____setitem__(std::vector<Hex::Hexa * > *self,std::vector<Hex::Hexa * >::difference_type i,std::vector<Hex::Hexa * >::value_type x){
+SWIGINTERN void std_vector_Sl_Hex_Hexa_Sm__Sg____setitem____SWIG_2(std::vector< Hex::Hexa * > *self,std::vector< Hex::Hexa * >::difference_type i,std::vector< Hex::Hexa * >::value_type x){
       *(swig::getpos(self,i)) = x;
     }
-SWIGINTERN void std_vector_Sl_Hex_Hexa_Sm__Sg__append(std::vector<Hex::Hexa * > *self,std::vector<Hex::Hexa * >::value_type x){
+SWIGINTERN std::vector< Hex::Hexa * >::value_type std_vector_Sl_Hex_Hexa_Sm__Sg__pop(std::vector< Hex::Hexa * > *self){
+      if (self->size() == 0)
+       throw std::out_of_range("pop from empty container");
+      std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
+SWIGINTERN void std_vector_Sl_Hex_Hexa_Sm__Sg__append(std::vector< Hex::Hexa * > *self,std::vector< Hex::Hexa * >::value_type x){
       self->push_back(x);
     }
+SWIGINTERN std::vector< Hex::Hexa * >::iterator std_vector_Sl_Hex_Hexa_Sm__Sg__erase__SWIG_0(std::vector< Hex::Hexa * > *self,std::vector< Hex::Hexa * >::iterator pos){ return self->erase(pos); }
+SWIGINTERN std::vector< Hex::Hexa * >::iterator std_vector_Sl_Hex_Hexa_Sm__Sg__erase__SWIG_1(std::vector< Hex::Hexa * > *self,std::vector< Hex::Hexa * >::iterator first,std::vector< Hex::Hexa * >::iterator last){ return self->erase(first, last); }
+SWIGINTERN std::vector< Hex::Hexa * >::iterator std_vector_Sl_Hex_Hexa_Sm__Sg__insert__SWIG_0(std::vector< Hex::Hexa * > *self,std::vector< Hex::Hexa * >::iterator pos,std::vector< Hex::Hexa * >::value_type x){ return self->insert(pos, x); }
+SWIGINTERN void std_vector_Sl_Hex_Hexa_Sm__Sg__insert__SWIG_1(std::vector< Hex::Hexa * > *self,std::vector< Hex::Hexa * >::iterator pos,std::vector< Hex::Hexa * >::size_type n,std::vector< Hex::Hexa * >::value_type x){ self->insert(pos, n, x); }
 
   namespace swig {
-    template <>  struct traits<Hex::Quad > {
+    template <>  struct traits< Hex::Quad > {
       typedef pointer_category category;
       static const char* type_name() { return"Hex::Quad"; }
     };
@@ -4031,54 +4978,108 @@ SWIGINTERN void std_vector_Sl_Hex_Hexa_Sm__Sg__append(std::vector<Hex::Hexa * >
 
 
       namespace swig {
-       template <>  struct traits<std::vector<Hex::Quad*, std::allocator<Hex::Quad * > > > {
+       template <>  struct traits<std::vector< Hex::Quad*, std::allocator< Hex::Quad * > > > {
          typedef value_category category;
          static const char* type_name() {
-           return "std::vector<" "Hex::Quad" " *," "std::allocator<Hex::Quad * >" " >";
+           return "std::vector<" "Hex::Quad" " *," "std::allocator< Hex::Quad * >" " >";
          }
        };
       }
     
-SWIGINTERN swig::PySwigIterator *std_vector_Sl_Hex_Quad_Sm__Sg__iterator(std::vector<Hex::Quad * > *self,PyObject **PYTHON_SELF){
+SWIGINTERN swig::SwigPyIterator *std_vector_Sl_Hex_Quad_Sm__Sg__iterator(std::vector< Hex::Quad * > *self,PyObject **PYTHON_SELF){
       return swig::make_output_iterator(self->begin(), self->begin(), self->end(), *PYTHON_SELF);
     }
-SWIGINTERN bool std_vector_Sl_Hex_Quad_Sm__Sg____nonzero__(std::vector<Hex::Quad * > const *self){
+SWIGINTERN bool std_vector_Sl_Hex_Quad_Sm__Sg____nonzero__(std::vector< Hex::Quad * > const *self){
+      return !(self->empty());
+    }
+SWIGINTERN bool std_vector_Sl_Hex_Quad_Sm__Sg____bool__(std::vector< Hex::Quad * > const *self){
       return !(self->empty());
     }
-SWIGINTERN std::vector<Hex::Quad * >::size_type std_vector_Sl_Hex_Quad_Sm__Sg____len__(std::vector<Hex::Quad * > const *self){
+SWIGINTERN std::vector< Hex::Quad * >::size_type std_vector_Sl_Hex_Quad_Sm__Sg____len__(std::vector< Hex::Quad * > const *self){
       return self->size();
     }
-SWIGINTERN std::vector<Hex::Quad * >::value_type std_vector_Sl_Hex_Quad_Sm__Sg__pop(std::vector<Hex::Quad * > *self){
-      if (self->size() == 0)
-       throw std::out_of_range("pop from empty container");
-      std::vector<Hex::Quad*,std::allocator<Hex::Quad * > >::value_type x = self->back();
-      self->pop_back();
-      return x;
+SWIGINTERN std::vector< Hex::Quad *,std::allocator< Hex::Quad * > > *std_vector_Sl_Hex_Quad_Sm__Sg____getslice__(std::vector< Hex::Quad * > *self,std::vector< Hex::Quad * >::difference_type i,std::vector< Hex::Quad * >::difference_type j){
+      return swig::getslice(self, i, j, 1);
+    }
+SWIGINTERN void std_vector_Sl_Hex_Quad_Sm__Sg____setslice____SWIG_0(std::vector< Hex::Quad * > *self,std::vector< Hex::Quad * >::difference_type i,std::vector< Hex::Quad * >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >());
     }
-SWIGINTERN std::vector<Hex::Quad *,std::allocator<Hex::Quad * > > *std_vector_Sl_Hex_Quad_Sm__Sg____getslice__(std::vector<Hex::Quad * > *self,std::vector<Hex::Quad * >::difference_type i,std::vector<Hex::Quad * >::difference_type j){
-      return swig::getslice(self, i, j);
+SWIGINTERN void std_vector_Sl_Hex_Quad_Sm__Sg____setslice____SWIG_1(std::vector< Hex::Quad * > *self,std::vector< Hex::Quad * >::difference_type i,std::vector< Hex::Quad * >::difference_type j,std::vector< Hex::Quad *,std::allocator< Hex::Quad * > > const &v){
+      swig::setslice(self, i, j, 1, v);
     }
-SWIGINTERN void std_vector_Sl_Hex_Quad_Sm__Sg____setslice__(std::vector<Hex::Quad * > *self,std::vector<Hex::Quad * >::difference_type i,std::vector<Hex::Quad * >::difference_type j,std::vector<Hex::Quad *,std::allocator<Hex::Quad * > > const &v){
-      swig::setslice(self, i, j, v);
+SWIGINTERN void std_vector_Sl_Hex_Quad_Sm__Sg____delslice__(std::vector< Hex::Quad * > *self,std::vector< Hex::Quad * >::difference_type i,std::vector< Hex::Quad * >::difference_type j){
+      swig::delslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_Hex_Quad_Sm__Sg____delslice__(std::vector<Hex::Quad * > *self,std::vector<Hex::Quad * >::difference_type i,std::vector<Hex::Quad * >::difference_type j){
-      swig::delslice(self, i, j);
+SWIGINTERN void std_vector_Sl_Hex_Quad_Sm__Sg____delitem____SWIG_0(std::vector< Hex::Quad * > *self,std::vector< Hex::Quad * >::difference_type i){
+      swig::erase(self, swig::getpos(self, i));
     }
-SWIGINTERN void std_vector_Sl_Hex_Quad_Sm__Sg____delitem__(std::vector<Hex::Quad * > *self,std::vector<Hex::Quad * >::difference_type i){
-      self->erase(swig::getpos(self,i));
+SWIGINTERN std::vector< Hex::Quad *,std::allocator< Hex::Quad * > > *std_vector_Sl_Hex_Quad_Sm__Sg____getitem____SWIG_0(std::vector< Hex::Quad * > *self,PySliceObject *slice){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return NULL;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >::difference_type id = i;
+      std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >::difference_type jd = j;
+      return swig::getslice(self, id, jd, step);
+    }
+SWIGINTERN void std_vector_Sl_Hex_Quad_Sm__Sg____setitem____SWIG_0(std::vector< Hex::Quad * > *self,PySliceObject *slice,std::vector< Hex::Quad *,std::allocator< Hex::Quad * > > const &v){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >::difference_type id = i;
+      std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >::difference_type jd = j;
+      swig::setslice(self, id, jd, step, v);
+    }
+SWIGINTERN void std_vector_Sl_Hex_Quad_Sm__Sg____setitem____SWIG_1(std::vector< Hex::Quad * > *self,PySliceObject *slice){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >::difference_type id = i;
+      std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >::difference_type jd = j;
+      swig::delslice(self, id, jd, step);
+    }
+SWIGINTERN void std_vector_Sl_Hex_Quad_Sm__Sg____delitem____SWIG_1(std::vector< Hex::Quad * > *self,PySliceObject *slice){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >::difference_type id = i;
+      std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >::difference_type jd = j;
+      swig::delslice(self, id, jd, step);
     }
-SWIGINTERN std::vector<Hex::Quad * >::value_type std_vector_Sl_Hex_Quad_Sm__Sg____getitem__(std::vector<Hex::Quad * > *self,std::vector<Hex::Quad * >::difference_type i){
+SWIGINTERN std::vector< Hex::Quad * >::value_type std_vector_Sl_Hex_Quad_Sm__Sg____getitem____SWIG_1(std::vector< Hex::Quad * > *self,std::vector< Hex::Quad * >::difference_type i){
       return *(swig::cgetpos(self, i));
     }
-SWIGINTERN void std_vector_Sl_Hex_Quad_Sm__Sg____setitem__(std::vector<Hex::Quad * > *self,std::vector<Hex::Quad * >::difference_type i,std::vector<Hex::Quad * >::value_type x){
+SWIGINTERN void std_vector_Sl_Hex_Quad_Sm__Sg____setitem____SWIG_2(std::vector< Hex::Quad * > *self,std::vector< Hex::Quad * >::difference_type i,std::vector< Hex::Quad * >::value_type x){
       *(swig::getpos(self,i)) = x;
     }
-SWIGINTERN void std_vector_Sl_Hex_Quad_Sm__Sg__append(std::vector<Hex::Quad * > *self,std::vector<Hex::Quad * >::value_type x){
+SWIGINTERN std::vector< Hex::Quad * >::value_type std_vector_Sl_Hex_Quad_Sm__Sg__pop(std::vector< Hex::Quad * > *self){
+      if (self->size() == 0)
+       throw std::out_of_range("pop from empty container");
+      std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
+SWIGINTERN void std_vector_Sl_Hex_Quad_Sm__Sg__append(std::vector< Hex::Quad * > *self,std::vector< Hex::Quad * >::value_type x){
       self->push_back(x);
     }
+SWIGINTERN std::vector< Hex::Quad * >::iterator std_vector_Sl_Hex_Quad_Sm__Sg__erase__SWIG_0(std::vector< Hex::Quad * > *self,std::vector< Hex::Quad * >::iterator pos){ return self->erase(pos); }
+SWIGINTERN std::vector< Hex::Quad * >::iterator std_vector_Sl_Hex_Quad_Sm__Sg__erase__SWIG_1(std::vector< Hex::Quad * > *self,std::vector< Hex::Quad * >::iterator first,std::vector< Hex::Quad * >::iterator last){ return self->erase(first, last); }
+SWIGINTERN std::vector< Hex::Quad * >::iterator std_vector_Sl_Hex_Quad_Sm__Sg__insert__SWIG_0(std::vector< Hex::Quad * > *self,std::vector< Hex::Quad * >::iterator pos,std::vector< Hex::Quad * >::value_type x){ return self->insert(pos, x); }
+SWIGINTERN void std_vector_Sl_Hex_Quad_Sm__Sg__insert__SWIG_1(std::vector< Hex::Quad * > *self,std::vector< Hex::Quad * >::iterator pos,std::vector< Hex::Quad * >::size_type n,std::vector< Hex::Quad * >::value_type x){ self->insert(pos, n, x); }
 
   namespace swig {
-    template <>  struct traits<Hex::Edge > {
+    template <>  struct traits< Hex::Edge > {
       typedef pointer_category category;
       static const char* type_name() { return"Hex::Edge"; }
     };
@@ -4086,54 +5087,108 @@ SWIGINTERN void std_vector_Sl_Hex_Quad_Sm__Sg__append(std::vector<Hex::Quad * >
 
 
       namespace swig {
-       template <>  struct traits<std::vector<Hex::Edge*, std::allocator<Hex::Edge * > > > {
+       template <>  struct traits<std::vector< Hex::Edge*, std::allocator< Hex::Edge * > > > {
          typedef value_category category;
          static const char* type_name() {
-           return "std::vector<" "Hex::Edge" " *," "std::allocator<Hex::Edge * >" " >";
+           return "std::vector<" "Hex::Edge" " *," "std::allocator< Hex::Edge * >" " >";
          }
        };
       }
     
-SWIGINTERN swig::PySwigIterator *std_vector_Sl_Hex_Edge_Sm__Sg__iterator(std::vector<Hex::Edge * > *self,PyObject **PYTHON_SELF){
+SWIGINTERN swig::SwigPyIterator *std_vector_Sl_Hex_Edge_Sm__Sg__iterator(std::vector< Hex::Edge * > *self,PyObject **PYTHON_SELF){
       return swig::make_output_iterator(self->begin(), self->begin(), self->end(), *PYTHON_SELF);
     }
-SWIGINTERN bool std_vector_Sl_Hex_Edge_Sm__Sg____nonzero__(std::vector<Hex::Edge * > const *self){
+SWIGINTERN bool std_vector_Sl_Hex_Edge_Sm__Sg____nonzero__(std::vector< Hex::Edge * > const *self){
+      return !(self->empty());
+    }
+SWIGINTERN bool std_vector_Sl_Hex_Edge_Sm__Sg____bool__(std::vector< Hex::Edge * > const *self){
       return !(self->empty());
     }
-SWIGINTERN std::vector<Hex::Edge * >::size_type std_vector_Sl_Hex_Edge_Sm__Sg____len__(std::vector<Hex::Edge * > const *self){
+SWIGINTERN std::vector< Hex::Edge * >::size_type std_vector_Sl_Hex_Edge_Sm__Sg____len__(std::vector< Hex::Edge * > const *self){
       return self->size();
     }
-SWIGINTERN std::vector<Hex::Edge * >::value_type std_vector_Sl_Hex_Edge_Sm__Sg__pop(std::vector<Hex::Edge * > *self){
-      if (self->size() == 0)
-       throw std::out_of_range("pop from empty container");
-      std::vector<Hex::Edge*,std::allocator<Hex::Edge * > >::value_type x = self->back();
-      self->pop_back();
-      return x;
+SWIGINTERN std::vector< Hex::Edge *,std::allocator< Hex::Edge * > > *std_vector_Sl_Hex_Edge_Sm__Sg____getslice__(std::vector< Hex::Edge * > *self,std::vector< Hex::Edge * >::difference_type i,std::vector< Hex::Edge * >::difference_type j){
+      return swig::getslice(self, i, j, 1);
+    }
+SWIGINTERN void std_vector_Sl_Hex_Edge_Sm__Sg____setslice____SWIG_0(std::vector< Hex::Edge * > *self,std::vector< Hex::Edge * >::difference_type i,std::vector< Hex::Edge * >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >());
     }
-SWIGINTERN std::vector<Hex::Edge *,std::allocator<Hex::Edge * > > *std_vector_Sl_Hex_Edge_Sm__Sg____getslice__(std::vector<Hex::Edge * > *self,std::vector<Hex::Edge * >::difference_type i,std::vector<Hex::Edge * >::difference_type j){
-      return swig::getslice(self, i, j);
+SWIGINTERN void std_vector_Sl_Hex_Edge_Sm__Sg____setslice____SWIG_1(std::vector< Hex::Edge * > *self,std::vector< Hex::Edge * >::difference_type i,std::vector< Hex::Edge * >::difference_type j,std::vector< Hex::Edge *,std::allocator< Hex::Edge * > > const &v){
+      swig::setslice(self, i, j, 1, v);
     }
-SWIGINTERN void std_vector_Sl_Hex_Edge_Sm__Sg____setslice__(std::vector<Hex::Edge * > *self,std::vector<Hex::Edge * >::difference_type i,std::vector<Hex::Edge * >::difference_type j,std::vector<Hex::Edge *,std::allocator<Hex::Edge * > > const &v){
-      swig::setslice(self, i, j, v);
+SWIGINTERN void std_vector_Sl_Hex_Edge_Sm__Sg____delslice__(std::vector< Hex::Edge * > *self,std::vector< Hex::Edge * >::difference_type i,std::vector< Hex::Edge * >::difference_type j){
+      swig::delslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_Hex_Edge_Sm__Sg____delslice__(std::vector<Hex::Edge * > *self,std::vector<Hex::Edge * >::difference_type i,std::vector<Hex::Edge * >::difference_type j){
-      swig::delslice(self, i, j);
+SWIGINTERN void std_vector_Sl_Hex_Edge_Sm__Sg____delitem____SWIG_0(std::vector< Hex::Edge * > *self,std::vector< Hex::Edge * >::difference_type i){
+      swig::erase(self, swig::getpos(self, i));
     }
-SWIGINTERN void std_vector_Sl_Hex_Edge_Sm__Sg____delitem__(std::vector<Hex::Edge * > *self,std::vector<Hex::Edge * >::difference_type i){
-      self->erase(swig::getpos(self,i));
+SWIGINTERN std::vector< Hex::Edge *,std::allocator< Hex::Edge * > > *std_vector_Sl_Hex_Edge_Sm__Sg____getitem____SWIG_0(std::vector< Hex::Edge * > *self,PySliceObject *slice){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return NULL;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >::difference_type id = i;
+      std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >::difference_type jd = j;
+      return swig::getslice(self, id, jd, step);
+    }
+SWIGINTERN void std_vector_Sl_Hex_Edge_Sm__Sg____setitem____SWIG_0(std::vector< Hex::Edge * > *self,PySliceObject *slice,std::vector< Hex::Edge *,std::allocator< Hex::Edge * > > const &v){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >::difference_type id = i;
+      std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >::difference_type jd = j;
+      swig::setslice(self, id, jd, step, v);
+    }
+SWIGINTERN void std_vector_Sl_Hex_Edge_Sm__Sg____setitem____SWIG_1(std::vector< Hex::Edge * > *self,PySliceObject *slice){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >::difference_type id = i;
+      std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >::difference_type jd = j;
+      swig::delslice(self, id, jd, step);
+    }
+SWIGINTERN void std_vector_Sl_Hex_Edge_Sm__Sg____delitem____SWIG_1(std::vector< Hex::Edge * > *self,PySliceObject *slice){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >::difference_type id = i;
+      std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >::difference_type jd = j;
+      swig::delslice(self, id, jd, step);
     }
-SWIGINTERN std::vector<Hex::Edge * >::value_type std_vector_Sl_Hex_Edge_Sm__Sg____getitem__(std::vector<Hex::Edge * > *self,std::vector<Hex::Edge * >::difference_type i){
+SWIGINTERN std::vector< Hex::Edge * >::value_type std_vector_Sl_Hex_Edge_Sm__Sg____getitem____SWIG_1(std::vector< Hex::Edge * > *self,std::vector< Hex::Edge * >::difference_type i){
       return *(swig::cgetpos(self, i));
     }
-SWIGINTERN void std_vector_Sl_Hex_Edge_Sm__Sg____setitem__(std::vector<Hex::Edge * > *self,std::vector<Hex::Edge * >::difference_type i,std::vector<Hex::Edge * >::value_type x){
+SWIGINTERN void std_vector_Sl_Hex_Edge_Sm__Sg____setitem____SWIG_2(std::vector< Hex::Edge * > *self,std::vector< Hex::Edge * >::difference_type i,std::vector< Hex::Edge * >::value_type x){
       *(swig::getpos(self,i)) = x;
     }
-SWIGINTERN void std_vector_Sl_Hex_Edge_Sm__Sg__append(std::vector<Hex::Edge * > *self,std::vector<Hex::Edge * >::value_type x){
-      self->push_back(x);
-    }
-
-  namespace swig {
-    template <>  struct traits<Hex::Vertex > {
+SWIGINTERN std::vector< Hex::Edge * >::value_type std_vector_Sl_Hex_Edge_Sm__Sg__pop(std::vector< Hex::Edge * > *self){
+      if (self->size() == 0)
+       throw std::out_of_range("pop from empty container");
+      std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
+SWIGINTERN void std_vector_Sl_Hex_Edge_Sm__Sg__append(std::vector< Hex::Edge * > *self,std::vector< Hex::Edge * >::value_type x){
+      self->push_back(x);
+    }
+SWIGINTERN std::vector< Hex::Edge * >::iterator std_vector_Sl_Hex_Edge_Sm__Sg__erase__SWIG_0(std::vector< Hex::Edge * > *self,std::vector< Hex::Edge * >::iterator pos){ return self->erase(pos); }
+SWIGINTERN std::vector< Hex::Edge * >::iterator std_vector_Sl_Hex_Edge_Sm__Sg__erase__SWIG_1(std::vector< Hex::Edge * > *self,std::vector< Hex::Edge * >::iterator first,std::vector< Hex::Edge * >::iterator last){ return self->erase(first, last); }
+SWIGINTERN std::vector< Hex::Edge * >::iterator std_vector_Sl_Hex_Edge_Sm__Sg__insert__SWIG_0(std::vector< Hex::Edge * > *self,std::vector< Hex::Edge * >::iterator pos,std::vector< Hex::Edge * >::value_type x){ return self->insert(pos, x); }
+SWIGINTERN void std_vector_Sl_Hex_Edge_Sm__Sg__insert__SWIG_1(std::vector< Hex::Edge * > *self,std::vector< Hex::Edge * >::iterator pos,std::vector< Hex::Edge * >::size_type n,std::vector< Hex::Edge * >::value_type x){ self->insert(pos, n, x); }
+
+  namespace swig {
+    template <>  struct traits< Hex::Vertex > {
       typedef pointer_category category;
       static const char* type_name() { return"Hex::Vertex"; }
     };
@@ -4141,54 +5196,108 @@ SWIGINTERN void std_vector_Sl_Hex_Edge_Sm__Sg__append(std::vector<Hex::Edge * >
 
 
       namespace swig {
-       template <>  struct traits<std::vector<Hex::Vertex*, std::allocator<Hex::Vertex * > > > {
+       template <>  struct traits<std::vector< Hex::Vertex*, std::allocator< Hex::Vertex * > > > {
          typedef value_category category;
          static const char* type_name() {
-           return "std::vector<" "Hex::Vertex" " *," "std::allocator<Hex::Vertex * >" " >";
+           return "std::vector<" "Hex::Vertex" " *," "std::allocator< Hex::Vertex * >" " >";
          }
        };
       }
     
-SWIGINTERN swig::PySwigIterator *std_vector_Sl_Hex_Vertex_Sm__Sg__iterator(std::vector<Hex::Vertex * > *self,PyObject **PYTHON_SELF){
+SWIGINTERN swig::SwigPyIterator *std_vector_Sl_Hex_Vertex_Sm__Sg__iterator(std::vector< Hex::Vertex * > *self,PyObject **PYTHON_SELF){
       return swig::make_output_iterator(self->begin(), self->begin(), self->end(), *PYTHON_SELF);
     }
-SWIGINTERN bool std_vector_Sl_Hex_Vertex_Sm__Sg____nonzero__(std::vector<Hex::Vertex * > const *self){
+SWIGINTERN bool std_vector_Sl_Hex_Vertex_Sm__Sg____nonzero__(std::vector< Hex::Vertex * > const *self){
+      return !(self->empty());
+    }
+SWIGINTERN bool std_vector_Sl_Hex_Vertex_Sm__Sg____bool__(std::vector< Hex::Vertex * > const *self){
       return !(self->empty());
     }
-SWIGINTERN std::vector<Hex::Vertex * >::size_type std_vector_Sl_Hex_Vertex_Sm__Sg____len__(std::vector<Hex::Vertex * > const *self){
+SWIGINTERN std::vector< Hex::Vertex * >::size_type std_vector_Sl_Hex_Vertex_Sm__Sg____len__(std::vector< Hex::Vertex * > const *self){
       return self->size();
     }
-SWIGINTERN std::vector<Hex::Vertex * >::value_type std_vector_Sl_Hex_Vertex_Sm__Sg__pop(std::vector<Hex::Vertex * > *self){
-      if (self->size() == 0)
-       throw std::out_of_range("pop from empty container");
-      std::vector<Hex::Vertex*,std::allocator<Hex::Vertex * > >::value_type x = self->back();
-      self->pop_back();
-      return x;
+SWIGINTERN std::vector< Hex::Vertex *,std::allocator< Hex::Vertex * > > *std_vector_Sl_Hex_Vertex_Sm__Sg____getslice__(std::vector< Hex::Vertex * > *self,std::vector< Hex::Vertex * >::difference_type i,std::vector< Hex::Vertex * >::difference_type j){
+      return swig::getslice(self, i, j, 1);
+    }
+SWIGINTERN void std_vector_Sl_Hex_Vertex_Sm__Sg____setslice____SWIG_0(std::vector< Hex::Vertex * > *self,std::vector< Hex::Vertex * >::difference_type i,std::vector< Hex::Vertex * >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >());
     }
-SWIGINTERN std::vector<Hex::Vertex *,std::allocator<Hex::Vertex * > > *std_vector_Sl_Hex_Vertex_Sm__Sg____getslice__(std::vector<Hex::Vertex * > *self,std::vector<Hex::Vertex * >::difference_type i,std::vector<Hex::Vertex * >::difference_type j){
-      return swig::getslice(self, i, j);
+SWIGINTERN void std_vector_Sl_Hex_Vertex_Sm__Sg____setslice____SWIG_1(std::vector< Hex::Vertex * > *self,std::vector< Hex::Vertex * >::difference_type i,std::vector< Hex::Vertex * >::difference_type j,std::vector< Hex::Vertex *,std::allocator< Hex::Vertex * > > const &v){
+      swig::setslice(self, i, j, 1, v);
     }
-SWIGINTERN void std_vector_Sl_Hex_Vertex_Sm__Sg____setslice__(std::vector<Hex::Vertex * > *self,std::vector<Hex::Vertex * >::difference_type i,std::vector<Hex::Vertex * >::difference_type j,std::vector<Hex::Vertex *,std::allocator<Hex::Vertex * > > const &v){
-      swig::setslice(self, i, j, v);
+SWIGINTERN void std_vector_Sl_Hex_Vertex_Sm__Sg____delslice__(std::vector< Hex::Vertex * > *self,std::vector< Hex::Vertex * >::difference_type i,std::vector< Hex::Vertex * >::difference_type j){
+      swig::delslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_Hex_Vertex_Sm__Sg____delslice__(std::vector<Hex::Vertex * > *self,std::vector<Hex::Vertex * >::difference_type i,std::vector<Hex::Vertex * >::difference_type j){
-      swig::delslice(self, i, j);
+SWIGINTERN void std_vector_Sl_Hex_Vertex_Sm__Sg____delitem____SWIG_0(std::vector< Hex::Vertex * > *self,std::vector< Hex::Vertex * >::difference_type i){
+      swig::erase(self, swig::getpos(self, i));
     }
-SWIGINTERN void std_vector_Sl_Hex_Vertex_Sm__Sg____delitem__(std::vector<Hex::Vertex * > *self,std::vector<Hex::Vertex * >::difference_type i){
-      self->erase(swig::getpos(self,i));
+SWIGINTERN std::vector< Hex::Vertex *,std::allocator< Hex::Vertex * > > *std_vector_Sl_Hex_Vertex_Sm__Sg____getitem____SWIG_0(std::vector< Hex::Vertex * > *self,PySliceObject *slice){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return NULL;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >::difference_type id = i;
+      std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >::difference_type jd = j;
+      return swig::getslice(self, id, jd, step);
+    }
+SWIGINTERN void std_vector_Sl_Hex_Vertex_Sm__Sg____setitem____SWIG_0(std::vector< Hex::Vertex * > *self,PySliceObject *slice,std::vector< Hex::Vertex *,std::allocator< Hex::Vertex * > > const &v){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >::difference_type id = i;
+      std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >::difference_type jd = j;
+      swig::setslice(self, id, jd, step, v);
+    }
+SWIGINTERN void std_vector_Sl_Hex_Vertex_Sm__Sg____setitem____SWIG_1(std::vector< Hex::Vertex * > *self,PySliceObject *slice){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >::difference_type id = i;
+      std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >::difference_type jd = j;
+      swig::delslice(self, id, jd, step);
+    }
+SWIGINTERN void std_vector_Sl_Hex_Vertex_Sm__Sg____delitem____SWIG_1(std::vector< Hex::Vertex * > *self,PySliceObject *slice){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >::difference_type id = i;
+      std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >::difference_type jd = j;
+      swig::delslice(self, id, jd, step);
     }
-SWIGINTERN std::vector<Hex::Vertex * >::value_type std_vector_Sl_Hex_Vertex_Sm__Sg____getitem__(std::vector<Hex::Vertex * > *self,std::vector<Hex::Vertex * >::difference_type i){
+SWIGINTERN std::vector< Hex::Vertex * >::value_type std_vector_Sl_Hex_Vertex_Sm__Sg____getitem____SWIG_1(std::vector< Hex::Vertex * > *self,std::vector< Hex::Vertex * >::difference_type i){
       return *(swig::cgetpos(self, i));
     }
-SWIGINTERN void std_vector_Sl_Hex_Vertex_Sm__Sg____setitem__(std::vector<Hex::Vertex * > *self,std::vector<Hex::Vertex * >::difference_type i,std::vector<Hex::Vertex * >::value_type x){
+SWIGINTERN void std_vector_Sl_Hex_Vertex_Sm__Sg____setitem____SWIG_2(std::vector< Hex::Vertex * > *self,std::vector< Hex::Vertex * >::difference_type i,std::vector< Hex::Vertex * >::value_type x){
       *(swig::getpos(self,i)) = x;
     }
-SWIGINTERN void std_vector_Sl_Hex_Vertex_Sm__Sg__append(std::vector<Hex::Vertex * > *self,std::vector<Hex::Vertex * >::value_type x){
+SWIGINTERN std::vector< Hex::Vertex * >::value_type std_vector_Sl_Hex_Vertex_Sm__Sg__pop(std::vector< Hex::Vertex * > *self){
+      if (self->size() == 0)
+       throw std::out_of_range("pop from empty container");
+      std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
+SWIGINTERN void std_vector_Sl_Hex_Vertex_Sm__Sg__append(std::vector< Hex::Vertex * > *self,std::vector< Hex::Vertex * >::value_type x){
       self->push_back(x);
     }
+SWIGINTERN std::vector< Hex::Vertex * >::iterator std_vector_Sl_Hex_Vertex_Sm__Sg__erase__SWIG_0(std::vector< Hex::Vertex * > *self,std::vector< Hex::Vertex * >::iterator pos){ return self->erase(pos); }
+SWIGINTERN std::vector< Hex::Vertex * >::iterator std_vector_Sl_Hex_Vertex_Sm__Sg__erase__SWIG_1(std::vector< Hex::Vertex * > *self,std::vector< Hex::Vertex * >::iterator first,std::vector< Hex::Vertex * >::iterator last){ return self->erase(first, last); }
+SWIGINTERN std::vector< Hex::Vertex * >::iterator std_vector_Sl_Hex_Vertex_Sm__Sg__insert__SWIG_0(std::vector< Hex::Vertex * > *self,std::vector< Hex::Vertex * >::iterator pos,std::vector< Hex::Vertex * >::value_type x){ return self->insert(pos, x); }
+SWIGINTERN void std_vector_Sl_Hex_Vertex_Sm__Sg__insert__SWIG_1(std::vector< Hex::Vertex * > *self,std::vector< Hex::Vertex * >::iterator pos,std::vector< Hex::Vertex * >::size_type n,std::vector< Hex::Vertex * >::value_type x){ self->insert(pos, n, x); }
 
   namespace swig {
-    template <>  struct traits<Hex::NewShape > {
+    template <>  struct traits< Hex::NewShape > {
       typedef pointer_category category;
       static const char* type_name() { return"Hex::NewShape"; }
     };
@@ -4196,67 +5305,121 @@ SWIGINTERN void std_vector_Sl_Hex_Vertex_Sm__Sg__append(std::vector<Hex::Vertex
 
 
       namespace swig {
-       template <>  struct traits<std::vector<Hex::NewShape*, std::allocator<Hex::NewShape * > > > {
+       template <>  struct traits<std::vector< Hex::NewShape*, std::allocator< Hex::NewShape * > > > {
          typedef value_category category;
          static const char* type_name() {
-           return "std::vector<" "Hex::NewShape" " *," "std::allocator<Hex::NewShape * >" " >";
+           return "std::vector<" "Hex::NewShape" " *," "std::allocator< Hex::NewShape * >" " >";
          }
        };
       }
     
-SWIGINTERN swig::PySwigIterator *std_vector_Sl_Hex_NewShape_Sm__Sg__iterator(std::vector<Hex::NewShape * > *self,PyObject **PYTHON_SELF){
+SWIGINTERN swig::SwigPyIterator *std_vector_Sl_Hex_NewShape_Sm__Sg__iterator(std::vector< Hex::NewShape * > *self,PyObject **PYTHON_SELF){
       return swig::make_output_iterator(self->begin(), self->begin(), self->end(), *PYTHON_SELF);
     }
-SWIGINTERN bool std_vector_Sl_Hex_NewShape_Sm__Sg____nonzero__(std::vector<Hex::NewShape * > const *self){
+SWIGINTERN bool std_vector_Sl_Hex_NewShape_Sm__Sg____nonzero__(std::vector< Hex::NewShape * > const *self){
+      return !(self->empty());
+    }
+SWIGINTERN bool std_vector_Sl_Hex_NewShape_Sm__Sg____bool__(std::vector< Hex::NewShape * > const *self){
       return !(self->empty());
     }
-SWIGINTERN std::vector<Hex::NewShape * >::size_type std_vector_Sl_Hex_NewShape_Sm__Sg____len__(std::vector<Hex::NewShape * > const *self){
+SWIGINTERN std::vector< Hex::NewShape * >::size_type std_vector_Sl_Hex_NewShape_Sm__Sg____len__(std::vector< Hex::NewShape * > const *self){
       return self->size();
     }
-SWIGINTERN std::vector<Hex::NewShape * >::value_type std_vector_Sl_Hex_NewShape_Sm__Sg__pop(std::vector<Hex::NewShape * > *self){
-      if (self->size() == 0)
-       throw std::out_of_range("pop from empty container");
-      std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > >::value_type x = self->back();
-      self->pop_back();
-      return x;
+SWIGINTERN std::vector< Hex::NewShape *,std::allocator< Hex::NewShape * > > *std_vector_Sl_Hex_NewShape_Sm__Sg____getslice__(std::vector< Hex::NewShape * > *self,std::vector< Hex::NewShape * >::difference_type i,std::vector< Hex::NewShape * >::difference_type j){
+      return swig::getslice(self, i, j, 1);
+    }
+SWIGINTERN void std_vector_Sl_Hex_NewShape_Sm__Sg____setslice____SWIG_0(std::vector< Hex::NewShape * > *self,std::vector< Hex::NewShape * >::difference_type i,std::vector< Hex::NewShape * >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >());
     }
-SWIGINTERN std::vector<Hex::NewShape *,std::allocator<Hex::NewShape * > > *std_vector_Sl_Hex_NewShape_Sm__Sg____getslice__(std::vector<Hex::NewShape * > *self,std::vector<Hex::NewShape * >::difference_type i,std::vector<Hex::NewShape * >::difference_type j){
-      return swig::getslice(self, i, j);
+SWIGINTERN void std_vector_Sl_Hex_NewShape_Sm__Sg____setslice____SWIG_1(std::vector< Hex::NewShape * > *self,std::vector< Hex::NewShape * >::difference_type i,std::vector< Hex::NewShape * >::difference_type j,std::vector< Hex::NewShape *,std::allocator< Hex::NewShape * > > const &v){
+      swig::setslice(self, i, j, 1, v);
     }
-SWIGINTERN void std_vector_Sl_Hex_NewShape_Sm__Sg____setslice__(std::vector<Hex::NewShape * > *self,std::vector<Hex::NewShape * >::difference_type i,std::vector<Hex::NewShape * >::difference_type j,std::vector<Hex::NewShape *,std::allocator<Hex::NewShape * > > const &v){
-      swig::setslice(self, i, j, v);
+SWIGINTERN void std_vector_Sl_Hex_NewShape_Sm__Sg____delslice__(std::vector< Hex::NewShape * > *self,std::vector< Hex::NewShape * >::difference_type i,std::vector< Hex::NewShape * >::difference_type j){
+      swig::delslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_Hex_NewShape_Sm__Sg____delslice__(std::vector<Hex::NewShape * > *self,std::vector<Hex::NewShape * >::difference_type i,std::vector<Hex::NewShape * >::difference_type j){
-      swig::delslice(self, i, j);
+SWIGINTERN void std_vector_Sl_Hex_NewShape_Sm__Sg____delitem____SWIG_0(std::vector< Hex::NewShape * > *self,std::vector< Hex::NewShape * >::difference_type i){
+      swig::erase(self, swig::getpos(self, i));
     }
-SWIGINTERN void std_vector_Sl_Hex_NewShape_Sm__Sg____delitem__(std::vector<Hex::NewShape * > *self,std::vector<Hex::NewShape * >::difference_type i){
-      self->erase(swig::getpos(self,i));
+SWIGINTERN std::vector< Hex::NewShape *,std::allocator< Hex::NewShape * > > *std_vector_Sl_Hex_NewShape_Sm__Sg____getitem____SWIG_0(std::vector< Hex::NewShape * > *self,PySliceObject *slice){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return NULL;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >::difference_type id = i;
+      std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >::difference_type jd = j;
+      return swig::getslice(self, id, jd, step);
+    }
+SWIGINTERN void std_vector_Sl_Hex_NewShape_Sm__Sg____setitem____SWIG_0(std::vector< Hex::NewShape * > *self,PySliceObject *slice,std::vector< Hex::NewShape *,std::allocator< Hex::NewShape * > > const &v){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >::difference_type id = i;
+      std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >::difference_type jd = j;
+      swig::setslice(self, id, jd, step, v);
+    }
+SWIGINTERN void std_vector_Sl_Hex_NewShape_Sm__Sg____setitem____SWIG_1(std::vector< Hex::NewShape * > *self,PySliceObject *slice){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >::difference_type id = i;
+      std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >::difference_type jd = j;
+      swig::delslice(self, id, jd, step);
+    }
+SWIGINTERN void std_vector_Sl_Hex_NewShape_Sm__Sg____delitem____SWIG_1(std::vector< Hex::NewShape * > *self,PySliceObject *slice){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >::difference_type id = i;
+      std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >::difference_type jd = j;
+      swig::delslice(self, id, jd, step);
     }
-SWIGINTERN std::vector<Hex::NewShape * >::value_type std_vector_Sl_Hex_NewShape_Sm__Sg____getitem__(std::vector<Hex::NewShape * > *self,std::vector<Hex::NewShape * >::difference_type i){
+SWIGINTERN std::vector< Hex::NewShape * >::value_type std_vector_Sl_Hex_NewShape_Sm__Sg____getitem____SWIG_1(std::vector< Hex::NewShape * > *self,std::vector< Hex::NewShape * >::difference_type i){
       return *(swig::cgetpos(self, i));
     }
-SWIGINTERN void std_vector_Sl_Hex_NewShape_Sm__Sg____setitem__(std::vector<Hex::NewShape * > *self,std::vector<Hex::NewShape * >::difference_type i,std::vector<Hex::NewShape * >::value_type x){
+SWIGINTERN void std_vector_Sl_Hex_NewShape_Sm__Sg____setitem____SWIG_2(std::vector< Hex::NewShape * > *self,std::vector< Hex::NewShape * >::difference_type i,std::vector< Hex::NewShape * >::value_type x){
       *(swig::getpos(self,i)) = x;
     }
-SWIGINTERN void std_vector_Sl_Hex_NewShape_Sm__Sg__append(std::vector<Hex::NewShape * > *self,std::vector<Hex::NewShape * >::value_type x){
+SWIGINTERN std::vector< Hex::NewShape * >::value_type std_vector_Sl_Hex_NewShape_Sm__Sg__pop(std::vector< Hex::NewShape * > *self){
+      if (self->size() == 0)
+       throw std::out_of_range("pop from empty container");
+      std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
+SWIGINTERN void std_vector_Sl_Hex_NewShape_Sm__Sg__append(std::vector< Hex::NewShape * > *self,std::vector< Hex::NewShape * >::value_type x){
       self->push_back(x);
     }
+SWIGINTERN std::vector< Hex::NewShape * >::iterator std_vector_Sl_Hex_NewShape_Sm__Sg__erase__SWIG_0(std::vector< Hex::NewShape * > *self,std::vector< Hex::NewShape * >::iterator pos){ return self->erase(pos); }
+SWIGINTERN std::vector< Hex::NewShape * >::iterator std_vector_Sl_Hex_NewShape_Sm__Sg__erase__SWIG_1(std::vector< Hex::NewShape * > *self,std::vector< Hex::NewShape * >::iterator first,std::vector< Hex::NewShape * >::iterator last){ return self->erase(first, last); }
+SWIGINTERN std::vector< Hex::NewShape * >::iterator std_vector_Sl_Hex_NewShape_Sm__Sg__insert__SWIG_0(std::vector< Hex::NewShape * > *self,std::vector< Hex::NewShape * >::iterator pos,std::vector< Hex::NewShape * >::value_type x){ return self->insert(pos, x); }
+SWIGINTERN void std_vector_Sl_Hex_NewShape_Sm__Sg__insert__SWIG_1(std::vector< Hex::NewShape * > *self,std::vector< Hex::NewShape * >::iterator pos,std::vector< Hex::NewShape * >::size_type n,std::vector< Hex::NewShape * >::value_type x){ self->insert(pos, n, x); }
 
   #define SWIG_From_double   PyFloat_FromDouble 
 
 
 namespace swig {
-  template <> struct traits<double > {
+  template <> struct traits< double > {
     typedef value_category category;
     static const char* type_name() { return"double"; }
-  };  
-  template <>  struct traits_asval<double > {   
+  };
+  template <>  struct traits_asval< double > {
     typedef double value_type;
-    static int asval(PyObject *obj, value_type *val) { 
+    static int asval(PyObject *obj, value_type *val) {
       return SWIG_AsVal_double (obj, val);
     }
   };
-  template <>  struct traits_from<double > {
+  template <>  struct traits_from< double > {
     typedef double value_type;
     static PyObject *from(const value_type& val) {
       return SWIG_From_double  (val);
@@ -4266,63 +5429,105 @@ namespace swig {
 
 
       namespace swig {
-       template <>  struct traits<std::vector<double, std::allocator<double > > > {
+       template <>  struct traits<std::vector< double, std::allocator< double > > > {
          typedef pointer_category category;
          static const char* type_name() {
-           return "std::vector<" "double" "," "std::allocator<double >" " >";
+           return "std::vector<" "double" "," "std::allocator< double >" " >";
          }
        };
       }
     
-SWIGINTERN swig::PySwigIterator *std_vector_Sl_double_Sg__iterator(std::vector<double > *self,PyObject **PYTHON_SELF){
+SWIGINTERN swig::SwigPyIterator *std_vector_Sl_double_Sg__iterator(std::vector< double > *self,PyObject **PYTHON_SELF){
       return swig::make_output_iterator(self->begin(), self->begin(), self->end(), *PYTHON_SELF);
     }
-SWIGINTERN bool std_vector_Sl_double_Sg____nonzero__(std::vector<double > const *self){
+SWIGINTERN bool std_vector_Sl_double_Sg____nonzero__(std::vector< double > const *self){
       return !(self->empty());
     }
-SWIGINTERN std::vector<double >::size_type std_vector_Sl_double_Sg____len__(std::vector<double > const *self){
+SWIGINTERN bool std_vector_Sl_double_Sg____bool__(std::vector< double > const *self){
+      return !(self->empty());
+    }
+SWIGINTERN std::vector< double >::size_type std_vector_Sl_double_Sg____len__(std::vector< double > const *self){
       return self->size();
     }
-SWIGINTERN std::vector<double >::value_type std_vector_Sl_double_Sg__pop(std::vector<double > *self){
-      if (self->size() == 0)
-       throw std::out_of_range("pop from empty container");
-      std::vector<double,std::allocator<double > >::value_type x = self->back();
-      self->pop_back();
-      return x;
+SWIGINTERN std::vector< double,std::allocator< double > > *std_vector_Sl_double_Sg____getslice__(std::vector< double > *self,std::vector< double >::difference_type i,std::vector< double >::difference_type j){
+      return swig::getslice(self, i, j, 1);
     }
-SWIGINTERN std::vector<double,std::allocator<double > > *std_vector_Sl_double_Sg____getslice__(std::vector<double > *self,std::vector<double >::difference_type i,std::vector<double >::difference_type j){
-      return swig::getslice(self, i, j);
+SWIGINTERN void std_vector_Sl_double_Sg____setslice____SWIG_0(std::vector< double > *self,std::vector< double >::difference_type i,std::vector< double >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< double,std::allocator< double > >());
     }
-SWIGINTERN void std_vector_Sl_double_Sg____setslice__(std::vector<double > *self,std::vector<double >::difference_type i,std::vector<double >::difference_type j,std::vector<double,std::allocator<double > > const &v){
-      swig::setslice(self, i, j, v);
+SWIGINTERN void std_vector_Sl_double_Sg____setslice____SWIG_1(std::vector< double > *self,std::vector< double >::difference_type i,std::vector< double >::difference_type j,std::vector< double,std::allocator< double > > const &v){
+      swig::setslice(self, i, j, 1, v);
     }
-SWIGINTERN void std_vector_Sl_double_Sg____delslice__(std::vector<double > *self,std::vector<double >::difference_type i,std::vector<double >::difference_type j){
-      swig::delslice(self, i, j);
+SWIGINTERN void std_vector_Sl_double_Sg____delslice__(std::vector< double > *self,std::vector< double >::difference_type i,std::vector< double >::difference_type j){
+      swig::delslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_double_Sg____delitem__(std::vector<double > *self,std::vector<double >::difference_type i){
-      self->erase(swig::getpos(self,i));
+SWIGINTERN void std_vector_Sl_double_Sg____delitem____SWIG_0(std::vector< double > *self,std::vector< double >::difference_type i){
+      swig::erase(self, swig::getpos(self, i));
+    }
+SWIGINTERN std::vector< double,std::allocator< double > > *std_vector_Sl_double_Sg____getitem____SWIG_0(std::vector< double > *self,PySliceObject *slice){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return NULL;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< double,std::allocator< double > >::difference_type id = i;
+      std::vector< double,std::allocator< double > >::difference_type jd = j;
+      return swig::getslice(self, id, jd, step);
+    }
+SWIGINTERN void std_vector_Sl_double_Sg____setitem____SWIG_0(std::vector< double > *self,PySliceObject *slice,std::vector< double,std::allocator< double > > const &v){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< double,std::allocator< double > >::difference_type id = i;
+      std::vector< double,std::allocator< double > >::difference_type jd = j;
+      swig::setslice(self, id, jd, step, v);
+    }
+SWIGINTERN void std_vector_Sl_double_Sg____setitem____SWIG_1(std::vector< double > *self,PySliceObject *slice){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< double,std::allocator< double > >::difference_type id = i;
+      std::vector< double,std::allocator< double > >::difference_type jd = j;
+      swig::delslice(self, id, jd, step);
+    }
+SWIGINTERN void std_vector_Sl_double_Sg____delitem____SWIG_1(std::vector< double > *self,PySliceObject *slice){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< double,std::allocator< double > >::difference_type id = i;
+      std::vector< double,std::allocator< double > >::difference_type jd = j;
+      swig::delslice(self, id, jd, step);
     }
-SWIGINTERN std::vector<double >::value_type const &std_vector_Sl_double_Sg____getitem__(std::vector<double > const *self,std::vector<double >::difference_type i){
+SWIGINTERN std::vector< double >::value_type const &std_vector_Sl_double_Sg____getitem____SWIG_1(std::vector< double > const *self,std::vector< double >::difference_type i){
       return *(swig::cgetpos(self, i));
     }
-SWIGINTERN void std_vector_Sl_double_Sg____setitem__(std::vector<double > *self,std::vector<double >::difference_type i,std::vector<double >::value_type const &x){
+SWIGINTERN void std_vector_Sl_double_Sg____setitem____SWIG_2(std::vector< double > *self,std::vector< double >::difference_type i,std::vector< double >::value_type const &x){
       *(swig::getpos(self,i)) = x;
     }
-SWIGINTERN void std_vector_Sl_double_Sg__append(std::vector<double > *self,std::vector<double >::value_type const &x){
+SWIGINTERN std::vector< double >::value_type std_vector_Sl_double_Sg__pop(std::vector< double > *self){
+      if (self->size() == 0)
+       throw std::out_of_range("pop from empty container");
+      std::vector< double,std::allocator< double > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
+SWIGINTERN void std_vector_Sl_double_Sg__append(std::vector< double > *self,std::vector< double >::value_type const &x){
       self->push_back(x);
     }
-
-#include <limits.h>
-#ifndef LLONG_MIN
-# define LLONG_MIN     LONG_LONG_MIN
-#endif
-#ifndef LLONG_MAX
-# define LLONG_MAX     LONG_LONG_MAX
-#endif
-#ifndef ULLONG_MAX
-# define ULLONG_MAX    ULONG_LONG_MAX
-#endif
-
+SWIGINTERN std::vector< double >::iterator std_vector_Sl_double_Sg__erase__SWIG_0(std::vector< double > *self,std::vector< double >::iterator pos){ return self->erase(pos); }
+SWIGINTERN std::vector< double >::iterator std_vector_Sl_double_Sg__erase__SWIG_1(std::vector< double > *self,std::vector< double >::iterator first,std::vector< double >::iterator last){ return self->erase(first, last); }
+SWIGINTERN std::vector< double >::iterator std_vector_Sl_double_Sg__insert__SWIG_0(std::vector< double > *self,std::vector< double >::iterator pos,std::vector< double >::value_type const &x){ return self->insert(pos, x); }
+SWIGINTERN void std_vector_Sl_double_Sg__insert__SWIG_1(std::vector< double > *self,std::vector< double >::iterator pos,std::vector< double >::size_type n,std::vector< double >::value_type const &x){ self->insert(pos, n, x); }
 
 SWIGINTERN int
 SWIG_AsVal_int (PyObject * obj, int *val)
@@ -4340,25 +5545,25 @@ SWIG_AsVal_int (PyObject * obj, int *val)
 }
 
 
-SWIGINTERNINLINE PyObject *
-SWIG_From_int  (int value)
-{    
-  return SWIG_From_long  (value);
+SWIGINTERNINLINE PyObject*
+  SWIG_From_int  (int value)
+{
+  return PyInt_FromLong((long) value);
 }
 
 
 namespace swig {
-  template <> struct traits<int > {
+  template <> struct traits< int > {
     typedef value_category category;
     static const char* type_name() { return"int"; }
-  };  
-  template <>  struct traits_asval<int > {   
+  };
+  template <>  struct traits_asval< int > {
     typedef int value_type;
-    static int asval(PyObject *obj, value_type *val) { 
+    static int asval(PyObject *obj, value_type *val) {
       return SWIG_AsVal_int (obj, val);
     }
   };
-  template <>  struct traits_from<int > {
+  template <>  struct traits_from< int > {
     typedef int value_type;
     static PyObject *from(const value_type& val) {
       return SWIG_From_int  (val);
@@ -4368,51 +5573,105 @@ namespace swig {
 
 
       namespace swig {
-       template <>  struct traits<std::vector<int, std::allocator<int > > > {
+       template <>  struct traits<std::vector< int, std::allocator< int > > > {
          typedef pointer_category category;
          static const char* type_name() {
-           return "std::vector<" "int" "," "std::allocator<int >" " >";
+           return "std::vector<" "int" "," "std::allocator< int >" " >";
          }
        };
       }
     
-SWIGINTERN swig::PySwigIterator *std_vector_Sl_int_Sg__iterator(std::vector<int > *self,PyObject **PYTHON_SELF){
+SWIGINTERN swig::SwigPyIterator *std_vector_Sl_int_Sg__iterator(std::vector< int > *self,PyObject **PYTHON_SELF){
       return swig::make_output_iterator(self->begin(), self->begin(), self->end(), *PYTHON_SELF);
     }
-SWIGINTERN bool std_vector_Sl_int_Sg____nonzero__(std::vector<int > const *self){
+SWIGINTERN bool std_vector_Sl_int_Sg____nonzero__(std::vector< int > const *self){
+      return !(self->empty());
+    }
+SWIGINTERN bool std_vector_Sl_int_Sg____bool__(std::vector< int > const *self){
       return !(self->empty());
     }
-SWIGINTERN std::vector<int >::size_type std_vector_Sl_int_Sg____len__(std::vector<int > const *self){
+SWIGINTERN std::vector< int >::size_type std_vector_Sl_int_Sg____len__(std::vector< int > const *self){
       return self->size();
     }
-SWIGINTERN std::vector<int >::value_type std_vector_Sl_int_Sg__pop(std::vector<int > *self){
-      if (self->size() == 0)
-       throw std::out_of_range("pop from empty container");
-      std::vector<int,std::allocator<int > >::value_type x = self->back();
-      self->pop_back();
-      return x;
+SWIGINTERN std::vector< int,std::allocator< int > > *std_vector_Sl_int_Sg____getslice__(std::vector< int > *self,std::vector< int >::difference_type i,std::vector< int >::difference_type j){
+      return swig::getslice(self, i, j, 1);
+    }
+SWIGINTERN void std_vector_Sl_int_Sg____setslice____SWIG_0(std::vector< int > *self,std::vector< int >::difference_type i,std::vector< int >::difference_type j){
+      swig::setslice(self, i, j, 1, std::vector< int,std::allocator< int > >());
     }
-SWIGINTERN std::vector<int,std::allocator<int > > *std_vector_Sl_int_Sg____getslice__(std::vector<int > *self,std::vector<int >::difference_type i,std::vector<int >::difference_type j){
-      return swig::getslice(self, i, j);
+SWIGINTERN void std_vector_Sl_int_Sg____setslice____SWIG_1(std::vector< int > *self,std::vector< int >::difference_type i,std::vector< int >::difference_type j,std::vector< int,std::allocator< int > > const &v){
+      swig::setslice(self, i, j, 1, v);
     }
-SWIGINTERN void std_vector_Sl_int_Sg____setslice__(std::vector<int > *self,std::vector<int >::difference_type i,std::vector<int >::difference_type j,std::vector<int,std::allocator<int > > const &v){
-      swig::setslice(self, i, j, v);
+SWIGINTERN void std_vector_Sl_int_Sg____delslice__(std::vector< int > *self,std::vector< int >::difference_type i,std::vector< int >::difference_type j){
+      swig::delslice(self, i, j, 1);
     }
-SWIGINTERN void std_vector_Sl_int_Sg____delslice__(std::vector<int > *self,std::vector<int >::difference_type i,std::vector<int >::difference_type j){
-      swig::delslice(self, i, j);
+SWIGINTERN void std_vector_Sl_int_Sg____delitem____SWIG_0(std::vector< int > *self,std::vector< int >::difference_type i){
+      swig::erase(self, swig::getpos(self, i));
     }
-SWIGINTERN void std_vector_Sl_int_Sg____delitem__(std::vector<int > *self,std::vector<int >::difference_type i){
-      self->erase(swig::getpos(self,i));
+SWIGINTERN std::vector< int,std::allocator< int > > *std_vector_Sl_int_Sg____getitem____SWIG_0(std::vector< int > *self,PySliceObject *slice){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return NULL;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< int,std::allocator< int > >::difference_type id = i;
+      std::vector< int,std::allocator< int > >::difference_type jd = j;
+      return swig::getslice(self, id, jd, step);
+    }
+SWIGINTERN void std_vector_Sl_int_Sg____setitem____SWIG_0(std::vector< int > *self,PySliceObject *slice,std::vector< int,std::allocator< int > > const &v){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< int,std::allocator< int > >::difference_type id = i;
+      std::vector< int,std::allocator< int > >::difference_type jd = j;
+      swig::setslice(self, id, jd, step, v);
+    }
+SWIGINTERN void std_vector_Sl_int_Sg____setitem____SWIG_1(std::vector< int > *self,PySliceObject *slice){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< int,std::allocator< int > >::difference_type id = i;
+      std::vector< int,std::allocator< int > >::difference_type jd = j;
+      swig::delslice(self, id, jd, step);
+    }
+SWIGINTERN void std_vector_Sl_int_Sg____delitem____SWIG_1(std::vector< int > *self,PySliceObject *slice){
+      Py_ssize_t i, j, step;
+      if( !PySlice_Check(slice) ) {
+        SWIG_Error(SWIG_TypeError, "Slice object expected.");
+        return;
+      }
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::vector< int,std::allocator< int > >::difference_type id = i;
+      std::vector< int,std::allocator< int > >::difference_type jd = j;
+      swig::delslice(self, id, jd, step);
     }
-SWIGINTERN std::vector<int >::value_type const &std_vector_Sl_int_Sg____getitem__(std::vector<int > const *self,std::vector<int >::difference_type i){
+SWIGINTERN std::vector< int >::value_type const &std_vector_Sl_int_Sg____getitem____SWIG_1(std::vector< int > const *self,std::vector< int >::difference_type i){
       return *(swig::cgetpos(self, i));
     }
-SWIGINTERN void std_vector_Sl_int_Sg____setitem__(std::vector<int > *self,std::vector<int >::difference_type i,std::vector<int >::value_type const &x){
+SWIGINTERN void std_vector_Sl_int_Sg____setitem____SWIG_2(std::vector< int > *self,std::vector< int >::difference_type i,std::vector< int >::value_type const &x){
       *(swig::getpos(self,i)) = x;
     }
-SWIGINTERN void std_vector_Sl_int_Sg__append(std::vector<int > *self,std::vector<int >::value_type const &x){
+SWIGINTERN std::vector< int >::value_type std_vector_Sl_int_Sg__pop(std::vector< int > *self){
+      if (self->size() == 0)
+       throw std::out_of_range("pop from empty container");
+      std::vector< int,std::allocator< int > >::value_type x = self->back();
+      self->pop_back();
+      return x;
+    }
+SWIGINTERN void std_vector_Sl_int_Sg__append(std::vector< int > *self,std::vector< int >::value_type const &x){
       self->push_back(x);
     }
+SWIGINTERN std::vector< int >::iterator std_vector_Sl_int_Sg__erase__SWIG_0(std::vector< int > *self,std::vector< int >::iterator pos){ return self->erase(pos); }
+SWIGINTERN std::vector< int >::iterator std_vector_Sl_int_Sg__erase__SWIG_1(std::vector< int > *self,std::vector< int >::iterator first,std::vector< int >::iterator last){ return self->erase(first, last); }
+SWIGINTERN std::vector< int >::iterator std_vector_Sl_int_Sg__insert__SWIG_0(std::vector< int > *self,std::vector< int >::iterator pos,std::vector< int >::value_type const &x){ return self->insert(pos, x); }
+SWIGINTERN void std_vector_Sl_int_Sg__insert__SWIG_1(std::vector< int > *self,std::vector< int >::iterator pos,std::vector< int >::size_type n,std::vector< int >::value_type const &x){ self->insert(pos, n, x); }
 
 SWIGINTERN swig_type_info*
 SWIG_pchar_descriptor(void)
@@ -4434,9 +5693,21 @@ SWIG_FromCharPtrAndSize(const char* carray, size_t size)
     if (size > INT_MAX) {
       swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
       return pchar_descriptor ? 
-       SWIG_NewPointerObj(const_cast< char * >(carray), pchar_descriptor, 0) : SWIG_Py_Void();
+       SWIG_InternalNewPointerObj(const_cast< char * >(carray), pchar_descriptor, 0) : SWIG_Py_Void();
     } else {
-      return PyString_FromStringAndSize(carray, static_cast< int >(size));
+#if PY_VERSION_HEX >= 0x03000000
+#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
+      return PyBytes_FromStringAndSize(carray, static_cast< Py_ssize_t >(size));
+#else
+#if PY_VERSION_HEX >= 0x03010000
+      return PyUnicode_DecodeUTF8(carray, static_cast< Py_ssize_t >(size), "surrogateescape");
+#else
+      return PyUnicode_FromStringAndSize(carray, static_cast< Py_ssize_t >(size));
+#endif
+#endif
+#else
+      return PyString_FromStringAndSize(carray, static_cast< Py_ssize_t >(size));
+#endif
     }
   } else {
     return SWIG_Py_Void();
@@ -4461,10 +5732,34 @@ SWIG_FromCharPtr(const char *cptr)
 SWIGINTERN int
 SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
 {
-  if (PyString_Check(obj)) {
+#if PY_VERSION_HEX>=0x03000000
+#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
+  if (PyBytes_Check(obj))
+#else
+  if (PyUnicode_Check(obj))
+#endif
+#else  
+  if (PyString_Check(obj))
+#endif
+  {
     char *cstr; Py_ssize_t len;
+#if PY_VERSION_HEX>=0x03000000
+#if !defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
+    if (!alloc && cptr) {
+        /* We can't allow converting without allocation, since the internal
+           representation of string in Python 3 is UCS-2/UCS-4 but we require
+           a UTF-8 representation.
+           TODO(bhy) More detailed explanation */
+        return SWIG_RuntimeError;
+    }
+    obj = PyUnicode_AsUTF8String(obj);
+    if(alloc) *alloc = SWIG_NEWOBJ;
+#endif
+    PyBytes_AsStringAndSize(obj, &cstr, &len);
+#else
     PyString_AsStringAndSize(obj, &cstr, &len);
-    if (cptr)  {
+#endif
+    if (cptr) {
       if (alloc) {
        /* 
           In python the user should not be able to modify the inner
@@ -4480,21 +5775,58 @@ SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
 #else
        if (*alloc == SWIG_NEWOBJ) 
 #endif
-         {
-           *cptr = reinterpret_cast< char* >(memcpy((new char[len + 1]), cstr, sizeof(char)*(len + 1)));
-           *alloc = SWIG_NEWOBJ;
-         }
-       else {
+       {
+         *cptr = reinterpret_cast< char* >(memcpy(new char[len + 1], cstr, sizeof(char)*(len + 1)));
+         *alloc = SWIG_NEWOBJ;
+       } else {
          *cptr = cstr;
          *alloc = SWIG_OLDOBJ;
        }
       } else {
-       *cptr = PyString_AsString(obj);
+#if PY_VERSION_HEX>=0x03000000
+#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
+       *cptr = PyBytes_AsString(obj);
+#else
+       assert(0); /* Should never reach here with Unicode strings in Python 3 */
+#endif
+#else
+       *cptr = SWIG_Python_str_AsChar(obj);
+#endif
       }
     }
     if (psize) *psize = len + 1;
+#if PY_VERSION_HEX>=0x03000000 && !defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
+    Py_XDECREF(obj);
+#endif
     return SWIG_OK;
   } else {
+#if defined(SWIG_PYTHON_2_UNICODE)
+#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
+#error "Cannot use both SWIG_PYTHON_2_UNICODE and SWIG_PYTHON_STRICT_BYTE_CHAR at once"
+#endif
+#if PY_VERSION_HEX<0x03000000
+    if (PyUnicode_Check(obj)) {
+      char *cstr; Py_ssize_t len;
+      if (!alloc && cptr) {
+        return SWIG_RuntimeError;
+      }
+      obj = PyUnicode_AsUTF8String(obj);
+      if (PyString_AsStringAndSize(obj, &cstr, &len) != -1) {
+        if (cptr) {
+          if (alloc) *alloc = SWIG_NEWOBJ;
+          *cptr = reinterpret_cast< char* >(memcpy(new char[len + 1], cstr, sizeof(char)*(len + 1)));
+        }
+        if (psize) *psize = len + 1;
+
+        Py_XDECREF(obj);
+        return SWIG_OK;
+      } else {
+        Py_XDECREF(obj);
+      }
+    }
+#endif
+#endif
+
     swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
     if (pchar_descriptor) {
       void* vptr = 0;
@@ -4516,38 +5848,33 @@ SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
 SWIGINTERN int
 SWIG_AsVal_bool (PyObject *obj, bool *val)
 {
-  if (obj == Py_True) {
-    if (val) *val = true;
-    return SWIG_OK;
-  } else if (obj == Py_False) {
-    if (val) *val = false;
-    return SWIG_OK;
-  } else {
-    long v = 0;
-    int res = SWIG_AddCast(SWIG_AsVal_long (obj, val ? &v : 0));
-    if (SWIG_IsOK(res) && val) *val = v ? true : false;
-    return res;
-  }
+  int r;
+  if (!PyBool_Check(obj))
+    return SWIG_ERROR;
+  r = PyObject_IsTrue(obj);
+  if (r == -1)
+    return SWIG_ERROR;
+  if (val) *val = r ? true : false;
+  return SWIG_OK;
 }
 
 #ifdef __cplusplus
 extern "C" {
 #endif
-SWIGINTERN PyObject *_wrap_delete_PySwigIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_delete_SwigPyIterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+  swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:delete_PySwigIterator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_DISOWN |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:delete_SwigPyIterator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_PySwigIterator" "', argument " "1"" of type '" "swig::PySwigIterator *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_SwigPyIterator" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); 
   }
-  arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+  arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1);
   delete arg1;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -4555,22 +5882,22 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_PySwigIterator_value(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SwigPyIterator_value(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
-  PyObject *result = 0 ;
+  swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:PySwigIterator_value",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:SwigPyIterator_value",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_value" "', argument " "1"" of type '" "swig::PySwigIterator const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_value" "', argument " "1"" of type '" "swig::SwigPyIterator const *""'"); 
   }
-  arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+  arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1);
   try {
-    result = (PyObject *)((swig::PySwigIterator const *)arg1)->value();
+    result = (PyObject *)((swig::SwigPyIterator const *)arg1)->value();
   }
   catch(swig::stop_iteration &_e) {
     {
@@ -4587,31 +5914,31 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_PySwigIterator_incr__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SwigPyIterator_incr__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+  swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ;
   size_t arg2 ;
-  swig::PySwigIterator *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  swig::SwigPyIterator *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator_incr",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:SwigPyIterator_incr",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_incr" "', argument " "1"" of type '" "swig::PySwigIterator *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_incr" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); 
   }
-  arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+  arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1);
   ecode2 = SWIG_AsVal_size_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "PySwigIterator_incr" "', argument " "2"" of type '" "size_t""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SwigPyIterator_incr" "', argument " "2"" of type '" "size_t""'");
   } 
   arg2 = static_cast< size_t >(val2);
   try {
-    result = (swig::PySwigIterator *)(arg1)->incr(arg2);
+    result = (swig::SwigPyIterator *)(arg1)->incr(arg2);
   }
   catch(swig::stop_iteration &_e) {
     {
@@ -4621,29 +5948,29 @@ SWIGINTERN PyObject *_wrap_PySwigIterator_incr__SWIG_0(PyObject *SWIGUNUSEDPARM(
     }
   }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, 0 |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_PySwigIterator_incr__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SwigPyIterator_incr__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
-  swig::PySwigIterator *result = 0 ;
+  swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  swig::SwigPyIterator *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:PySwigIterator_incr",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:SwigPyIterator_incr",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_incr" "', argument " "1"" of type '" "swig::PySwigIterator *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_incr" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); 
   }
-  arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+  arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1);
   try {
-    result = (swig::PySwigIterator *)(arg1)->incr();
+    result = (swig::SwigPyIterator *)(arg1)->incr();
   }
   catch(swig::stop_iteration &_e) {
     {
@@ -4653,36 +5980,38 @@ SWIGINTERN PyObject *_wrap_PySwigIterator_incr__SWIG_1(PyObject *SWIGUNUSEDPARM(
     }
   }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, 0 |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_PySwigIterator_incr(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
+SWIGINTERN PyObject *_wrap_SwigPyIterator_incr(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 1) {
     int _v;
     void *vptr = 0;
-    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__PySwigIterator, 0);
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__SwigPyIterator, 0);
     _v = SWIG_CheckState(res);
     if (_v) {
-      return _wrap_PySwigIterator_incr__SWIG_1(self, args);
+      return _wrap_SwigPyIterator_incr__SWIG_1(self, args);
     }
   }
   if (argc == 2) {
     int _v;
     void *vptr = 0;
-    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__PySwigIterator, 0);
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__SwigPyIterator, 0);
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -4690,42 +6019,45 @@ SWIGINTERN PyObject *_wrap_PySwigIterator_incr(PyObject *self, PyObject *args) {
         _v = SWIG_CheckState(res);
       }
       if (_v) {
-        return _wrap_PySwigIterator_incr__SWIG_0(self, args);
+        return _wrap_SwigPyIterator_incr__SWIG_0(self, args);
       }
     }
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'PySwigIterator_incr'.\n  Possible C/C++ prototypes are:\n    incr(size_t)\n    incr()\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'SwigPyIterator_incr'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    swig::SwigPyIterator::incr(size_t)\n"
+    "    swig::SwigPyIterator::incr()\n");
+  return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_PySwigIterator_decr__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SwigPyIterator_decr__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+  swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ;
   size_t arg2 ;
-  swig::PySwigIterator *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  swig::SwigPyIterator *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator_decr",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:SwigPyIterator_decr",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_decr" "', argument " "1"" of type '" "swig::PySwigIterator *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_decr" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); 
   }
-  arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+  arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1);
   ecode2 = SWIG_AsVal_size_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "PySwigIterator_decr" "', argument " "2"" of type '" "size_t""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SwigPyIterator_decr" "', argument " "2"" of type '" "size_t""'");
   } 
   arg2 = static_cast< size_t >(val2);
   try {
-    result = (swig::PySwigIterator *)(arg1)->decr(arg2);
+    result = (swig::SwigPyIterator *)(arg1)->decr(arg2);
   }
   catch(swig::stop_iteration &_e) {
     {
@@ -4735,29 +6067,29 @@ SWIGINTERN PyObject *_wrap_PySwigIterator_decr__SWIG_0(PyObject *SWIGUNUSEDPARM(
     }
   }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, 0 |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_PySwigIterator_decr__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SwigPyIterator_decr__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
-  swig::PySwigIterator *result = 0 ;
+  swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  swig::SwigPyIterator *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:PySwigIterator_decr",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:SwigPyIterator_decr",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_decr" "', argument " "1"" of type '" "swig::PySwigIterator *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_decr" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); 
   }
-  arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+  arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1);
   try {
-    result = (swig::PySwigIterator *)(arg1)->decr();
+    result = (swig::SwigPyIterator *)(arg1)->decr();
   }
   catch(swig::stop_iteration &_e) {
     {
@@ -4767,36 +6099,38 @@ SWIGINTERN PyObject *_wrap_PySwigIterator_decr__SWIG_1(PyObject *SWIGUNUSEDPARM(
     }
   }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, 0 |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_PySwigIterator_decr(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
+SWIGINTERN PyObject *_wrap_SwigPyIterator_decr(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 1) {
     int _v;
     void *vptr = 0;
-    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__PySwigIterator, 0);
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__SwigPyIterator, 0);
     _v = SWIG_CheckState(res);
     if (_v) {
-      return _wrap_PySwigIterator_decr__SWIG_1(self, args);
+      return _wrap_SwigPyIterator_decr__SWIG_1(self, args);
     }
   }
   if (argc == 2) {
     int _v;
     void *vptr = 0;
-    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__PySwigIterator, 0);
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__SwigPyIterator, 0);
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -4804,45 +6138,48 @@ SWIGINTERN PyObject *_wrap_PySwigIterator_decr(PyObject *self, PyObject *args) {
         _v = SWIG_CheckState(res);
       }
       if (_v) {
-        return _wrap_PySwigIterator_decr__SWIG_0(self, args);
+        return _wrap_SwigPyIterator_decr__SWIG_0(self, args);
       }
     }
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'PySwigIterator_decr'.\n  Possible C/C++ prototypes are:\n    decr(size_t)\n    decr()\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'SwigPyIterator_decr'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    swig::SwigPyIterator::decr(size_t)\n"
+    "    swig::SwigPyIterator::decr()\n");
+  return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_PySwigIterator_distance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SwigPyIterator_distance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
-  swig::PySwigIterator *arg2 = 0 ;
-  ptrdiff_t result;
+  swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ;
+  swig::SwigPyIterator *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  ptrdiff_t result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator_distance",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:SwigPyIterator_distance",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_distance" "', argument " "1"" of type '" "swig::PySwigIterator const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_distance" "', argument " "1"" of type '" "swig::SwigPyIterator const *""'"); 
   }
-  arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_swig__PySwigIterator,  0  | 0);
+  arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_swig__SwigPyIterator,  0  | 0);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySwigIterator_distance" "', argument " "2"" of type '" "swig::PySwigIterator const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SwigPyIterator_distance" "', argument " "2"" of type '" "swig::SwigPyIterator const &""'"); 
   }
   if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "PySwigIterator_distance" "', argument " "2"" of type '" "swig::PySwigIterator const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SwigPyIterator_distance" "', argument " "2"" of type '" "swig::SwigPyIterator const &""'"); 
   }
-  arg2 = reinterpret_cast< swig::PySwigIterator * >(argp2);
+  arg2 = reinterpret_cast< swig::SwigPyIterator * >(argp2);
   try {
-    result = ((swig::PySwigIterator const *)arg1)->distance((swig::PySwigIterator const &)*arg2);
+    result = ((swig::SwigPyIterator const *)arg1)->distance((swig::SwigPyIterator const &)*arg2);
   }
   catch(std::invalid_argument &_e) {
     SWIG_Python_Raise(SWIG_NewPointerObj((new std::invalid_argument(static_cast< const std::invalid_argument& >(_e))),SWIGTYPE_p_std__invalid_argument,SWIG_POINTER_OWN), "std::invalid_argument", SWIGTYPE_p_std__invalid_argument); SWIG_fail;
@@ -4855,34 +6192,34 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_PySwigIterator_equal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SwigPyIterator_equal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
-  swig::PySwigIterator *arg2 = 0 ;
-  bool result;
+  swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ;
+  swig::SwigPyIterator *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  bool result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator_equal",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:SwigPyIterator_equal",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_equal" "', argument " "1"" of type '" "swig::PySwigIterator const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_equal" "', argument " "1"" of type '" "swig::SwigPyIterator const *""'"); 
   }
-  arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_swig__PySwigIterator,  0  | 0);
+  arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_swig__SwigPyIterator,  0  | 0);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySwigIterator_equal" "', argument " "2"" of type '" "swig::PySwigIterator const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SwigPyIterator_equal" "', argument " "2"" of type '" "swig::SwigPyIterator const &""'"); 
   }
   if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "PySwigIterator_equal" "', argument " "2"" of type '" "swig::PySwigIterator const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SwigPyIterator_equal" "', argument " "2"" of type '" "swig::SwigPyIterator const &""'"); 
   }
-  arg2 = reinterpret_cast< swig::PySwigIterator * >(argp2);
+  arg2 = reinterpret_cast< swig::SwigPyIterator * >(argp2);
   try {
-    result = (bool)((swig::PySwigIterator const *)arg1)->equal((swig::PySwigIterator const &)*arg2);
+    result = (bool)((swig::SwigPyIterator const *)arg1)->equal((swig::SwigPyIterator const &)*arg2);
   }
   catch(std::invalid_argument &_e) {
     SWIG_Python_Raise(SWIG_NewPointerObj((new std::invalid_argument(static_cast< const std::invalid_argument& >(_e))),SWIGTYPE_p_std__invalid_argument,SWIG_POINTER_OWN), "std::invalid_argument", SWIGTYPE_p_std__invalid_argument); SWIG_fail;
@@ -4895,42 +6232,42 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_PySwigIterator_copy(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SwigPyIterator_copy(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
-  swig::PySwigIterator *result = 0 ;
+  swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  swig::SwigPyIterator *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:PySwigIterator_copy",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:SwigPyIterator_copy",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_copy" "', argument " "1"" of type '" "swig::PySwigIterator const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_copy" "', argument " "1"" of type '" "swig::SwigPyIterator const *""'"); 
   }
-  arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
-  result = (swig::PySwigIterator *)((swig::PySwigIterator const *)arg1)->copy();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN |  0 );
+  arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1);
+  result = (swig::SwigPyIterator *)((swig::SwigPyIterator const *)arg1)->copy();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_PySwigIterator_next(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SwigPyIterator_next(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
-  PyObject *result = 0 ;
+  swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:PySwigIterator_next",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:SwigPyIterator_next",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_next" "', argument " "1"" of type '" "swig::PySwigIterator *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_next" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); 
   }
-  arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+  arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1);
   try {
     result = (PyObject *)(arg1)->next();
   }
@@ -4949,20 +6286,52 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_PySwigIterator_previous(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SwigPyIterator___next__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+  swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
   PyObject *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:SwigPyIterator___next__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator___next__" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); 
+  }
+  arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1);
+  try {
+    result = (PyObject *)(arg1)->__next__();
+  }
+  catch(swig::stop_iteration &_e) {
+    {
+      (void)_e;
+      SWIG_SetErrorObj(PyExc_StopIteration, SWIG_Py_Void());
+      SWIG_fail;
+    }
+  }
+  
+  resultobj = result;
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SwigPyIterator_previous(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:PySwigIterator_previous",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:SwigPyIterator_previous",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_previous" "', argument " "1"" of type '" "swig::PySwigIterator *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_previous" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); 
   }
-  arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+  arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1);
   try {
     result = (PyObject *)(arg1)->previous();
   }
@@ -4981,31 +6350,31 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_PySwigIterator_advance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SwigPyIterator_advance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+  swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ;
   ptrdiff_t arg2 ;
-  swig::PySwigIterator *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  swig::SwigPyIterator *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator_advance",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:SwigPyIterator_advance",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator_advance" "', argument " "1"" of type '" "swig::PySwigIterator *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator_advance" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); 
   }
-  arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+  arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "PySwigIterator_advance" "', argument " "2"" of type '" "ptrdiff_t""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SwigPyIterator_advance" "', argument " "2"" of type '" "ptrdiff_t""'");
   } 
   arg2 = static_cast< ptrdiff_t >(val2);
   try {
-    result = (swig::PySwigIterator *)(arg1)->advance(arg2);
+    result = (swig::SwigPyIterator *)(arg1)->advance(arg2);
   }
   catch(swig::stop_iteration &_e) {
     {
@@ -5015,40 +6384,40 @@ SWIGINTERN PyObject *_wrap_PySwigIterator_advance(PyObject *SWIGUNUSEDPARM(self)
     }
   }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, 0 |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_PySwigIterator___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SwigPyIterator___eq__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
-  swig::PySwigIterator *arg2 = 0 ;
-  bool result;
+  swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ;
+  swig::SwigPyIterator *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  bool result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator___eq__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:SwigPyIterator___eq__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator___eq__" "', argument " "1"" of type '" "swig::PySwigIterator const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator___eq__" "', argument " "1"" of type '" "swig::SwigPyIterator const *""'"); 
   }
-  arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_swig__PySwigIterator,  0  | 0);
+  arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_swig__SwigPyIterator,  0  | 0);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySwigIterator___eq__" "', argument " "2"" of type '" "swig::PySwigIterator const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SwigPyIterator___eq__" "', argument " "2"" of type '" "swig::SwigPyIterator const &""'"); 
   }
   if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "PySwigIterator___eq__" "', argument " "2"" of type '" "swig::PySwigIterator const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SwigPyIterator___eq__" "', argument " "2"" of type '" "swig::SwigPyIterator const &""'"); 
   }
-  arg2 = reinterpret_cast< swig::PySwigIterator * >(argp2);
-  result = (bool)((swig::PySwigIterator const *)arg1)->operator ==((swig::PySwigIterator const &)*arg2);
+  arg2 = reinterpret_cast< swig::SwigPyIterator * >(argp2);
+  result = (bool)((swig::SwigPyIterator const *)arg1)->operator ==((swig::SwigPyIterator const &)*arg2);
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
@@ -5056,33 +6425,33 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_PySwigIterator___ne__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SwigPyIterator___ne__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
-  swig::PySwigIterator *arg2 = 0 ;
-  bool result;
+  swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ;
+  swig::SwigPyIterator *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  bool result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator___ne__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:SwigPyIterator___ne__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator___ne__" "', argument " "1"" of type '" "swig::PySwigIterator const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator___ne__" "', argument " "1"" of type '" "swig::SwigPyIterator const *""'"); 
   }
-  arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_swig__PySwigIterator,  0  | 0);
+  arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_swig__SwigPyIterator,  0  | 0);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySwigIterator___ne__" "', argument " "2"" of type '" "swig::PySwigIterator const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SwigPyIterator___ne__" "', argument " "2"" of type '" "swig::SwigPyIterator const &""'"); 
   }
   if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "PySwigIterator___ne__" "', argument " "2"" of type '" "swig::PySwigIterator const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SwigPyIterator___ne__" "', argument " "2"" of type '" "swig::SwigPyIterator const &""'"); 
   }
-  arg2 = reinterpret_cast< swig::PySwigIterator * >(argp2);
-  result = (bool)((swig::PySwigIterator const *)arg1)->operator !=((swig::PySwigIterator const &)*arg2);
+  arg2 = reinterpret_cast< swig::SwigPyIterator * >(argp2);
+  result = (bool)((swig::SwigPyIterator const *)arg1)->operator !=((swig::SwigPyIterator const &)*arg2);
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
@@ -5090,34 +6459,31 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_PySwigIterator___iadd__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SwigPyIterator___iadd__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+  swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ;
   ptrdiff_t arg2 ;
-  swig::PySwigIterator *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  swig::SwigPyIterator *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator___iadd__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_DISOWN |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:SwigPyIterator___iadd__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator___iadd__" "', argument " "1"" of type '" "swig::PySwigIterator *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator___iadd__" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); 
   }
-  arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+  arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "PySwigIterator___iadd__" "', argument " "2"" of type '" "ptrdiff_t""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SwigPyIterator___iadd__" "', argument " "2"" of type '" "ptrdiff_t""'");
   } 
   arg2 = static_cast< ptrdiff_t >(val2);
   try {
-    {
-      swig::PySwigIterator &_result_ref = (arg1)->operator +=(arg2);
-      result = (swig::PySwigIterator *) &_result_ref;
-    }
+    result = (swig::SwigPyIterator *) &(arg1)->operator +=(arg2);
   }
   catch(swig::stop_iteration &_e) {
     {
@@ -5127,41 +6493,38 @@ SWIGINTERN PyObject *_wrap_PySwigIterator___iadd__(PyObject *SWIGUNUSEDPARM(self
     }
   }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_PySwigIterator___isub__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SwigPyIterator___isub__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+  swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ;
   ptrdiff_t arg2 ;
-  swig::PySwigIterator *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  swig::SwigPyIterator *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator___isub__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_DISOWN |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:SwigPyIterator___isub__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator___isub__" "', argument " "1"" of type '" "swig::PySwigIterator *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator___isub__" "', argument " "1"" of type '" "swig::SwigPyIterator *""'"); 
   }
-  arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+  arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "PySwigIterator___isub__" "', argument " "2"" of type '" "ptrdiff_t""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SwigPyIterator___isub__" "', argument " "2"" of type '" "ptrdiff_t""'");
   } 
   arg2 = static_cast< ptrdiff_t >(val2);
   try {
-    {
-      swig::PySwigIterator &_result_ref = (arg1)->operator -=(arg2);
-      result = (swig::PySwigIterator *) &_result_ref;
-    }
+    result = (swig::SwigPyIterator *) &(arg1)->operator -=(arg2);
   }
   catch(swig::stop_iteration &_e) {
     {
@@ -5171,38 +6534,38 @@ SWIGINTERN PyObject *_wrap_PySwigIterator___isub__(PyObject *SWIGUNUSEDPARM(self
     }
   }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_PySwigIterator___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SwigPyIterator___add__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+  swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ;
   ptrdiff_t arg2 ;
-  swig::PySwigIterator *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  swig::SwigPyIterator *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator___add__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:SwigPyIterator___add__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator___add__" "', argument " "1"" of type '" "swig::PySwigIterator const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator___add__" "', argument " "1"" of type '" "swig::SwigPyIterator const *""'"); 
   }
-  arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+  arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "PySwigIterator___add__" "', argument " "2"" of type '" "ptrdiff_t""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SwigPyIterator___add__" "', argument " "2"" of type '" "ptrdiff_t""'");
   } 
   arg2 = static_cast< ptrdiff_t >(val2);
   try {
-    result = (swig::PySwigIterator *)((swig::PySwigIterator const *)arg1)->operator +(arg2);
+    result = (swig::SwigPyIterator *)((swig::SwigPyIterator const *)arg1)->operator +(arg2);
   }
   catch(swig::stop_iteration &_e) {
     {
@@ -5212,38 +6575,38 @@ SWIGINTERN PyObject *_wrap_PySwigIterator___add__(PyObject *SWIGUNUSEDPARM(self)
     }
   }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_PySwigIterator___sub____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SwigPyIterator___sub____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
+  swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ;
   ptrdiff_t arg2 ;
-  swig::PySwigIterator *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  swig::SwigPyIterator *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator___sub__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:SwigPyIterator___sub__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator___sub__" "', argument " "1"" of type '" "swig::PySwigIterator const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator___sub__" "', argument " "1"" of type '" "swig::SwigPyIterator const *""'"); 
   }
-  arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
+  arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "PySwigIterator___sub__" "', argument " "2"" of type '" "ptrdiff_t""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SwigPyIterator___sub__" "', argument " "2"" of type '" "ptrdiff_t""'");
   } 
   arg2 = static_cast< ptrdiff_t >(val2);
   try {
-    result = (swig::PySwigIterator *)((swig::PySwigIterator const *)arg1)->operator -(arg2);
+    result = (swig::SwigPyIterator *)((swig::SwigPyIterator const *)arg1)->operator -(arg2);
   }
   catch(swig::stop_iteration &_e) {
     {
@@ -5253,40 +6616,40 @@ SWIGINTERN PyObject *_wrap_PySwigIterator___sub____SWIG_0(PyObject *SWIGUNUSEDPA
     }
   }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_PySwigIterator___sub____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SwigPyIterator___sub____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  swig::PySwigIterator *arg1 = (swig::PySwigIterator *) 0 ;
-  swig::PySwigIterator *arg2 = 0 ;
-  ptrdiff_t result;
+  swig::SwigPyIterator *arg1 = (swig::SwigPyIterator *) 0 ;
+  swig::SwigPyIterator *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  ptrdiff_t result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:PySwigIterator___sub__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__PySwigIterator, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:SwigPyIterator___sub__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_swig__SwigPyIterator, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "PySwigIterator___sub__" "', argument " "1"" of type '" "swig::PySwigIterator const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SwigPyIterator___sub__" "', argument " "1"" of type '" "swig::SwigPyIterator const *""'"); 
   }
-  arg1 = reinterpret_cast< swig::PySwigIterator * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_swig__PySwigIterator,  0  | 0);
+  arg1 = reinterpret_cast< swig::SwigPyIterator * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_swig__SwigPyIterator,  0  | 0);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "PySwigIterator___sub__" "', argument " "2"" of type '" "swig::PySwigIterator const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "SwigPyIterator___sub__" "', argument " "2"" of type '" "swig::SwigPyIterator const &""'"); 
   }
   if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "PySwigIterator___sub__" "', argument " "2"" of type '" "swig::PySwigIterator const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "SwigPyIterator___sub__" "', argument " "2"" of type '" "swig::SwigPyIterator const &""'"); 
   }
-  arg2 = reinterpret_cast< swig::PySwigIterator * >(argp2);
-  result = ((swig::PySwigIterator const *)arg1)->operator -((swig::PySwigIterator const &)*arg2);
+  arg2 = reinterpret_cast< swig::SwigPyIterator * >(argp2);
+  result = ((swig::SwigPyIterator const *)arg1)->operator -((swig::SwigPyIterator const &)*arg2);
   resultobj = SWIG_From_ptrdiff_t(static_cast< ptrdiff_t >(result));
   return resultobj;
 fail:
@@ -5294,33 +6657,35 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_PySwigIterator___sub__(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
+SWIGINTERN PyObject *_wrap_SwigPyIterator___sub__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
     void *vptr = 0;
-    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__PySwigIterator, 0);
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__SwigPyIterator, 0);
     _v = SWIG_CheckState(res);
     if (_v) {
-      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_swig__PySwigIterator, 0);
+      int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_swig__SwigPyIterator, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_PySwigIterator___sub____SWIG_1(self, args);
+        return _wrap_SwigPyIterator___sub____SWIG_1(self, args);
       }
     }
   }
   if (argc == 2) {
     int _v;
     void *vptr = 0;
-    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__PySwigIterator, 0);
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_swig__SwigPyIterator, 0);
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -5328,7 +6693,7 @@ SWIGINTERN PyObject *_wrap_PySwigIterator___sub__(PyObject *self, PyObject *args
         _v = SWIG_CheckState(res);
       }
       if (_v) {
-        return _wrap_PySwigIterator___sub____SWIG_0(self, args);
+        return _wrap_SwigPyIterator___sub____SWIG_0(self, args);
       }
     }
   }
@@ -5339,31 +6704,31 @@ fail:
 }
 
 
-SWIGINTERN PyObject *PySwigIterator_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *SwigPyIterator_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
-  SWIG_TypeNewClientData(SWIGTYPE_p_swig__PySwigIterator, SWIG_NewClientData(obj));
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
+  SWIG_TypeNewClientData(SWIGTYPE_p_swig__SwigPyIterator, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
 
 SWIGINTERN PyObject *_wrap_VectorHexas_iterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
   PyObject **arg2 = (PyObject **) 0 ;
-  swig::PySwigIterator *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  swig::SwigPyIterator *result = 0 ;
   
   arg2 = &obj0;
   if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_iterator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_iterator" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_iterator" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  result = (swig::PySwigIterator *)std_vector_Sl_Hex_Hexa_Sm__Sg__iterator(arg1,arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  result = (swig::SwigPyIterator *)std_vector_Sl_Hex_Hexa_Sm__Sg__iterator(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -5372,19 +6737,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorHexas___nonzero__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  bool result;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas___nonzero__",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___nonzero__" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___nonzero__" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  result = (bool)std_vector_Sl_Hex_Hexa_Sm__Sg____nonzero__((std::vector<Hex::Hexa * > const *)arg1);
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  result = (bool)std_vector_Sl_Hex_Hexa_Sm__Sg____nonzero__((std::vector< Hex::Hexa * > const *)arg1);
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
@@ -5392,50 +6757,44 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorHexas___bool__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::size_type result;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas___len__",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas___bool__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___len__" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___bool__" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  result = std_vector_Sl_Hex_Hexa_Sm__Sg____len__((std::vector<Hex::Hexa * > const *)arg1);
-  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  result = (bool)std_vector_Sl_Hex_Hexa_Sm__Sg____bool__((std::vector< Hex::Hexa * > const *)arg1);
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorHexas___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::value_type result;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Hexa * >::size_type result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas___len__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_pop" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  try {
-    result = (std::vector<Hex::Hexa * >::value_type)std_vector_Sl_Hex_Hexa_Sm__Sg__pop(arg1);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___len__" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > const *""'"); 
   }
-  
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type, 0 |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  result = std_vector_Sl_Hex_Hexa_Sm__Sg____len__((std::vector< Hex::Hexa * > const *)arg1);
+  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
   return NULL;
@@ -5444,10 +6803,9 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorHexas___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::difference_type arg2 ;
-  std::vector<Hex::Hexa * >::difference_type arg3 ;
-  std::vector<Hex::Hexa *,std::allocator<Hex::Hexa * > > *result = 0 ;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  std::vector< Hex::Hexa * >::difference_type arg2 ;
+  std::vector< Hex::Hexa * >::difference_type arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
@@ -5457,84 +6815,74 @@ SWIGINTERN PyObject *_wrap_VectorHexas___getslice__(PyObject *SWIGUNUSEDPARM(sel
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  std::vector< Hex::Hexa *,std::allocator< Hex::Hexa * > > *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:VectorHexas___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___getslice__" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___getslice__" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorHexas___getslice__" "', argument " "2"" of type '" "std::vector<Hex::Hexa * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorHexas___getslice__" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Hexa * >::difference_type >(val2);
+  arg2 = static_cast< std::vector< Hex::Hexa * >::difference_type >(val2);
   ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorHexas___getslice__" "', argument " "3"" of type '" "std::vector<Hex::Hexa * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorHexas___getslice__" "', argument " "3"" of type '" "std::vector< Hex::Hexa * >::difference_type""'");
   } 
-  arg3 = static_cast< std::vector<Hex::Hexa * >::difference_type >(val3);
+  arg3 = static_cast< std::vector< Hex::Hexa * >::difference_type >(val3);
   try {
-    result = (std::vector<Hex::Hexa *,std::allocator<Hex::Hexa * > > *)std_vector_Sl_Hex_Hexa_Sm__Sg____getslice__(arg1,arg2,arg3);
+    result = (std::vector< Hex::Hexa *,std::allocator< Hex::Hexa * > > *)std_vector_Sl_Hex_Hexa_Sm__Sg____getslice__(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas___setslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorHexas___setslice____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::difference_type arg2 ;
-  std::vector<Hex::Hexa * >::difference_type arg3 ;
-  std::vector<Hex::Hexa *,std::allocator<Hex::Hexa * > > *arg4 = 0 ;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  std::vector< Hex::Hexa * >::difference_type arg2 ;
+  std::vector< Hex::Hexa * >::difference_type arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
-  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorHexas___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorHexas___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___setslice__" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___setslice__" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorHexas___setslice__" "', argument " "2"" of type '" "std::vector<Hex::Hexa * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorHexas___setslice__" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Hexa * >::difference_type >(val2);
+  arg2 = static_cast< std::vector< Hex::Hexa * >::difference_type >(val2);
   ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorHexas___setslice__" "', argument " "3"" of type '" "std::vector<Hex::Hexa * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorHexas___setslice__" "', argument " "3"" of type '" "std::vector< Hex::Hexa * >::difference_type""'");
   } 
-  arg3 = static_cast< std::vector<Hex::Hexa * >::difference_type >(val3);
-  {
-    std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > > *ptr = (std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > > *)0;
-    res4 = swig::asptr(obj3, &ptr);
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorHexas___setslice__" "', argument " "4"" of type '" "std::vector<Hex::Hexa *,std::allocator<Hex::Hexa * > > const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorHexas___setslice__" "', argument " "4"" of type '" "std::vector<Hex::Hexa *,std::allocator<Hex::Hexa * > > const &""'"); 
-    }
-    arg4 = ptr;
-  }
+  arg3 = static_cast< std::vector< Hex::Hexa * >::difference_type >(val3);
   try {
-    std_vector_Sl_Hex_Hexa_Sm__Sg____setslice__(arg1,arg2,arg3,(std::vector<Hex::Hexa *,std::allocator<Hex::Hexa * > > const &)*arg4);
+    std_vector_Sl_Hex_Hexa_Sm__Sg____setslice____SWIG_0(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -5544,169 +6892,221 @@ SWIGINTERN PyObject *_wrap_VectorHexas___setslice__(PyObject *SWIGUNUSEDPARM(sel
   }
   
   resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas___delslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorHexas___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::difference_type arg2 ;
-  std::vector<Hex::Hexa * >::difference_type arg3 ;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  std::vector< Hex::Hexa * >::difference_type arg2 ;
+  std::vector< Hex::Hexa * >::difference_type arg3 ;
+  std::vector< Hex::Hexa *,std::allocator< Hex::Hexa * > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   ptrdiff_t val3 ;
   int ecode3 = 0 ;
+  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorHexas___delslice__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorHexas___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___delslice__" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___setslice__" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorHexas___delslice__" "', argument " "2"" of type '" "std::vector<Hex::Hexa * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorHexas___setslice__" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Hexa * >::difference_type >(val2);
+  arg2 = static_cast< std::vector< Hex::Hexa * >::difference_type >(val2);
   ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorHexas___delslice__" "', argument " "3"" of type '" "std::vector<Hex::Hexa * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorHexas___setslice__" "', argument " "3"" of type '" "std::vector< Hex::Hexa * >::difference_type""'");
   } 
-  arg3 = static_cast< std::vector<Hex::Hexa * >::difference_type >(val3);
+  arg3 = static_cast< std::vector< Hex::Hexa * >::difference_type >(val3);
+  {
+    std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > > *ptr = (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > > *)0;
+    res4 = swig::asptr(obj3, &ptr);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorHexas___setslice__" "', argument " "4"" of type '" "std::vector< Hex::Hexa *,std::allocator< Hex::Hexa * > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorHexas___setslice__" "', argument " "4"" of type '" "std::vector< Hex::Hexa *,std::allocator< Hex::Hexa * > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
   try {
-    std_vector_Sl_Hex_Hexa_Sm__Sg____delslice__(arg1,arg2,arg3);
+    std_vector_Sl_Hex_Hexa_Sm__Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< Hex::Hexa *,std::allocator< Hex::Hexa * > > const &)*arg4);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas___delitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::difference_type arg2 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
+SWIGINTERN PyObject *_wrap_VectorHexas___setslice__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[5] = {
+    0
+  };
+  Py_ssize_t ii;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorHexas___delitem__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___delitem__" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorHexas___delitem__" "', argument " "2"" of type '" "std::vector<Hex::Hexa * >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector<Hex::Hexa * >::difference_type >(val2);
-  try {
-    std_vector_Sl_Hex_Hexa_Sm__Sg____delitem__(arg1,arg2);
-  }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 4) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
-  
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_ptrdiff_t(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_VectorHexas___setslice____SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_ptrdiff_t(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          int res = swig::asptr(argv[3], (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >**)(0));
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_VectorHexas___setslice____SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorHexas___setslice__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Hexa * >::__setslice__(std::vector< Hex::Hexa * >::difference_type,std::vector< Hex::Hexa * >::difference_type)\n"
+    "    std::vector< Hex::Hexa * >::__setslice__(std::vector< Hex::Hexa * >::difference_type,std::vector< Hex::Hexa * >::difference_type,std::vector< Hex::Hexa *,std::allocator< Hex::Hexa * > > const &)\n");
+  return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorHexas___delslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::difference_type arg2 ;
-  std::vector<Hex::Hexa * >::value_type result;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  std::vector< Hex::Hexa * >::difference_type arg2 ;
+  std::vector< Hex::Hexa * >::difference_type arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorHexas___getitem__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorHexas___delslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___getitem__" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___delslice__" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorHexas___getitem__" "', argument " "2"" of type '" "std::vector<Hex::Hexa * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorHexas___delslice__" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::Hexa * >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorHexas___delslice__" "', argument " "3"" of type '" "std::vector< Hex::Hexa * >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Hexa * >::difference_type >(val2);
+  arg3 = static_cast< std::vector< Hex::Hexa * >::difference_type >(val3);
   try {
-    result = (std::vector<Hex::Hexa * >::value_type)std_vector_Sl_Hex_Hexa_Sm__Sg____getitem__(arg1,arg2);
+    std_vector_Sl_Hex_Hexa_Sm__Sg____delslice__(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type, 0 |  0 );
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorHexas___delitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::difference_type arg2 ;
-  std::vector<Hex::Hexa * >::value_type arg3 = (std::vector<Hex::Hexa * >::value_type) 0 ;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  std::vector< Hex::Hexa * >::difference_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorHexas___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorHexas___delitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___setitem__" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___delitem__" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorHexas___setitem__" "', argument " "2"" of type '" "std::vector<Hex::Hexa * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorHexas___delitem__" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Hexa * >::difference_type >(val2);
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorHexas___setitem__" "', argument " "3"" of type '" "std::vector<Hex::Hexa * >::value_type""'"); 
-  }
-  arg3 = reinterpret_cast< std::vector<Hex::Hexa * >::value_type >(argp3);
+  arg2 = static_cast< std::vector< Hex::Hexa * >::difference_type >(val2);
   try {
-    std_vector_Sl_Hex_Hexa_Sm__Sg____setitem__(arg1,arg2,arg3);
+    std_vector_Sl_Hex_Hexa_Sm__Sg____delitem____SWIG_0(arg1,arg2);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -5715,169 +7115,130 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorHexas___getitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::value_type arg2 = (std::vector<Hex::Hexa * >::value_type) 0 ;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  std::vector< Hex::Hexa *,std::allocator< Hex::Hexa * > > *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorHexas_append",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorHexas___getitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_append" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___getitem__" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorHexas_append" "', argument " "2"" of type '" "std::vector<Hex::Hexa * >::value_type""'"); 
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas___getitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
+  }
+  try {
+    result = (std::vector< Hex::Hexa *,std::allocator< Hex::Hexa * > > *)std_vector_Sl_Hex_Hexa_Sm__Sg____getitem____SWIG_0(arg1,arg2);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
   }
-  arg2 = reinterpret_cast< std::vector<Hex::Hexa * >::value_type >(argp2);
-  std_vector_Sl_Hex_Hexa_Sm__Sg__append(arg1,arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_new_VectorHexas__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)":new_VectorHexas")) SWIG_fail;
-  result = (std::vector<Hex::Hexa * > *)new std::vector<Hex::Hexa * >();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, SWIG_POINTER_NEW |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_new_VectorHexas__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorHexas___setitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = 0 ;
-  std::vector<Hex::Hexa * > *result = 0 ;
-  int res1 = SWIG_OLDOBJ ;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
+  std::vector< Hex::Hexa *,std::allocator< Hex::Hexa * > > *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res3 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:new_VectorHexas",&obj0)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorHexas___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___setitem__" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
   {
-    std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > > *ptr = (std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > > *)0;
-    res1 = swig::asptr(obj0, &ptr);
-    if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_VectorHexas" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > const &""'"); 
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas___setitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
+  }
+  {
+    std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > > *ptr = (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > > *)0;
+    res3 = swig::asptr(obj2, &ptr);
+    if (!SWIG_IsOK(res3)) {
+      SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorHexas___setitem__" "', argument " "3"" of type '" "std::vector< Hex::Hexa *,std::allocator< Hex::Hexa * > > const &""'"); 
     }
     if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_VectorHexas" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > const &""'"); 
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorHexas___setitem__" "', argument " "3"" of type '" "std::vector< Hex::Hexa *,std::allocator< Hex::Hexa * > > const &""'"); 
     }
-    arg1 = ptr;
+    arg3 = ptr;
   }
-  result = (std::vector<Hex::Hexa * > *)new std::vector<Hex::Hexa * >((std::vector<Hex::Hexa * > const &)*arg1);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, SWIG_POINTER_NEW |  0 );
-  if (SWIG_IsNewObj(res1)) delete arg1;
-  return resultobj;
-fail:
-  if (SWIG_IsNewObj(res1)) delete arg1;
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorHexas_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  bool result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_empty",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_empty" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > const *""'"); 
+  try {
+    std_vector_Sl_Hex_Hexa_Sm__Sg____setitem____SWIG_0(arg1,arg2,(std::vector< Hex::Hexa *,std::allocator< Hex::Hexa * > > const &)*arg3);
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  result = (bool)((std::vector<Hex::Hexa * > const *)arg1)->empty();
-  resultobj = SWIG_From_bool(static_cast< bool >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorHexas_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::size_type result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_size",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_size" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > const *""'"); 
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  result = ((std::vector<Hex::Hexa * > const *)arg1)->size();
-  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorHexas_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_clear" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  (arg1)->clear();
+  
   resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res3)) delete arg3;
   return resultobj;
 fail:
+  if (SWIG_IsNewObj(res3)) delete arg3;
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorHexas___setitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * > *arg2 = 0 ;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorHexas_swap",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorHexas___setitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_swap" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___setitem__" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t,  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorHexas_swap" "', argument " "2"" of type '" "std::vector<Hex::Hexa * > &""'"); 
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas___setitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
   }
-  if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorHexas_swap" "', argument " "2"" of type '" "std::vector<Hex::Hexa * > &""'"); 
+  try {
+    std_vector_Sl_Hex_Hexa_Sm__Sg____setitem____SWIG_1(arg1,arg2);
   }
-  arg2 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp2);
-  (arg1)->swap(*arg2);
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -5885,526 +7246,792 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorHexas___delitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  SwigValueWrapper<std::allocator<Hex::Hexa * > > result;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorHexas___delitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_get_allocator" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___delitem__" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  result = ((std::vector<Hex::Hexa * > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector<Hex::Hexa * >::allocator_type(static_cast< const std::vector<Hex::Hexa * >::allocator_type& >(result))), SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__allocator_type, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorHexas_begin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::iterator result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_begin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_begin" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas___delitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  result = (arg1)->begin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Hexa * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorHexas_begin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::const_iterator result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_begin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_begin" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > const *""'"); 
+  try {
+    std_vector_Sl_Hex_Hexa_Sm__Sg____delitem____SWIG_1(arg1,arg2);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  result = ((std::vector<Hex::Hexa * > const *)arg1)->begin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Hexa * >::const_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas_begin(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
+SWIGINTERN PyObject *_wrap_VectorHexas___delitem__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
-  if (argc == 1) {
+  if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      return _wrap_VectorHexas_begin__SWIG_0(self, args);
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        return _wrap_VectorHexas___delitem____SWIG_1(self, args);
+      }
     }
   }
-  if (argc == 1) {
+  if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      return _wrap_VectorHexas_begin__SWIG_1(self, args);
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_VectorHexas___delitem____SWIG_0(self, args);
+      }
     }
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorHexas_begin'.\n  Possible C/C++ prototypes are:\n    begin()\n    begin()\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorHexas___delitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Hexa * >::__delitem__(std::vector< Hex::Hexa * >::difference_type)\n"
+    "    std::vector< Hex::Hexa * >::__delitem__(PySliceObject *)\n");
+  return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas_end__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorHexas___getitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::iterator result;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  std::vector< Hex::Hexa * >::difference_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  std::vector< Hex::Hexa * >::value_type result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_end",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorHexas___getitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_end" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___getitem__" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  result = (arg1)->end();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Hexa * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorHexas___getitem__" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::Hexa * >::difference_type >(val2);
+  try {
+    result = (std::vector< Hex::Hexa * >::value_type)std_vector_Sl_Hex_Hexa_Sm__Sg____getitem____SWIG_1(arg1,arg2);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Hex__Hexa, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas_end__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::const_iterator result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
+SWIGINTERN PyObject *_wrap_VectorHexas___getitem__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        return _wrap_VectorHexas___getitem____SWIG_0(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_VectorHexas___getitem____SWIG_1(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorHexas___getitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Hexa * >::__getitem__(PySliceObject *)\n"
+    "    std::vector< Hex::Hexa * >::__getitem__(std::vector< Hex::Hexa * >::difference_type)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorHexas___setitem____SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  std::vector< Hex::Hexa * >::difference_type arg2 ;
+  std::vector< Hex::Hexa * >::value_type arg3 = (std::vector< Hex::Hexa * >::value_type) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_end",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorHexas___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_end" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas___setitem__" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorHexas___setitem__" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::Hexa * >::difference_type >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_Hex__Hexa, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorHexas___setitem__" "', argument " "3"" of type '" "std::vector< Hex::Hexa * >::value_type""'"); 
+  }
+  arg3 = reinterpret_cast< std::vector< Hex::Hexa * >::value_type >(argp3);
+  try {
+    std_vector_Sl_Hex_Hexa_Sm__Sg____setitem____SWIG_2(arg1,arg2,arg3);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  result = ((std::vector<Hex::Hexa * > const *)arg1)->end();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Hexa * >::const_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas_end(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
+SWIGINTERN PyObject *_wrap_VectorHexas___setitem__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
-  if (argc == 1) {
+  if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      return _wrap_VectorHexas_end__SWIG_0(self, args);
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        return _wrap_VectorHexas___setitem____SWIG_1(self, args);
+      }
     }
   }
-  if (argc == 1) {
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        int res = swig::asptr(argv[2], (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >**)(0));
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_VectorHexas___setitem____SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      return _wrap_VectorHexas_end__SWIG_1(self, args);
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Hex__Hexa, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_VectorHexas___setitem____SWIG_2(self, args);
+        }
+      }
     }
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorHexas_end'.\n  Possible C/C++ prototypes are:\n    end()\n    end()\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorHexas___setitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Hexa * >::__setitem__(PySliceObject *,std::vector< Hex::Hexa *,std::allocator< Hex::Hexa * > > const &)\n"
+    "    std::vector< Hex::Hexa * >::__setitem__(PySliceObject *)\n"
+    "    std::vector< Hex::Hexa * >::__setitem__(std::vector< Hex::Hexa * >::difference_type,std::vector< Hex::Hexa * >::value_type)\n");
+  return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas_rbegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorHexas_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::reverse_iterator result;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Hexa * >::value_type result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_rbegin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_rbegin" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_pop" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  result = (arg1)->rbegin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Hexa * >::reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  try {
+    result = (std::vector< Hex::Hexa * >::value_type)std_vector_Sl_Hex_Hexa_Sm__Sg__pop(arg1);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Hex__Hexa, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas_rbegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorHexas_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::const_reverse_iterator result;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  std::vector< Hex::Hexa * >::value_type arg2 = (std::vector< Hex::Hexa * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_rbegin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorHexas_append",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_rbegin" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_append" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Hex__Hexa, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorHexas_append" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::value_type""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  result = ((std::vector<Hex::Hexa * > const *)arg1)->rbegin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Hexa * >::const_reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg2 = reinterpret_cast< std::vector< Hex::Hexa * >::value_type >(argp2);
+  std_vector_Sl_Hex_Hexa_Sm__Sg__append(arg1,arg2);
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas_rbegin(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
+SWIGINTERN PyObject *_wrap_new_VectorHexas__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Hexa * > *result = 0 ;
   
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorHexas_rbegin__SWIG_0(self, args);
+  if (!PyArg_ParseTuple(args,(char *)":new_VectorHexas")) SWIG_fail;
+  result = (std::vector< Hex::Hexa * > *)new std::vector< Hex::Hexa * >();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_VectorHexas__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Hexa * > *arg1 = 0 ;
+  int res1 = SWIG_OLDOBJ ;
+  PyObject * obj0 = 0 ;
+  std::vector< Hex::Hexa * > *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:new_VectorHexas",&obj0)) SWIG_fail;
+  {
+    std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > > *ptr = (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > > *)0;
+    res1 = swig::asptr(obj0, &ptr);
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_VectorHexas" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > const &""'"); 
     }
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorHexas_rbegin__SWIG_1(self, args);
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_VectorHexas" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > const &""'"); 
     }
+    arg1 = ptr;
   }
-  
+  result = (std::vector< Hex::Hexa * > *)new std::vector< Hex::Hexa * >((std::vector< Hex::Hexa * > const &)*arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, SWIG_POINTER_NEW |  0 );
+  if (SWIG_IsNewObj(res1)) delete arg1;
+  return resultobj;
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorHexas_rbegin'.\n  Possible C/C++ prototypes are:\n    rbegin()\n    rbegin()\n");
+  if (SWIG_IsNewObj(res1)) delete arg1;
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas_rend__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorHexas_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::reverse_iterator result;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_rend",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_empty",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_rend" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_empty" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  result = (arg1)->rend();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Hexa * >::reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  result = (bool)((std::vector< Hex::Hexa * > const *)arg1)->empty();
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas_rend__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorHexas_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::const_reverse_iterator result;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Hexa * >::size_type result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_rend",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_size",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_rend" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_size" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  result = ((std::vector<Hex::Hexa * > const *)arg1)->rend();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Hexa * >::const_reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  result = ((std::vector< Hex::Hexa * > const *)arg1)->size();
+  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas_rend(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
+SWIGINTERN PyObject *_wrap_VectorHexas_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  std::vector< Hex::Hexa * > *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
   
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorHexas_swap",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_swap" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorHexas_rend__SWIG_0(self, args);
-    }
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorHexas_swap" "', argument " "2"" of type '" "std::vector< Hex::Hexa * > &""'"); 
   }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorHexas_rend__SWIG_1(self, args);
-    }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorHexas_swap" "', argument " "2"" of type '" "std::vector< Hex::Hexa * > &""'"); 
   }
-  
+  arg2 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp2);
+  (arg1)->swap(*arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorHexas_rend'.\n  Possible C/C++ prototypes are:\n    rend()\n    rend()\n");
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_new_VectorHexas__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorHexas_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * >::size_type arg1 ;
-  std::vector<Hex::Hexa * > *result = 0 ;
-  size_t val1 ;
-  int ecode1 = 0 ;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Hexa * >::iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:new_VectorHexas",&obj0)) SWIG_fail;
-  ecode1 = SWIG_AsVal_size_t(obj0, &val1);
-  if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorHexas" "', argument " "1"" of type '" "std::vector<Hex::Hexa * >::size_type""'");
-  } 
-  arg1 = static_cast< std::vector<Hex::Hexa * >::size_type >(val1);
-  result = (std::vector<Hex::Hexa * > *)new std::vector<Hex::Hexa * >(arg1);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, SWIG_POINTER_NEW |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_begin",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_begin" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  result = (arg1)->begin();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Hexa * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas_pop_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorHexas_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Hexa * >::iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_pop_back",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_end",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_pop_back" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_end" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  (arg1)->pop_back();
-  resultobj = SWIG_Py_Void();
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  result = (arg1)->end();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Hexa * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas_resize__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorHexas_rbegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::size_type arg2 ;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  size_t val2 ;
-  int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
+  std::vector< Hex::Hexa * >::reverse_iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorHexas_resize",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_rbegin",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_resize" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_rbegin" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  ecode2 = SWIG_AsVal_size_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorHexas_resize" "', argument " "2"" of type '" "std::vector<Hex::Hexa * >::size_type""'");
-  } 
-  arg2 = static_cast< std::vector<Hex::Hexa * >::size_type >(val2);
-  (arg1)->resize(arg2);
-  resultobj = SWIG_Py_Void();
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  result = (arg1)->rbegin();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Hexa * >::reverse_iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas_erase__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorHexas_rend(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::iterator arg2 ;
-  std::vector<Hex::Hexa * >::iterator result;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
-  int res2 ;
   PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
+  std::vector< Hex::Hexa * >::reverse_iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorHexas_erase",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_rend",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_erase" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
-  if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas_erase" "', argument " "2"" of type '" "std::vector<Hex::Hexa * >::iterator""'");
-  } else {
-    swig::PySwigIterator_T<std::vector<Hex::Hexa * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Hexa * >::iterator > *>(iter2);
-    if (iter_t) {
-      arg2 = iter_t->get_current();
-    } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas_erase" "', argument " "2"" of type '" "std::vector<Hex::Hexa * >::iterator""'");
-    }
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_rend" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  result = (arg1)->erase(arg2);
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Hexa * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  result = (arg1)->rend();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Hexa * >::reverse_iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas_erase__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorHexas_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::iterator arg2 ;
-  std::vector<Hex::Hexa * >::iterator arg3 ;
-  std::vector<Hex::Hexa * >::iterator result;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
-  int res2 ;
-  swig::PySwigIterator *iter3 = 0 ;
-  int res3 ;
   PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorHexas_erase",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_erase" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
-  if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas_erase" "', argument " "2"" of type '" "std::vector<Hex::Hexa * >::iterator""'");
-  } else {
-    swig::PySwigIterator_T<std::vector<Hex::Hexa * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Hexa * >::iterator > *>(iter2);
-    if (iter_t) {
-      arg2 = iter_t->get_current();
-    } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas_erase" "', argument " "2"" of type '" "std::vector<Hex::Hexa * >::iterator""'");
-    }
-  }
-  res3 = SWIG_ConvertPtr(obj2, SWIG_as_voidptrptr(&iter3), swig::PySwigIterator::descriptor(), 0);
-  if (!SWIG_IsOK(res3) || !iter3) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas_erase" "', argument " "3"" of type '" "std::vector<Hex::Hexa * >::iterator""'");
-  } else {
-    swig::PySwigIterator_T<std::vector<Hex::Hexa * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Hexa * >::iterator > *>(iter3);
-    if (iter_t) {
-      arg3 = iter_t->get_current();
-    } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas_erase" "', argument " "3"" of type '" "std::vector<Hex::Hexa * >::iterator""'");
-    }
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_clear" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  result = (arg1)->erase(arg2,arg3);
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Hexa * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorHexas_erase(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
-  int ii;
-  
+SWIGINTERN PyObject *_wrap_VectorHexas_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< Hex::Hexa * > > result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_get_allocator" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  result = ((std::vector< Hex::Hexa * > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< Hex::Hexa * >::allocator_type(static_cast< const std::vector< Hex::Hexa * >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_Hex__Hexa_p_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_VectorHexas__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Hexa * >::size_type arg1 ;
+  size_t val1 ;
+  int ecode1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< Hex::Hexa * > *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:new_VectorHexas",&obj0)) SWIG_fail;
+  ecode1 = SWIG_AsVal_size_t(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorHexas" "', argument " "1"" of type '" "std::vector< Hex::Hexa * >::size_type""'");
+  } 
+  arg1 = static_cast< std::vector< Hex::Hexa * >::size_type >(val1);
+  result = (std::vector< Hex::Hexa * > *)new std::vector< Hex::Hexa * >(arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorHexas_pop_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_pop_back",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_pop_back" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  (arg1)->pop_back();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorHexas_resize__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  std::vector< Hex::Hexa * >::size_type arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  size_t val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorHexas_resize",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_resize" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorHexas_resize" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::size_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::Hexa * >::size_type >(val2);
+  (arg1)->resize(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorHexas_erase__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  std::vector< Hex::Hexa * >::iterator arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
+  int res2 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  std::vector< Hex::Hexa * >::iterator result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorHexas_erase",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_erase" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
+  if (!SWIG_IsOK(res2) || !iter2) {
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas_erase" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::iterator""'");
+  } else {
+    swig::SwigPyIterator_T<std::vector< Hex::Hexa * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Hexa * >::iterator > *>(iter2);
+    if (iter_t) {
+      arg2 = iter_t->get_current();
+    } else {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas_erase" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::iterator""'");
+    }
+  }
+  result = std_vector_Sl_Hex_Hexa_Sm__Sg__erase__SWIG_0(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Hexa * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorHexas_erase__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  std::vector< Hex::Hexa * >::iterator arg2 ;
+  std::vector< Hex::Hexa * >::iterator arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
+  int res2 ;
+  swig::SwigPyIterator *iter3 = 0 ;
+  int res3 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  std::vector< Hex::Hexa * >::iterator result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorHexas_erase",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_erase" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
+  if (!SWIG_IsOK(res2) || !iter2) {
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas_erase" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::iterator""'");
+  } else {
+    swig::SwigPyIterator_T<std::vector< Hex::Hexa * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Hexa * >::iterator > *>(iter2);
+    if (iter_t) {
+      arg2 = iter_t->get_current();
+    } else {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas_erase" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::iterator""'");
+    }
+  }
+  res3 = SWIG_ConvertPtr(obj2, SWIG_as_voidptrptr(&iter3), swig::SwigPyIterator::descriptor(), 0);
+  if (!SWIG_IsOK(res3) || !iter3) {
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas_erase" "', argument " "3"" of type '" "std::vector< Hex::Hexa * >::iterator""'");
+  } else {
+    swig::SwigPyIterator_T<std::vector< Hex::Hexa * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Hexa * >::iterator > *>(iter3);
+    if (iter_t) {
+      arg3 = iter_t->get_current();
+    } else {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas_erase" "', argument " "3"" of type '" "std::vector< Hex::Hexa * >::iterator""'");
+    }
+  }
+  result = std_vector_Sl_Hex_Hexa_Sm__Sg__erase__SWIG_1(arg1,arg2,arg3);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Hexa * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorHexas_erase(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
+  
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Hexa * >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Hexa * >::iterator > *>(iter) != 0));
       if (_v) {
         return _wrap_VectorHexas_erase__SWIG_0(self, args);
       }
@@ -6412,16 +8039,16 @@ SWIGINTERN PyObject *_wrap_VectorHexas_erase(PyObject *self, PyObject *args) {
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Hexa * >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Hexa * >::iterator > *>(iter) != 0));
       if (_v) {
-        swig::PySwigIterator *iter = 0;
-        int res = SWIG_ConvertPtr(argv[2], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-        _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Hexa * >::iterator > *>(iter) != 0));
+        swig::SwigPyIterator *iter = 0;
+        int res = SWIG_ConvertPtr(argv[2], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+        _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Hexa * >::iterator > *>(iter) != 0));
         if (_v) {
           return _wrap_VectorHexas_erase__SWIG_1(self, args);
         }
@@ -6430,36 +8057,39 @@ SWIGINTERN PyObject *_wrap_VectorHexas_erase(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorHexas_erase'.\n  Possible C/C++ prototypes are:\n    erase(std::vector<Hex::Hexa * >::iterator)\n    erase(std::vector<Hex::Hexa * >::iterator,std::vector<Hex::Hexa * >::iterator)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorHexas_erase'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Hexa * >::erase(std::vector< Hex::Hexa * >::iterator)\n"
+    "    std::vector< Hex::Hexa * >::erase(std::vector< Hex::Hexa * >::iterator,std::vector< Hex::Hexa * >::iterator)\n");
+  return 0;
 }
 
 
 SWIGINTERN PyObject *_wrap_new_VectorHexas__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * >::size_type arg1 ;
-  std::vector<Hex::Hexa * >::value_type arg2 = (std::vector<Hex::Hexa * >::value_type) 0 ;
-  std::vector<Hex::Hexa * > *result = 0 ;
+  std::vector< Hex::Hexa * >::size_type arg1 ;
+  std::vector< Hex::Hexa * >::value_type arg2 = (std::vector< Hex::Hexa * >::value_type) 0 ;
   size_t val1 ;
   int ecode1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  std::vector< Hex::Hexa * > *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:new_VectorHexas",&obj0,&obj1)) SWIG_fail;
   ecode1 = SWIG_AsVal_size_t(obj0, &val1);
   if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorHexas" "', argument " "1"" of type '" "std::vector<Hex::Hexa * >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorHexas" "', argument " "1"" of type '" "std::vector< Hex::Hexa * >::size_type""'");
   } 
-  arg1 = static_cast< std::vector<Hex::Hexa * >::size_type >(val1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type, 0 |  0 );
+  arg1 = static_cast< std::vector< Hex::Hexa * >::size_type >(val1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Hex__Hexa, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_VectorHexas" "', argument " "2"" of type '" "std::vector<Hex::Hexa * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_VectorHexas" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::value_type""'"); 
   }
-  arg2 = reinterpret_cast< std::vector<Hex::Hexa * >::value_type >(argp2);
-  result = (std::vector<Hex::Hexa * > *)new std::vector<Hex::Hexa * >(arg1,arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, SWIG_POINTER_NEW |  0 );
+  arg2 = reinterpret_cast< std::vector< Hex::Hexa * >::value_type >(argp2);
+  result = (std::vector< Hex::Hexa * > *)new std::vector< Hex::Hexa * >(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -6467,13 +8097,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_VectorHexas(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 0) {
@@ -6491,7 +8123,7 @@ SWIGINTERN PyObject *_wrap_new_VectorHexas(PyObject *self, PyObject *args) {
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_VectorHexas__SWIG_1(self, args);
@@ -6505,7 +8137,7 @@ SWIGINTERN PyObject *_wrap_new_VectorHexas(PyObject *self, PyObject *args) {
     }
     if (_v) {
       void *vptr = 0;
-      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type, 0);
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Hex__Hexa, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
         return _wrap_new_VectorHexas__SWIG_3(self, args);
@@ -6514,15 +8146,20 @@ SWIGINTERN PyObject *_wrap_new_VectorHexas(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_VectorHexas'.\n  Possible C/C++ prototypes are:\n    std::vector<(p.Hex::Hexa)>()\n    std::vector<(p.Hex::Hexa)>(std::vector<Hex::Hexa * > const &)\n    std::vector<(p.Hex::Hexa)>(std::vector<Hex::Hexa * >::size_type)\n    std::vector<(p.Hex::Hexa)>(std::vector<Hex::Hexa * >::size_type,std::vector<Hex::Hexa * >::value_type)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_VectorHexas'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Hexa * >::vector()\n"
+    "    std::vector< Hex::Hexa * >::vector(std::vector< Hex::Hexa * > const &)\n"
+    "    std::vector< Hex::Hexa * >::vector(std::vector< Hex::Hexa * >::size_type)\n"
+    "    std::vector< Hex::Hexa * >::vector(std::vector< Hex::Hexa * >::size_type,std::vector< Hex::Hexa * >::value_type)\n");
+  return 0;
 }
 
 
 SWIGINTERN PyObject *_wrap_VectorHexas_push_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::value_type arg2 = (std::vector<Hex::Hexa * >::value_type) 0 ;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  std::vector< Hex::Hexa * >::value_type arg2 = (std::vector< Hex::Hexa * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -6531,16 +8168,16 @@ SWIGINTERN PyObject *_wrap_VectorHexas_push_back(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorHexas_push_back",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_push_back" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_push_back" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type, 0 |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Hex__Hexa, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorHexas_push_back" "', argument " "2"" of type '" "std::vector<Hex::Hexa * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorHexas_push_back" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::value_type""'"); 
   }
-  arg2 = reinterpret_cast< std::vector<Hex::Hexa * >::value_type >(argp2);
+  arg2 = reinterpret_cast< std::vector< Hex::Hexa * >::value_type >(argp2);
   (arg1)->push_back(arg2);
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -6551,20 +8188,20 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorHexas_front(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::value_type result;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Hexa * >::value_type result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_front",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_front" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_front" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  result = (std::vector<Hex::Hexa * >::value_type)((std::vector<Hex::Hexa * > const *)arg1)->front();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type, 0 |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  result = (std::vector< Hex::Hexa * >::value_type)((std::vector< Hex::Hexa * > const *)arg1)->front();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Hex__Hexa, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -6573,20 +8210,20 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorHexas_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::value_type result;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Hexa * >::value_type result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_back",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_back" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_back" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  result = (std::vector<Hex::Hexa * >::value_type)((std::vector<Hex::Hexa * > const *)arg1)->back();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type, 0 |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  result = (std::vector< Hex::Hexa * >::value_type)((std::vector< Hex::Hexa * > const *)arg1)->back();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Hex__Hexa, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -6595,9 +8232,9 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorHexas_assign(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::size_type arg2 ;
-  std::vector<Hex::Hexa * >::value_type arg3 = (std::vector<Hex::Hexa * >::value_type) 0 ;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  std::vector< Hex::Hexa * >::size_type arg2 ;
+  std::vector< Hex::Hexa * >::value_type arg3 = (std::vector< Hex::Hexa * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
@@ -6609,21 +8246,21 @@ SWIGINTERN PyObject *_wrap_VectorHexas_assign(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject * obj2 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:VectorHexas_assign",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_assign" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_assign" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
   ecode2 = SWIG_AsVal_size_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorHexas_assign" "', argument " "2"" of type '" "std::vector<Hex::Hexa * >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorHexas_assign" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::size_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Hexa * >::size_type >(val2);
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type, 0 |  0 );
+  arg2 = static_cast< std::vector< Hex::Hexa * >::size_type >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_Hex__Hexa, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorHexas_assign" "', argument " "3"" of type '" "std::vector<Hex::Hexa * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorHexas_assign" "', argument " "3"" of type '" "std::vector< Hex::Hexa * >::value_type""'"); 
   }
-  arg3 = reinterpret_cast< std::vector<Hex::Hexa * >::value_type >(argp3);
+  arg3 = reinterpret_cast< std::vector< Hex::Hexa * >::value_type >(argp3);
   (arg1)->assign(arg2,arg3);
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -6634,9 +8271,9 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorHexas_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::size_type arg2 ;
-  std::vector<Hex::Hexa * >::value_type arg3 = (std::vector<Hex::Hexa * >::value_type) 0 ;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  std::vector< Hex::Hexa * >::size_type arg2 ;
+  std::vector< Hex::Hexa * >::value_type arg3 = (std::vector< Hex::Hexa * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
@@ -6648,21 +8285,21 @@ SWIGINTERN PyObject *_wrap_VectorHexas_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(s
   PyObject * obj2 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:VectorHexas_resize",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_resize" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_resize" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
   ecode2 = SWIG_AsVal_size_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorHexas_resize" "', argument " "2"" of type '" "std::vector<Hex::Hexa * >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorHexas_resize" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::size_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Hexa * >::size_type >(val2);
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type, 0 |  0 );
+  arg2 = static_cast< std::vector< Hex::Hexa * >::size_type >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_Hex__Hexa, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorHexas_resize" "', argument " "3"" of type '" "std::vector<Hex::Hexa * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorHexas_resize" "', argument " "3"" of type '" "std::vector< Hex::Hexa * >::value_type""'"); 
   }
-  arg3 = reinterpret_cast< std::vector<Hex::Hexa * >::value_type >(argp3);
+  arg3 = reinterpret_cast< std::vector< Hex::Hexa * >::value_type >(argp3);
   (arg1)->resize(arg2,arg3);
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -6672,18 +8309,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_VectorHexas_resize(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -6697,7 +8336,7 @@ SWIGINTERN PyObject *_wrap_VectorHexas_resize(PyObject *self, PyObject *args) {
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -6706,7 +8345,7 @@ SWIGINTERN PyObject *_wrap_VectorHexas_resize(PyObject *self, PyObject *args) {
       }
       if (_v) {
         void *vptr = 0;
-        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type, 0);
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Hex__Hexa, 0);
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_VectorHexas_resize__SWIG_1(self, args);
@@ -6716,52 +8355,55 @@ SWIGINTERN PyObject *_wrap_VectorHexas_resize(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorHexas_resize'.\n  Possible C/C++ prototypes are:\n    resize(std::vector<Hex::Hexa * >::size_type)\n    resize(std::vector<Hex::Hexa * >::size_type,std::vector<Hex::Hexa * >::value_type)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorHexas_resize'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Hexa * >::resize(std::vector< Hex::Hexa * >::size_type)\n"
+    "    std::vector< Hex::Hexa * >::resize(std::vector< Hex::Hexa * >::size_type,std::vector< Hex::Hexa * >::value_type)\n");
+  return 0;
 }
 
 
 SWIGINTERN PyObject *_wrap_VectorHexas_insert__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::iterator arg2 ;
-  std::vector<Hex::Hexa * >::value_type arg3 = (std::vector<Hex::Hexa * >::value_type) 0 ;
-  std::vector<Hex::Hexa * >::iterator result;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  std::vector< Hex::Hexa * >::iterator arg2 ;
+  std::vector< Hex::Hexa * >::value_type arg3 = (std::vector< Hex::Hexa * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
   int res2 ;
   void *argp3 = 0 ;
   int res3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  std::vector< Hex::Hexa * >::iterator result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:VectorHexas_insert",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_insert" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_insert" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas_insert" "', argument " "2"" of type '" "std::vector<Hex::Hexa * >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas_insert" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<Hex::Hexa * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Hexa * >::iterator > *>(iter2);
+    swig::SwigPyIterator_T<std::vector< Hex::Hexa * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Hexa * >::iterator > *>(iter2);
     if (iter_t) {
       arg2 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas_insert" "', argument " "2"" of type '" "std::vector<Hex::Hexa * >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas_insert" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::iterator""'");
     }
   }
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type, 0 |  0 );
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_Hex__Hexa, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorHexas_insert" "', argument " "3"" of type '" "std::vector<Hex::Hexa * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorHexas_insert" "', argument " "3"" of type '" "std::vector< Hex::Hexa * >::value_type""'"); 
   }
-  arg3 = reinterpret_cast< std::vector<Hex::Hexa * >::value_type >(argp3);
-  result = (arg1)->insert(arg2,arg3);
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Hexa * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg3 = reinterpret_cast< std::vector< Hex::Hexa * >::value_type >(argp3);
+  result = std_vector_Sl_Hex_Hexa_Sm__Sg__insert__SWIG_0(arg1,arg2,arg3);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Hexa * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
@@ -6770,13 +8412,13 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorHexas_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::iterator arg2 ;
-  std::vector<Hex::Hexa * >::size_type arg3 ;
-  std::vector<Hex::Hexa * >::value_type arg4 = (std::vector<Hex::Hexa * >::value_type) 0 ;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  std::vector< Hex::Hexa * >::iterator arg2 ;
+  std::vector< Hex::Hexa * >::size_type arg3 ;
+  std::vector< Hex::Hexa * >::value_type arg4 = (std::vector< Hex::Hexa * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
   int res2 ;
   size_t val3 ;
   int ecode3 = 0 ;
@@ -6788,33 +8430,33 @@ SWIGINTERN PyObject *_wrap_VectorHexas_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(s
   PyObject * obj3 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorHexas_insert",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_insert" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_insert" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas_insert" "', argument " "2"" of type '" "std::vector<Hex::Hexa * >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas_insert" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<Hex::Hexa * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Hexa * >::iterator > *>(iter2);
+    swig::SwigPyIterator_T<std::vector< Hex::Hexa * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Hexa * >::iterator > *>(iter2);
     if (iter_t) {
       arg2 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas_insert" "', argument " "2"" of type '" "std::vector<Hex::Hexa * >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorHexas_insert" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::iterator""'");
     }
   }
   ecode3 = SWIG_AsVal_size_t(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorHexas_insert" "', argument " "3"" of type '" "std::vector<Hex::Hexa * >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorHexas_insert" "', argument " "3"" of type '" "std::vector< Hex::Hexa * >::size_type""'");
   } 
-  arg3 = static_cast< std::vector<Hex::Hexa * >::size_type >(val3);
-  res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type, 0 |  0 );
+  arg3 = static_cast< std::vector< Hex::Hexa * >::size_type >(val3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_Hex__Hexa, 0 |  0 );
   if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorHexas_insert" "', argument " "4"" of type '" "std::vector<Hex::Hexa * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorHexas_insert" "', argument " "4"" of type '" "std::vector< Hex::Hexa * >::value_type""'"); 
   }
-  arg4 = reinterpret_cast< std::vector<Hex::Hexa * >::value_type >(argp4);
-  (arg1)->insert(arg2,arg3,arg4);
+  arg4 = reinterpret_cast< std::vector< Hex::Hexa * >::value_type >(argp4);
+  std_vector_Sl_Hex_Hexa_Sm__Sg__insert__SWIG_1(arg1,arg2,arg3,arg4);
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -6823,26 +8465,28 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_VectorHexas_insert(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[5];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[5] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Hexa * >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Hexa * >::iterator > *>(iter) != 0));
       if (_v) {
         void *vptr = 0;
-        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type, 0);
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Hex__Hexa, 0);
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_VectorHexas_insert__SWIG_0(self, args);
@@ -6852,12 +8496,12 @@ SWIGINTERN PyObject *_wrap_VectorHexas_insert(PyObject *self, PyObject *args) {
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Hexa * >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Hexa * >::iterator > *>(iter) != 0));
       if (_v) {
         {
           int res = SWIG_AsVal_size_t(argv[2], NULL);
@@ -6865,7 +8509,7 @@ SWIGINTERN PyObject *_wrap_VectorHexas_insert(PyObject *self, PyObject *args) {
         }
         if (_v) {
           void *vptr = 0;
-          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type, 0);
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_Hex__Hexa, 0);
           _v = SWIG_CheckState(res);
           if (_v) {
             return _wrap_VectorHexas_insert__SWIG_1(self, args);
@@ -6876,15 +8520,18 @@ SWIGINTERN PyObject *_wrap_VectorHexas_insert(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorHexas_insert'.\n  Possible C/C++ prototypes are:\n    insert(std::vector<Hex::Hexa * >::iterator,std::vector<Hex::Hexa * >::value_type)\n    insert(std::vector<Hex::Hexa * >::iterator,std::vector<Hex::Hexa * >::size_type,std::vector<Hex::Hexa * >::value_type)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorHexas_insert'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Hexa * >::insert(std::vector< Hex::Hexa * >::iterator,std::vector< Hex::Hexa * >::value_type)\n"
+    "    std::vector< Hex::Hexa * >::insert(std::vector< Hex::Hexa * >::iterator,std::vector< Hex::Hexa * >::size_type,std::vector< Hex::Hexa * >::value_type)\n");
+  return 0;
 }
 
 
 SWIGINTERN PyObject *_wrap_VectorHexas_reserve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::size_type arg2 ;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
+  std::vector< Hex::Hexa * >::size_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
@@ -6893,16 +8540,16 @@ SWIGINTERN PyObject *_wrap_VectorHexas_reserve(PyObject *SWIGUNUSEDPARM(self), P
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorHexas_reserve",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_reserve" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_reserve" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
   ecode2 = SWIG_AsVal_size_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorHexas_reserve" "', argument " "2"" of type '" "std::vector<Hex::Hexa * >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorHexas_reserve" "', argument " "2"" of type '" "std::vector< Hex::Hexa * >::size_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Hexa * >::size_type >(val2);
+  arg2 = static_cast< std::vector< Hex::Hexa * >::size_type >(val2);
   (arg1)->reserve(arg2);
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -6913,19 +8560,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorHexas_capacity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
-  std::vector<Hex::Hexa * >::size_type result;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Hexa * >::size_type result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorHexas_capacity",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_capacity" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorHexas_capacity" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
-  result = ((std::vector<Hex::Hexa * > const *)arg1)->capacity();
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
+  result = ((std::vector< Hex::Hexa * > const *)arg1)->capacity();
   resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
@@ -6935,19 +8582,18 @@ fail:
 
 SWIGINTERN PyObject *_wrap_delete_VectorHexas(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Hexa * > *arg1 = (std::vector<Hex::Hexa * > *) 0 ;
+  std::vector< Hex::Hexa * > *arg1 = (std::vector< Hex::Hexa * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:delete_VectorHexas",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, SWIG_POINTER_DISOWN |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_VectorHexas" "', argument " "1"" of type '" "std::vector<Hex::Hexa * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_VectorHexas" "', argument " "1"" of type '" "std::vector< Hex::Hexa * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Hexa * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Hexa * > * >(argp1);
   delete arg1;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -6957,29 +8603,29 @@ fail:
 
 SWIGINTERN PyObject *VectorHexas_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
-  SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, SWIG_NewClientData(obj));
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
+  SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
 
 SWIGINTERN PyObject *_wrap_VectorQuads_iterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
   PyObject **arg2 = (PyObject **) 0 ;
-  swig::PySwigIterator *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  swig::SwigPyIterator *result = 0 ;
   
   arg2 = &obj0;
   if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_iterator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_iterator" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_iterator" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  result = (swig::PySwigIterator *)std_vector_Sl_Hex_Quad_Sm__Sg__iterator(arg1,arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  result = (swig::SwigPyIterator *)std_vector_Sl_Hex_Quad_Sm__Sg__iterator(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -6988,19 +8634,41 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorQuads___nonzero__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  bool result;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads___nonzero__",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___nonzero__" "', argument " "1"" of type '" "std::vector< Hex::Quad * > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  result = (bool)std_vector_Sl_Hex_Quad_Sm__Sg____nonzero__((std::vector< Hex::Quad * > const *)arg1);
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorQuads___bool__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  bool result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads___bool__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___nonzero__" "', argument " "1"" of type '" "std::vector<Hex::Quad * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___bool__" "', argument " "1"" of type '" "std::vector< Hex::Quad * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  result = (bool)std_vector_Sl_Hex_Quad_Sm__Sg____nonzero__((std::vector<Hex::Quad * > const *)arg1);
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  result = (bool)std_vector_Sl_Hex_Quad_Sm__Sg____bool__((std::vector< Hex::Quad * > const *)arg1);
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
@@ -7010,19 +8678,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorQuads___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::size_type result;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Quad * >::size_type result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads___len__",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___len__" "', argument " "1"" of type '" "std::vector<Hex::Quad * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___len__" "', argument " "1"" of type '" "std::vector< Hex::Quad * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  result = std_vector_Sl_Hex_Quad_Sm__Sg____len__((std::vector<Hex::Quad * > const *)arg1);
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  result = std_vector_Sl_Hex_Quad_Sm__Sg____len__((std::vector< Hex::Quad * > const *)arg1);
   resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
@@ -7030,40 +8698,60 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::value_type result;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  std::vector< Hex::Quad * >::difference_type arg2 ;
+  std::vector< Hex::Quad * >::difference_type arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  std::vector< Hex::Quad *,std::allocator< Hex::Quad * > > *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorQuads___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_pop" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___getslice__" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorQuads___getslice__" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::Quad * >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorQuads___getslice__" "', argument " "3"" of type '" "std::vector< Hex::Quad * >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< Hex::Quad * >::difference_type >(val3);
   try {
-    result = (std::vector<Hex::Quad * >::value_type)std_vector_Sl_Hex_Quad_Sm__Sg__pop(arg1);
+    result = (std::vector< Hex::Quad *,std::allocator< Hex::Quad * > > *)std_vector_Sl_Hex_Quad_Sm__Sg____getslice__(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type, 0 |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads___setslice____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::difference_type arg2 ;
-  std::vector<Hex::Quad * >::difference_type arg3 ;
-  std::vector<Hex::Quad *,std::allocator<Hex::Quad * > > *result = 0 ;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  std::vector< Hex::Quad * >::difference_type arg2 ;
+  std::vector< Hex::Quad * >::difference_type arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
@@ -7074,42 +8762,45 @@ SWIGINTERN PyObject *_wrap_VectorQuads___getslice__(PyObject *SWIGUNUSEDPARM(sel
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorQuads___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorQuads___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___getslice__" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___setslice__" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorQuads___getslice__" "', argument " "2"" of type '" "std::vector<Hex::Quad * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorQuads___setslice__" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Quad * >::difference_type >(val2);
+  arg2 = static_cast< std::vector< Hex::Quad * >::difference_type >(val2);
   ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorQuads___getslice__" "', argument " "3"" of type '" "std::vector<Hex::Quad * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorQuads___setslice__" "', argument " "3"" of type '" "std::vector< Hex::Quad * >::difference_type""'");
   } 
-  arg3 = static_cast< std::vector<Hex::Quad * >::difference_type >(val3);
+  arg3 = static_cast< std::vector< Hex::Quad * >::difference_type >(val3);
   try {
-    result = (std::vector<Hex::Quad *,std::allocator<Hex::Quad * > > *)std_vector_Sl_Hex_Quad_Sm__Sg____getslice__(arg1,arg2,arg3);
+    std_vector_Sl_Hex_Quad_Sm__Sg____setslice____SWIG_0(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads___setslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::difference_type arg2 ;
-  std::vector<Hex::Quad * >::difference_type arg3 ;
-  std::vector<Hex::Quad *,std::allocator<Hex::Quad * > > *arg4 = 0 ;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  std::vector< Hex::Quad * >::difference_type arg2 ;
+  std::vector< Hex::Quad * >::difference_type arg3 ;
+  std::vector< Hex::Quad *,std::allocator< Hex::Quad * > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
@@ -7123,34 +8814,34 @@ SWIGINTERN PyObject *_wrap_VectorQuads___setslice__(PyObject *SWIGUNUSEDPARM(sel
   PyObject * obj3 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorQuads___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___setslice__" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___setslice__" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorQuads___setslice__" "', argument " "2"" of type '" "std::vector<Hex::Quad * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorQuads___setslice__" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Quad * >::difference_type >(val2);
+  arg2 = static_cast< std::vector< Hex::Quad * >::difference_type >(val2);
   ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorQuads___setslice__" "', argument " "3"" of type '" "std::vector<Hex::Quad * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorQuads___setslice__" "', argument " "3"" of type '" "std::vector< Hex::Quad * >::difference_type""'");
   } 
-  arg3 = static_cast< std::vector<Hex::Quad * >::difference_type >(val3);
+  arg3 = static_cast< std::vector< Hex::Quad * >::difference_type >(val3);
   {
-    std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *ptr = (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *)0;
+    std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *ptr = (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *)0;
     res4 = swig::asptr(obj3, &ptr);
     if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorQuads___setslice__" "', argument " "4"" of type '" "std::vector<Hex::Quad *,std::allocator<Hex::Quad * > > const &""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorQuads___setslice__" "', argument " "4"" of type '" "std::vector< Hex::Quad *,std::allocator< Hex::Quad * > > const &""'"); 
     }
     if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorQuads___setslice__" "', argument " "4"" of type '" "std::vector<Hex::Quad *,std::allocator<Hex::Quad * > > const &""'"); 
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorQuads___setslice__" "', argument " "4"" of type '" "std::vector< Hex::Quad *,std::allocator< Hex::Quad * > > const &""'"); 
     }
     arg4 = ptr;
   }
   try {
-    std_vector_Sl_Hex_Quad_Sm__Sg____setslice__(arg1,arg2,arg3,(std::vector<Hex::Quad *,std::allocator<Hex::Quad * > > const &)*arg4);
+    std_vector_Sl_Hex_Quad_Sm__Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< Hex::Quad *,std::allocator< Hex::Quad * > > const &)*arg4);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -7168,11 +8859,77 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_VectorQuads___setslice__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[5] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 4) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_ptrdiff_t(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_VectorQuads___setslice____SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_ptrdiff_t(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          int res = swig::asptr(argv[3], (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >**)(0));
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_VectorQuads___setslice____SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorQuads___setslice__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Quad * >::__setslice__(std::vector< Hex::Quad * >::difference_type,std::vector< Hex::Quad * >::difference_type)\n"
+    "    std::vector< Hex::Quad * >::__setslice__(std::vector< Hex::Quad * >::difference_type,std::vector< Hex::Quad * >::difference_type,std::vector< Hex::Quad *,std::allocator< Hex::Quad * > > const &)\n");
+  return 0;
+}
+
+
 SWIGINTERN PyObject *_wrap_VectorQuads___delslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::difference_type arg2 ;
-  std::vector<Hex::Quad * >::difference_type arg3 ;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  std::vector< Hex::Quad * >::difference_type arg2 ;
+  std::vector< Hex::Quad * >::difference_type arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
@@ -7184,27 +8941,30 @@ SWIGINTERN PyObject *_wrap_VectorQuads___delslice__(PyObject *SWIGUNUSEDPARM(sel
   PyObject * obj2 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:VectorQuads___delslice__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___delslice__" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___delslice__" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorQuads___delslice__" "', argument " "2"" of type '" "std::vector<Hex::Quad * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorQuads___delslice__" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Quad * >::difference_type >(val2);
+  arg2 = static_cast< std::vector< Hex::Quad * >::difference_type >(val2);
   ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorQuads___delslice__" "', argument " "3"" of type '" "std::vector<Hex::Quad * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorQuads___delslice__" "', argument " "3"" of type '" "std::vector< Hex::Quad * >::difference_type""'");
   } 
-  arg3 = static_cast< std::vector<Hex::Quad * >::difference_type >(val3);
+  arg3 = static_cast< std::vector< Hex::Quad * >::difference_type >(val3);
   try {
     std_vector_Sl_Hex_Quad_Sm__Sg____delslice__(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -7213,10 +8973,10 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads___delitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads___delitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::difference_type arg2 ;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  std::vector< Hex::Quad * >::difference_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
@@ -7225,22 +8985,25 @@ SWIGINTERN PyObject *_wrap_VectorQuads___delitem__(PyObject *SWIGUNUSEDPARM(self
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorQuads___delitem__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___delitem__" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___delitem__" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorQuads___delitem__" "', argument " "2"" of type '" "std::vector<Hex::Quad * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorQuads___delitem__" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Quad * >::difference_type >(val2);
+  arg2 = static_cast< std::vector< Hex::Quad * >::difference_type >(val2);
   try {
-    std_vector_Sl_Hex_Quad_Sm__Sg____delitem__(arg1,arg2);
+    std_vector_Sl_Hex_Quad_Sm__Sg____delitem____SWIG_0(arg1,arg2);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -7249,52 +9012,319 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads___getitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::difference_type arg2 ;
-  std::vector<Hex::Quad * >::value_type result;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  std::vector< Hex::Quad *,std::allocator< Hex::Quad * > > *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorQuads___getitem__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___getitem__" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___getitem__" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads___getitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorQuads___getitem__" "', argument " "2"" of type '" "std::vector<Hex::Quad * >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector<Hex::Quad * >::difference_type >(val2);
   try {
-    result = (std::vector<Hex::Quad * >::value_type)std_vector_Sl_Hex_Quad_Sm__Sg____getitem__(arg1,arg2);
+    result = (std::vector< Hex::Quad *,std::allocator< Hex::Quad * > > *)std_vector_Sl_Hex_Quad_Sm__Sg____getitem____SWIG_0(arg1,arg2);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type, 0 |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads___setitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::difference_type arg2 ;
-  std::vector<Hex::Quad * >::value_type arg3 = (std::vector<Hex::Quad * >::value_type) 0 ;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
+  std::vector< Hex::Quad *,std::allocator< Hex::Quad * > > *arg3 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
+  int res3 = SWIG_OLDOBJ ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorQuads___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___setitem__" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads___setitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
+  }
+  {
+    std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *ptr = (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *)0;
+    res3 = swig::asptr(obj2, &ptr);
+    if (!SWIG_IsOK(res3)) {
+      SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorQuads___setitem__" "', argument " "3"" of type '" "std::vector< Hex::Quad *,std::allocator< Hex::Quad * > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorQuads___setitem__" "', argument " "3"" of type '" "std::vector< Hex::Quad *,std::allocator< Hex::Quad * > > const &""'"); 
+    }
+    arg3 = ptr;
+  }
+  try {
+    std_vector_Sl_Hex_Quad_Sm__Sg____setitem____SWIG_0(arg1,arg2,(std::vector< Hex::Quad *,std::allocator< Hex::Quad * > > const &)*arg3);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res3)) delete arg3;
+  return resultobj;
+fail:
+  if (SWIG_IsNewObj(res3)) delete arg3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorQuads___setitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorQuads___setitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___setitem__" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads___setitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
+  }
+  try {
+    std_vector_Sl_Hex_Quad_Sm__Sg____setitem____SWIG_1(arg1,arg2);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorQuads___delitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorQuads___delitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___delitem__" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads___delitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
+  }
+  try {
+    std_vector_Sl_Hex_Quad_Sm__Sg____delitem____SWIG_1(arg1,arg2);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorQuads___delitem__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        return _wrap_VectorQuads___delitem____SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_VectorQuads___delitem____SWIG_0(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorQuads___delitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Quad * >::__delitem__(std::vector< Hex::Quad * >::difference_type)\n"
+    "    std::vector< Hex::Quad * >::__delitem__(PySliceObject *)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorQuads___getitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  std::vector< Hex::Quad * >::difference_type arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  std::vector< Hex::Quad * >::value_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorQuads___getitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___getitem__" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorQuads___getitem__" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::Quad * >::difference_type >(val2);
+  try {
+    result = (std::vector< Hex::Quad * >::value_type)std_vector_Sl_Hex_Quad_Sm__Sg____getitem____SWIG_1(arg1,arg2);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Hex__Quad, 0 |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorQuads___getitem__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        return _wrap_VectorQuads___getitem____SWIG_0(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_VectorQuads___getitem____SWIG_1(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorQuads___getitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Quad * >::__getitem__(PySliceObject *)\n"
+    "    std::vector< Hex::Quad * >::__getitem__(std::vector< Hex::Quad * >::difference_type)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorQuads___setitem____SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  std::vector< Hex::Quad * >::difference_type arg2 ;
+  std::vector< Hex::Quad * >::value_type arg3 = (std::vector< Hex::Quad * >::value_type) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
   void *argp3 = 0 ;
   int res3 = 0 ;
   PyObject * obj0 = 0 ;
@@ -7302,23 +9332,23 @@ SWIGINTERN PyObject *_wrap_VectorQuads___setitem__(PyObject *SWIGUNUSEDPARM(self
   PyObject * obj2 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:VectorQuads___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___setitem__" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads___setitem__" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorQuads___setitem__" "', argument " "2"" of type '" "std::vector<Hex::Quad * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorQuads___setitem__" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Quad * >::difference_type >(val2);
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type, 0 |  0 );
+  arg2 = static_cast< std::vector< Hex::Quad * >::difference_type >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_Hex__Quad, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorQuads___setitem__" "', argument " "3"" of type '" "std::vector<Hex::Quad * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorQuads___setitem__" "', argument " "3"" of type '" "std::vector< Hex::Quad * >::value_type""'"); 
   }
-  arg3 = reinterpret_cast< std::vector<Hex::Quad * >::value_type >(argp3);
+  arg3 = reinterpret_cast< std::vector< Hex::Quad * >::value_type >(argp3);
   try {
-    std_vector_Sl_Hex_Quad_Sm__Sg____setitem__(arg1,arg2,arg3);
+    std_vector_Sl_Hex_Quad_Sm__Sg____setitem____SWIG_2(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -7331,10 +9361,110 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_VectorQuads___setitem__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        return _wrap_VectorQuads___setitem____SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        int res = swig::asptr(argv[2], (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >**)(0));
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_VectorQuads___setitem____SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Hex__Quad, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_VectorQuads___setitem____SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorQuads___setitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Quad * >::__setitem__(PySliceObject *,std::vector< Hex::Quad *,std::allocator< Hex::Quad * > > const &)\n"
+    "    std::vector< Hex::Quad * >::__setitem__(PySliceObject *)\n"
+    "    std::vector< Hex::Quad * >::__setitem__(std::vector< Hex::Quad * >::difference_type,std::vector< Hex::Quad * >::value_type)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorQuads_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< Hex::Quad * >::value_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_pop" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  try {
+    result = (std::vector< Hex::Quad * >::value_type)std_vector_Sl_Hex_Quad_Sm__Sg__pop(arg1);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Hex__Quad, 0 |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_VectorQuads_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::value_type arg2 = (std::vector<Hex::Quad * >::value_type) 0 ;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  std::vector< Hex::Quad * >::value_type arg2 = (std::vector< Hex::Quad * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -7343,16 +9473,16 @@ SWIGINTERN PyObject *_wrap_VectorQuads_append(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorQuads_append",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_append" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_append" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type, 0 |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Hex__Quad, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorQuads_append" "', argument " "2"" of type '" "std::vector<Hex::Quad * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorQuads_append" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::value_type""'"); 
   }
-  arg2 = reinterpret_cast< std::vector<Hex::Quad * >::value_type >(argp2);
+  arg2 = reinterpret_cast< std::vector< Hex::Quad * >::value_type >(argp2);
   std_vector_Sl_Hex_Quad_Sm__Sg__append(arg1,arg2);
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -7363,11 +9493,11 @@ fail:
 
 SWIGINTERN PyObject *_wrap_new_VectorQuads__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *result = 0 ;
+  std::vector< Hex::Quad * > *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)":new_VectorQuads")) SWIG_fail;
-  result = (std::vector<Hex::Quad * > *)new std::vector<Hex::Quad * >();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, SWIG_POINTER_NEW |  0 );
+  result = (std::vector< Hex::Quad * > *)new std::vector< Hex::Quad * >();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -7376,25 +9506,25 @@ fail:
 
 SWIGINTERN PyObject *_wrap_new_VectorQuads__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = 0 ;
-  std::vector<Hex::Quad * > *result = 0 ;
+  std::vector< Hex::Quad * > *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Quad * > *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_VectorQuads",&obj0)) SWIG_fail;
   {
-    std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *ptr = (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *)0;
+    std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *ptr = (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_VectorQuads" "', argument " "1"" of type '" "std::vector<Hex::Quad * > const &""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_VectorQuads" "', argument " "1"" of type '" "std::vector< Hex::Quad * > const &""'"); 
     }
     if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_VectorQuads" "', argument " "1"" of type '" "std::vector<Hex::Quad * > const &""'"); 
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_VectorQuads" "', argument " "1"" of type '" "std::vector< Hex::Quad * > const &""'"); 
     }
     arg1 = ptr;
   }
-  result = (std::vector<Hex::Quad * > *)new std::vector<Hex::Quad * >((std::vector<Hex::Quad * > const &)*arg1);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, SWIG_POINTER_NEW |  0 );
+  result = (std::vector< Hex::Quad * > *)new std::vector< Hex::Quad * >((std::vector< Hex::Quad * > const &)*arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, SWIG_POINTER_NEW |  0 );
   if (SWIG_IsNewObj(res1)) delete arg1;
   return resultobj;
 fail:
@@ -7405,19 +9535,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorQuads_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  bool result;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_empty",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_empty" "', argument " "1"" of type '" "std::vector<Hex::Quad * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_empty" "', argument " "1"" of type '" "std::vector< Hex::Quad * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  result = (bool)((std::vector<Hex::Quad * > const *)arg1)->empty();
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  result = (bool)((std::vector< Hex::Quad * > const *)arg1)->empty();
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
@@ -7427,19 +9557,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorQuads_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::size_type result;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Quad * >::size_type result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_size",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_size" "', argument " "1"" of type '" "std::vector<Hex::Quad * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_size" "', argument " "1"" of type '" "std::vector< Hex::Quad * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  result = ((std::vector<Hex::Quad * > const *)arg1)->size();
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  result = ((std::vector< Hex::Quad * > const *)arg1)->size();
   resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
@@ -7447,20 +9577,32 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  std::vector< Hex::Quad * > *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorQuads_swap",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_clear" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_swap" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  (arg1)->clear();
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorQuads_swap" "', argument " "2"" of type '" "std::vector< Hex::Quad * > &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorQuads_swap" "', argument " "2"" of type '" "std::vector< Hex::Quad * > &""'"); 
+  }
+  arg2 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp2);
+  (arg1)->swap(*arg2);
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -7468,413 +9610,555 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * > *arg2 = 0 ;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
   PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
+  std::vector< Hex::Quad * >::iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorQuads_swap",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_begin",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_swap" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t,  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorQuads_swap" "', argument " "2"" of type '" "std::vector<Hex::Quad * > &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_begin" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorQuads_swap" "', argument " "2"" of type '" "std::vector<Hex::Quad * > &""'"); 
-  }
-  arg2 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp2);
-  (arg1)->swap(*arg2);
-  resultobj = SWIG_Py_Void();
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  result = (arg1)->begin();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Quad * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  SwigValueWrapper<std::allocator<Hex::Quad * > > result;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Quad * >::iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_end",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_get_allocator" "', argument " "1"" of type '" "std::vector<Hex::Quad * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_end" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  result = ((std::vector<Hex::Quad * > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector<Hex::Quad * >::allocator_type(static_cast< const std::vector<Hex::Quad * >::allocator_type& >(result))), SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__allocator_type, SWIG_POINTER_OWN |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  result = (arg1)->end();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Quad * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_begin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads_rbegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::iterator result;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Quad * >::reverse_iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_begin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_rbegin",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_begin" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_rbegin" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  result = (arg1)->begin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Quad * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  result = (arg1)->rbegin();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Quad * >::reverse_iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_begin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads_rend(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::const_iterator result;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Quad * >::reverse_iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_begin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_rend",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_begin" "', argument " "1"" of type '" "std::vector<Hex::Quad * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_rend" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  result = ((std::vector<Hex::Quad * > const *)arg1)->begin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Quad * >::const_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  result = (arg1)->rend();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Quad * >::reverse_iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_begin(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
+SWIGINTERN PyObject *_wrap_VectorQuads_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
   
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorQuads_begin__SWIG_0(self, args);
-    }
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_clear" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorQuads_begin__SWIG_1(self, args);
-    }
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorQuads_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< Hex::Quad * > > result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_get_allocator" "', argument " "1"" of type '" "std::vector< Hex::Quad * > const *""'"); 
   }
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  result = ((std::vector< Hex::Quad * > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< Hex::Quad * >::allocator_type(static_cast< const std::vector< Hex::Quad * >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_Hex__Quad_p_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_VectorQuads__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Quad * >::size_type arg1 ;
+  size_t val1 ;
+  int ecode1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< Hex::Quad * > *result = 0 ;
   
+  if (!PyArg_ParseTuple(args,(char *)"O:new_VectorQuads",&obj0)) SWIG_fail;
+  ecode1 = SWIG_AsVal_size_t(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorQuads" "', argument " "1"" of type '" "std::vector< Hex::Quad * >::size_type""'");
+  } 
+  arg1 = static_cast< std::vector< Hex::Quad * >::size_type >(val1);
+  result = (std::vector< Hex::Quad * > *)new std::vector< Hex::Quad * >(arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, SWIG_POINTER_NEW |  0 );
+  return resultobj;
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorQuads_begin'.\n  Possible C/C++ prototypes are:\n    begin()\n    begin()\n");
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_end__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads_pop_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::iterator result;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_end",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_pop_back",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_end" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_pop_back" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  result = (arg1)->end();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Quad * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  (arg1)->pop_back();
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_end__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads_resize__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::const_iterator result;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  std::vector< Hex::Quad * >::size_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  size_t val2 ;
+  int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_end",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorQuads_resize",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_end" "', argument " "1"" of type '" "std::vector<Hex::Quad * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_resize" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  result = ((std::vector<Hex::Quad * > const *)arg1)->end();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Quad * >::const_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorQuads_resize" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::size_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::Quad * >::size_type >(val2);
+  (arg1)->resize(arg2);
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_end(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
+SWIGINTERN PyObject *_wrap_VectorQuads_erase__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  std::vector< Hex::Quad * >::iterator arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
+  int res2 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  std::vector< Hex::Quad * >::iterator result;
   
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorQuads_end__SWIG_0(self, args);
-    }
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorQuads_erase",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_erase" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorQuads_end__SWIG_1(self, args);
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
+  if (!SWIG_IsOK(res2) || !iter2) {
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads_erase" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::iterator""'");
+  } else {
+    swig::SwigPyIterator_T<std::vector< Hex::Quad * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Quad * >::iterator > *>(iter2);
+    if (iter_t) {
+      arg2 = iter_t->get_current();
+    } else {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads_erase" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::iterator""'");
     }
   }
-  
+  result = std_vector_Sl_Hex_Quad_Sm__Sg__erase__SWIG_0(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Quad * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
+  return resultobj;
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorQuads_end'.\n  Possible C/C++ prototypes are:\n    end()\n    end()\n");
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_rbegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads_erase__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::reverse_iterator result;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  std::vector< Hex::Quad * >::iterator arg2 ;
+  std::vector< Hex::Quad * >::iterator arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
+  int res2 ;
+  swig::SwigPyIterator *iter3 = 0 ;
+  int res3 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  std::vector< Hex::Quad * >::iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_rbegin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorQuads_erase",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_rbegin" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_erase" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  result = (arg1)->rbegin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Quad * >::reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
+  if (!SWIG_IsOK(res2) || !iter2) {
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads_erase" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::iterator""'");
+  } else {
+    swig::SwigPyIterator_T<std::vector< Hex::Quad * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Quad * >::iterator > *>(iter2);
+    if (iter_t) {
+      arg2 = iter_t->get_current();
+    } else {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads_erase" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::iterator""'");
+    }
+  }
+  res3 = SWIG_ConvertPtr(obj2, SWIG_as_voidptrptr(&iter3), swig::SwigPyIterator::descriptor(), 0);
+  if (!SWIG_IsOK(res3) || !iter3) {
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads_erase" "', argument " "3"" of type '" "std::vector< Hex::Quad * >::iterator""'");
+  } else {
+    swig::SwigPyIterator_T<std::vector< Hex::Quad * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Quad * >::iterator > *>(iter3);
+    if (iter_t) {
+      arg3 = iter_t->get_current();
+    } else {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads_erase" "', argument " "3"" of type '" "std::vector< Hex::Quad * >::iterator""'");
+    }
+  }
+  result = std_vector_Sl_Hex_Quad_Sm__Sg__erase__SWIG_1(arg1,arg2,arg3);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Quad * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_rbegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads_erase(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Quad * >::iterator > *>(iter) != 0));
+      if (_v) {
+        return _wrap_VectorQuads_erase__SWIG_0(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Quad * >::iterator > *>(iter) != 0));
+      if (_v) {
+        swig::SwigPyIterator *iter = 0;
+        int res = SWIG_ConvertPtr(argv[2], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+        _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Quad * >::iterator > *>(iter) != 0));
+        if (_v) {
+          return _wrap_VectorQuads_erase__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorQuads_erase'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Quad * >::erase(std::vector< Hex::Quad * >::iterator)\n"
+    "    std::vector< Hex::Quad * >::erase(std::vector< Hex::Quad * >::iterator,std::vector< Hex::Quad * >::iterator)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_VectorQuads__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::const_reverse_iterator result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
+  std::vector< Hex::Quad * >::size_type arg1 ;
+  std::vector< Hex::Quad * >::value_type arg2 = (std::vector< Hex::Quad * >::value_type) 0 ;
+  size_t val1 ;
+  int ecode1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  std::vector< Hex::Quad * > *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_rbegin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_rbegin" "', argument " "1"" of type '" "std::vector<Hex::Quad * > const *""'"); 
+  if (!PyArg_ParseTuple(args,(char *)"OO:new_VectorQuads",&obj0,&obj1)) SWIG_fail;
+  ecode1 = SWIG_AsVal_size_t(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorQuads" "', argument " "1"" of type '" "std::vector< Hex::Quad * >::size_type""'");
+  } 
+  arg1 = static_cast< std::vector< Hex::Quad * >::size_type >(val1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Hex__Quad, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_VectorQuads" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::value_type""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  result = ((std::vector<Hex::Quad * > const *)arg1)->rbegin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Quad * >::const_reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg2 = reinterpret_cast< std::vector< Hex::Quad * >::value_type >(argp2);
+  result = (std::vector< Hex::Quad * > *)new std::vector< Hex::Quad * >(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_rbegin(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
+SWIGINTERN PyObject *_wrap_new_VectorQuads(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
+  if (argc == 0) {
+    return _wrap_new_VectorQuads__SWIG_0(self, args);
+  }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > >**)(0));
-    _v = SWIG_CheckState(res);
+    {
+      int res = SWIG_AsVal_size_t(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
     if (_v) {
-      return _wrap_VectorQuads_rbegin__SWIG_0(self, args);
+      return _wrap_new_VectorQuads__SWIG_2(self, args);
     }
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      return _wrap_VectorQuads_rbegin__SWIG_1(self, args);
+      return _wrap_new_VectorQuads__SWIG_1(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    {
+      int res = SWIG_AsVal_size_t(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Hex__Quad, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_new_VectorQuads__SWIG_3(self, args);
+      }
     }
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorQuads_rbegin'.\n  Possible C/C++ prototypes are:\n    rbegin()\n    rbegin()\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_VectorQuads'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Quad * >::vector()\n"
+    "    std::vector< Hex::Quad * >::vector(std::vector< Hex::Quad * > const &)\n"
+    "    std::vector< Hex::Quad * >::vector(std::vector< Hex::Quad * >::size_type)\n"
+    "    std::vector< Hex::Quad * >::vector(std::vector< Hex::Quad * >::size_type,std::vector< Hex::Quad * >::value_type)\n");
+  return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_rend__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads_push_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::reverse_iterator result;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  std::vector< Hex::Quad * >::value_type arg2 = (std::vector< Hex::Quad * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_rend",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorQuads_push_back",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_rend" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_push_back" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  result = (arg1)->rend();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Quad * >::reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Hex__Quad, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorQuads_push_back" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::value_type""'"); 
+  }
+  arg2 = reinterpret_cast< std::vector< Hex::Quad * >::value_type >(argp2);
+  (arg1)->push_back(arg2);
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_rend__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads_front(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::const_reverse_iterator result;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Quad * >::value_type result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_rend",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_front",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_rend" "', argument " "1"" of type '" "std::vector<Hex::Quad * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_front" "', argument " "1"" of type '" "std::vector< Hex::Quad * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  result = ((std::vector<Hex::Quad * > const *)arg1)->rend();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Quad * >::const_reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  result = (std::vector< Hex::Quad * >::value_type)((std::vector< Hex::Quad * > const *)arg1)->front();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Hex__Quad, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_rend(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
-  
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorQuads_rend__SWIG_0(self, args);
-    }
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorQuads_rend__SWIG_1(self, args);
-    }
-  }
-  
-fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorQuads_rend'.\n  Possible C/C++ prototypes are:\n    rend()\n    rend()\n");
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_new_VectorQuads__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * >::size_type arg1 ;
-  std::vector<Hex::Quad * > *result = 0 ;
-  size_t val1 ;
-  int ecode1 = 0 ;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Quad * >::value_type result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:new_VectorQuads",&obj0)) SWIG_fail;
-  ecode1 = SWIG_AsVal_size_t(obj0, &val1);
-  if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorQuads" "', argument " "1"" of type '" "std::vector<Hex::Quad * >::size_type""'");
-  } 
-  arg1 = static_cast< std::vector<Hex::Quad * >::size_type >(val1);
-  result = (std::vector<Hex::Quad * > *)new std::vector<Hex::Quad * >(arg1);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, SWIG_POINTER_NEW |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_back",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_back" "', argument " "1"" of type '" "std::vector< Hex::Quad * > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  result = (std::vector< Hex::Quad * >::value_type)((std::vector< Hex::Quad * > const *)arg1)->back();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Hex__Quad, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_pop_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads_assign(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  std::vector< Hex::Quad * >::size_type arg2 ;
+  std::vector< Hex::Quad * >::value_type arg3 = (std::vector< Hex::Quad * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  size_t val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_pop_back",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorQuads_assign",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_pop_back" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_assign" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  (arg1)->pop_back();
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorQuads_assign" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::size_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::Quad * >::size_type >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_Hex__Quad, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorQuads_assign" "', argument " "3"" of type '" "std::vector< Hex::Quad * >::value_type""'"); 
+  }
+  arg3 = reinterpret_cast< std::vector< Hex::Quad * >::value_type >(argp3);
+  (arg1)->assign(arg2,arg3);
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -7882,29 +10166,38 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_resize__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::size_type arg2 ;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  std::vector< Hex::Quad * >::size_type arg2 ;
+  std::vector< Hex::Quad * >::value_type arg3 = (std::vector< Hex::Quad * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
   int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorQuads_resize",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorQuads_resize",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_resize" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_resize" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
   ecode2 = SWIG_AsVal_size_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorQuads_resize" "', argument " "2"" of type '" "std::vector<Hex::Quad * >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorQuads_resize" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::size_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Quad * >::size_type >(val2);
-  (arg1)->resize(arg2);
+  arg2 = static_cast< std::vector< Hex::Quad * >::size_type >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_Hex__Quad, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorQuads_resize" "', argument " "3"" of type '" "std::vector< Hex::Quad * >::value_type""'"); 
+  }
+  arg3 = reinterpret_cast< std::vector< Hex::Quad * >::value_type >(argp3);
+  (arg1)->resize(arg2,arg3);
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -7912,252 +10205,292 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_erase__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads_resize(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_size_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_VectorQuads_resize__SWIG_0(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_size_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Hex__Quad, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_VectorQuads_resize__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorQuads_resize'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Quad * >::resize(std::vector< Hex::Quad * >::size_type)\n"
+    "    std::vector< Hex::Quad * >::resize(std::vector< Hex::Quad * >::size_type,std::vector< Hex::Quad * >::value_type)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorQuads_insert__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::iterator arg2 ;
-  std::vector<Hex::Quad * >::iterator result;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  std::vector< Hex::Quad * >::iterator arg2 ;
+  std::vector< Hex::Quad * >::value_type arg3 = (std::vector< Hex::Quad * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
   int res2 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  std::vector< Hex::Quad * >::iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorQuads_erase",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorQuads_insert",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_erase" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_insert" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads_erase" "', argument " "2"" of type '" "std::vector<Hex::Quad * >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads_insert" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<Hex::Quad * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Quad * >::iterator > *>(iter2);
+    swig::SwigPyIterator_T<std::vector< Hex::Quad * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Quad * >::iterator > *>(iter2);
     if (iter_t) {
       arg2 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads_erase" "', argument " "2"" of type '" "std::vector<Hex::Quad * >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads_insert" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::iterator""'");
     }
   }
-  result = (arg1)->erase(arg2);
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Quad * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_Hex__Quad, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorQuads_insert" "', argument " "3"" of type '" "std::vector< Hex::Quad * >::value_type""'"); 
+  }
+  arg3 = reinterpret_cast< std::vector< Hex::Quad * >::value_type >(argp3);
+  result = std_vector_Sl_Hex_Quad_Sm__Sg__insert__SWIG_0(arg1,arg2,arg3);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Quad * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_erase__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::iterator arg2 ;
-  std::vector<Hex::Quad * >::iterator arg3 ;
-  std::vector<Hex::Quad * >::iterator result;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  std::vector< Hex::Quad * >::iterator arg2 ;
+  std::vector< Hex::Quad * >::size_type arg3 ;
+  std::vector< Hex::Quad * >::value_type arg4 = (std::vector< Hex::Quad * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
   int res2 ;
-  swig::PySwigIterator *iter3 = 0 ;
-  int res3 ;
+  size_t val3 ;
+  int ecode3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorQuads_erase",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorQuads_insert",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_erase" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_insert" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads_erase" "', argument " "2"" of type '" "std::vector<Hex::Quad * >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads_insert" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<Hex::Quad * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Quad * >::iterator > *>(iter2);
+    swig::SwigPyIterator_T<std::vector< Hex::Quad * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Quad * >::iterator > *>(iter2);
     if (iter_t) {
       arg2 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads_erase" "', argument " "2"" of type '" "std::vector<Hex::Quad * >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads_insert" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::iterator""'");
     }
   }
-  res3 = SWIG_ConvertPtr(obj2, SWIG_as_voidptrptr(&iter3), swig::PySwigIterator::descriptor(), 0);
-  if (!SWIG_IsOK(res3) || !iter3) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads_erase" "', argument " "3"" of type '" "std::vector<Hex::Quad * >::iterator""'");
-  } else {
-    swig::PySwigIterator_T<std::vector<Hex::Quad * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Quad * >::iterator > *>(iter3);
-    if (iter_t) {
-      arg3 = iter_t->get_current();
-    } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads_erase" "', argument " "3"" of type '" "std::vector<Hex::Quad * >::iterator""'");
-    }
+  ecode3 = SWIG_AsVal_size_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorQuads_insert" "', argument " "3"" of type '" "std::vector< Hex::Quad * >::size_type""'");
+  } 
+  arg3 = static_cast< std::vector< Hex::Quad * >::size_type >(val3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_Hex__Quad, 0 |  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorQuads_insert" "', argument " "4"" of type '" "std::vector< Hex::Quad * >::value_type""'"); 
   }
-  result = (arg1)->erase(arg2,arg3);
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Quad * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg4 = reinterpret_cast< std::vector< Hex::Quad * >::value_type >(argp4);
+  std_vector_Sl_Hex_Quad_Sm__Sg__insert__SWIG_1(arg1,arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_erase(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
-  int ii;
+SWIGINTERN PyObject *_wrap_VectorQuads_insert(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[5] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
-  if (argc == 2) {
+  if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Quad * >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Quad * >::iterator > *>(iter) != 0));
       if (_v) {
-        return _wrap_VectorQuads_erase__SWIG_0(self, args);
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Hex__Quad, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_VectorQuads_insert__SWIG_0(self, args);
+        }
       }
     }
   }
-  if (argc == 3) {
+  if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Quad * >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Quad * >::iterator > *>(iter) != 0));
       if (_v) {
-        swig::PySwigIterator *iter = 0;
-        int res = SWIG_ConvertPtr(argv[2], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-        _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Quad * >::iterator > *>(iter) != 0));
+        {
+          int res = SWIG_AsVal_size_t(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
         if (_v) {
-          return _wrap_VectorQuads_erase__SWIG_1(self, args);
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_Hex__Quad, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_VectorQuads_insert__SWIG_1(self, args);
+          }
         }
       }
     }
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorQuads_erase'.\n  Possible C/C++ prototypes are:\n    erase(std::vector<Hex::Quad * >::iterator)\n    erase(std::vector<Hex::Quad * >::iterator,std::vector<Hex::Quad * >::iterator)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorQuads_insert'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Quad * >::insert(std::vector< Hex::Quad * >::iterator,std::vector< Hex::Quad * >::value_type)\n"
+    "    std::vector< Hex::Quad * >::insert(std::vector< Hex::Quad * >::iterator,std::vector< Hex::Quad * >::size_type,std::vector< Hex::Quad * >::value_type)\n");
+  return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_new_VectorQuads__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorQuads_reserve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * >::size_type arg1 ;
-  std::vector<Hex::Quad * >::value_type arg2 = (std::vector<Hex::Quad * >::value_type) 0 ;
-  std::vector<Hex::Quad * > *result = 0 ;
-  size_t val1 ;
-  int ecode1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  std::vector< Hex::Quad * >::size_type arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  size_t val2 ;
+  int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:new_VectorQuads",&obj0,&obj1)) SWIG_fail;
-  ecode1 = SWIG_AsVal_size_t(obj0, &val1);
-  if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorQuads" "', argument " "1"" of type '" "std::vector<Hex::Quad * >::size_type""'");
-  } 
-  arg1 = static_cast< std::vector<Hex::Quad * >::size_type >(val1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_VectorQuads" "', argument " "2"" of type '" "std::vector<Hex::Quad * >::value_type""'"); 
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorQuads_reserve",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_reserve" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg2 = reinterpret_cast< std::vector<Hex::Quad * >::value_type >(argp2);
-  result = (std::vector<Hex::Quad * > *)new std::vector<Hex::Quad * >(arg1,arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, SWIG_POINTER_NEW |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorQuads_reserve" "', argument " "2"" of type '" "std::vector< Hex::Quad * >::size_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::Quad * >::size_type >(val2);
+  (arg1)->reserve(arg2);
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_new_VectorQuads(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
+SWIGINTERN PyObject *_wrap_VectorQuads_capacity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< Hex::Quad * >::size_type result;
   
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 0) {
-    return _wrap_new_VectorQuads__SWIG_0(self, args);
-  }
-  if (argc == 1) {
-    int _v;
-    {
-      int res = SWIG_AsVal_size_t(argv[0], NULL);
-      _v = SWIG_CheckState(res);
-    }
-    if (_v) {
-      return _wrap_new_VectorQuads__SWIG_2(self, args);
-    }
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_new_VectorQuads__SWIG_1(self, args);
-    }
-  }
-  if (argc == 2) {
-    int _v;
-    {
-      int res = SWIG_AsVal_size_t(argv[0], NULL);
-      _v = SWIG_CheckState(res);
-    }
-    if (_v) {
-      void *vptr = 0;
-      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type, 0);
-      _v = SWIG_CheckState(res);
-      if (_v) {
-        return _wrap_new_VectorQuads__SWIG_3(self, args);
-      }
-    }
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_capacity",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_capacity" "', argument " "1"" of type '" "std::vector< Hex::Quad * > const *""'"); 
   }
-  
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  result = ((std::vector< Hex::Quad * > const *)arg1)->capacity();
+  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+  return resultobj;
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_VectorQuads'.\n  Possible C/C++ prototypes are:\n    std::vector<(p.Hex::Quad)>()\n    std::vector<(p.Hex::Quad)>(std::vector<Hex::Quad * > const &)\n    std::vector<(p.Hex::Quad)>(std::vector<Hex::Quad * >::size_type)\n    std::vector<(p.Hex::Quad)>(std::vector<Hex::Quad * >::size_type,std::vector<Hex::Quad * >::value_type)\n");
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_push_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_delete_VectorQuads(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::value_type arg2 = (std::vector<Hex::Quad * >::value_type) 0 ;
+  std::vector< Hex::Quad * > *arg1 = (std::vector< Hex::Quad * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
   PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorQuads_push_back",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:delete_VectorQuads",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_push_back" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorQuads_push_back" "', argument " "2"" of type '" "std::vector<Hex::Quad * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_VectorQuads" "', argument " "1"" of type '" "std::vector< Hex::Quad * > *""'"); 
   }
-  arg2 = reinterpret_cast< std::vector<Hex::Quad * >::value_type >(argp2);
-  (arg1)->push_back(arg2);
+  arg1 = reinterpret_cast< std::vector< Hex::Quad * > * >(argp1);
+  delete arg1;
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -8165,404 +10498,370 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_front(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *VectorQuads_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *obj;
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
+  SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, SWIG_NewClientData(obj));
+  return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_VectorEdges_iterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::value_type result;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  PyObject **arg2 = (PyObject **) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  swig::SwigPyIterator *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_front",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  arg2 = &obj0;
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_iterator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_front" "', argument " "1"" of type '" "std::vector<Hex::Quad * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_iterator" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  result = (std::vector<Hex::Quad * >::value_type)((std::vector<Hex::Quad * > const *)arg1)->front();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type, 0 |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  result = (swig::SwigPyIterator *)std_vector_Sl_Hex_Edge_Sm__Sg__iterator(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges___nonzero__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::value_type result;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_back",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges___nonzero__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_back" "', argument " "1"" of type '" "std::vector<Hex::Quad * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___nonzero__" "', argument " "1"" of type '" "std::vector< Hex::Edge * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  result = (std::vector<Hex::Quad * >::value_type)((std::vector<Hex::Quad * > const *)arg1)->back();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type, 0 |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  result = (bool)std_vector_Sl_Hex_Edge_Sm__Sg____nonzero__((std::vector< Hex::Edge * > const *)arg1);
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_assign(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges___bool__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::size_type arg2 ;
-  std::vector<Hex::Quad * >::value_type arg3 = (std::vector<Hex::Quad * >::value_type) 0 ;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  size_t val2 ;
-  int ecode2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
   PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
+  bool result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorQuads_assign",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges___bool__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_assign" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___bool__" "', argument " "1"" of type '" "std::vector< Hex::Edge * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  ecode2 = SWIG_AsVal_size_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorQuads_assign" "', argument " "2"" of type '" "std::vector<Hex::Quad * >::size_type""'");
-  } 
-  arg2 = static_cast< std::vector<Hex::Quad * >::size_type >(val2);
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorQuads_assign" "', argument " "3"" of type '" "std::vector<Hex::Quad * >::value_type""'"); 
-  }
-  arg3 = reinterpret_cast< std::vector<Hex::Quad * >::value_type >(argp3);
-  (arg1)->assign(arg2,arg3);
-  resultobj = SWIG_Py_Void();
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  result = (bool)std_vector_Sl_Hex_Edge_Sm__Sg____bool__((std::vector< Hex::Edge * > const *)arg1);
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::size_type arg2 ;
-  std::vector<Hex::Quad * >::value_type arg3 = (std::vector<Hex::Quad * >::value_type) 0 ;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  size_t val2 ;
-  int ecode2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
   PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
+  std::vector< Hex::Edge * >::size_type result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorQuads_resize",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges___len__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_resize" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  ecode2 = SWIG_AsVal_size_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorQuads_resize" "', argument " "2"" of type '" "std::vector<Hex::Quad * >::size_type""'");
-  } 
-  arg2 = static_cast< std::vector<Hex::Quad * >::size_type >(val2);
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorQuads_resize" "', argument " "3"" of type '" "std::vector<Hex::Quad * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___len__" "', argument " "1"" of type '" "std::vector< Hex::Edge * > const *""'"); 
   }
-  arg3 = reinterpret_cast< std::vector<Hex::Quad * >::value_type >(argp3);
-  (arg1)->resize(arg2,arg3);
-  resultobj = SWIG_Py_Void();
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  result = std_vector_Sl_Hex_Edge_Sm__Sg____len__((std::vector< Hex::Edge * > const *)arg1);
+  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_resize(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
-  int ii;
+SWIGINTERN PyObject *_wrap_VectorEdges___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  std::vector< Hex::Edge * >::difference_type arg2 ;
+  std::vector< Hex::Edge * >::difference_type arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  std::vector< Hex::Edge *,std::allocator< Hex::Edge * > > *result = 0 ;
   
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorEdges___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___getslice__" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  if (argc == 2) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      {
-        int res = SWIG_AsVal_size_t(argv[1], NULL);
-        _v = SWIG_CheckState(res);
-      }
-      if (_v) {
-        return _wrap_VectorQuads_resize__SWIG_0(self, args);
-      }
-    }
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorEdges___getslice__" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::Edge * >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorEdges___getslice__" "', argument " "3"" of type '" "std::vector< Hex::Edge * >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< Hex::Edge * >::difference_type >(val3);
+  try {
+    result = (std::vector< Hex::Edge *,std::allocator< Hex::Edge * > > *)std_vector_Sl_Hex_Edge_Sm__Sg____getslice__(arg1,arg2,arg3);
   }
-  if (argc == 3) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      {
-        int res = SWIG_AsVal_size_t(argv[1], NULL);
-        _v = SWIG_CheckState(res);
-      }
-      if (_v) {
-        void *vptr = 0;
-        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type, 0);
-        _v = SWIG_CheckState(res);
-        if (_v) {
-          return _wrap_VectorQuads_resize__SWIG_1(self, args);
-        }
-      }
-    }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
   }
   
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorQuads_resize'.\n  Possible C/C++ prototypes are:\n    resize(std::vector<Hex::Quad * >::size_type)\n    resize(std::vector<Hex::Quad * >::size_type,std::vector<Hex::Quad * >::value_type)\n");
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_insert__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges___setslice____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::iterator arg2 ;
-  std::vector<Hex::Quad * >::value_type arg3 = (std::vector<Hex::Quad * >::value_type) 0 ;
-  std::vector<Hex::Quad * >::iterator result;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  std::vector< Hex::Edge * >::difference_type arg2 ;
+  std::vector< Hex::Edge * >::difference_type arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
-  int res2 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorQuads_insert",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorEdges___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_insert" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___setslice__" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
-  if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads_insert" "', argument " "2"" of type '" "std::vector<Hex::Quad * >::iterator""'");
-  } else {
-    swig::PySwigIterator_T<std::vector<Hex::Quad * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Quad * >::iterator > *>(iter2);
-    if (iter_t) {
-      arg2 = iter_t->get_current();
-    } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads_insert" "', argument " "2"" of type '" "std::vector<Hex::Quad * >::iterator""'");
-    }
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorEdges___setslice__" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::Edge * >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorEdges___setslice__" "', argument " "3"" of type '" "std::vector< Hex::Edge * >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< Hex::Edge * >::difference_type >(val3);
+  try {
+    std_vector_Sl_Hex_Edge_Sm__Sg____setslice____SWIG_0(arg1,arg2,arg3);
   }
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorQuads_insert" "', argument " "3"" of type '" "std::vector<Hex::Quad * >::value_type""'"); 
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
-  arg3 = reinterpret_cast< std::vector<Hex::Quad * >::value_type >(argp3);
-  result = (arg1)->insert(arg2,arg3);
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Quad * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::iterator arg2 ;
-  std::vector<Hex::Quad * >::size_type arg3 ;
-  std::vector<Hex::Quad * >::value_type arg4 = (std::vector<Hex::Quad * >::value_type) 0 ;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  std::vector< Hex::Edge * >::difference_type arg2 ;
+  std::vector< Hex::Edge * >::difference_type arg3 ;
+  std::vector< Hex::Edge *,std::allocator< Hex::Edge * > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
-  int res2 ;
-  size_t val3 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
   int ecode3 = 0 ;
-  void *argp4 = 0 ;
-  int res4 = 0 ;
+  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorQuads_insert",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorEdges___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_insert" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
-  if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads_insert" "', argument " "2"" of type '" "std::vector<Hex::Quad * >::iterator""'");
-  } else {
-    swig::PySwigIterator_T<std::vector<Hex::Quad * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Quad * >::iterator > *>(iter2);
-    if (iter_t) {
-      arg2 = iter_t->get_current();
-    } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorQuads_insert" "', argument " "2"" of type '" "std::vector<Hex::Quad * >::iterator""'");
-    }
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___setslice__" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  ecode3 = SWIG_AsVal_size_t(obj2, &val3);
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorEdges___setslice__" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::Edge * >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorQuads_insert" "', argument " "3"" of type '" "std::vector<Hex::Quad * >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorEdges___setslice__" "', argument " "3"" of type '" "std::vector< Hex::Edge * >::difference_type""'");
   } 
-  arg3 = static_cast< std::vector<Hex::Quad * >::size_type >(val3);
-  res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorQuads_insert" "', argument " "4"" of type '" "std::vector<Hex::Quad * >::value_type""'"); 
+  arg3 = static_cast< std::vector< Hex::Edge * >::difference_type >(val3);
+  {
+    std::vector< Hex::Edge*,std::allocator< Hex::Edge * > > *ptr = (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > > *)0;
+    res4 = swig::asptr(obj3, &ptr);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorEdges___setslice__" "', argument " "4"" of type '" "std::vector< Hex::Edge *,std::allocator< Hex::Edge * > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorEdges___setslice__" "', argument " "4"" of type '" "std::vector< Hex::Edge *,std::allocator< Hex::Edge * > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
+  try {
+    std_vector_Sl_Hex_Edge_Sm__Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< Hex::Edge *,std::allocator< Hex::Edge * > > const &)*arg4);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
   }
-  arg4 = reinterpret_cast< std::vector<Hex::Quad * >::value_type >(argp4);
-  (arg1)->insert(arg2,arg3,arg4);
+  
   resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorQuads_insert(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[5];
-  int ii;
+SWIGINTERN PyObject *_wrap_VectorEdges___setslice__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[5] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Quad * >::iterator > *>(iter) != 0));
-      if (_v) {
-        void *vptr = 0;
-        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type, 0);
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
         _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_ptrdiff_t(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
         if (_v) {
-          return _wrap_VectorQuads_insert__SWIG_0(self, args);
+          return _wrap_VectorEdges___setslice____SWIG_0(self, args);
         }
       }
     }
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Quad * >::iterator > *>(iter) != 0));
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
       if (_v) {
         {
-          int res = SWIG_AsVal_size_t(argv[2], NULL);
+          int res = SWIG_AsVal_ptrdiff_t(argv[2], NULL);
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          void *vptr = 0;
-          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type, 0);
+          int res = swig::asptr(argv[3], (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
-            return _wrap_VectorQuads_insert__SWIG_1(self, args);
-          }
-        }
-      }
-    }
-  }
-  
-fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorQuads_insert'.\n  Possible C/C++ prototypes are:\n    insert(std::vector<Hex::Quad * >::iterator,std::vector<Hex::Quad * >::value_type)\n    insert(std::vector<Hex::Quad * >::iterator,std::vector<Hex::Quad * >::size_type,std::vector<Hex::Quad * >::value_type)\n");
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorQuads_reserve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::size_type arg2 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  size_t val2 ;
-  int ecode2 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorQuads_reserve",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_reserve" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  ecode2 = SWIG_AsVal_size_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorQuads_reserve" "', argument " "2"" of type '" "std::vector<Hex::Quad * >::size_type""'");
-  } 
-  arg2 = static_cast< std::vector<Hex::Quad * >::size_type >(val2);
-  (arg1)->reserve(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorQuads_capacity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
-  std::vector<Hex::Quad * >::size_type result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorQuads_capacity",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorQuads_capacity" "', argument " "1"" of type '" "std::vector<Hex::Quad * > const *""'"); 
+            return _wrap_VectorEdges___setslice____SWIG_1(self, args);
+          }
+        }
+      }
+    }
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  result = ((std::vector<Hex::Quad * > const *)arg1)->capacity();
-  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
-  return resultobj;
+  
 fail:
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorEdges___setslice__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Edge * >::__setslice__(std::vector< Hex::Edge * >::difference_type,std::vector< Hex::Edge * >::difference_type)\n"
+    "    std::vector< Hex::Edge * >::__setslice__(std::vector< Hex::Edge * >::difference_type,std::vector< Hex::Edge * >::difference_type,std::vector< Hex::Edge *,std::allocator< Hex::Edge * > > const &)\n");
+  return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_delete_VectorQuads(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges___delslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Quad * > *arg1 = (std::vector<Hex::Quad * > *) 0 ;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  std::vector< Hex::Edge * >::difference_type arg2 ;
+  std::vector< Hex::Edge * >::difference_type arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:delete_VectorQuads",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, SWIG_POINTER_DISOWN |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorEdges___delslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_VectorQuads" "', argument " "1"" of type '" "std::vector<Hex::Quad * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___delslice__" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorEdges___delslice__" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::Edge * >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorEdges___delslice__" "', argument " "3"" of type '" "std::vector< Hex::Edge * >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< Hex::Edge * >::difference_type >(val3);
+  try {
+    std_vector_Sl_Hex_Edge_Sm__Sg____delslice__(arg1,arg2,arg3);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Quad * > * >(argp1);
-  delete arg1;
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -8571,202 +10870,199 @@ fail:
 }
 
 
-SWIGINTERN PyObject *VectorQuads_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
-  SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, SWIG_NewClientData(obj));
-  return SWIG_Py_Void();
-}
-
-SWIGINTERN PyObject *_wrap_VectorEdges_iterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges___delitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  PyObject **arg2 = (PyObject **) 0 ;
-  swig::PySwigIterator *result = 0 ;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  std::vector< Hex::Edge * >::difference_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
   
-  arg2 = &obj0;
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_iterator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorEdges___delitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_iterator" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___delitem__" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  result = (swig::PySwigIterator *)std_vector_Sl_Hex_Edge_Sm__Sg__iterator(arg1,arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorEdges___nonzero__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  bool result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges___nonzero__",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___nonzero__" "', argument " "1"" of type '" "std::vector<Hex::Edge * > const *""'"); 
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorEdges___delitem__" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::Edge * >::difference_type >(val2);
+  try {
+    std_vector_Sl_Hex_Edge_Sm__Sg____delitem____SWIG_0(arg1,arg2);
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  result = (bool)std_vector_Sl_Hex_Edge_Sm__Sg____nonzero__((std::vector<Hex::Edge * > const *)arg1);
-  resultobj = SWIG_From_bool(static_cast< bool >(result));
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges___getitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::size_type result;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  std::vector< Hex::Edge *,std::allocator< Hex::Edge * > > *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges___len__",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorEdges___getitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___len__" "', argument " "1"" of type '" "std::vector<Hex::Edge * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___getitem__" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  result = std_vector_Sl_Hex_Edge_Sm__Sg____len__((std::vector<Hex::Edge * > const *)arg1);
-  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges___getitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
+  }
+  try {
+    result = (std::vector< Hex::Edge *,std::allocator< Hex::Edge * > > *)std_vector_Sl_Hex_Edge_Sm__Sg____getitem____SWIG_0(arg1,arg2);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges___setitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::value_type result;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
+  std::vector< Hex::Edge *,std::allocator< Hex::Edge * > > *arg3 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  int res3 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorEdges___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_pop" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___setitem__" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges___setitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
+  }
+  {
+    std::vector< Hex::Edge*,std::allocator< Hex::Edge * > > *ptr = (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > > *)0;
+    res3 = swig::asptr(obj2, &ptr);
+    if (!SWIG_IsOK(res3)) {
+      SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorEdges___setitem__" "', argument " "3"" of type '" "std::vector< Hex::Edge *,std::allocator< Hex::Edge * > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorEdges___setitem__" "', argument " "3"" of type '" "std::vector< Hex::Edge *,std::allocator< Hex::Edge * > > const &""'"); 
+    }
+    arg3 = ptr;
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
   try {
-    result = (std::vector<Hex::Edge * >::value_type)std_vector_Sl_Hex_Edge_Sm__Sg__pop(arg1);
+    std_vector_Sl_Hex_Edge_Sm__Sg____setitem____SWIG_0(arg1,arg2,(std::vector< Hex::Edge *,std::allocator< Hex::Edge * > > const &)*arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type, 0 |  0 );
+  resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res3)) delete arg3;
   return resultobj;
 fail:
+  if (SWIG_IsNewObj(res3)) delete arg3;
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges___setitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::difference_type arg2 ;
-  std::vector<Hex::Edge * >::difference_type arg3 ;
-  std::vector<Hex::Edge *,std::allocator<Hex::Edge * > > *result = 0 ;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  ptrdiff_t val3 ;
-  int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorEdges___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorEdges___setitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___getslice__" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___setitem__" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges___setitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorEdges___getslice__" "', argument " "2"" of type '" "std::vector<Hex::Edge * >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector<Hex::Edge * >::difference_type >(val2);
-  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorEdges___getslice__" "', argument " "3"" of type '" "std::vector<Hex::Edge * >::difference_type""'");
-  } 
-  arg3 = static_cast< std::vector<Hex::Edge * >::difference_type >(val3);
   try {
-    result = (std::vector<Hex::Edge *,std::allocator<Hex::Edge * > > *)std_vector_Sl_Hex_Edge_Sm__Sg____getslice__(arg1,arg2,arg3);
+    std_vector_Sl_Hex_Edge_Sm__Sg____setitem____SWIG_1(arg1,arg2);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges___setslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges___delitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::difference_type arg2 ;
-  std::vector<Hex::Edge * >::difference_type arg3 ;
-  std::vector<Hex::Edge *,std::allocator<Hex::Edge * > > *arg4 = 0 ;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  ptrdiff_t val3 ;
-  int ecode3 = 0 ;
-  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorEdges___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorEdges___delitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___setslice__" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___delitem__" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorEdges___setslice__" "', argument " "2"" of type '" "std::vector<Hex::Edge * >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector<Hex::Edge * >::difference_type >(val2);
-  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorEdges___setslice__" "', argument " "3"" of type '" "std::vector<Hex::Edge * >::difference_type""'");
-  } 
-  arg3 = static_cast< std::vector<Hex::Edge * >::difference_type >(val3);
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
   {
-    std::vector<Hex::Edge*,std::allocator<Hex::Edge * > > *ptr = (std::vector<Hex::Edge*,std::allocator<Hex::Edge * > > *)0;
-    res4 = swig::asptr(obj3, &ptr);
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorEdges___setslice__" "', argument " "4"" of type '" "std::vector<Hex::Edge *,std::allocator<Hex::Edge * > > const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorEdges___setslice__" "', argument " "4"" of type '" "std::vector<Hex::Edge *,std::allocator<Hex::Edge * > > const &""'"); 
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges___delitem__" "', argument " "2"" of type '" "PySliceObject *""'");
     }
-    arg4 = ptr;
+    arg2 = (PySliceObject *) obj1;
   }
   try {
-    std_vector_Sl_Hex_Edge_Sm__Sg____setslice__(arg1,arg2,arg3,(std::vector<Hex::Edge *,std::allocator<Hex::Edge * > > const &)*arg4);
+    std_vector_Sl_Hex_Edge_Sm__Sg____delitem____SWIG_1(arg1,arg2);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -8776,83 +11072,180 @@ SWIGINTERN PyObject *_wrap_VectorEdges___setslice__(PyObject *SWIGUNUSEDPARM(sel
   }
   
   resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges___delslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges___delitem__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        return _wrap_VectorEdges___delitem____SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_VectorEdges___delitem____SWIG_0(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorEdges___delitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Edge * >::__delitem__(std::vector< Hex::Edge * >::difference_type)\n"
+    "    std::vector< Hex::Edge * >::__delitem__(PySliceObject *)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorEdges___getitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::difference_type arg2 ;
-  std::vector<Hex::Edge * >::difference_type arg3 ;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  std::vector< Hex::Edge * >::difference_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
-  ptrdiff_t val3 ;
-  int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
+  std::vector< Hex::Edge * >::value_type result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorEdges___delslice__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorEdges___getitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___delslice__" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___getitem__" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorEdges___delslice__" "', argument " "2"" of type '" "std::vector<Hex::Edge * >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector<Hex::Edge * >::difference_type >(val2);
-  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorEdges___delslice__" "', argument " "3"" of type '" "std::vector<Hex::Edge * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorEdges___getitem__" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::difference_type""'");
   } 
-  arg3 = static_cast< std::vector<Hex::Edge * >::difference_type >(val3);
+  arg2 = static_cast< std::vector< Hex::Edge * >::difference_type >(val2);
   try {
-    std_vector_Sl_Hex_Edge_Sm__Sg____delslice__(arg1,arg2,arg3);
+    result = (std::vector< Hex::Edge * >::value_type)std_vector_Sl_Hex_Edge_Sm__Sg____getitem____SWIG_1(arg1,arg2);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
   
-  resultobj = SWIG_Py_Void();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Hex__Edge, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges___delitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges___getitem__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        return _wrap_VectorEdges___getitem____SWIG_0(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_VectorEdges___getitem____SWIG_1(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorEdges___getitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Edge * >::__getitem__(PySliceObject *)\n"
+    "    std::vector< Hex::Edge * >::__getitem__(std::vector< Hex::Edge * >::difference_type)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorEdges___setitem____SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::difference_type arg2 ;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  std::vector< Hex::Edge * >::difference_type arg2 ;
+  std::vector< Hex::Edge * >::value_type arg3 = (std::vector< Hex::Edge * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorEdges___delitem__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorEdges___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___delitem__" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___setitem__" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorEdges___delitem__" "', argument " "2"" of type '" "std::vector<Hex::Edge * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorEdges___setitem__" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Edge * >::difference_type >(val2);
+  arg2 = static_cast< std::vector< Hex::Edge * >::difference_type >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_Hex__Edge, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorEdges___setitem__" "', argument " "3"" of type '" "std::vector< Hex::Edge * >::value_type""'"); 
+  }
+  arg3 = reinterpret_cast< std::vector< Hex::Edge * >::value_type >(argp3);
   try {
-    std_vector_Sl_Hex_Edge_Sm__Sg____delitem__(arg1,arg2);
+    std_vector_Sl_Hex_Edge_Sm__Sg____setitem____SWIG_2(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -8865,82 +11258,100 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::difference_type arg2 ;
-  std::vector<Hex::Edge * >::value_type result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
+SWIGINTERN PyObject *_wrap_VectorEdges___setitem__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorEdges___getitem__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___getitem__" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        return _wrap_VectorEdges___setitem____SWIG_1(self, args);
+      }
+    }
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorEdges___getitem__" "', argument " "2"" of type '" "std::vector<Hex::Edge * >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector<Hex::Edge * >::difference_type >(val2);
-  try {
-    result = (std::vector<Hex::Edge * >::value_type)std_vector_Sl_Hex_Edge_Sm__Sg____getitem__(arg1,arg2);
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        int res = swig::asptr(argv[2], (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >**)(0));
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_VectorEdges___setitem____SWIG_0(self, args);
+        }
+      }
+    }
   }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Hex__Edge, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_VectorEdges___setitem____SWIG_2(self, args);
+        }
+      }
+    }
   }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type, 0 |  0 );
-  return resultobj;
 fail:
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorEdges___setitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Edge * >::__setitem__(PySliceObject *,std::vector< Hex::Edge *,std::allocator< Hex::Edge * > > const &)\n"
+    "    std::vector< Hex::Edge * >::__setitem__(PySliceObject *)\n"
+    "    std::vector< Hex::Edge * >::__setitem__(std::vector< Hex::Edge * >::difference_type,std::vector< Hex::Edge * >::value_type)\n");
+  return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::difference_type arg2 ;
-  std::vector<Hex::Edge * >::value_type arg3 = (std::vector<Hex::Edge * >::value_type) 0 ;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
   PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
+  std::vector< Hex::Edge * >::value_type result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorEdges___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges___setitem__" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorEdges___setitem__" "', argument " "2"" of type '" "std::vector<Hex::Edge * >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector<Hex::Edge * >::difference_type >(val2);
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorEdges___setitem__" "', argument " "3"" of type '" "std::vector<Hex::Edge * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_pop" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg3 = reinterpret_cast< std::vector<Hex::Edge * >::value_type >(argp3);
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
   try {
-    std_vector_Sl_Hex_Edge_Sm__Sg____setitem__(arg1,arg2,arg3);
+    result = (std::vector< Hex::Edge * >::value_type)std_vector_Sl_Hex_Edge_Sm__Sg__pop(arg1);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
   
-  resultobj = SWIG_Py_Void();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Hex__Edge, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -8949,8 +11360,8 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorEdges_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::value_type arg2 = (std::vector<Hex::Edge * >::value_type) 0 ;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  std::vector< Hex::Edge * >::value_type arg2 = (std::vector< Hex::Edge * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -8959,16 +11370,16 @@ SWIGINTERN PyObject *_wrap_VectorEdges_append(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorEdges_append",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_append" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_append" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type, 0 |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Hex__Edge, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorEdges_append" "', argument " "2"" of type '" "std::vector<Hex::Edge * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorEdges_append" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::value_type""'"); 
   }
-  arg2 = reinterpret_cast< std::vector<Hex::Edge * >::value_type >(argp2);
+  arg2 = reinterpret_cast< std::vector< Hex::Edge * >::value_type >(argp2);
   std_vector_Sl_Hex_Edge_Sm__Sg__append(arg1,arg2);
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -8979,11 +11390,11 @@ fail:
 
 SWIGINTERN PyObject *_wrap_new_VectorEdges__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *result = 0 ;
+  std::vector< Hex::Edge * > *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)":new_VectorEdges")) SWIG_fail;
-  result = (std::vector<Hex::Edge * > *)new std::vector<Hex::Edge * >();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, SWIG_POINTER_NEW |  0 );
+  result = (std::vector< Hex::Edge * > *)new std::vector< Hex::Edge * >();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -8992,25 +11403,25 @@ fail:
 
 SWIGINTERN PyObject *_wrap_new_VectorEdges__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = 0 ;
-  std::vector<Hex::Edge * > *result = 0 ;
+  std::vector< Hex::Edge * > *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Edge * > *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_VectorEdges",&obj0)) SWIG_fail;
   {
-    std::vector<Hex::Edge*,std::allocator<Hex::Edge * > > *ptr = (std::vector<Hex::Edge*,std::allocator<Hex::Edge * > > *)0;
+    std::vector< Hex::Edge*,std::allocator< Hex::Edge * > > *ptr = (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_VectorEdges" "', argument " "1"" of type '" "std::vector<Hex::Edge * > const &""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_VectorEdges" "', argument " "1"" of type '" "std::vector< Hex::Edge * > const &""'"); 
     }
     if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_VectorEdges" "', argument " "1"" of type '" "std::vector<Hex::Edge * > const &""'"); 
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_VectorEdges" "', argument " "1"" of type '" "std::vector< Hex::Edge * > const &""'"); 
     }
     arg1 = ptr;
   }
-  result = (std::vector<Hex::Edge * > *)new std::vector<Hex::Edge * >((std::vector<Hex::Edge * > const &)*arg1);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, SWIG_POINTER_NEW |  0 );
+  result = (std::vector< Hex::Edge * > *)new std::vector< Hex::Edge * >((std::vector< Hex::Edge * > const &)*arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, SWIG_POINTER_NEW |  0 );
   if (SWIG_IsNewObj(res1)) delete arg1;
   return resultobj;
 fail:
@@ -9021,19 +11432,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorEdges_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  bool result;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_empty",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_empty" "', argument " "1"" of type '" "std::vector<Hex::Edge * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_empty" "', argument " "1"" of type '" "std::vector< Hex::Edge * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  result = (bool)((std::vector<Hex::Edge * > const *)arg1)->empty();
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  result = (bool)((std::vector< Hex::Edge * > const *)arg1)->empty();
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
@@ -9043,19 +11454,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorEdges_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::size_type result;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Edge * >::size_type result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_size",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_size" "', argument " "1"" of type '" "std::vector<Hex::Edge * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_size" "', argument " "1"" of type '" "std::vector< Hex::Edge * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  result = ((std::vector<Hex::Edge * > const *)arg1)->size();
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  result = ((std::vector< Hex::Edge * > const *)arg1)->size();
   resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
@@ -9063,20 +11474,32 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  std::vector< Hex::Edge * > *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorEdges_swap",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_clear" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_swap" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  (arg1)->clear();
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorEdges_swap" "', argument " "2"" of type '" "std::vector< Hex::Edge * > &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorEdges_swap" "', argument " "2"" of type '" "std::vector< Hex::Edge * > &""'"); 
+  }
+  arg2 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp2);
+  (arg1)->swap(*arg2);
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -9084,413 +11507,555 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * > *arg2 = 0 ;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
   PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
+  std::vector< Hex::Edge * >::iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorEdges_swap",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_begin",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_swap" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t,  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorEdges_swap" "', argument " "2"" of type '" "std::vector<Hex::Edge * > &""'"); 
-  }
-  if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorEdges_swap" "', argument " "2"" of type '" "std::vector<Hex::Edge * > &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_begin" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg2 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp2);
-  (arg1)->swap(*arg2);
-  resultobj = SWIG_Py_Void();
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  result = (arg1)->begin();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Edge * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  SwigValueWrapper<std::allocator<Hex::Edge * > > result;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Edge * >::iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_end",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_get_allocator" "', argument " "1"" of type '" "std::vector<Hex::Edge * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_end" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  result = ((std::vector<Hex::Edge * > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector<Hex::Edge * >::allocator_type(static_cast< const std::vector<Hex::Edge * >::allocator_type& >(result))), SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__allocator_type, SWIG_POINTER_OWN |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  result = (arg1)->end();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Edge * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_begin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges_rbegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::iterator result;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Edge * >::reverse_iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_begin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_rbegin",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_begin" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_rbegin" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  result = (arg1)->begin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Edge * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  result = (arg1)->rbegin();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Edge * >::reverse_iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_begin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges_rend(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::const_iterator result;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Edge * >::reverse_iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_begin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_rend",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_begin" "', argument " "1"" of type '" "std::vector<Hex::Edge * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_rend" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  result = ((std::vector<Hex::Edge * > const *)arg1)->begin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Edge * >::const_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  result = (arg1)->rend();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Edge * >::reverse_iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_begin(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
+SWIGINTERN PyObject *_wrap_VectorEdges_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
   
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Edge*,std::allocator<Hex::Edge * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorEdges_begin__SWIG_0(self, args);
-    }
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_clear" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Edge*,std::allocator<Hex::Edge * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorEdges_begin__SWIG_1(self, args);
-    }
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorEdges_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< Hex::Edge * > > result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_get_allocator" "', argument " "1"" of type '" "std::vector< Hex::Edge * > const *""'"); 
   }
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  result = ((std::vector< Hex::Edge * > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< Hex::Edge * >::allocator_type(static_cast< const std::vector< Hex::Edge * >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_Hex__Edge_p_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_VectorEdges__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Edge * >::size_type arg1 ;
+  size_t val1 ;
+  int ecode1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< Hex::Edge * > *result = 0 ;
   
+  if (!PyArg_ParseTuple(args,(char *)"O:new_VectorEdges",&obj0)) SWIG_fail;
+  ecode1 = SWIG_AsVal_size_t(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorEdges" "', argument " "1"" of type '" "std::vector< Hex::Edge * >::size_type""'");
+  } 
+  arg1 = static_cast< std::vector< Hex::Edge * >::size_type >(val1);
+  result = (std::vector< Hex::Edge * > *)new std::vector< Hex::Edge * >(arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, SWIG_POINTER_NEW |  0 );
+  return resultobj;
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorEdges_begin'.\n  Possible C/C++ prototypes are:\n    begin()\n    begin()\n");
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_end__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges_pop_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::iterator result;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_end",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_pop_back",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_end" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_pop_back" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  result = (arg1)->end();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Edge * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  (arg1)->pop_back();
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_end__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges_resize__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::const_iterator result;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  std::vector< Hex::Edge * >::size_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  size_t val2 ;
+  int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_end",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorEdges_resize",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_end" "', argument " "1"" of type '" "std::vector<Hex::Edge * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_resize" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  result = ((std::vector<Hex::Edge * > const *)arg1)->end();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Edge * >::const_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorEdges_resize" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::size_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::Edge * >::size_type >(val2);
+  (arg1)->resize(arg2);
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_end(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
+SWIGINTERN PyObject *_wrap_VectorEdges_erase__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  std::vector< Hex::Edge * >::iterator arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
+  int res2 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  std::vector< Hex::Edge * >::iterator result;
   
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Edge*,std::allocator<Hex::Edge * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorEdges_end__SWIG_0(self, args);
-    }
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorEdges_erase",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_erase" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Edge*,std::allocator<Hex::Edge * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorEdges_end__SWIG_1(self, args);
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
+  if (!SWIG_IsOK(res2) || !iter2) {
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges_erase" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::iterator""'");
+  } else {
+    swig::SwigPyIterator_T<std::vector< Hex::Edge * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Edge * >::iterator > *>(iter2);
+    if (iter_t) {
+      arg2 = iter_t->get_current();
+    } else {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges_erase" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::iterator""'");
     }
   }
-  
+  result = std_vector_Sl_Hex_Edge_Sm__Sg__erase__SWIG_0(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Edge * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
+  return resultobj;
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorEdges_end'.\n  Possible C/C++ prototypes are:\n    end()\n    end()\n");
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_rbegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges_erase__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::reverse_iterator result;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  std::vector< Hex::Edge * >::iterator arg2 ;
+  std::vector< Hex::Edge * >::iterator arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
+  int res2 ;
+  swig::SwigPyIterator *iter3 = 0 ;
+  int res3 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  std::vector< Hex::Edge * >::iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_rbegin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorEdges_erase",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_rbegin" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_erase" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  result = (arg1)->rbegin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Edge * >::reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
+  if (!SWIG_IsOK(res2) || !iter2) {
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges_erase" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::iterator""'");
+  } else {
+    swig::SwigPyIterator_T<std::vector< Hex::Edge * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Edge * >::iterator > *>(iter2);
+    if (iter_t) {
+      arg2 = iter_t->get_current();
+    } else {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges_erase" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::iterator""'");
+    }
+  }
+  res3 = SWIG_ConvertPtr(obj2, SWIG_as_voidptrptr(&iter3), swig::SwigPyIterator::descriptor(), 0);
+  if (!SWIG_IsOK(res3) || !iter3) {
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges_erase" "', argument " "3"" of type '" "std::vector< Hex::Edge * >::iterator""'");
+  } else {
+    swig::SwigPyIterator_T<std::vector< Hex::Edge * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Edge * >::iterator > *>(iter3);
+    if (iter_t) {
+      arg3 = iter_t->get_current();
+    } else {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges_erase" "', argument " "3"" of type '" "std::vector< Hex::Edge * >::iterator""'");
+    }
+  }
+  result = std_vector_Sl_Hex_Edge_Sm__Sg__erase__SWIG_1(arg1,arg2,arg3);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Edge * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_rbegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges_erase(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Edge * >::iterator > *>(iter) != 0));
+      if (_v) {
+        return _wrap_VectorEdges_erase__SWIG_0(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Edge * >::iterator > *>(iter) != 0));
+      if (_v) {
+        swig::SwigPyIterator *iter = 0;
+        int res = SWIG_ConvertPtr(argv[2], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+        _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Edge * >::iterator > *>(iter) != 0));
+        if (_v) {
+          return _wrap_VectorEdges_erase__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorEdges_erase'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Edge * >::erase(std::vector< Hex::Edge * >::iterator)\n"
+    "    std::vector< Hex::Edge * >::erase(std::vector< Hex::Edge * >::iterator,std::vector< Hex::Edge * >::iterator)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_VectorEdges__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::const_reverse_iterator result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
+  std::vector< Hex::Edge * >::size_type arg1 ;
+  std::vector< Hex::Edge * >::value_type arg2 = (std::vector< Hex::Edge * >::value_type) 0 ;
+  size_t val1 ;
+  int ecode1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  std::vector< Hex::Edge * > *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_rbegin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_rbegin" "', argument " "1"" of type '" "std::vector<Hex::Edge * > const *""'"); 
+  if (!PyArg_ParseTuple(args,(char *)"OO:new_VectorEdges",&obj0,&obj1)) SWIG_fail;
+  ecode1 = SWIG_AsVal_size_t(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorEdges" "', argument " "1"" of type '" "std::vector< Hex::Edge * >::size_type""'");
+  } 
+  arg1 = static_cast< std::vector< Hex::Edge * >::size_type >(val1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Hex__Edge, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_VectorEdges" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::value_type""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  result = ((std::vector<Hex::Edge * > const *)arg1)->rbegin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Edge * >::const_reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg2 = reinterpret_cast< std::vector< Hex::Edge * >::value_type >(argp2);
+  result = (std::vector< Hex::Edge * > *)new std::vector< Hex::Edge * >(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_rbegin(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
+SWIGINTERN PyObject *_wrap_new_VectorEdges(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
+  if (argc == 0) {
+    return _wrap_new_VectorEdges__SWIG_0(self, args);
+  }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Edge*,std::allocator<Hex::Edge * > >**)(0));
-    _v = SWIG_CheckState(res);
+    {
+      int res = SWIG_AsVal_size_t(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
     if (_v) {
-      return _wrap_VectorEdges_rbegin__SWIG_0(self, args);
+      return _wrap_new_VectorEdges__SWIG_2(self, args);
     }
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Edge*,std::allocator<Hex::Edge * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      return _wrap_VectorEdges_rbegin__SWIG_1(self, args);
+      return _wrap_new_VectorEdges__SWIG_1(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    {
+      int res = SWIG_AsVal_size_t(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Hex__Edge, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_new_VectorEdges__SWIG_3(self, args);
+      }
     }
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorEdges_rbegin'.\n  Possible C/C++ prototypes are:\n    rbegin()\n    rbegin()\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_VectorEdges'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Edge * >::vector()\n"
+    "    std::vector< Hex::Edge * >::vector(std::vector< Hex::Edge * > const &)\n"
+    "    std::vector< Hex::Edge * >::vector(std::vector< Hex::Edge * >::size_type)\n"
+    "    std::vector< Hex::Edge * >::vector(std::vector< Hex::Edge * >::size_type,std::vector< Hex::Edge * >::value_type)\n");
+  return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_rend__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges_push_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::reverse_iterator result;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  std::vector< Hex::Edge * >::value_type arg2 = (std::vector< Hex::Edge * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_rend",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorEdges_push_back",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_rend" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_push_back" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  result = (arg1)->rend();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Edge * >::reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Hex__Edge, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorEdges_push_back" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::value_type""'"); 
+  }
+  arg2 = reinterpret_cast< std::vector< Hex::Edge * >::value_type >(argp2);
+  (arg1)->push_back(arg2);
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_rend__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges_front(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::const_reverse_iterator result;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Edge * >::value_type result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_rend",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_front",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_rend" "', argument " "1"" of type '" "std::vector<Hex::Edge * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_front" "', argument " "1"" of type '" "std::vector< Hex::Edge * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  result = ((std::vector<Hex::Edge * > const *)arg1)->rend();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Edge * >::const_reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  result = (std::vector< Hex::Edge * >::value_type)((std::vector< Hex::Edge * > const *)arg1)->front();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Hex__Edge, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_rend(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
-  
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Edge*,std::allocator<Hex::Edge * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorEdges_rend__SWIG_0(self, args);
-    }
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Edge*,std::allocator<Hex::Edge * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorEdges_rend__SWIG_1(self, args);
-    }
-  }
-  
-fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorEdges_rend'.\n  Possible C/C++ prototypes are:\n    rend()\n    rend()\n");
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_new_VectorEdges__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * >::size_type arg1 ;
-  std::vector<Hex::Edge * > *result = 0 ;
-  size_t val1 ;
-  int ecode1 = 0 ;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Edge * >::value_type result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:new_VectorEdges",&obj0)) SWIG_fail;
-  ecode1 = SWIG_AsVal_size_t(obj0, &val1);
-  if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorEdges" "', argument " "1"" of type '" "std::vector<Hex::Edge * >::size_type""'");
-  } 
-  arg1 = static_cast< std::vector<Hex::Edge * >::size_type >(val1);
-  result = (std::vector<Hex::Edge * > *)new std::vector<Hex::Edge * >(arg1);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, SWIG_POINTER_NEW |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_back",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_back" "', argument " "1"" of type '" "std::vector< Hex::Edge * > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  result = (std::vector< Hex::Edge * >::value_type)((std::vector< Hex::Edge * > const *)arg1)->back();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Hex__Edge, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_pop_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges_assign(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  std::vector< Hex::Edge * >::size_type arg2 ;
+  std::vector< Hex::Edge * >::value_type arg3 = (std::vector< Hex::Edge * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  size_t val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_pop_back",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorEdges_assign",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_pop_back" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_assign" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  (arg1)->pop_back();
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorEdges_assign" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::size_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::Edge * >::size_type >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_Hex__Edge, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorEdges_assign" "', argument " "3"" of type '" "std::vector< Hex::Edge * >::value_type""'"); 
+  }
+  arg3 = reinterpret_cast< std::vector< Hex::Edge * >::value_type >(argp3);
+  (arg1)->assign(arg2,arg3);
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -9498,29 +12063,38 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_resize__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::size_type arg2 ;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  std::vector< Hex::Edge * >::size_type arg2 ;
+  std::vector< Hex::Edge * >::value_type arg3 = (std::vector< Hex::Edge * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
   int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorEdges_resize",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorEdges_resize",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_resize" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_resize" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
   ecode2 = SWIG_AsVal_size_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorEdges_resize" "', argument " "2"" of type '" "std::vector<Hex::Edge * >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorEdges_resize" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::size_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Edge * >::size_type >(val2);
-  (arg1)->resize(arg2);
+  arg2 = static_cast< std::vector< Hex::Edge * >::size_type >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_Hex__Edge, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorEdges_resize" "', argument " "3"" of type '" "std::vector< Hex::Edge * >::value_type""'"); 
+  }
+  arg3 = reinterpret_cast< std::vector< Hex::Edge * >::value_type >(argp3);
+  (arg1)->resize(arg2,arg3);
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -9528,579 +12102,608 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_erase__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges_resize(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_size_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_VectorEdges_resize__SWIG_0(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_size_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Hex__Edge, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_VectorEdges_resize__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorEdges_resize'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Edge * >::resize(std::vector< Hex::Edge * >::size_type)\n"
+    "    std::vector< Hex::Edge * >::resize(std::vector< Hex::Edge * >::size_type,std::vector< Hex::Edge * >::value_type)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorEdges_insert__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::iterator arg2 ;
-  std::vector<Hex::Edge * >::iterator result;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  std::vector< Hex::Edge * >::iterator arg2 ;
+  std::vector< Hex::Edge * >::value_type arg3 = (std::vector< Hex::Edge * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
   int res2 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  std::vector< Hex::Edge * >::iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorEdges_erase",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorEdges_insert",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_erase" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_insert" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges_erase" "', argument " "2"" of type '" "std::vector<Hex::Edge * >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges_insert" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<Hex::Edge * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Edge * >::iterator > *>(iter2);
+    swig::SwigPyIterator_T<std::vector< Hex::Edge * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Edge * >::iterator > *>(iter2);
     if (iter_t) {
       arg2 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges_erase" "', argument " "2"" of type '" "std::vector<Hex::Edge * >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges_insert" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::iterator""'");
     }
   }
-  result = (arg1)->erase(arg2);
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Edge * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_Hex__Edge, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorEdges_insert" "', argument " "3"" of type '" "std::vector< Hex::Edge * >::value_type""'"); 
+  }
+  arg3 = reinterpret_cast< std::vector< Hex::Edge * >::value_type >(argp3);
+  result = std_vector_Sl_Hex_Edge_Sm__Sg__insert__SWIG_0(arg1,arg2,arg3);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Edge * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_erase__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorEdges_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::iterator arg2 ;
-  std::vector<Hex::Edge * >::iterator arg3 ;
-  std::vector<Hex::Edge * >::iterator result;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  std::vector< Hex::Edge * >::iterator arg2 ;
+  std::vector< Hex::Edge * >::size_type arg3 ;
+  std::vector< Hex::Edge * >::value_type arg4 = (std::vector< Hex::Edge * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
   int res2 ;
-  swig::PySwigIterator *iter3 = 0 ;
-  int res3 ;
+  size_t val3 ;
+  int ecode3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorEdges_erase",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorEdges_insert",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_erase" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_insert" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges_erase" "', argument " "2"" of type '" "std::vector<Hex::Edge * >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges_insert" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<Hex::Edge * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Edge * >::iterator > *>(iter2);
+    swig::SwigPyIterator_T<std::vector< Hex::Edge * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Edge * >::iterator > *>(iter2);
     if (iter_t) {
       arg2 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges_erase" "', argument " "2"" of type '" "std::vector<Hex::Edge * >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges_insert" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::iterator""'");
     }
   }
-  res3 = SWIG_ConvertPtr(obj2, SWIG_as_voidptrptr(&iter3), swig::PySwigIterator::descriptor(), 0);
-  if (!SWIG_IsOK(res3) || !iter3) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges_erase" "', argument " "3"" of type '" "std::vector<Hex::Edge * >::iterator""'");
-  } else {
-    swig::PySwigIterator_T<std::vector<Hex::Edge * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Edge * >::iterator > *>(iter3);
-    if (iter_t) {
-      arg3 = iter_t->get_current();
-    } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges_erase" "', argument " "3"" of type '" "std::vector<Hex::Edge * >::iterator""'");
-    }
+  ecode3 = SWIG_AsVal_size_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorEdges_insert" "', argument " "3"" of type '" "std::vector< Hex::Edge * >::size_type""'");
+  } 
+  arg3 = static_cast< std::vector< Hex::Edge * >::size_type >(val3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_Hex__Edge, 0 |  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorEdges_insert" "', argument " "4"" of type '" "std::vector< Hex::Edge * >::value_type""'"); 
   }
-  result = (arg1)->erase(arg2,arg3);
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Edge * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg4 = reinterpret_cast< std::vector< Hex::Edge * >::value_type >(argp4);
+  std_vector_Sl_Hex_Edge_Sm__Sg__insert__SWIG_1(arg1,arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_erase(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
-  int ii;
+SWIGINTERN PyObject *_wrap_VectorEdges_insert(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[5] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
-  if (argc == 2) {
+  if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Edge*,std::allocator<Hex::Edge * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Edge * >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Edge * >::iterator > *>(iter) != 0));
       if (_v) {
-        return _wrap_VectorEdges_erase__SWIG_0(self, args);
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Hex__Edge, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_VectorEdges_insert__SWIG_0(self, args);
+        }
       }
     }
   }
-  if (argc == 3) {
+  if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Edge*,std::allocator<Hex::Edge * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Edge * >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Edge * >::iterator > *>(iter) != 0));
       if (_v) {
-        swig::PySwigIterator *iter = 0;
-        int res = SWIG_ConvertPtr(argv[2], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-        _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Edge * >::iterator > *>(iter) != 0));
+        {
+          int res = SWIG_AsVal_size_t(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
         if (_v) {
-          return _wrap_VectorEdges_erase__SWIG_1(self, args);
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_Hex__Edge, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_VectorEdges_insert__SWIG_1(self, args);
+          }
         }
       }
     }
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorEdges_erase'.\n  Possible C/C++ prototypes are:\n    erase(std::vector<Hex::Edge * >::iterator)\n    erase(std::vector<Hex::Edge * >::iterator,std::vector<Hex::Edge * >::iterator)\n");
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorEdges_insert'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Edge * >::insert(std::vector< Hex::Edge * >::iterator,std::vector< Hex::Edge * >::value_type)\n"
+    "    std::vector< Hex::Edge * >::insert(std::vector< Hex::Edge * >::iterator,std::vector< Hex::Edge * >::size_type,std::vector< Hex::Edge * >::value_type)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorEdges_reserve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  std::vector< Hex::Edge * >::size_type arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  size_t val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorEdges_reserve",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_reserve" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorEdges_reserve" "', argument " "2"" of type '" "std::vector< Hex::Edge * >::size_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::Edge * >::size_type >(val2);
+  (arg1)->reserve(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorEdges_capacity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< Hex::Edge * >::size_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_capacity",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_capacity" "', argument " "1"" of type '" "std::vector< Hex::Edge * > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  result = ((std::vector< Hex::Edge * > const *)arg1)->capacity();
+  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+  return resultobj;
+fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_new_VectorEdges__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_delete_VectorEdges(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * >::size_type arg1 ;
-  std::vector<Hex::Edge * >::value_type arg2 = (std::vector<Hex::Edge * >::value_type) 0 ;
-  std::vector<Hex::Edge * > *result = 0 ;
-  size_t val1 ;
-  int ecode1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
+  std::vector< Hex::Edge * > *arg1 = (std::vector< Hex::Edge * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
   PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:new_VectorEdges",&obj0,&obj1)) SWIG_fail;
-  ecode1 = SWIG_AsVal_size_t(obj0, &val1);
-  if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorEdges" "', argument " "1"" of type '" "std::vector<Hex::Edge * >::size_type""'");
-  } 
-  arg1 = static_cast< std::vector<Hex::Edge * >::size_type >(val1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_VectorEdges" "', argument " "2"" of type '" "std::vector<Hex::Edge * >::value_type""'"); 
+  if (!PyArg_ParseTuple(args,(char *)"O:delete_VectorEdges",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_VectorEdges" "', argument " "1"" of type '" "std::vector< Hex::Edge * > *""'"); 
   }
-  arg2 = reinterpret_cast< std::vector<Hex::Edge * >::value_type >(argp2);
-  result = (std::vector<Hex::Edge * > *)new std::vector<Hex::Edge * >(arg1,arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, SWIG_POINTER_NEW |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::Edge * > * >(argp1);
+  delete arg1;
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_new_VectorEdges(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
-  
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 0) {
-    return _wrap_new_VectorEdges__SWIG_0(self, args);
-  }
-  if (argc == 1) {
-    int _v;
-    {
-      int res = SWIG_AsVal_size_t(argv[0], NULL);
-      _v = SWIG_CheckState(res);
-    }
-    if (_v) {
-      return _wrap_new_VectorEdges__SWIG_2(self, args);
-    }
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Edge*,std::allocator<Hex::Edge * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_new_VectorEdges__SWIG_1(self, args);
-    }
-  }
-  if (argc == 2) {
-    int _v;
-    {
-      int res = SWIG_AsVal_size_t(argv[0], NULL);
-      _v = SWIG_CheckState(res);
-    }
-    if (_v) {
-      void *vptr = 0;
-      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type, 0);
-      _v = SWIG_CheckState(res);
-      if (_v) {
-        return _wrap_new_VectorEdges__SWIG_3(self, args);
-      }
-    }
-  }
-  
-fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_VectorEdges'.\n  Possible C/C++ prototypes are:\n    std::vector<(p.Hex::Edge)>()\n    std::vector<(p.Hex::Edge)>(std::vector<Hex::Edge * > const &)\n    std::vector<(p.Hex::Edge)>(std::vector<Hex::Edge * >::size_type)\n    std::vector<(p.Hex::Edge)>(std::vector<Hex::Edge * >::size_type,std::vector<Hex::Edge * >::value_type)\n");
-  return NULL;
+SWIGINTERN PyObject *VectorEdges_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *obj;
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
+  SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, SWIG_NewClientData(obj));
+  return SWIG_Py_Void();
 }
 
-
-SWIGINTERN PyObject *_wrap_VectorEdges_push_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices_iterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::value_type arg2 = (std::vector<Hex::Edge * >::value_type) 0 ;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  PyObject **arg2 = (PyObject **) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
   PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
+  swig::SwigPyIterator *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorEdges_push_back",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  arg2 = &obj0;
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_iterator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_push_back" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorEdges_push_back" "', argument " "2"" of type '" "std::vector<Hex::Edge * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_iterator" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg2 = reinterpret_cast< std::vector<Hex::Edge * >::value_type >(argp2);
-  (arg1)->push_back(arg2);
-  resultobj = SWIG_Py_Void();
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  result = (swig::SwigPyIterator *)std_vector_Sl_Hex_Vertex_Sm__Sg__iterator(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_front(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices___nonzero__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::value_type result;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_front",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices___nonzero__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_front" "', argument " "1"" of type '" "std::vector<Hex::Edge * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___nonzero__" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  result = (std::vector<Hex::Edge * >::value_type)((std::vector<Hex::Edge * > const *)arg1)->front();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type, 0 |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  result = (bool)std_vector_Sl_Hex_Vertex_Sm__Sg____nonzero__((std::vector< Hex::Vertex * > const *)arg1);
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices___bool__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::value_type result;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_back",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices___bool__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_back" "', argument " "1"" of type '" "std::vector<Hex::Edge * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___bool__" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  result = (std::vector<Hex::Edge * >::value_type)((std::vector<Hex::Edge * > const *)arg1)->back();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type, 0 |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  result = (bool)std_vector_Sl_Hex_Vertex_Sm__Sg____bool__((std::vector< Hex::Vertex * > const *)arg1);
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_assign(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::size_type arg2 ;
-  std::vector<Hex::Edge * >::value_type arg3 = (std::vector<Hex::Edge * >::value_type) 0 ;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  size_t val2 ;
-  int ecode2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
   PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
+  std::vector< Hex::Vertex * >::size_type result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorEdges_assign",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices___len__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_assign" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  ecode2 = SWIG_AsVal_size_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorEdges_assign" "', argument " "2"" of type '" "std::vector<Hex::Edge * >::size_type""'");
-  } 
-  arg2 = static_cast< std::vector<Hex::Edge * >::size_type >(val2);
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorEdges_assign" "', argument " "3"" of type '" "std::vector<Hex::Edge * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___len__" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > const *""'"); 
   }
-  arg3 = reinterpret_cast< std::vector<Hex::Edge * >::value_type >(argp3);
-  (arg1)->assign(arg2,arg3);
-  resultobj = SWIG_Py_Void();
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  result = std_vector_Sl_Hex_Vertex_Sm__Sg____len__((std::vector< Hex::Vertex * > const *)arg1);
+  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::size_type arg2 ;
-  std::vector<Hex::Edge * >::value_type arg3 = (std::vector<Hex::Edge * >::value_type) 0 ;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  std::vector< Hex::Vertex * >::difference_type arg2 ;
+  std::vector< Hex::Vertex * >::difference_type arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  size_t val2 ;
+  ptrdiff_t val2 ;
   int ecode2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  std::vector< Hex::Vertex *,std::allocator< Hex::Vertex * > > *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorEdges_resize",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorVertices___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_resize" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___getslice__" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorEdges_resize" "', argument " "2"" of type '" "std::vector<Hex::Edge * >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorVertices___getslice__" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Edge * >::size_type >(val2);
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorEdges_resize" "', argument " "3"" of type '" "std::vector<Hex::Edge * >::value_type""'"); 
-  }
-  arg3 = reinterpret_cast< std::vector<Hex::Edge * >::value_type >(argp3);
-  (arg1)->resize(arg2,arg3);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorEdges_resize(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
-  int ii;
-  
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  arg2 = static_cast< std::vector< Hex::Vertex * >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorVertices___getslice__" "', argument " "3"" of type '" "std::vector< Hex::Vertex * >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< Hex::Vertex * >::difference_type >(val3);
+  try {
+    result = (std::vector< Hex::Vertex *,std::allocator< Hex::Vertex * > > *)std_vector_Sl_Hex_Vertex_Sm__Sg____getslice__(arg1,arg2,arg3);
   }
-  if (argc == 2) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Edge*,std::allocator<Hex::Edge * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      {
-        int res = SWIG_AsVal_size_t(argv[1], NULL);
-        _v = SWIG_CheckState(res);
-      }
-      if (_v) {
-        return _wrap_VectorEdges_resize__SWIG_0(self, args);
-      }
-    }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
-  if (argc == 3) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Edge*,std::allocator<Hex::Edge * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      {
-        int res = SWIG_AsVal_size_t(argv[1], NULL);
-        _v = SWIG_CheckState(res);
-      }
-      if (_v) {
-        void *vptr = 0;
-        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type, 0);
-        _v = SWIG_CheckState(res);
-        if (_v) {
-          return _wrap_VectorEdges_resize__SWIG_1(self, args);
-        }
-      }
-    }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
   }
   
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorEdges_resize'.\n  Possible C/C++ prototypes are:\n    resize(std::vector<Hex::Edge * >::size_type)\n    resize(std::vector<Hex::Edge * >::size_type,std::vector<Hex::Edge * >::value_type)\n");
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_insert__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices___setslice____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::iterator arg2 ;
-  std::vector<Hex::Edge * >::value_type arg3 = (std::vector<Hex::Edge * >::value_type) 0 ;
-  std::vector<Hex::Edge * >::iterator result;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  std::vector< Hex::Vertex * >::difference_type arg2 ;
+  std::vector< Hex::Vertex * >::difference_type arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
-  int res2 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorEdges_insert",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorVertices___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_insert" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___setslice__" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
-  if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges_insert" "', argument " "2"" of type '" "std::vector<Hex::Edge * >::iterator""'");
-  } else {
-    swig::PySwigIterator_T<std::vector<Hex::Edge * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Edge * >::iterator > *>(iter2);
-    if (iter_t) {
-      arg2 = iter_t->get_current();
-    } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges_insert" "', argument " "2"" of type '" "std::vector<Hex::Edge * >::iterator""'");
-    }
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorVertices___setslice__" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::Vertex * >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorVertices___setslice__" "', argument " "3"" of type '" "std::vector< Hex::Vertex * >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< Hex::Vertex * >::difference_type >(val3);
+  try {
+    std_vector_Sl_Hex_Vertex_Sm__Sg____setslice____SWIG_0(arg1,arg2,arg3);
   }
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorEdges_insert" "', argument " "3"" of type '" "std::vector<Hex::Edge * >::value_type""'"); 
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
   }
-  arg3 = reinterpret_cast< std::vector<Hex::Edge * >::value_type >(argp3);
-  result = (arg1)->insert(arg2,arg3);
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Edge * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::iterator arg2 ;
-  std::vector<Hex::Edge * >::size_type arg3 ;
-  std::vector<Hex::Edge * >::value_type arg4 = (std::vector<Hex::Edge * >::value_type) 0 ;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  std::vector< Hex::Vertex * >::difference_type arg2 ;
+  std::vector< Hex::Vertex * >::difference_type arg3 ;
+  std::vector< Hex::Vertex *,std::allocator< Hex::Vertex * > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
-  int res2 ;
-  size_t val3 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
   int ecode3 = 0 ;
-  void *argp4 = 0 ;
-  int res4 = 0 ;
+  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorEdges_insert",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorVertices___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_insert" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
-  if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges_insert" "', argument " "2"" of type '" "std::vector<Hex::Edge * >::iterator""'");
-  } else {
-    swig::PySwigIterator_T<std::vector<Hex::Edge * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Edge * >::iterator > *>(iter2);
-    if (iter_t) {
-      arg2 = iter_t->get_current();
-    } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorEdges_insert" "', argument " "2"" of type '" "std::vector<Hex::Edge * >::iterator""'");
-    }
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___setslice__" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  ecode3 = SWIG_AsVal_size_t(obj2, &val3);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorVertices___setslice__" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::Vertex * >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorEdges_insert" "', argument " "3"" of type '" "std::vector<Hex::Edge * >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorVertices___setslice__" "', argument " "3"" of type '" "std::vector< Hex::Vertex * >::difference_type""'");
   } 
-  arg3 = static_cast< std::vector<Hex::Edge * >::size_type >(val3);
-  res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorEdges_insert" "', argument " "4"" of type '" "std::vector<Hex::Edge * >::value_type""'"); 
+  arg3 = static_cast< std::vector< Hex::Vertex * >::difference_type >(val3);
+  {
+    std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > > *ptr = (std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > > *)0;
+    res4 = swig::asptr(obj3, &ptr);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorVertices___setslice__" "', argument " "4"" of type '" "std::vector< Hex::Vertex *,std::allocator< Hex::Vertex * > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorVertices___setslice__" "', argument " "4"" of type '" "std::vector< Hex::Vertex *,std::allocator< Hex::Vertex * > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
+  try {
+    std_vector_Sl_Hex_Vertex_Sm__Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< Hex::Vertex *,std::allocator< Hex::Vertex * > > const &)*arg4);
   }
-  arg4 = reinterpret_cast< std::vector<Hex::Edge * >::value_type >(argp4);
-  (arg1)->insert(arg2,arg3,arg4);
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
   resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_insert(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[5];
-  int ii;
+SWIGINTERN PyObject *_wrap_VectorVertices___setslice__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[5] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Edge*,std::allocator<Hex::Edge * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Edge * >::iterator > *>(iter) != 0));
-      if (_v) {
-        void *vptr = 0;
-        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type, 0);
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
         _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_ptrdiff_t(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
         if (_v) {
-          return _wrap_VectorEdges_insert__SWIG_0(self, args);
+          return _wrap_VectorVertices___setslice____SWIG_0(self, args);
         }
       }
     }
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Edge*,std::allocator<Hex::Edge * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Edge * >::iterator > *>(iter) != 0));
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
       if (_v) {
         {
-          int res = SWIG_AsVal_size_t(argv[2], NULL);
+          int res = SWIG_AsVal_ptrdiff_t(argv[2], NULL);
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          void *vptr = 0;
-          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type, 0);
+          int res = swig::asptr(argv[3], (std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
-            return _wrap_VectorEdges_insert__SWIG_1(self, args);
+            return _wrap_VectorVertices___setslice____SWIG_1(self, args);
           }
         }
       }
@@ -10108,34 +12711,55 @@ SWIGINTERN PyObject *_wrap_VectorEdges_insert(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorEdges_insert'.\n  Possible C/C++ prototypes are:\n    insert(std::vector<Hex::Edge * >::iterator,std::vector<Hex::Edge * >::value_type)\n    insert(std::vector<Hex::Edge * >::iterator,std::vector<Hex::Edge * >::size_type,std::vector<Hex::Edge * >::value_type)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorVertices___setslice__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Vertex * >::__setslice__(std::vector< Hex::Vertex * >::difference_type,std::vector< Hex::Vertex * >::difference_type)\n"
+    "    std::vector< Hex::Vertex * >::__setslice__(std::vector< Hex::Vertex * >::difference_type,std::vector< Hex::Vertex * >::difference_type,std::vector< Hex::Vertex *,std::allocator< Hex::Vertex * > > const &)\n");
+  return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_reserve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices___delslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::size_type arg2 ;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  std::vector< Hex::Vertex * >::difference_type arg2 ;
+  std::vector< Hex::Vertex * >::difference_type arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  size_t val2 ;
+  ptrdiff_t val2 ;
   int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorEdges_reserve",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorVertices___delslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_reserve" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___delslice__" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorEdges_reserve" "', argument " "2"" of type '" "std::vector<Hex::Edge * >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorVertices___delslice__" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Edge * >::size_type >(val2);
-  (arg1)->reserve(arg2);
+  arg2 = static_cast< std::vector< Hex::Vertex * >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorVertices___delslice__" "', argument " "3"" of type '" "std::vector< Hex::Vertex * >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< Hex::Vertex * >::difference_type >(val3);
+  try {
+    std_vector_Sl_Hex_Vertex_Sm__Sg____delslice__(arg1,arg2,arg3);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -10143,42 +12767,37 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorEdges_capacity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices___delitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  std::vector<Hex::Edge * >::size_type result;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  std::vector< Hex::Vertex * >::difference_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorEdges_capacity",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorVertices___delitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorEdges_capacity" "', argument " "1"" of type '" "std::vector<Hex::Edge * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___delitem__" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  result = ((std::vector<Hex::Edge * > const *)arg1)->capacity();
-  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_delete_VectorEdges(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::Edge * > *arg1 = (std::vector<Hex::Edge * > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:delete_VectorEdges",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, SWIG_POINTER_DISOWN |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_VectorEdges" "', argument " "1"" of type '" "std::vector<Hex::Edge * > *""'"); 
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorVertices___delitem__" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::Vertex * >::difference_type >(val2);
+  try {
+    std_vector_Sl_Hex_Vertex_Sm__Sg____delitem____SWIG_0(arg1,arg2);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Edge * > * >(argp1);
-  delete arg1;
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -10187,202 +12806,160 @@ fail:
 }
 
 
-SWIGINTERN PyObject *VectorEdges_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
-  SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, SWIG_NewClientData(obj));
-  return SWIG_Py_Void();
-}
-
-SWIGINTERN PyObject *_wrap_VectorVertices_iterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices___getitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  PyObject **arg2 = (PyObject **) 0 ;
-  swig::PySwigIterator *result = 0 ;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  std::vector< Hex::Vertex *,std::allocator< Hex::Vertex * > > *result = 0 ;
   
-  arg2 = &obj0;
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_iterator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorVertices___getitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_iterator" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___getitem__" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  result = (swig::PySwigIterator *)std_vector_Sl_Hex_Vertex_Sm__Sg__iterator(arg1,arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorVertices___nonzero__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  bool result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices___nonzero__",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___nonzero__" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > const *""'"); 
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices___getitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  result = (bool)std_vector_Sl_Hex_Vertex_Sm__Sg____nonzero__((std::vector<Hex::Vertex * > const *)arg1);
-  resultobj = SWIG_From_bool(static_cast< bool >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorVertices___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::size_type result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices___len__",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___len__" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > const *""'"); 
+  try {
+    result = (std::vector< Hex::Vertex *,std::allocator< Hex::Vertex * > > *)std_vector_Sl_Hex_Vertex_Sm__Sg____getitem____SWIG_0(arg1,arg2);
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  result = std_vector_Sl_Hex_Vertex_Sm__Sg____len__((std::vector<Hex::Vertex * > const *)arg1);
-  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorVertices_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices___setitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::value_type result;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
+  std::vector< Hex::Vertex *,std::allocator< Hex::Vertex * > > *arg3 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  int res3 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorVertices___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_pop" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___setitem__" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices___setitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
+  }
+  {
+    std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > > *ptr = (std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > > *)0;
+    res3 = swig::asptr(obj2, &ptr);
+    if (!SWIG_IsOK(res3)) {
+      SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorVertices___setitem__" "', argument " "3"" of type '" "std::vector< Hex::Vertex *,std::allocator< Hex::Vertex * > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorVertices___setitem__" "', argument " "3"" of type '" "std::vector< Hex::Vertex *,std::allocator< Hex::Vertex * > > const &""'"); 
+    }
+    arg3 = ptr;
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
   try {
-    result = (std::vector<Hex::Vertex * >::value_type)std_vector_Sl_Hex_Vertex_Sm__Sg__pop(arg1);
+    std_vector_Sl_Hex_Vertex_Sm__Sg____setitem____SWIG_0(arg1,arg2,(std::vector< Hex::Vertex *,std::allocator< Hex::Vertex * > > const &)*arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type, 0 |  0 );
+  resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res3)) delete arg3;
   return resultobj;
 fail:
+  if (SWIG_IsNewObj(res3)) delete arg3;
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorVertices___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices___setitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::difference_type arg2 ;
-  std::vector<Hex::Vertex * >::difference_type arg3 ;
-  std::vector<Hex::Vertex *,std::allocator<Hex::Vertex * > > *result = 0 ;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  ptrdiff_t val3 ;
-  int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorVertices___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorVertices___setitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___getslice__" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___setitem__" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices___setitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorVertices___getslice__" "', argument " "2"" of type '" "std::vector<Hex::Vertex * >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector<Hex::Vertex * >::difference_type >(val2);
-  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorVertices___getslice__" "', argument " "3"" of type '" "std::vector<Hex::Vertex * >::difference_type""'");
-  } 
-  arg3 = static_cast< std::vector<Hex::Vertex * >::difference_type >(val3);
   try {
-    result = (std::vector<Hex::Vertex *,std::allocator<Hex::Vertex * > > *)std_vector_Sl_Hex_Vertex_Sm__Sg____getslice__(arg1,arg2,arg3);
+    std_vector_Sl_Hex_Vertex_Sm__Sg____setitem____SWIG_1(arg1,arg2);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorVertices___setslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices___delitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::difference_type arg2 ;
-  std::vector<Hex::Vertex * >::difference_type arg3 ;
-  std::vector<Hex::Vertex *,std::allocator<Hex::Vertex * > > *arg4 = 0 ;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  ptrdiff_t val3 ;
-  int ecode3 = 0 ;
-  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorVertices___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorVertices___delitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___setslice__" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___delitem__" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorVertices___setslice__" "', argument " "2"" of type '" "std::vector<Hex::Vertex * >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector<Hex::Vertex * >::difference_type >(val2);
-  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorVertices___setslice__" "', argument " "3"" of type '" "std::vector<Hex::Vertex * >::difference_type""'");
-  } 
-  arg3 = static_cast< std::vector<Hex::Vertex * >::difference_type >(val3);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
   {
-    std::vector<Hex::Vertex*,std::allocator<Hex::Vertex * > > *ptr = (std::vector<Hex::Vertex*,std::allocator<Hex::Vertex * > > *)0;
-    res4 = swig::asptr(obj3, &ptr);
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorVertices___setslice__" "', argument " "4"" of type '" "std::vector<Hex::Vertex *,std::allocator<Hex::Vertex * > > const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorVertices___setslice__" "', argument " "4"" of type '" "std::vector<Hex::Vertex *,std::allocator<Hex::Vertex * > > const &""'"); 
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices___delitem__" "', argument " "2"" of type '" "PySliceObject *""'");
     }
-    arg4 = ptr;
+    arg2 = (PySliceObject *) obj1;
   }
   try {
-    std_vector_Sl_Hex_Vertex_Sm__Sg____setslice__(arg1,arg2,arg3,(std::vector<Hex::Vertex *,std::allocator<Hex::Vertex * > > const &)*arg4);
+    std_vector_Sl_Hex_Vertex_Sm__Sg____delitem____SWIG_1(arg1,arg2);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -10392,171 +12969,286 @@ SWIGINTERN PyObject *_wrap_VectorVertices___setslice__(PyObject *SWIGUNUSEDPARM(
   }
   
   resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorVertices___delslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices___delitem__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        return _wrap_VectorVertices___delitem____SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_VectorVertices___delitem____SWIG_0(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorVertices___delitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Vertex * >::__delitem__(std::vector< Hex::Vertex * >::difference_type)\n"
+    "    std::vector< Hex::Vertex * >::__delitem__(PySliceObject *)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorVertices___getitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::difference_type arg2 ;
-  std::vector<Hex::Vertex * >::difference_type arg3 ;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  std::vector< Hex::Vertex * >::difference_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
-  ptrdiff_t val3 ;
-  int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
+  std::vector< Hex::Vertex * >::value_type result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorVertices___delslice__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorVertices___getitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___delslice__" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___getitem__" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorVertices___delslice__" "', argument " "2"" of type '" "std::vector<Hex::Vertex * >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector<Hex::Vertex * >::difference_type >(val2);
-  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorVertices___delslice__" "', argument " "3"" of type '" "std::vector<Hex::Vertex * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorVertices___getitem__" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::difference_type""'");
   } 
-  arg3 = static_cast< std::vector<Hex::Vertex * >::difference_type >(val3);
+  arg2 = static_cast< std::vector< Hex::Vertex * >::difference_type >(val2);
   try {
-    std_vector_Sl_Hex_Vertex_Sm__Sg____delslice__(arg1,arg2,arg3);
+    result = (std::vector< Hex::Vertex * >::value_type)std_vector_Sl_Hex_Vertex_Sm__Sg____getitem____SWIG_1(arg1,arg2);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
   
-  resultobj = SWIG_Py_Void();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Hex__Vertex, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorVertices___delitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::difference_type arg2 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
+SWIGINTERN PyObject *_wrap_VectorVertices___getitem__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorVertices___delitem__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___delitem__" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorVertices___delitem__" "', argument " "2"" of type '" "std::vector<Hex::Vertex * >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector<Hex::Vertex * >::difference_type >(val2);
-  try {
-    std_vector_Sl_Hex_Vertex_Sm__Sg____delitem__(arg1,arg2);
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        return _wrap_VectorVertices___getitem____SWIG_0(self, args);
+      }
+    }
   }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_VectorVertices___getitem____SWIG_1(self, args);
+      }
+    }
   }
   
-  resultobj = SWIG_Py_Void();
-  return resultobj;
 fail:
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorVertices___getitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Vertex * >::__getitem__(PySliceObject *)\n"
+    "    std::vector< Hex::Vertex * >::__getitem__(std::vector< Hex::Vertex * >::difference_type)\n");
+  return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorVertices___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices___setitem____SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::difference_type arg2 ;
-  std::vector<Hex::Vertex * >::value_type result;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  std::vector< Hex::Vertex * >::difference_type arg2 ;
+  std::vector< Hex::Vertex * >::value_type arg3 = (std::vector< Hex::Vertex * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorVertices___getitem__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorVertices___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___getitem__" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___setitem__" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorVertices___getitem__" "', argument " "2"" of type '" "std::vector<Hex::Vertex * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorVertices___setitem__" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Vertex * >::difference_type >(val2);
+  arg2 = static_cast< std::vector< Hex::Vertex * >::difference_type >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_Hex__Vertex, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorVertices___setitem__" "', argument " "3"" of type '" "std::vector< Hex::Vertex * >::value_type""'"); 
+  }
+  arg3 = reinterpret_cast< std::vector< Hex::Vertex * >::value_type >(argp3);
   try {
-    result = (std::vector<Hex::Vertex * >::value_type)std_vector_Sl_Hex_Vertex_Sm__Sg____getitem__(arg1,arg2);
+    std_vector_Sl_Hex_Vertex_Sm__Sg____setitem____SWIG_2(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type, 0 |  0 );
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorVertices___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices___setitem__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        return _wrap_VectorVertices___setitem____SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        int res = swig::asptr(argv[2], (std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >**)(0));
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_VectorVertices___setitem____SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Hex__Vertex, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_VectorVertices___setitem____SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorVertices___setitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Vertex * >::__setitem__(PySliceObject *,std::vector< Hex::Vertex *,std::allocator< Hex::Vertex * > > const &)\n"
+    "    std::vector< Hex::Vertex * >::__setitem__(PySliceObject *)\n"
+    "    std::vector< Hex::Vertex * >::__setitem__(std::vector< Hex::Vertex * >::difference_type,std::vector< Hex::Vertex * >::value_type)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorVertices_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::difference_type arg2 ;
-  std::vector<Hex::Vertex * >::value_type arg3 = (std::vector<Hex::Vertex * >::value_type) 0 ;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
   PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
+  std::vector< Hex::Vertex * >::value_type result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorVertices___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices___setitem__" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorVertices___setitem__" "', argument " "2"" of type '" "std::vector<Hex::Vertex * >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector<Hex::Vertex * >::difference_type >(val2);
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorVertices___setitem__" "', argument " "3"" of type '" "std::vector<Hex::Vertex * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_pop" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg3 = reinterpret_cast< std::vector<Hex::Vertex * >::value_type >(argp3);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
   try {
-    std_vector_Sl_Hex_Vertex_Sm__Sg____setitem__(arg1,arg2,arg3);
+    result = (std::vector< Hex::Vertex * >::value_type)std_vector_Sl_Hex_Vertex_Sm__Sg__pop(arg1);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
   
-  resultobj = SWIG_Py_Void();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Hex__Vertex, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -10565,8 +13257,8 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorVertices_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::value_type arg2 = (std::vector<Hex::Vertex * >::value_type) 0 ;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  std::vector< Hex::Vertex * >::value_type arg2 = (std::vector< Hex::Vertex * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -10575,16 +13267,16 @@ SWIGINTERN PyObject *_wrap_VectorVertices_append(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorVertices_append",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_append" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_append" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type, 0 |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Hex__Vertex, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorVertices_append" "', argument " "2"" of type '" "std::vector<Hex::Vertex * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorVertices_append" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::value_type""'"); 
   }
-  arg2 = reinterpret_cast< std::vector<Hex::Vertex * >::value_type >(argp2);
+  arg2 = reinterpret_cast< std::vector< Hex::Vertex * >::value_type >(argp2);
   std_vector_Sl_Hex_Vertex_Sm__Sg__append(arg1,arg2);
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -10595,11 +13287,11 @@ fail:
 
 SWIGINTERN PyObject *_wrap_new_VectorVertices__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *result = 0 ;
+  std::vector< Hex::Vertex * > *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)":new_VectorVertices")) SWIG_fail;
-  result = (std::vector<Hex::Vertex * > *)new std::vector<Hex::Vertex * >();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, SWIG_POINTER_NEW |  0 );
+  result = (std::vector< Hex::Vertex * > *)new std::vector< Hex::Vertex * >();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -10608,25 +13300,25 @@ fail:
 
 SWIGINTERN PyObject *_wrap_new_VectorVertices__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = 0 ;
-  std::vector<Hex::Vertex * > *result = 0 ;
+  std::vector< Hex::Vertex * > *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Vertex * > *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_VectorVertices",&obj0)) SWIG_fail;
   {
-    std::vector<Hex::Vertex*,std::allocator<Hex::Vertex * > > *ptr = (std::vector<Hex::Vertex*,std::allocator<Hex::Vertex * > > *)0;
+    std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > > *ptr = (std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_VectorVertices" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > const &""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_VectorVertices" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > const &""'"); 
     }
     if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_VectorVertices" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > const &""'"); 
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_VectorVertices" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > const &""'"); 
     }
     arg1 = ptr;
   }
-  result = (std::vector<Hex::Vertex * > *)new std::vector<Hex::Vertex * >((std::vector<Hex::Vertex * > const &)*arg1);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, SWIG_POINTER_NEW |  0 );
+  result = (std::vector< Hex::Vertex * > *)new std::vector< Hex::Vertex * >((std::vector< Hex::Vertex * > const &)*arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, SWIG_POINTER_NEW |  0 );
   if (SWIG_IsNewObj(res1)) delete arg1;
   return resultobj;
 fail:
@@ -10637,19 +13329,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorVertices_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  bool result;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_empty",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_empty" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_empty" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  result = (bool)((std::vector<Hex::Vertex * > const *)arg1)->empty();
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  result = (bool)((std::vector< Hex::Vertex * > const *)arg1)->empty();
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
@@ -10659,19 +13351,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorVertices_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::size_type result;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Vertex * >::size_type result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_size",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_size" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_size" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  result = ((std::vector<Hex::Vertex * > const *)arg1)->size();
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  result = ((std::vector< Hex::Vertex * > const *)arg1)->size();
   resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
@@ -10679,31 +13371,10 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorVertices_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_clear" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  (arg1)->clear();
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_VectorVertices_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * > *arg2 = 0 ;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  std::vector< Hex::Vertex * > *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -10712,19 +13383,19 @@ SWIGINTERN PyObject *_wrap_VectorVertices_swap(PyObject *SWIGUNUSEDPARM(self), P
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorVertices_swap",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_swap" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_swap" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t,  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t,  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorVertices_swap" "', argument " "2"" of type '" "std::vector<Hex::Vertex * > &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorVertices_swap" "', argument " "2"" of type '" "std::vector< Hex::Vertex * > &""'"); 
   }
   if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorVertices_swap" "', argument " "2"" of type '" "std::vector<Hex::Vertex * > &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorVertices_swap" "', argument " "2"" of type '" "std::vector< Hex::Vertex * > &""'"); 
   }
-  arg2 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp2);
+  arg2 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp2);
   (arg1)->swap(*arg2);
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -10733,360 +13404,157 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorVertices_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  SwigValueWrapper<std::allocator<Hex::Vertex * > > result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_get_allocator" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  result = ((std::vector<Hex::Vertex * > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector<Hex::Vertex * >::allocator_type(static_cast< const std::vector<Hex::Vertex * >::allocator_type& >(result))), SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__allocator_type, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorVertices_begin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::iterator result;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Vertex * >::iterator result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_begin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_begin" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_begin" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
   result = (arg1)->begin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Vertex * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorVertices_begin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::const_iterator result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_begin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_begin" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  result = ((std::vector<Hex::Vertex * > const *)arg1)->begin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Vertex * >::const_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Vertex * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorVertices_begin(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
-  
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Vertex*,std::allocator<Hex::Vertex * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorVertices_begin__SWIG_0(self, args);
-    }
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Vertex*,std::allocator<Hex::Vertex * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorVertices_begin__SWIG_1(self, args);
-    }
-  }
-  
-fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorVertices_begin'.\n  Possible C/C++ prototypes are:\n    begin()\n    begin()\n");
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorVertices_end__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::iterator result;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Vertex * >::iterator result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_end",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_end" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_end" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
   result = (arg1)->end();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Vertex * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorVertices_end__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::const_iterator result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_end",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_end" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  result = ((std::vector<Hex::Vertex * > const *)arg1)->end();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Vertex * >::const_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Vertex * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorVertices_end(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
-  
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Vertex*,std::allocator<Hex::Vertex * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorVertices_end__SWIG_0(self, args);
-    }
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Vertex*,std::allocator<Hex::Vertex * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorVertices_end__SWIG_1(self, args);
-    }
-  }
-  
-fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorVertices_end'.\n  Possible C/C++ prototypes are:\n    end()\n    end()\n");
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorVertices_rbegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices_rbegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::reverse_iterator result;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Vertex * >::reverse_iterator result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_rbegin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_rbegin" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_rbegin" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
   result = (arg1)->rbegin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Vertex * >::reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Vertex * >::reverse_iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorVertices_rbegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices_rend(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::const_reverse_iterator result;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Vertex * >::reverse_iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_rbegin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_rend",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_rbegin" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_rend" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  result = ((std::vector<Hex::Vertex * > const *)arg1)->rbegin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Vertex * >::const_reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  result = (arg1)->rend();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Vertex * >::reverse_iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorVertices_rbegin(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
-  
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Vertex*,std::allocator<Hex::Vertex * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorVertices_rbegin__SWIG_0(self, args);
-    }
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Vertex*,std::allocator<Hex::Vertex * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorVertices_rbegin__SWIG_1(self, args);
-    }
-  }
-  
-fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorVertices_rbegin'.\n  Possible C/C++ prototypes are:\n    rbegin()\n    rbegin()\n");
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorVertices_rend__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::reverse_iterator result;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_rend",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_rend" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_clear" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  result = (arg1)->rend();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Vertex * >::reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorVertices_rend__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorVertices_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::const_reverse_iterator result;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< Hex::Vertex * > > result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_rend",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_rend" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_get_allocator" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  result = ((std::vector<Hex::Vertex * > const *)arg1)->rend();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Vertex * >::const_reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  result = ((std::vector< Hex::Vertex * > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< Hex::Vertex * >::allocator_type(static_cast< const std::vector< Hex::Vertex * >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_Hex__Vertex_p_t, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorVertices_rend(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
-  
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Vertex*,std::allocator<Hex::Vertex * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorVertices_rend__SWIG_0(self, args);
-    }
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Vertex*,std::allocator<Hex::Vertex * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorVertices_rend__SWIG_1(self, args);
-    }
-  }
-  
-fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorVertices_rend'.\n  Possible C/C++ prototypes are:\n    rend()\n    rend()\n");
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_new_VectorVertices__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * >::size_type arg1 ;
-  std::vector<Hex::Vertex * > *result = 0 ;
+  std::vector< Hex::Vertex * >::size_type arg1 ;
   size_t val1 ;
   int ecode1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Vertex * > *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_VectorVertices",&obj0)) SWIG_fail;
   ecode1 = SWIG_AsVal_size_t(obj0, &val1);
   if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorVertices" "', argument " "1"" of type '" "std::vector<Hex::Vertex * >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorVertices" "', argument " "1"" of type '" "std::vector< Hex::Vertex * >::size_type""'");
   } 
-  arg1 = static_cast< std::vector<Hex::Vertex * >::size_type >(val1);
-  result = (std::vector<Hex::Vertex * > *)new std::vector<Hex::Vertex * >(arg1);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, SWIG_POINTER_NEW |  0 );
+  arg1 = static_cast< std::vector< Hex::Vertex * >::size_type >(val1);
+  result = (std::vector< Hex::Vertex * > *)new std::vector< Hex::Vertex * >(arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -11095,17 +13563,17 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorVertices_pop_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_pop_back",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_pop_back" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_pop_back" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
   (arg1)->pop_back();
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -11116,8 +13584,8 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorVertices_resize__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::size_type arg2 ;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  std::vector< Hex::Vertex * >::size_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
@@ -11126,16 +13594,16 @@ SWIGINTERN PyObject *_wrap_VectorVertices_resize__SWIG_0(PyObject *SWIGUNUSEDPAR
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorVertices_resize",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_resize" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_resize" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
   ecode2 = SWIG_AsVal_size_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorVertices_resize" "', argument " "2"" of type '" "std::vector<Hex::Vertex * >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorVertices_resize" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::size_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Vertex * >::size_type >(val2);
+  arg2 = static_cast< std::vector< Hex::Vertex * >::size_type >(val2);
   (arg1)->resize(arg2);
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -11146,36 +13614,36 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorVertices_erase__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::iterator arg2 ;
-  std::vector<Hex::Vertex * >::iterator result;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  std::vector< Hex::Vertex * >::iterator arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
   int res2 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  std::vector< Hex::Vertex * >::iterator result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorVertices_erase",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_erase" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_erase" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices_erase" "', argument " "2"" of type '" "std::vector<Hex::Vertex * >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices_erase" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<Hex::Vertex * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Vertex * >::iterator > *>(iter2);
+    swig::SwigPyIterator_T<std::vector< Hex::Vertex * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Vertex * >::iterator > *>(iter2);
     if (iter_t) {
       arg2 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices_erase" "', argument " "2"" of type '" "std::vector<Hex::Vertex * >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices_erase" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::iterator""'");
     }
   }
-  result = (arg1)->erase(arg2);
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Vertex * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  result = std_vector_Sl_Hex_Vertex_Sm__Sg__erase__SWIG_0(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Vertex * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
@@ -11184,51 +13652,51 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorVertices_erase__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::iterator arg2 ;
-  std::vector<Hex::Vertex * >::iterator arg3 ;
-  std::vector<Hex::Vertex * >::iterator result;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  std::vector< Hex::Vertex * >::iterator arg2 ;
+  std::vector< Hex::Vertex * >::iterator arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
   int res2 ;
-  swig::PySwigIterator *iter3 = 0 ;
+  swig::SwigPyIterator *iter3 = 0 ;
   int res3 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  std::vector< Hex::Vertex * >::iterator result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:VectorVertices_erase",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_erase" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_erase" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices_erase" "', argument " "2"" of type '" "std::vector<Hex::Vertex * >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices_erase" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<Hex::Vertex * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Vertex * >::iterator > *>(iter2);
+    swig::SwigPyIterator_T<std::vector< Hex::Vertex * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Vertex * >::iterator > *>(iter2);
     if (iter_t) {
       arg2 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices_erase" "', argument " "2"" of type '" "std::vector<Hex::Vertex * >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices_erase" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::iterator""'");
     }
   }
-  res3 = SWIG_ConvertPtr(obj2, SWIG_as_voidptrptr(&iter3), swig::PySwigIterator::descriptor(), 0);
+  res3 = SWIG_ConvertPtr(obj2, SWIG_as_voidptrptr(&iter3), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res3) || !iter3) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices_erase" "', argument " "3"" of type '" "std::vector<Hex::Vertex * >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices_erase" "', argument " "3"" of type '" "std::vector< Hex::Vertex * >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<Hex::Vertex * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Vertex * >::iterator > *>(iter3);
+    swig::SwigPyIterator_T<std::vector< Hex::Vertex * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Vertex * >::iterator > *>(iter3);
     if (iter_t) {
       arg3 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices_erase" "', argument " "3"" of type '" "std::vector<Hex::Vertex * >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices_erase" "', argument " "3"" of type '" "std::vector< Hex::Vertex * >::iterator""'");
     }
   }
-  result = (arg1)->erase(arg2,arg3);
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Vertex * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  result = std_vector_Sl_Hex_Vertex_Sm__Sg__erase__SWIG_1(arg1,arg2,arg3);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Vertex * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
@@ -11236,23 +13704,25 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_VectorVertices_erase(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Vertex*,std::allocator<Hex::Vertex * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Vertex * >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Vertex * >::iterator > *>(iter) != 0));
       if (_v) {
         return _wrap_VectorVertices_erase__SWIG_0(self, args);
       }
@@ -11260,16 +13730,16 @@ SWIGINTERN PyObject *_wrap_VectorVertices_erase(PyObject *self, PyObject *args)
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Vertex*,std::allocator<Hex::Vertex * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Vertex * >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Vertex * >::iterator > *>(iter) != 0));
       if (_v) {
-        swig::PySwigIterator *iter = 0;
-        int res = SWIG_ConvertPtr(argv[2], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-        _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Vertex * >::iterator > *>(iter) != 0));
+        swig::SwigPyIterator *iter = 0;
+        int res = SWIG_ConvertPtr(argv[2], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+        _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Vertex * >::iterator > *>(iter) != 0));
         if (_v) {
           return _wrap_VectorVertices_erase__SWIG_1(self, args);
         }
@@ -11278,36 +13748,39 @@ SWIGINTERN PyObject *_wrap_VectorVertices_erase(PyObject *self, PyObject *args)
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorVertices_erase'.\n  Possible C/C++ prototypes are:\n    erase(std::vector<Hex::Vertex * >::iterator)\n    erase(std::vector<Hex::Vertex * >::iterator,std::vector<Hex::Vertex * >::iterator)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorVertices_erase'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Vertex * >::erase(std::vector< Hex::Vertex * >::iterator)\n"
+    "    std::vector< Hex::Vertex * >::erase(std::vector< Hex::Vertex * >::iterator,std::vector< Hex::Vertex * >::iterator)\n");
+  return 0;
 }
 
 
 SWIGINTERN PyObject *_wrap_new_VectorVertices__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * >::size_type arg1 ;
-  std::vector<Hex::Vertex * >::value_type arg2 = (std::vector<Hex::Vertex * >::value_type) 0 ;
-  std::vector<Hex::Vertex * > *result = 0 ;
+  std::vector< Hex::Vertex * >::size_type arg1 ;
+  std::vector< Hex::Vertex * >::value_type arg2 = (std::vector< Hex::Vertex * >::value_type) 0 ;
   size_t val1 ;
   int ecode1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  std::vector< Hex::Vertex * > *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:new_VectorVertices",&obj0,&obj1)) SWIG_fail;
   ecode1 = SWIG_AsVal_size_t(obj0, &val1);
   if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorVertices" "', argument " "1"" of type '" "std::vector<Hex::Vertex * >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorVertices" "', argument " "1"" of type '" "std::vector< Hex::Vertex * >::size_type""'");
   } 
-  arg1 = static_cast< std::vector<Hex::Vertex * >::size_type >(val1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type, 0 |  0 );
+  arg1 = static_cast< std::vector< Hex::Vertex * >::size_type >(val1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Hex__Vertex, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_VectorVertices" "', argument " "2"" of type '" "std::vector<Hex::Vertex * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_VectorVertices" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::value_type""'"); 
   }
-  arg2 = reinterpret_cast< std::vector<Hex::Vertex * >::value_type >(argp2);
-  result = (std::vector<Hex::Vertex * > *)new std::vector<Hex::Vertex * >(arg1,arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, SWIG_POINTER_NEW |  0 );
+  arg2 = reinterpret_cast< std::vector< Hex::Vertex * >::value_type >(argp2);
+  result = (std::vector< Hex::Vertex * > *)new std::vector< Hex::Vertex * >(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -11315,13 +13788,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_VectorVertices(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 0) {
@@ -11339,7 +13814,7 @@ SWIGINTERN PyObject *_wrap_new_VectorVertices(PyObject *self, PyObject *args) {
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Vertex*,std::allocator<Hex::Vertex * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_VectorVertices__SWIG_1(self, args);
@@ -11353,7 +13828,7 @@ SWIGINTERN PyObject *_wrap_new_VectorVertices(PyObject *self, PyObject *args) {
     }
     if (_v) {
       void *vptr = 0;
-      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type, 0);
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Hex__Vertex, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
         return _wrap_new_VectorVertices__SWIG_3(self, args);
@@ -11362,15 +13837,20 @@ SWIGINTERN PyObject *_wrap_new_VectorVertices(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_VectorVertices'.\n  Possible C/C++ prototypes are:\n    std::vector<(p.Hex::Vertex)>()\n    std::vector<(p.Hex::Vertex)>(std::vector<Hex::Vertex * > const &)\n    std::vector<(p.Hex::Vertex)>(std::vector<Hex::Vertex * >::size_type)\n    std::vector<(p.Hex::Vertex)>(std::vector<Hex::Vertex * >::size_type,std::vector<Hex::Vertex * >::value_type)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_VectorVertices'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Vertex * >::vector()\n"
+    "    std::vector< Hex::Vertex * >::vector(std::vector< Hex::Vertex * > const &)\n"
+    "    std::vector< Hex::Vertex * >::vector(std::vector< Hex::Vertex * >::size_type)\n"
+    "    std::vector< Hex::Vertex * >::vector(std::vector< Hex::Vertex * >::size_type,std::vector< Hex::Vertex * >::value_type)\n");
+  return 0;
 }
 
 
 SWIGINTERN PyObject *_wrap_VectorVertices_push_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::value_type arg2 = (std::vector<Hex::Vertex * >::value_type) 0 ;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  std::vector< Hex::Vertex * >::value_type arg2 = (std::vector< Hex::Vertex * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -11379,16 +13859,16 @@ SWIGINTERN PyObject *_wrap_VectorVertices_push_back(PyObject *SWIGUNUSEDPARM(sel
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorVertices_push_back",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_push_back" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_push_back" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type, 0 |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Hex__Vertex, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorVertices_push_back" "', argument " "2"" of type '" "std::vector<Hex::Vertex * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorVertices_push_back" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::value_type""'"); 
   }
-  arg2 = reinterpret_cast< std::vector<Hex::Vertex * >::value_type >(argp2);
+  arg2 = reinterpret_cast< std::vector< Hex::Vertex * >::value_type >(argp2);
   (arg1)->push_back(arg2);
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -11399,20 +13879,20 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorVertices_front(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::value_type result;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Vertex * >::value_type result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_front",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_front" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_front" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  result = (std::vector<Hex::Vertex * >::value_type)((std::vector<Hex::Vertex * > const *)arg1)->front();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type, 0 |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  result = (std::vector< Hex::Vertex * >::value_type)((std::vector< Hex::Vertex * > const *)arg1)->front();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Hex__Vertex, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -11421,20 +13901,20 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorVertices_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::value_type result;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Vertex * >::value_type result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_back",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_back" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_back" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  result = (std::vector<Hex::Vertex * >::value_type)((std::vector<Hex::Vertex * > const *)arg1)->back();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type, 0 |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  result = (std::vector< Hex::Vertex * >::value_type)((std::vector< Hex::Vertex * > const *)arg1)->back();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Hex__Vertex, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -11443,9 +13923,9 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorVertices_assign(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::size_type arg2 ;
-  std::vector<Hex::Vertex * >::value_type arg3 = (std::vector<Hex::Vertex * >::value_type) 0 ;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  std::vector< Hex::Vertex * >::size_type arg2 ;
+  std::vector< Hex::Vertex * >::value_type arg3 = (std::vector< Hex::Vertex * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
@@ -11457,21 +13937,21 @@ SWIGINTERN PyObject *_wrap_VectorVertices_assign(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj2 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:VectorVertices_assign",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_assign" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_assign" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
   ecode2 = SWIG_AsVal_size_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorVertices_assign" "', argument " "2"" of type '" "std::vector<Hex::Vertex * >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorVertices_assign" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::size_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Vertex * >::size_type >(val2);
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type, 0 |  0 );
+  arg2 = static_cast< std::vector< Hex::Vertex * >::size_type >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_Hex__Vertex, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorVertices_assign" "', argument " "3"" of type '" "std::vector<Hex::Vertex * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorVertices_assign" "', argument " "3"" of type '" "std::vector< Hex::Vertex * >::value_type""'"); 
   }
-  arg3 = reinterpret_cast< std::vector<Hex::Vertex * >::value_type >(argp3);
+  arg3 = reinterpret_cast< std::vector< Hex::Vertex * >::value_type >(argp3);
   (arg1)->assign(arg2,arg3);
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -11482,9 +13962,9 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorVertices_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::size_type arg2 ;
-  std::vector<Hex::Vertex * >::value_type arg3 = (std::vector<Hex::Vertex * >::value_type) 0 ;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  std::vector< Hex::Vertex * >::size_type arg2 ;
+  std::vector< Hex::Vertex * >::value_type arg3 = (std::vector< Hex::Vertex * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
@@ -11496,21 +13976,21 @@ SWIGINTERN PyObject *_wrap_VectorVertices_resize__SWIG_1(PyObject *SWIGUNUSEDPAR
   PyObject * obj2 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:VectorVertices_resize",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_resize" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_resize" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
   ecode2 = SWIG_AsVal_size_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorVertices_resize" "', argument " "2"" of type '" "std::vector<Hex::Vertex * >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorVertices_resize" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::size_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Vertex * >::size_type >(val2);
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type, 0 |  0 );
+  arg2 = static_cast< std::vector< Hex::Vertex * >::size_type >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_Hex__Vertex, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorVertices_resize" "', argument " "3"" of type '" "std::vector<Hex::Vertex * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorVertices_resize" "', argument " "3"" of type '" "std::vector< Hex::Vertex * >::value_type""'"); 
   }
-  arg3 = reinterpret_cast< std::vector<Hex::Vertex * >::value_type >(argp3);
+  arg3 = reinterpret_cast< std::vector< Hex::Vertex * >::value_type >(argp3);
   (arg1)->resize(arg2,arg3);
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -11520,18 +14000,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_VectorVertices_resize(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Vertex*,std::allocator<Hex::Vertex * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -11545,7 +14027,7 @@ SWIGINTERN PyObject *_wrap_VectorVertices_resize(PyObject *self, PyObject *args)
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Vertex*,std::allocator<Hex::Vertex * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -11554,7 +14036,7 @@ SWIGINTERN PyObject *_wrap_VectorVertices_resize(PyObject *self, PyObject *args)
       }
       if (_v) {
         void *vptr = 0;
-        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type, 0);
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Hex__Vertex, 0);
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_VectorVertices_resize__SWIG_1(self, args);
@@ -11564,52 +14046,55 @@ SWIGINTERN PyObject *_wrap_VectorVertices_resize(PyObject *self, PyObject *args)
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorVertices_resize'.\n  Possible C/C++ prototypes are:\n    resize(std::vector<Hex::Vertex * >::size_type)\n    resize(std::vector<Hex::Vertex * >::size_type,std::vector<Hex::Vertex * >::value_type)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorVertices_resize'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Vertex * >::resize(std::vector< Hex::Vertex * >::size_type)\n"
+    "    std::vector< Hex::Vertex * >::resize(std::vector< Hex::Vertex * >::size_type,std::vector< Hex::Vertex * >::value_type)\n");
+  return 0;
 }
 
 
 SWIGINTERN PyObject *_wrap_VectorVertices_insert__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::iterator arg2 ;
-  std::vector<Hex::Vertex * >::value_type arg3 = (std::vector<Hex::Vertex * >::value_type) 0 ;
-  std::vector<Hex::Vertex * >::iterator result;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  std::vector< Hex::Vertex * >::iterator arg2 ;
+  std::vector< Hex::Vertex * >::value_type arg3 = (std::vector< Hex::Vertex * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
   int res2 ;
   void *argp3 = 0 ;
   int res3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  std::vector< Hex::Vertex * >::iterator result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:VectorVertices_insert",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_insert" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_insert" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices_insert" "', argument " "2"" of type '" "std::vector<Hex::Vertex * >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices_insert" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<Hex::Vertex * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Vertex * >::iterator > *>(iter2);
+    swig::SwigPyIterator_T<std::vector< Hex::Vertex * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Vertex * >::iterator > *>(iter2);
     if (iter_t) {
       arg2 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices_insert" "', argument " "2"" of type '" "std::vector<Hex::Vertex * >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices_insert" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::iterator""'");
     }
   }
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type, 0 |  0 );
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_Hex__Vertex, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorVertices_insert" "', argument " "3"" of type '" "std::vector<Hex::Vertex * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorVertices_insert" "', argument " "3"" of type '" "std::vector< Hex::Vertex * >::value_type""'"); 
   }
-  arg3 = reinterpret_cast< std::vector<Hex::Vertex * >::value_type >(argp3);
-  result = (arg1)->insert(arg2,arg3);
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::Vertex * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg3 = reinterpret_cast< std::vector< Hex::Vertex * >::value_type >(argp3);
+  result = std_vector_Sl_Hex_Vertex_Sm__Sg__insert__SWIG_0(arg1,arg2,arg3);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::Vertex * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
@@ -11618,13 +14103,13 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorVertices_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::iterator arg2 ;
-  std::vector<Hex::Vertex * >::size_type arg3 ;
-  std::vector<Hex::Vertex * >::value_type arg4 = (std::vector<Hex::Vertex * >::value_type) 0 ;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  std::vector< Hex::Vertex * >::iterator arg2 ;
+  std::vector< Hex::Vertex * >::size_type arg3 ;
+  std::vector< Hex::Vertex * >::value_type arg4 = (std::vector< Hex::Vertex * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
   int res2 ;
   size_t val3 ;
   int ecode3 = 0 ;
@@ -11636,33 +14121,33 @@ SWIGINTERN PyObject *_wrap_VectorVertices_insert__SWIG_1(PyObject *SWIGUNUSEDPAR
   PyObject * obj3 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorVertices_insert",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_insert" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_insert" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices_insert" "', argument " "2"" of type '" "std::vector<Hex::Vertex * >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices_insert" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<Hex::Vertex * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Vertex * >::iterator > *>(iter2);
+    swig::SwigPyIterator_T<std::vector< Hex::Vertex * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Vertex * >::iterator > *>(iter2);
     if (iter_t) {
       arg2 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices_insert" "', argument " "2"" of type '" "std::vector<Hex::Vertex * >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorVertices_insert" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::iterator""'");
     }
   }
   ecode3 = SWIG_AsVal_size_t(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorVertices_insert" "', argument " "3"" of type '" "std::vector<Hex::Vertex * >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorVertices_insert" "', argument " "3"" of type '" "std::vector< Hex::Vertex * >::size_type""'");
   } 
-  arg3 = static_cast< std::vector<Hex::Vertex * >::size_type >(val3);
-  res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type, 0 |  0 );
+  arg3 = static_cast< std::vector< Hex::Vertex * >::size_type >(val3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_Hex__Vertex, 0 |  0 );
   if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorVertices_insert" "', argument " "4"" of type '" "std::vector<Hex::Vertex * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorVertices_insert" "', argument " "4"" of type '" "std::vector< Hex::Vertex * >::value_type""'"); 
   }
-  arg4 = reinterpret_cast< std::vector<Hex::Vertex * >::value_type >(argp4);
-  (arg1)->insert(arg2,arg3,arg4);
+  arg4 = reinterpret_cast< std::vector< Hex::Vertex * >::value_type >(argp4);
+  std_vector_Sl_Hex_Vertex_Sm__Sg__insert__SWIG_1(arg1,arg2,arg3,arg4);
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -11671,26 +14156,28 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_VectorVertices_insert(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[5];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[5] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Vertex*,std::allocator<Hex::Vertex * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Vertex * >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Vertex * >::iterator > *>(iter) != 0));
       if (_v) {
         void *vptr = 0;
-        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type, 0);
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Hex__Vertex, 0);
         _v = SWIG_CheckState(res);
         if (_v) {
           return _wrap_VectorVertices_insert__SWIG_0(self, args);
@@ -11700,12 +14187,12 @@ SWIGINTERN PyObject *_wrap_VectorVertices_insert(PyObject *self, PyObject *args)
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::Vertex*,std::allocator<Hex::Vertex * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::Vertex*,std::allocator< Hex::Vertex * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::Vertex * >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::Vertex * >::iterator > *>(iter) != 0));
       if (_v) {
         {
           int res = SWIG_AsVal_size_t(argv[2], NULL);
@@ -11713,7 +14200,7 @@ SWIGINTERN PyObject *_wrap_VectorVertices_insert(PyObject *self, PyObject *args)
         }
         if (_v) {
           void *vptr = 0;
-          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type, 0);
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_Hex__Vertex, 0);
           _v = SWIG_CheckState(res);
           if (_v) {
             return _wrap_VectorVertices_insert__SWIG_1(self, args);
@@ -11724,15 +14211,18 @@ SWIGINTERN PyObject *_wrap_VectorVertices_insert(PyObject *self, PyObject *args)
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorVertices_insert'.\n  Possible C/C++ prototypes are:\n    insert(std::vector<Hex::Vertex * >::iterator,std::vector<Hex::Vertex * >::value_type)\n    insert(std::vector<Hex::Vertex * >::iterator,std::vector<Hex::Vertex * >::size_type,std::vector<Hex::Vertex * >::value_type)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorVertices_insert'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::Vertex * >::insert(std::vector< Hex::Vertex * >::iterator,std::vector< Hex::Vertex * >::value_type)\n"
+    "    std::vector< Hex::Vertex * >::insert(std::vector< Hex::Vertex * >::iterator,std::vector< Hex::Vertex * >::size_type,std::vector< Hex::Vertex * >::value_type)\n");
+  return 0;
 }
 
 
 SWIGINTERN PyObject *_wrap_VectorVertices_reserve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::size_type arg2 ;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
+  std::vector< Hex::Vertex * >::size_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
@@ -11741,16 +14231,16 @@ SWIGINTERN PyObject *_wrap_VectorVertices_reserve(PyObject *SWIGUNUSEDPARM(self)
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorVertices_reserve",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_reserve" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_reserve" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
   ecode2 = SWIG_AsVal_size_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorVertices_reserve" "', argument " "2"" of type '" "std::vector<Hex::Vertex * >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorVertices_reserve" "', argument " "2"" of type '" "std::vector< Hex::Vertex * >::size_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::Vertex * >::size_type >(val2);
+  arg2 = static_cast< std::vector< Hex::Vertex * >::size_type >(val2);
   (arg1)->reserve(arg2);
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -11761,19 +14251,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorVertices_capacity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
-  std::vector<Hex::Vertex * >::size_type result;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::Vertex * >::size_type result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorVertices_capacity",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_capacity" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorVertices_capacity" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
-  result = ((std::vector<Hex::Vertex * > const *)arg1)->capacity();
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
+  result = ((std::vector< Hex::Vertex * > const *)arg1)->capacity();
   resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
@@ -11783,19 +14273,18 @@ fail:
 
 SWIGINTERN PyObject *_wrap_delete_VectorVertices(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::Vertex * > *arg1 = (std::vector<Hex::Vertex * > *) 0 ;
+  std::vector< Hex::Vertex * > *arg1 = (std::vector< Hex::Vertex * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:delete_VectorVertices",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, SWIG_POINTER_DISOWN |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_VectorVertices" "', argument " "1"" of type '" "std::vector<Hex::Vertex * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_VectorVertices" "', argument " "1"" of type '" "std::vector< Hex::Vertex * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::Vertex * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::Vertex * > * >(argp1);
   delete arg1;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -11805,29 +14294,29 @@ fail:
 
 SWIGINTERN PyObject *VectorVertices_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
-  SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, SWIG_NewClientData(obj));
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
+  SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
 
 SWIGINTERN PyObject *_wrap_VectorShapes_iterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
   PyObject **arg2 = (PyObject **) 0 ;
-  swig::PySwigIterator *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  swig::SwigPyIterator *result = 0 ;
   
   arg2 = &obj0;
   if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_iterator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_iterator" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_iterator" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  result = (swig::PySwigIterator *)std_vector_Sl_Hex_NewShape_Sm__Sg__iterator(arg1,arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  result = (swig::SwigPyIterator *)std_vector_Sl_Hex_NewShape_Sm__Sg__iterator(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -11836,19 +14325,41 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorShapes___nonzero__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  bool result;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes___nonzero__",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___nonzero__" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  result = (bool)std_vector_Sl_Hex_NewShape_Sm__Sg____nonzero__((std::vector< Hex::NewShape * > const *)arg1);
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorShapes___bool__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  bool result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes___bool__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___nonzero__" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___bool__" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  result = (bool)std_vector_Sl_Hex_NewShape_Sm__Sg____nonzero__((std::vector<Hex::NewShape * > const *)arg1);
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  result = (bool)std_vector_Sl_Hex_NewShape_Sm__Sg____bool__((std::vector< Hex::NewShape * > const *)arg1);
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
@@ -11858,19 +14369,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorShapes___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::size_type result;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::NewShape * >::size_type result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes___len__",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___len__" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___len__" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  result = std_vector_Sl_Hex_NewShape_Sm__Sg____len__((std::vector<Hex::NewShape * > const *)arg1);
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  result = std_vector_Sl_Hex_NewShape_Sm__Sg____len__((std::vector< Hex::NewShape * > const *)arg1);
   resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
@@ -11878,40 +14389,60 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorShapes___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::value_type result;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  std::vector< Hex::NewShape * >::difference_type arg2 ;
+  std::vector< Hex::NewShape * >::difference_type arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  std::vector< Hex::NewShape *,std::allocator< Hex::NewShape * > > *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorShapes___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_pop" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___getslice__" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorShapes___getslice__" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::NewShape * >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorShapes___getslice__" "', argument " "3"" of type '" "std::vector< Hex::NewShape * >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< Hex::NewShape * >::difference_type >(val3);
   try {
-    result = (std::vector<Hex::NewShape * >::value_type)std_vector_Sl_Hex_NewShape_Sm__Sg__pop(arg1);
+    result = (std::vector< Hex::NewShape *,std::allocator< Hex::NewShape * > > *)std_vector_Sl_Hex_NewShape_Sm__Sg____getslice__(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type, 0 |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorShapes___setslice____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::difference_type arg2 ;
-  std::vector<Hex::NewShape * >::difference_type arg3 ;
-  std::vector<Hex::NewShape *,std::allocator<Hex::NewShape * > > *result = 0 ;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  std::vector< Hex::NewShape * >::difference_type arg2 ;
+  std::vector< Hex::NewShape * >::difference_type arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
@@ -11922,42 +14453,45 @@ SWIGINTERN PyObject *_wrap_VectorShapes___getslice__(PyObject *SWIGUNUSEDPARM(se
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorShapes___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorShapes___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___getslice__" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___setslice__" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorShapes___getslice__" "', argument " "2"" of type '" "std::vector<Hex::NewShape * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorShapes___setslice__" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::NewShape * >::difference_type >(val2);
+  arg2 = static_cast< std::vector< Hex::NewShape * >::difference_type >(val2);
   ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorShapes___getslice__" "', argument " "3"" of type '" "std::vector<Hex::NewShape * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorShapes___setslice__" "', argument " "3"" of type '" "std::vector< Hex::NewShape * >::difference_type""'");
   } 
-  arg3 = static_cast< std::vector<Hex::NewShape * >::difference_type >(val3);
+  arg3 = static_cast< std::vector< Hex::NewShape * >::difference_type >(val3);
   try {
-    result = (std::vector<Hex::NewShape *,std::allocator<Hex::NewShape * > > *)std_vector_Sl_Hex_NewShape_Sm__Sg____getslice__(arg1,arg2,arg3);
+    std_vector_Sl_Hex_NewShape_Sm__Sg____setslice____SWIG_0(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes___setslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorShapes___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::difference_type arg2 ;
-  std::vector<Hex::NewShape * >::difference_type arg3 ;
-  std::vector<Hex::NewShape *,std::allocator<Hex::NewShape * > > *arg4 = 0 ;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  std::vector< Hex::NewShape * >::difference_type arg2 ;
+  std::vector< Hex::NewShape * >::difference_type arg3 ;
+  std::vector< Hex::NewShape *,std::allocator< Hex::NewShape * > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
@@ -11971,34 +14505,34 @@ SWIGINTERN PyObject *_wrap_VectorShapes___setslice__(PyObject *SWIGUNUSEDPARM(se
   PyObject * obj3 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorShapes___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___setslice__" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___setslice__" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorShapes___setslice__" "', argument " "2"" of type '" "std::vector<Hex::NewShape * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorShapes___setslice__" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::NewShape * >::difference_type >(val2);
+  arg2 = static_cast< std::vector< Hex::NewShape * >::difference_type >(val2);
   ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorShapes___setslice__" "', argument " "3"" of type '" "std::vector<Hex::NewShape * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorShapes___setslice__" "', argument " "3"" of type '" "std::vector< Hex::NewShape * >::difference_type""'");
   } 
-  arg3 = static_cast< std::vector<Hex::NewShape * >::difference_type >(val3);
+  arg3 = static_cast< std::vector< Hex::NewShape * >::difference_type >(val3);
   {
-    std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > > *ptr = (std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > > *)0;
+    std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > > *ptr = (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > > *)0;
     res4 = swig::asptr(obj3, &ptr);
     if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorShapes___setslice__" "', argument " "4"" of type '" "std::vector<Hex::NewShape *,std::allocator<Hex::NewShape * > > const &""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorShapes___setslice__" "', argument " "4"" of type '" "std::vector< Hex::NewShape *,std::allocator< Hex::NewShape * > > const &""'"); 
     }
     if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorShapes___setslice__" "', argument " "4"" of type '" "std::vector<Hex::NewShape *,std::allocator<Hex::NewShape * > > const &""'"); 
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorShapes___setslice__" "', argument " "4"" of type '" "std::vector< Hex::NewShape *,std::allocator< Hex::NewShape * > > const &""'"); 
     }
     arg4 = ptr;
   }
   try {
-    std_vector_Sl_Hex_NewShape_Sm__Sg____setslice__(arg1,arg2,arg3,(std::vector<Hex::NewShape *,std::allocator<Hex::NewShape * > > const &)*arg4);
+    std_vector_Sl_Hex_NewShape_Sm__Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< Hex::NewShape *,std::allocator< Hex::NewShape * > > const &)*arg4);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -12016,11 +14550,77 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_VectorShapes___setslice__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[5] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 4) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_ptrdiff_t(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_VectorShapes___setslice____SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_ptrdiff_t(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          int res = swig::asptr(argv[3], (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >**)(0));
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_VectorShapes___setslice____SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorShapes___setslice__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::NewShape * >::__setslice__(std::vector< Hex::NewShape * >::difference_type,std::vector< Hex::NewShape * >::difference_type)\n"
+    "    std::vector< Hex::NewShape * >::__setslice__(std::vector< Hex::NewShape * >::difference_type,std::vector< Hex::NewShape * >::difference_type,std::vector< Hex::NewShape *,std::allocator< Hex::NewShape * > > const &)\n");
+  return 0;
+}
+
+
 SWIGINTERN PyObject *_wrap_VectorShapes___delslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::difference_type arg2 ;
-  std::vector<Hex::NewShape * >::difference_type arg3 ;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  std::vector< Hex::NewShape * >::difference_type arg2 ;
+  std::vector< Hex::NewShape * >::difference_type arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
@@ -12032,27 +14632,30 @@ SWIGINTERN PyObject *_wrap_VectorShapes___delslice__(PyObject *SWIGUNUSEDPARM(se
   PyObject * obj2 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:VectorShapes___delslice__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___delslice__" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___delslice__" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorShapes___delslice__" "', argument " "2"" of type '" "std::vector<Hex::NewShape * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorShapes___delslice__" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::NewShape * >::difference_type >(val2);
+  arg2 = static_cast< std::vector< Hex::NewShape * >::difference_type >(val2);
   ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorShapes___delslice__" "', argument " "3"" of type '" "std::vector<Hex::NewShape * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorShapes___delslice__" "', argument " "3"" of type '" "std::vector< Hex::NewShape * >::difference_type""'");
   } 
-  arg3 = static_cast< std::vector<Hex::NewShape * >::difference_type >(val3);
+  arg3 = static_cast< std::vector< Hex::NewShape * >::difference_type >(val3);
   try {
     std_vector_Sl_Hex_NewShape_Sm__Sg____delslice__(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -12061,10 +14664,10 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes___delitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorShapes___delitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::difference_type arg2 ;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  std::vector< Hex::NewShape * >::difference_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
@@ -12073,22 +14676,194 @@ SWIGINTERN PyObject *_wrap_VectorShapes___delitem__(PyObject *SWIGUNUSEDPARM(sel
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorShapes___delitem__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___delitem__" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___delitem__" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorShapes___delitem__" "', argument " "2"" of type '" "std::vector<Hex::NewShape * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorShapes___delitem__" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::NewShape * >::difference_type >(val2);
+  arg2 = static_cast< std::vector< Hex::NewShape * >::difference_type >(val2);
+  try {
+    std_vector_Sl_Hex_NewShape_Sm__Sg____delitem____SWIG_0(arg1,arg2);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorShapes___getitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  std::vector< Hex::NewShape *,std::allocator< Hex::NewShape * > > *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorShapes___getitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___getitem__" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes___getitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
+  }
+  try {
+    result = (std::vector< Hex::NewShape *,std::allocator< Hex::NewShape * > > *)std_vector_Sl_Hex_NewShape_Sm__Sg____getitem____SWIG_0(arg1,arg2);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorShapes___setitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
+  std::vector< Hex::NewShape *,std::allocator< Hex::NewShape * > > *arg3 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res3 = SWIG_OLDOBJ ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorShapes___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___setitem__" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes___setitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
+  }
+  {
+    std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > > *ptr = (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > > *)0;
+    res3 = swig::asptr(obj2, &ptr);
+    if (!SWIG_IsOK(res3)) {
+      SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorShapes___setitem__" "', argument " "3"" of type '" "std::vector< Hex::NewShape *,std::allocator< Hex::NewShape * > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorShapes___setitem__" "', argument " "3"" of type '" "std::vector< Hex::NewShape *,std::allocator< Hex::NewShape * > > const &""'"); 
+    }
+    arg3 = ptr;
+  }
+  try {
+    std_vector_Sl_Hex_NewShape_Sm__Sg____setitem____SWIG_0(arg1,arg2,(std::vector< Hex::NewShape *,std::allocator< Hex::NewShape * > > const &)*arg3);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res3)) delete arg3;
+  return resultobj;
+fail:
+  if (SWIG_IsNewObj(res3)) delete arg3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorShapes___setitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorShapes___setitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___setitem__" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes___setitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
+  }
+  try {
+    std_vector_Sl_Hex_NewShape_Sm__Sg____setitem____SWIG_1(arg1,arg2);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorShapes___delitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorShapes___delitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___delitem__" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes___delitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
+  }
   try {
-    std_vector_Sl_Hex_NewShape_Sm__Sg____delitem__(arg1,arg2);
+    std_vector_Sl_Hex_NewShape_Sm__Sg____delitem____SWIG_1(arg1,arg2);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -12097,48 +14872,146 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorShapes___delitem__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        return _wrap_VectorShapes___delitem____SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_VectorShapes___delitem____SWIG_0(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorShapes___delitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::NewShape * >::__delitem__(std::vector< Hex::NewShape * >::difference_type)\n"
+    "    std::vector< Hex::NewShape * >::__delitem__(PySliceObject *)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorShapes___getitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::difference_type arg2 ;
-  std::vector<Hex::NewShape * >::value_type result;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  std::vector< Hex::NewShape * >::difference_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  std::vector< Hex::NewShape * >::value_type result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorShapes___getitem__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___getitem__" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___getitem__" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorShapes___getitem__" "', argument " "2"" of type '" "std::vector<Hex::NewShape * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorShapes___getitem__" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::NewShape * >::difference_type >(val2);
+  arg2 = static_cast< std::vector< Hex::NewShape * >::difference_type >(val2);
   try {
-    result = (std::vector<Hex::NewShape * >::value_type)std_vector_Sl_Hex_NewShape_Sm__Sg____getitem__(arg1,arg2);
+    result = (std::vector< Hex::NewShape * >::value_type)std_vector_Sl_Hex_NewShape_Sm__Sg____getitem____SWIG_1(arg1,arg2);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type, 0 |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Hex__NewShape, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorShapes___getitem__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        return _wrap_VectorShapes___getitem____SWIG_0(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_VectorShapes___getitem____SWIG_1(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorShapes___getitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::NewShape * >::__getitem__(PySliceObject *)\n"
+    "    std::vector< Hex::NewShape * >::__getitem__(std::vector< Hex::NewShape * >::difference_type)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorShapes___setitem____SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::difference_type arg2 ;
-  std::vector<Hex::NewShape * >::value_type arg3 = (std::vector<Hex::NewShape * >::value_type) 0 ;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  std::vector< Hex::NewShape * >::difference_type arg2 ;
+  std::vector< Hex::NewShape * >::value_type arg3 = (std::vector< Hex::NewShape * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
@@ -12150,23 +15023,23 @@ SWIGINTERN PyObject *_wrap_VectorShapes___setitem__(PyObject *SWIGUNUSEDPARM(sel
   PyObject * obj2 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:VectorShapes___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___setitem__" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes___setitem__" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorShapes___setitem__" "', argument " "2"" of type '" "std::vector<Hex::NewShape * >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorShapes___setitem__" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::NewShape * >::difference_type >(val2);
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type, 0 |  0 );
+  arg2 = static_cast< std::vector< Hex::NewShape * >::difference_type >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_Hex__NewShape, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorShapes___setitem__" "', argument " "3"" of type '" "std::vector<Hex::NewShape * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorShapes___setitem__" "', argument " "3"" of type '" "std::vector< Hex::NewShape * >::value_type""'"); 
   }
-  arg3 = reinterpret_cast< std::vector<Hex::NewShape * >::value_type >(argp3);
+  arg3 = reinterpret_cast< std::vector< Hex::NewShape * >::value_type >(argp3);
   try {
-    std_vector_Sl_Hex_NewShape_Sm__Sg____setitem__(arg1,arg2,arg3);
+    std_vector_Sl_Hex_NewShape_Sm__Sg____setitem____SWIG_2(arg1,arg2,arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -12179,10 +15052,110 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_VectorShapes___setitem__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        return _wrap_VectorShapes___setitem____SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        int res = swig::asptr(argv[2], (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >**)(0));
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_VectorShapes___setitem____SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Hex__NewShape, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_VectorShapes___setitem____SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorShapes___setitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::NewShape * >::__setitem__(PySliceObject *,std::vector< Hex::NewShape *,std::allocator< Hex::NewShape * > > const &)\n"
+    "    std::vector< Hex::NewShape * >::__setitem__(PySliceObject *)\n"
+    "    std::vector< Hex::NewShape * >::__setitem__(std::vector< Hex::NewShape * >::difference_type,std::vector< Hex::NewShape * >::value_type)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorShapes_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< Hex::NewShape * >::value_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_pop" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  try {
+    result = (std::vector< Hex::NewShape * >::value_type)std_vector_Sl_Hex_NewShape_Sm__Sg__pop(arg1);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Hex__NewShape, 0 |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_VectorShapes_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::value_type arg2 = (std::vector<Hex::NewShape * >::value_type) 0 ;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  std::vector< Hex::NewShape * >::value_type arg2 = (std::vector< Hex::NewShape * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -12191,16 +15164,16 @@ SWIGINTERN PyObject *_wrap_VectorShapes_append(PyObject *SWIGUNUSEDPARM(self), P
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorShapes_append",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_append" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_append" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type, 0 |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Hex__NewShape, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorShapes_append" "', argument " "2"" of type '" "std::vector<Hex::NewShape * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorShapes_append" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::value_type""'"); 
   }
-  arg2 = reinterpret_cast< std::vector<Hex::NewShape * >::value_type >(argp2);
+  arg2 = reinterpret_cast< std::vector< Hex::NewShape * >::value_type >(argp2);
   std_vector_Sl_Hex_NewShape_Sm__Sg__append(arg1,arg2);
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -12211,11 +15184,11 @@ fail:
 
 SWIGINTERN PyObject *_wrap_new_VectorShapes__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *result = 0 ;
+  std::vector< Hex::NewShape * > *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)":new_VectorShapes")) SWIG_fail;
-  result = (std::vector<Hex::NewShape * > *)new std::vector<Hex::NewShape * >();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, SWIG_POINTER_NEW |  0 );
+  result = (std::vector< Hex::NewShape * > *)new std::vector< Hex::NewShape * >();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -12224,25 +15197,25 @@ fail:
 
 SWIGINTERN PyObject *_wrap_new_VectorShapes__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = 0 ;
-  std::vector<Hex::NewShape * > *result = 0 ;
+  std::vector< Hex::NewShape * > *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::NewShape * > *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_VectorShapes",&obj0)) SWIG_fail;
   {
-    std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > > *ptr = (std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > > *)0;
+    std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > > *ptr = (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_VectorShapes" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > const &""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_VectorShapes" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > const &""'"); 
     }
     if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_VectorShapes" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > const &""'"); 
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_VectorShapes" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > const &""'"); 
     }
     arg1 = ptr;
   }
-  result = (std::vector<Hex::NewShape * > *)new std::vector<Hex::NewShape * >((std::vector<Hex::NewShape * > const &)*arg1);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, SWIG_POINTER_NEW |  0 );
+  result = (std::vector< Hex::NewShape * > *)new std::vector< Hex::NewShape * >((std::vector< Hex::NewShape * > const &)*arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, SWIG_POINTER_NEW |  0 );
   if (SWIG_IsNewObj(res1)) delete arg1;
   return resultobj;
 fail:
@@ -12253,19 +15226,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorShapes_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  bool result;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_empty",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_empty" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_empty" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  result = (bool)((std::vector<Hex::NewShape * > const *)arg1)->empty();
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  result = (bool)((std::vector< Hex::NewShape * > const *)arg1)->empty();
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
@@ -12275,19 +15248,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorShapes_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::size_type result;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::NewShape * >::size_type result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_size",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_size" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_size" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  result = ((std::vector<Hex::NewShape * > const *)arg1)->size();
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  result = ((std::vector< Hex::NewShape * > const *)arg1)->size();
   resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
@@ -12295,20 +15268,32 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorShapes_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  std::vector< Hex::NewShape * > *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorShapes_swap",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_clear" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_swap" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  (arg1)->clear();
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t,  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorShapes_swap" "', argument " "2"" of type '" "std::vector< Hex::NewShape * > &""'"); 
+  }
+  if (!argp2) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorShapes_swap" "', argument " "2"" of type '" "std::vector< Hex::NewShape * > &""'"); 
+  }
+  arg2 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp2);
+  (arg1)->swap(*arg2);
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -12316,413 +15301,555 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorShapes_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * > *arg2 = 0 ;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
   PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
+  std::vector< Hex::NewShape * >::iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorShapes_swap",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_begin",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_swap" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t,  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorShapes_swap" "', argument " "2"" of type '" "std::vector<Hex::NewShape * > &""'"); 
-  }
-  if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorShapes_swap" "', argument " "2"" of type '" "std::vector<Hex::NewShape * > &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_begin" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg2 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp2);
-  (arg1)->swap(*arg2);
-  resultobj = SWIG_Py_Void();
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  result = (arg1)->begin();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::NewShape * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorShapes_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  SwigValueWrapper<std::allocator<Hex::NewShape * > > result;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::NewShape * >::iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_end",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_get_allocator" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_end" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  result = ((std::vector<Hex::NewShape * > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector<Hex::NewShape * >::allocator_type(static_cast< const std::vector<Hex::NewShape * >::allocator_type& >(result))), SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__allocator_type, SWIG_POINTER_OWN |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  result = (arg1)->end();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::NewShape * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_begin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorShapes_rbegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::iterator result;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::NewShape * >::reverse_iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_begin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_rbegin",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_begin" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_rbegin" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  result = (arg1)->begin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::NewShape * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  result = (arg1)->rbegin();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::NewShape * >::reverse_iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_begin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorShapes_rend(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::const_iterator result;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::NewShape * >::reverse_iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_begin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_rend",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_begin" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_rend" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  result = ((std::vector<Hex::NewShape * > const *)arg1)->begin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::NewShape * >::const_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  result = (arg1)->rend();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::NewShape * >::reverse_iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_begin(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
+SWIGINTERN PyObject *_wrap_VectorShapes_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
   
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_clear" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorShapes_begin__SWIG_0(self, args);
-    }
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorShapes_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< Hex::NewShape * > > result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_get_allocator" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > const *""'"); 
   }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorShapes_begin__SWIG_1(self, args);
-    }
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  result = ((std::vector< Hex::NewShape * > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< Hex::NewShape * >::allocator_type(static_cast< const std::vector< Hex::NewShape * >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_Hex__NewShape_p_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_VectorShapes__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::NewShape * >::size_type arg1 ;
+  size_t val1 ;
+  int ecode1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< Hex::NewShape * > *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:new_VectorShapes",&obj0)) SWIG_fail;
+  ecode1 = SWIG_AsVal_size_t(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorShapes" "', argument " "1"" of type '" "std::vector< Hex::NewShape * >::size_type""'");
+  } 
+  arg1 = static_cast< std::vector< Hex::NewShape * >::size_type >(val1);
+  result = (std::vector< Hex::NewShape * > *)new std::vector< Hex::NewShape * >(arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorShapes_pop_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_pop_back",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_pop_back" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  (arg1)->pop_back();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorShapes_resize__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  std::vector< Hex::NewShape * >::size_type arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  size_t val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
   
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorShapes_resize",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_resize" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorShapes_resize" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::size_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::NewShape * >::size_type >(val2);
+  (arg1)->resize(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorShapes_begin'.\n  Possible C/C++ prototypes are:\n    begin()\n    begin()\n");
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_end__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorShapes_erase__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::iterator result;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  std::vector< Hex::NewShape * >::iterator arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
+  int res2 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  std::vector< Hex::NewShape * >::iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_end",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorShapes_erase",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_end" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_erase" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  result = (arg1)->end();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::NewShape * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
+  if (!SWIG_IsOK(res2) || !iter2) {
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes_erase" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::iterator""'");
+  } else {
+    swig::SwigPyIterator_T<std::vector< Hex::NewShape * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::NewShape * >::iterator > *>(iter2);
+    if (iter_t) {
+      arg2 = iter_t->get_current();
+    } else {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes_erase" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::iterator""'");
+    }
+  }
+  result = std_vector_Sl_Hex_NewShape_Sm__Sg__erase__SWIG_0(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::NewShape * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_end__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorShapes_erase__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::const_iterator result;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  std::vector< Hex::NewShape * >::iterator arg2 ;
+  std::vector< Hex::NewShape * >::iterator arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
+  int res2 ;
+  swig::SwigPyIterator *iter3 = 0 ;
+  int res3 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  std::vector< Hex::NewShape * >::iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_end",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorShapes_erase",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_end" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_erase" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
+  if (!SWIG_IsOK(res2) || !iter2) {
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes_erase" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::iterator""'");
+  } else {
+    swig::SwigPyIterator_T<std::vector< Hex::NewShape * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::NewShape * >::iterator > *>(iter2);
+    if (iter_t) {
+      arg2 = iter_t->get_current();
+    } else {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes_erase" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::iterator""'");
+    }
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  result = ((std::vector<Hex::NewShape * > const *)arg1)->end();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::NewShape * >::const_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  res3 = SWIG_ConvertPtr(obj2, SWIG_as_voidptrptr(&iter3), swig::SwigPyIterator::descriptor(), 0);
+  if (!SWIG_IsOK(res3) || !iter3) {
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes_erase" "', argument " "3"" of type '" "std::vector< Hex::NewShape * >::iterator""'");
+  } else {
+    swig::SwigPyIterator_T<std::vector< Hex::NewShape * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::NewShape * >::iterator > *>(iter3);
+    if (iter_t) {
+      arg3 = iter_t->get_current();
+    } else {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes_erase" "', argument " "3"" of type '" "std::vector< Hex::NewShape * >::iterator""'");
+    }
+  }
+  result = std_vector_Sl_Hex_NewShape_Sm__Sg__erase__SWIG_1(arg1,arg2,arg3);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::NewShape * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_end(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
+SWIGINTERN PyObject *_wrap_VectorShapes_erase(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
-  if (argc == 1) {
+  if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      return _wrap_VectorShapes_end__SWIG_0(self, args);
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::NewShape * >::iterator > *>(iter) != 0));
+      if (_v) {
+        return _wrap_VectorShapes_erase__SWIG_0(self, args);
+      }
     }
   }
-  if (argc == 1) {
+  if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      return _wrap_VectorShapes_end__SWIG_1(self, args);
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::NewShape * >::iterator > *>(iter) != 0));
+      if (_v) {
+        swig::SwigPyIterator *iter = 0;
+        int res = SWIG_ConvertPtr(argv[2], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+        _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::NewShape * >::iterator > *>(iter) != 0));
+        if (_v) {
+          return _wrap_VectorShapes_erase__SWIG_1(self, args);
+        }
+      }
     }
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorShapes_end'.\n  Possible C/C++ prototypes are:\n    end()\n    end()\n");
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorShapes_rbegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::reverse_iterator result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_rbegin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_rbegin" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  result = (arg1)->rbegin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::NewShape * >::reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
-  return resultobj;
-fail:
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorShapes_erase'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::NewShape * >::erase(std::vector< Hex::NewShape * >::iterator)\n"
+    "    std::vector< Hex::NewShape * >::erase(std::vector< Hex::NewShape * >::iterator,std::vector< Hex::NewShape * >::iterator)\n");
+  return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_rbegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_new_VectorShapes__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::const_reverse_iterator result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
+  std::vector< Hex::NewShape * >::size_type arg1 ;
+  std::vector< Hex::NewShape * >::value_type arg2 = (std::vector< Hex::NewShape * >::value_type) 0 ;
+  size_t val1 ;
+  int ecode1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  std::vector< Hex::NewShape * > *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_rbegin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_rbegin" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > const *""'"); 
+  if (!PyArg_ParseTuple(args,(char *)"OO:new_VectorShapes",&obj0,&obj1)) SWIG_fail;
+  ecode1 = SWIG_AsVal_size_t(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorShapes" "', argument " "1"" of type '" "std::vector< Hex::NewShape * >::size_type""'");
+  } 
+  arg1 = static_cast< std::vector< Hex::NewShape * >::size_type >(val1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Hex__NewShape, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_VectorShapes" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::value_type""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  result = ((std::vector<Hex::NewShape * > const *)arg1)->rbegin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::NewShape * >::const_reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg2 = reinterpret_cast< std::vector< Hex::NewShape * >::value_type >(argp2);
+  result = (std::vector< Hex::NewShape * > *)new std::vector< Hex::NewShape * >(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_rbegin(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
+SWIGINTERN PyObject *_wrap_new_VectorShapes(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
+  if (argc == 0) {
+    return _wrap_new_VectorShapes__SWIG_0(self, args);
+  }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > >**)(0));
-    _v = SWIG_CheckState(res);
+    {
+      int res = SWIG_AsVal_size_t(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
     if (_v) {
-      return _wrap_VectorShapes_rbegin__SWIG_0(self, args);
+      return _wrap_new_VectorShapes__SWIG_2(self, args);
     }
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      return _wrap_VectorShapes_rbegin__SWIG_1(self, args);
+      return _wrap_new_VectorShapes__SWIG_1(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    {
+      int res = SWIG_AsVal_size_t(argv[0], NULL);
+      _v = SWIG_CheckState(res);
+    }
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Hex__NewShape, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_new_VectorShapes__SWIG_3(self, args);
+      }
     }
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorShapes_rbegin'.\n  Possible C/C++ prototypes are:\n    rbegin()\n    rbegin()\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_VectorShapes'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::NewShape * >::vector()\n"
+    "    std::vector< Hex::NewShape * >::vector(std::vector< Hex::NewShape * > const &)\n"
+    "    std::vector< Hex::NewShape * >::vector(std::vector< Hex::NewShape * >::size_type)\n"
+    "    std::vector< Hex::NewShape * >::vector(std::vector< Hex::NewShape * >::size_type,std::vector< Hex::NewShape * >::value_type)\n");
+  return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_rend__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorShapes_push_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::reverse_iterator result;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  std::vector< Hex::NewShape * >::value_type arg2 = (std::vector< Hex::NewShape * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_rend",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorShapes_push_back",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_rend" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_push_back" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  result = (arg1)->rend();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::NewShape * >::reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Hex__NewShape, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorShapes_push_back" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::value_type""'"); 
+  }
+  arg2 = reinterpret_cast< std::vector< Hex::NewShape * >::value_type >(argp2);
+  (arg1)->push_back(arg2);
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_rend__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorShapes_front(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::const_reverse_iterator result;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::NewShape * >::value_type result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_rend",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_front",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_rend" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_front" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  result = ((std::vector<Hex::NewShape * > const *)arg1)->rend();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::NewShape * >::const_reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  result = (std::vector< Hex::NewShape * >::value_type)((std::vector< Hex::NewShape * > const *)arg1)->front();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Hex__NewShape, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_rend(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
-  
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorShapes_rend__SWIG_0(self, args);
-    }
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorShapes_rend__SWIG_1(self, args);
-    }
-  }
-  
-fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorShapes_rend'.\n  Possible C/C++ prototypes are:\n    rend()\n    rend()\n");
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_new_VectorShapes__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorShapes_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * >::size_type arg1 ;
-  std::vector<Hex::NewShape * > *result = 0 ;
-  size_t val1 ;
-  int ecode1 = 0 ;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< Hex::NewShape * >::value_type result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:new_VectorShapes",&obj0)) SWIG_fail;
-  ecode1 = SWIG_AsVal_size_t(obj0, &val1);
-  if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorShapes" "', argument " "1"" of type '" "std::vector<Hex::NewShape * >::size_type""'");
-  } 
-  arg1 = static_cast< std::vector<Hex::NewShape * >::size_type >(val1);
-  result = (std::vector<Hex::NewShape * > *)new std::vector<Hex::NewShape * >(arg1);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, SWIG_POINTER_NEW |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_back",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_back" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  result = (std::vector< Hex::NewShape * >::value_type)((std::vector< Hex::NewShape * > const *)arg1)->back();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Hex__NewShape, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_pop_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorShapes_assign(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  std::vector< Hex::NewShape * >::size_type arg2 ;
+  std::vector< Hex::NewShape * >::value_type arg3 = (std::vector< Hex::NewShape * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  size_t val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_pop_back",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorShapes_assign",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_pop_back" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_assign" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  (arg1)->pop_back();
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorShapes_assign" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::size_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::NewShape * >::size_type >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_Hex__NewShape, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorShapes_assign" "', argument " "3"" of type '" "std::vector< Hex::NewShape * >::value_type""'"); 
+  }
+  arg3 = reinterpret_cast< std::vector< Hex::NewShape * >::value_type >(argp3);
+  (arg1)->assign(arg2,arg3);
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -12730,29 +15857,38 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_resize__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorShapes_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::size_type arg2 ;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  std::vector< Hex::NewShape * >::size_type arg2 ;
+  std::vector< Hex::NewShape * >::value_type arg3 = (std::vector< Hex::NewShape * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
   int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorShapes_resize",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorShapes_resize",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_resize" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_resize" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
   ecode2 = SWIG_AsVal_size_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorShapes_resize" "', argument " "2"" of type '" "std::vector<Hex::NewShape * >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorShapes_resize" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::size_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::NewShape * >::size_type >(val2);
-  (arg1)->resize(arg2);
+  arg2 = static_cast< std::vector< Hex::NewShape * >::size_type >(val2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_Hex__NewShape, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorShapes_resize" "', argument " "3"" of type '" "std::vector< Hex::NewShape * >::value_type""'"); 
+  }
+  arg3 = reinterpret_cast< std::vector< Hex::NewShape * >::value_type >(argp3);
+  (arg1)->resize(arg2,arg3);
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -12760,252 +15896,292 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_erase__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorShapes_resize(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_size_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_VectorShapes_resize__SWIG_0(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_size_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Hex__NewShape, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_VectorShapes_resize__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorShapes_resize'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::NewShape * >::resize(std::vector< Hex::NewShape * >::size_type)\n"
+    "    std::vector< Hex::NewShape * >::resize(std::vector< Hex::NewShape * >::size_type,std::vector< Hex::NewShape * >::value_type)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorShapes_insert__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::iterator arg2 ;
-  std::vector<Hex::NewShape * >::iterator result;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  std::vector< Hex::NewShape * >::iterator arg2 ;
+  std::vector< Hex::NewShape * >::value_type arg3 = (std::vector< Hex::NewShape * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
   int res2 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  std::vector< Hex::NewShape * >::iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorShapes_erase",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorShapes_insert",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_erase" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_insert" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes_erase" "', argument " "2"" of type '" "std::vector<Hex::NewShape * >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes_insert" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<Hex::NewShape * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::NewShape * >::iterator > *>(iter2);
+    swig::SwigPyIterator_T<std::vector< Hex::NewShape * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::NewShape * >::iterator > *>(iter2);
     if (iter_t) {
       arg2 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes_erase" "', argument " "2"" of type '" "std::vector<Hex::NewShape * >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes_insert" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::iterator""'");
     }
   }
-  result = (arg1)->erase(arg2);
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::NewShape * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_Hex__NewShape, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorShapes_insert" "', argument " "3"" of type '" "std::vector< Hex::NewShape * >::value_type""'"); 
+  }
+  arg3 = reinterpret_cast< std::vector< Hex::NewShape * >::value_type >(argp3);
+  result = std_vector_Sl_Hex_NewShape_Sm__Sg__insert__SWIG_0(arg1,arg2,arg3);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< Hex::NewShape * >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_erase__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorShapes_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::iterator arg2 ;
-  std::vector<Hex::NewShape * >::iterator arg3 ;
-  std::vector<Hex::NewShape * >::iterator result;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  std::vector< Hex::NewShape * >::iterator arg2 ;
+  std::vector< Hex::NewShape * >::size_type arg3 ;
+  std::vector< Hex::NewShape * >::value_type arg4 = (std::vector< Hex::NewShape * >::value_type) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
   int res2 ;
-  swig::PySwigIterator *iter3 = 0 ;
-  int res3 ;
+  size_t val3 ;
+  int ecode3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorShapes_erase",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorShapes_insert",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_erase" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_insert" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes_erase" "', argument " "2"" of type '" "std::vector<Hex::NewShape * >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes_insert" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<Hex::NewShape * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::NewShape * >::iterator > *>(iter2);
+    swig::SwigPyIterator_T<std::vector< Hex::NewShape * >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::NewShape * >::iterator > *>(iter2);
     if (iter_t) {
       arg2 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes_erase" "', argument " "2"" of type '" "std::vector<Hex::NewShape * >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes_insert" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::iterator""'");
     }
   }
-  res3 = SWIG_ConvertPtr(obj2, SWIG_as_voidptrptr(&iter3), swig::PySwigIterator::descriptor(), 0);
-  if (!SWIG_IsOK(res3) || !iter3) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes_erase" "', argument " "3"" of type '" "std::vector<Hex::NewShape * >::iterator""'");
-  } else {
-    swig::PySwigIterator_T<std::vector<Hex::NewShape * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::NewShape * >::iterator > *>(iter3);
-    if (iter_t) {
-      arg3 = iter_t->get_current();
-    } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes_erase" "', argument " "3"" of type '" "std::vector<Hex::NewShape * >::iterator""'");
-    }
+  ecode3 = SWIG_AsVal_size_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorShapes_insert" "', argument " "3"" of type '" "std::vector< Hex::NewShape * >::size_type""'");
+  } 
+  arg3 = static_cast< std::vector< Hex::NewShape * >::size_type >(val3);
+  res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_Hex__NewShape, 0 |  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorShapes_insert" "', argument " "4"" of type '" "std::vector< Hex::NewShape * >::value_type""'"); 
   }
-  result = (arg1)->erase(arg2,arg3);
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::NewShape * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg4 = reinterpret_cast< std::vector< Hex::NewShape * >::value_type >(argp4);
+  std_vector_Sl_Hex_NewShape_Sm__Sg__insert__SWIG_1(arg1,arg2,arg3,arg4);
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_erase(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
-  int ii;
+SWIGINTERN PyObject *_wrap_VectorShapes_insert(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[5] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
-  if (argc == 2) {
+  if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::NewShape * >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::NewShape * >::iterator > *>(iter) != 0));
       if (_v) {
-        return _wrap_VectorShapes_erase__SWIG_0(self, args);
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Hex__NewShape, 0);
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_VectorShapes_insert__SWIG_0(self, args);
+        }
       }
     }
   }
-  if (argc == 3) {
+  if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::NewShape * >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< Hex::NewShape * >::iterator > *>(iter) != 0));
       if (_v) {
-        swig::PySwigIterator *iter = 0;
-        int res = SWIG_ConvertPtr(argv[2], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-        _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::NewShape * >::iterator > *>(iter) != 0));
+        {
+          int res = SWIG_AsVal_size_t(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
         if (_v) {
-          return _wrap_VectorShapes_erase__SWIG_1(self, args);
+          void *vptr = 0;
+          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_Hex__NewShape, 0);
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_VectorShapes_insert__SWIG_1(self, args);
+          }
         }
       }
     }
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorShapes_erase'.\n  Possible C/C++ prototypes are:\n    erase(std::vector<Hex::NewShape * >::iterator)\n    erase(std::vector<Hex::NewShape * >::iterator,std::vector<Hex::NewShape * >::iterator)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorShapes_insert'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< Hex::NewShape * >::insert(std::vector< Hex::NewShape * >::iterator,std::vector< Hex::NewShape * >::value_type)\n"
+    "    std::vector< Hex::NewShape * >::insert(std::vector< Hex::NewShape * >::iterator,std::vector< Hex::NewShape * >::size_type,std::vector< Hex::NewShape * >::value_type)\n");
+  return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_new_VectorShapes__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorShapes_reserve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * >::size_type arg1 ;
-  std::vector<Hex::NewShape * >::value_type arg2 = (std::vector<Hex::NewShape * >::value_type) 0 ;
-  std::vector<Hex::NewShape * > *result = 0 ;
-  size_t val1 ;
-  int ecode1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  std::vector< Hex::NewShape * >::size_type arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  size_t val2 ;
+  int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:new_VectorShapes",&obj0,&obj1)) SWIG_fail;
-  ecode1 = SWIG_AsVal_size_t(obj0, &val1);
-  if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorShapes" "', argument " "1"" of type '" "std::vector<Hex::NewShape * >::size_type""'");
-  } 
-  arg1 = static_cast< std::vector<Hex::NewShape * >::size_type >(val1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_VectorShapes" "', argument " "2"" of type '" "std::vector<Hex::NewShape * >::value_type""'"); 
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorShapes_reserve",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_reserve" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg2 = reinterpret_cast< std::vector<Hex::NewShape * >::value_type >(argp2);
-  result = (std::vector<Hex::NewShape * > *)new std::vector<Hex::NewShape * >(arg1,arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, SWIG_POINTER_NEW |  0 );
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorShapes_reserve" "', argument " "2"" of type '" "std::vector< Hex::NewShape * >::size_type""'");
+  } 
+  arg2 = static_cast< std::vector< Hex::NewShape * >::size_type >(val2);
+  (arg1)->reserve(arg2);
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_new_VectorShapes(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
+SWIGINTERN PyObject *_wrap_VectorShapes_capacity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< Hex::NewShape * >::size_type result;
   
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 0) {
-    return _wrap_new_VectorShapes__SWIG_0(self, args);
-  }
-  if (argc == 1) {
-    int _v;
-    {
-      int res = SWIG_AsVal_size_t(argv[0], NULL);
-      _v = SWIG_CheckState(res);
-    }
-    if (_v) {
-      return _wrap_new_VectorShapes__SWIG_2(self, args);
-    }
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_new_VectorShapes__SWIG_1(self, args);
-    }
-  }
-  if (argc == 2) {
-    int _v;
-    {
-      int res = SWIG_AsVal_size_t(argv[0], NULL);
-      _v = SWIG_CheckState(res);
-    }
-    if (_v) {
-      void *vptr = 0;
-      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type, 0);
-      _v = SWIG_CheckState(res);
-      if (_v) {
-        return _wrap_new_VectorShapes__SWIG_3(self, args);
-      }
-    }
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_capacity",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_capacity" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > const *""'"); 
   }
-  
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  result = ((std::vector< Hex::NewShape * > const *)arg1)->capacity();
+  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+  return resultobj;
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_VectorShapes'.\n  Possible C/C++ prototypes are:\n    std::vector<(p.Hex::NewShape)>()\n    std::vector<(p.Hex::NewShape)>(std::vector<Hex::NewShape * > const &)\n    std::vector<(p.Hex::NewShape)>(std::vector<Hex::NewShape * >::size_type)\n    std::vector<(p.Hex::NewShape)>(std::vector<Hex::NewShape * >::size_type,std::vector<Hex::NewShape * >::value_type)\n");
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_push_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_delete_VectorShapes(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::value_type arg2 = (std::vector<Hex::NewShape * >::value_type) 0 ;
+  std::vector< Hex::NewShape * > *arg1 = (std::vector< Hex::NewShape * > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
   PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorShapes_push_back",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:delete_VectorShapes",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_push_back" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorShapes_push_back" "', argument " "2"" of type '" "std::vector<Hex::NewShape * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_VectorShapes" "', argument " "1"" of type '" "std::vector< Hex::NewShape * > *""'"); 
   }
-  arg2 = reinterpret_cast< std::vector<Hex::NewShape * >::value_type >(argp2);
-  (arg1)->push_back(arg2);
+  arg1 = reinterpret_cast< std::vector< Hex::NewShape * > * >(argp1);
+  delete arg1;
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -13013,326 +16189,315 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_front(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *VectorShapes_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *obj;
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
+  SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, SWIG_NewClientData(obj));
+  return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_VectorReal_iterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::value_type result;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  PyObject **arg2 = (PyObject **) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  swig::SwigPyIterator *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_front",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  arg2 = &obj0;
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_iterator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_front" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_iterator" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  result = (std::vector<Hex::NewShape * >::value_type)((std::vector<Hex::NewShape * > const *)arg1)->front();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type, 0 |  0 );
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  result = (swig::SwigPyIterator *)std_vector_Sl_double_Sg__iterator(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorReal___nonzero__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::value_type result;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_back",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorReal___nonzero__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_back" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___nonzero__" "', argument " "1"" of type '" "std::vector< double > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  result = (std::vector<Hex::NewShape * >::value_type)((std::vector<Hex::NewShape * > const *)arg1)->back();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type, 0 |  0 );
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  result = (bool)std_vector_Sl_double_Sg____nonzero__((std::vector< double > const *)arg1);
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_assign(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorReal___bool__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::size_type arg2 ;
-  std::vector<Hex::NewShape * >::value_type arg3 = (std::vector<Hex::NewShape * >::value_type) 0 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  size_t val2 ;
-  int ecode2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
   PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
+  bool result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorShapes_assign",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorReal___bool__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_assign" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  ecode2 = SWIG_AsVal_size_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorShapes_assign" "', argument " "2"" of type '" "std::vector<Hex::NewShape * >::size_type""'");
-  } 
-  arg2 = static_cast< std::vector<Hex::NewShape * >::size_type >(val2);
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorShapes_assign" "', argument " "3"" of type '" "std::vector<Hex::NewShape * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___bool__" "', argument " "1"" of type '" "std::vector< double > const *""'"); 
   }
-  arg3 = reinterpret_cast< std::vector<Hex::NewShape * >::value_type >(argp3);
-  (arg1)->assign(arg2,arg3);
-  resultobj = SWIG_Py_Void();
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  result = (bool)std_vector_Sl_double_Sg____bool__((std::vector< double > const *)arg1);
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorReal___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::size_type arg2 ;
-  std::vector<Hex::NewShape * >::value_type arg3 = (std::vector<Hex::NewShape * >::value_type) 0 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  size_t val2 ;
-  int ecode2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
   PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
+  std::vector< double >::size_type result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorShapes_resize",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorReal___len__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_resize" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  ecode2 = SWIG_AsVal_size_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorShapes_resize" "', argument " "2"" of type '" "std::vector<Hex::NewShape * >::size_type""'");
-  } 
-  arg2 = static_cast< std::vector<Hex::NewShape * >::size_type >(val2);
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorShapes_resize" "', argument " "3"" of type '" "std::vector<Hex::NewShape * >::value_type""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___len__" "', argument " "1"" of type '" "std::vector< double > const *""'"); 
   }
-  arg3 = reinterpret_cast< std::vector<Hex::NewShape * >::value_type >(argp3);
-  (arg1)->resize(arg2,arg3);
-  resultobj = SWIG_Py_Void();
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  result = std_vector_Sl_double_Sg____len__((std::vector< double > const *)arg1);
+  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_resize(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
-  int ii;
+SWIGINTERN PyObject *_wrap_VectorReal___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  std::vector< double >::difference_type arg2 ;
+  std::vector< double >::difference_type arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  std::vector< double,std::allocator< double > > *result = 0 ;
   
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorReal___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___getslice__" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  if (argc == 2) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      {
-        int res = SWIG_AsVal_size_t(argv[1], NULL);
-        _v = SWIG_CheckState(res);
-      }
-      if (_v) {
-        return _wrap_VectorShapes_resize__SWIG_0(self, args);
-      }
-    }
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal___getslice__" "', argument " "2"" of type '" "std::vector< double >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< double >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorReal___getslice__" "', argument " "3"" of type '" "std::vector< double >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< double >::difference_type >(val3);
+  try {
+    result = (std::vector< double,std::allocator< double > > *)std_vector_Sl_double_Sg____getslice__(arg1,arg2,arg3);
   }
-  if (argc == 3) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      {
-        int res = SWIG_AsVal_size_t(argv[1], NULL);
-        _v = SWIG_CheckState(res);
-      }
-      if (_v) {
-        void *vptr = 0;
-        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type, 0);
-        _v = SWIG_CheckState(res);
-        if (_v) {
-          return _wrap_VectorShapes_resize__SWIG_1(self, args);
-        }
-      }
-    }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
   }
   
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorShapes_resize'.\n  Possible C/C++ prototypes are:\n    resize(std::vector<Hex::NewShape * >::size_type)\n    resize(std::vector<Hex::NewShape * >::size_type,std::vector<Hex::NewShape * >::value_type)\n");
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_insert__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorReal___setslice____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::iterator arg2 ;
-  std::vector<Hex::NewShape * >::value_type arg3 = (std::vector<Hex::NewShape * >::value_type) 0 ;
-  std::vector<Hex::NewShape * >::iterator result;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  std::vector< double >::difference_type arg2 ;
+  std::vector< double >::difference_type arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
-  int res2 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorShapes_insert",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorReal___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_insert" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___setslice__" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
-  if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes_insert" "', argument " "2"" of type '" "std::vector<Hex::NewShape * >::iterator""'");
-  } else {
-    swig::PySwigIterator_T<std::vector<Hex::NewShape * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::NewShape * >::iterator > *>(iter2);
-    if (iter_t) {
-      arg2 = iter_t->get_current();
-    } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes_insert" "', argument " "2"" of type '" "std::vector<Hex::NewShape * >::iterator""'");
-    }
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal___setslice__" "', argument " "2"" of type '" "std::vector< double >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< double >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorReal___setslice__" "', argument " "3"" of type '" "std::vector< double >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< double >::difference_type >(val3);
+  try {
+    std_vector_Sl_double_Sg____setslice____SWIG_0(arg1,arg2,arg3);
   }
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorShapes_insert" "', argument " "3"" of type '" "std::vector<Hex::NewShape * >::value_type""'"); 
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
   }
-  arg3 = reinterpret_cast< std::vector<Hex::NewShape * >::value_type >(argp3);
-  result = (arg1)->insert(arg2,arg3);
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<Hex::NewShape * >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorReal___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::iterator arg2 ;
-  std::vector<Hex::NewShape * >::size_type arg3 ;
-  std::vector<Hex::NewShape * >::value_type arg4 = (std::vector<Hex::NewShape * >::value_type) 0 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  std::vector< double >::difference_type arg2 ;
+  std::vector< double >::difference_type arg3 ;
+  std::vector< double,std::allocator< double > > *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
-  int res2 ;
-  size_t val3 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
   int ecode3 = 0 ;
-  void *argp4 = 0 ;
-  int res4 = 0 ;
+  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorShapes_insert",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorReal___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_insert" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___setslice__" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
-  if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes_insert" "', argument " "2"" of type '" "std::vector<Hex::NewShape * >::iterator""'");
-  } else {
-    swig::PySwigIterator_T<std::vector<Hex::NewShape * >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::NewShape * >::iterator > *>(iter2);
-    if (iter_t) {
-      arg2 = iter_t->get_current();
-    } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorShapes_insert" "', argument " "2"" of type '" "std::vector<Hex::NewShape * >::iterator""'");
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal___setslice__" "', argument " "2"" of type '" "std::vector< double >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< double >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorReal___setslice__" "', argument " "3"" of type '" "std::vector< double >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< double >::difference_type >(val3);
+  {
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
+    res4 = swig::asptr(obj3, &ptr);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorReal___setslice__" "', argument " "4"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorReal___setslice__" "', argument " "4"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
     }
+    arg4 = ptr;
   }
-  ecode3 = SWIG_AsVal_size_t(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorShapes_insert" "', argument " "3"" of type '" "std::vector<Hex::NewShape * >::size_type""'");
-  } 
-  arg3 = static_cast< std::vector<Hex::NewShape * >::size_type >(val3);
-  res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type, 0 |  0 );
-  if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorShapes_insert" "', argument " "4"" of type '" "std::vector<Hex::NewShape * >::value_type""'"); 
+  try {
+    std_vector_Sl_double_Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< double,std::allocator< double > > const &)*arg4);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
   }
-  arg4 = reinterpret_cast< std::vector<Hex::NewShape * >::value_type >(argp4);
-  (arg1)->insert(arg2,arg3,arg4);
+  
   resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_insert(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[5];
-  int ii;
+SWIGINTERN PyObject *_wrap_VectorReal___setslice__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[5] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::NewShape * >::iterator > *>(iter) != 0));
-      if (_v) {
-        void *vptr = 0;
-        int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type, 0);
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
         _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_ptrdiff_t(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
         if (_v) {
-          return _wrap_VectorShapes_insert__SWIG_0(self, args);
+          return _wrap_VectorReal___setslice____SWIG_0(self, args);
         }
       }
     }
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<Hex::NewShape * >::iterator > *>(iter) != 0));
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
       if (_v) {
         {
-          int res = SWIG_AsVal_size_t(argv[2], NULL);
+          int res = SWIG_AsVal_ptrdiff_t(argv[2], NULL);
           _v = SWIG_CheckState(res);
         }
         if (_v) {
-          void *vptr = 0;
-          int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type, 0);
+          int res = swig::asptr(argv[3], (std::vector< double,std::allocator< double > >**)(0));
           _v = SWIG_CheckState(res);
           if (_v) {
-            return _wrap_VectorShapes_insert__SWIG_1(self, args);
+            return _wrap_VectorReal___setslice____SWIG_1(self, args);
           }
         }
       }
@@ -13340,77 +16505,54 @@ SWIGINTERN PyObject *_wrap_VectorShapes_insert(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorShapes_insert'.\n  Possible C/C++ prototypes are:\n    insert(std::vector<Hex::NewShape * >::iterator,std::vector<Hex::NewShape * >::value_type)\n    insert(std::vector<Hex::NewShape * >::iterator,std::vector<Hex::NewShape * >::size_type,std::vector<Hex::NewShape * >::value_type)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorReal___setslice__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< double >::__setslice__(std::vector< double >::difference_type,std::vector< double >::difference_type)\n"
+    "    std::vector< double >::__setslice__(std::vector< double >::difference_type,std::vector< double >::difference_type,std::vector< double,std::allocator< double > > const &)\n");
+  return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorShapes_reserve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorReal___delslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::size_type arg2 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  std::vector< double >::difference_type arg2 ;
+  std::vector< double >::difference_type arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  size_t val2 ;
+  ptrdiff_t val2 ;
   int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorShapes_reserve",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorReal___delslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_reserve" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___delslice__" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  ecode2 = SWIG_AsVal_size_t(obj1, &val2);
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorShapes_reserve" "', argument " "2"" of type '" "std::vector<Hex::NewShape * >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal___delslice__" "', argument " "2"" of type '" "std::vector< double >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<Hex::NewShape * >::size_type >(val2);
-  (arg1)->reserve(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorShapes_capacity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  std::vector<Hex::NewShape * >::size_type result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorShapes_capacity",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorShapes_capacity" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > const *""'"); 
+  arg2 = static_cast< std::vector< double >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorReal___delslice__" "', argument " "3"" of type '" "std::vector< double >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< double >::difference_type >(val3);
+  try {
+    std_vector_Sl_double_Sg____delslice__(arg1,arg2,arg3);
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  result = ((std::vector<Hex::NewShape * > const *)arg1)->capacity();
-  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_delete_VectorShapes(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<Hex::NewShape * > *arg1 = (std::vector<Hex::NewShape * > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:delete_VectorShapes",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, SWIG_POINTER_DISOWN |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_VectorShapes" "', argument " "1"" of type '" "std::vector<Hex::NewShape * > *""'"); 
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
   }
-  arg1 = reinterpret_cast< std::vector<Hex::NewShape * > * >(argp1);
-  delete arg1;
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -13419,202 +16561,161 @@ fail:
 }
 
 
-SWIGINTERN PyObject *VectorShapes_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
-  SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, SWIG_NewClientData(obj));
-  return SWIG_Py_Void();
-}
-
-SWIGINTERN PyObject *_wrap_VectorReal_iterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorReal___delitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  PyObject **arg2 = (PyObject **) 0 ;
-  swig::PySwigIterator *result = 0 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  std::vector< double >::difference_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
   
-  arg2 = &obj0;
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_iterator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorReal___delitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_iterator" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___delitem__" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  result = (swig::PySwigIterator *)std_vector_Sl_double_Sg__iterator(arg1,arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorReal___nonzero__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  bool result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorReal___nonzero__",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___nonzero__" "', argument " "1"" of type '" "std::vector<double > const *""'"); 
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal___delitem__" "', argument " "2"" of type '" "std::vector< double >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< double >::difference_type >(val2);
+  try {
+    std_vector_Sl_double_Sg____delitem____SWIG_0(arg1,arg2);
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  result = (bool)std_vector_Sl_double_Sg____nonzero__((std::vector<double > const *)arg1);
-  resultobj = SWIG_From_bool(static_cast< bool >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorReal___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::size_type result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorReal___len__",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___len__" "', argument " "1"" of type '" "std::vector<double > const *""'"); 
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  result = std_vector_Sl_double_Sg____len__((std::vector<double > const *)arg1);
-  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorReal_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorReal___getitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::value_type result;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  std::vector< double,std::allocator< double > > *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorReal___getitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_pop" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___getitem__" "', argument " "1"" of type '" "std::vector< double > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal___getitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
   try {
-    result = (std::vector<double >::value_type)std_vector_Sl_double_Sg__pop(arg1);
+    result = (std::vector< double,std::allocator< double > > *)std_vector_Sl_double_Sg____getitem____SWIG_0(arg1,arg2);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
-  resultobj = SWIG_From_double(static_cast< double >(result));
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorReal___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorReal___setitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::difference_type arg2 ;
-  std::vector<double >::difference_type arg3 ;
-  std::vector<double,std::allocator<double > > *result = 0 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
+  std::vector< double,std::allocator< double > > *arg3 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  ptrdiff_t val3 ;
-  int ecode3 = 0 ;
+  int res3 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorReal___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorReal___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___getslice__" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___setitem__" "', argument " "1"" of type '" "std::vector< double > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal___setitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
+  }
+  {
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
+    res3 = swig::asptr(obj2, &ptr);
+    if (!SWIG_IsOK(res3)) {
+      SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorReal___setitem__" "', argument " "3"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorReal___setitem__" "', argument " "3"" of type '" "std::vector< double,std::allocator< double > > const &""'"); 
+    }
+    arg3 = ptr;
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal___getslice__" "', argument " "2"" of type '" "std::vector<double >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector<double >::difference_type >(val2);
-  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorReal___getslice__" "', argument " "3"" of type '" "std::vector<double >::difference_type""'");
-  } 
-  arg3 = static_cast< std::vector<double >::difference_type >(val3);
   try {
-    result = (std::vector<double,std::allocator<double > > *)std_vector_Sl_double_Sg____getslice__(arg1,arg2,arg3);
+    std_vector_Sl_double_Sg____setitem____SWIG_0(arg1,arg2,(std::vector< double,std::allocator< double > > const &)*arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res3)) delete arg3;
   return resultobj;
 fail:
+  if (SWIG_IsNewObj(res3)) delete arg3;
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorReal___setslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorReal___setitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::difference_type arg2 ;
-  std::vector<double >::difference_type arg3 ;
-  std::vector<double,std::allocator<double > > *arg4 = 0 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  ptrdiff_t val3 ;
-  int ecode3 = 0 ;
-  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorReal___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorReal___setitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___setslice__" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___setitem__" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal___setslice__" "', argument " "2"" of type '" "std::vector<double >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector<double >::difference_type >(val2);
-  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorReal___setslice__" "', argument " "3"" of type '" "std::vector<double >::difference_type""'");
-  } 
-  arg3 = static_cast< std::vector<double >::difference_type >(val3);
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
-    res4 = swig::asptr(obj3, &ptr);
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorReal___setslice__" "', argument " "4"" of type '" "std::vector<double,std::allocator<double > > const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorReal___setslice__" "', argument " "4"" of type '" "std::vector<double,std::allocator<double > > const &""'"); 
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal___setitem__" "', argument " "2"" of type '" "PySliceObject *""'");
     }
-    arg4 = ptr;
+    arg2 = (PySliceObject *) obj1;
   }
   try {
-    std_vector_Sl_double_Sg____setslice__(arg1,arg2,arg3,(std::vector<double,std::allocator<double > > const &)*arg4);
+    std_vector_Sl_double_Sg____setitem____SWIG_1(arg1,arg2);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -13624,51 +16725,42 @@ SWIGINTERN PyObject *_wrap_VectorReal___setslice__(PyObject *SWIGUNUSEDPARM(self
   }
   
   resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorReal___delslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorReal___delitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::difference_type arg2 ;
-  std::vector<double >::difference_type arg3 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  ptrdiff_t val3 ;
-  int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorReal___delslice__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorReal___delitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___delslice__" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___delitem__" "', argument " "1"" of type '" "std::vector< double > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal___delitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal___delslice__" "', argument " "2"" of type '" "std::vector<double >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector<double >::difference_type >(val2);
-  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorReal___delslice__" "', argument " "3"" of type '" "std::vector<double >::difference_type""'");
-  } 
-  arg3 = static_cast< std::vector<double >::difference_type >(val3);
   try {
-    std_vector_Sl_double_Sg____delslice__(arg1,arg2,arg3);
+    std_vector_Sl_double_Sg____delitem____SWIG_1(arg1,arg2);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -13677,92 +16769,151 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorReal___delitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorReal___delitem__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        return _wrap_VectorReal___delitem____SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_VectorReal___delitem____SWIG_0(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorReal___delitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< double >::__delitem__(std::vector< double >::difference_type)\n"
+    "    std::vector< double >::__delitem__(PySliceObject *)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorReal___getitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::difference_type arg2 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  std::vector< double >::difference_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  std::vector< double >::value_type *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorReal___delitem__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorReal___getitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___delitem__" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___getitem__" "', argument " "1"" of type '" "std::vector< double > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal___delitem__" "', argument " "2"" of type '" "std::vector<double >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal___getitem__" "', argument " "2"" of type '" "std::vector< double >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<double >::difference_type >(val2);
+  arg2 = static_cast< std::vector< double >::difference_type >(val2);
   try {
-    std_vector_Sl_double_Sg____delitem__(arg1,arg2);
+    result = (std::vector< double >::value_type *) &std_vector_Sl_double_Sg____getitem____SWIG_1((std::vector< double > const *)arg1,arg2);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
   
-  resultobj = SWIG_Py_Void();
+  resultobj = SWIG_From_double(static_cast< double >(*result));
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorReal___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::difference_type arg2 ;
-  std::vector<double >::value_type *result = 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
+SWIGINTERN PyObject *_wrap_VectorReal___getitem__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorReal___getitem__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___getitem__" "', argument " "1"" of type '" "std::vector<double > const *""'"); 
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal___getitem__" "', argument " "2"" of type '" "std::vector<double >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector<double >::difference_type >(val2);
-  try {
-    {
-      std::vector<double >::value_type const &_result_ref = std_vector_Sl_double_Sg____getitem__((std::vector<double > const *)arg1,arg2);
-      result = (std::vector<double >::value_type *) &_result_ref;
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        return _wrap_VectorReal___getitem____SWIG_0(self, args);
+      }
     }
   }
-  catch(std::out_of_range &_e) {
-    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_VectorReal___getitem____SWIG_1(self, args);
+      }
+    }
   }
   
-  resultobj = SWIG_From_double(static_cast< double >(*result));
-  return resultobj;
 fail:
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorReal___getitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< double >::__getitem__(PySliceObject *)\n"
+    "    std::vector< double >::__getitem__(std::vector< double >::difference_type) const\n");
+  return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorReal___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorReal___setitem____SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::difference_type arg2 ;
-  std::vector<double >::value_type *arg3 = 0 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  std::vector< double >::difference_type arg2 ;
+  std::vector< double >::value_type *arg3 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
-  std::vector<double >::value_type temp3 ;
+  std::vector< double >::value_type temp3 ;
   double val3 ;
   int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
@@ -13770,24 +16921,24 @@ SWIGINTERN PyObject *_wrap_VectorReal___setitem__(PyObject *SWIGUNUSEDPARM(self)
   PyObject * obj2 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:VectorReal___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___setitem__" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal___setitem__" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal___setitem__" "', argument " "2"" of type '" "std::vector<double >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal___setitem__" "', argument " "2"" of type '" "std::vector< double >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<double >::difference_type >(val2);
+  arg2 = static_cast< std::vector< double >::difference_type >(val2);
   ecode3 = SWIG_AsVal_double(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorReal___setitem__" "', argument " "3"" of type '" "std::vector<double >::value_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorReal___setitem__" "', argument " "3"" of type '" "std::vector< double >::value_type""'");
   } 
-  temp3 = static_cast< std::vector<double >::value_type >(val3);
+  temp3 = static_cast< std::vector< double >::value_type >(val3);
   arg3 = &temp3;
   try {
-    std_vector_Sl_double_Sg____setitem__(arg1,arg2,(double const &)*arg3);
+    std_vector_Sl_double_Sg____setitem____SWIG_2(arg1,arg2,(double const &)*arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -13800,29 +16951,130 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_VectorReal___setitem__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        return _wrap_VectorReal___setitem____SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        int res = swig::asptr(argv[2], (std::vector< double,std::allocator< double > >**)(0));
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_VectorReal___setitem____SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_double(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_VectorReal___setitem____SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorReal___setitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< double >::__setitem__(PySliceObject *,std::vector< double,std::allocator< double > > const &)\n"
+    "    std::vector< double >::__setitem__(PySliceObject *)\n"
+    "    std::vector< double >::__setitem__(std::vector< double >::difference_type,std::vector< double >::value_type const &)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorReal_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< double >::value_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_pop" "', argument " "1"" of type '" "std::vector< double > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  try {
+    result = (std::vector< double >::value_type)std_vector_Sl_double_Sg__pop(arg1);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_From_double(static_cast< double >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_VectorReal_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::value_type *arg2 = 0 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  std::vector< double >::value_type *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  std::vector<double >::value_type temp2 ;
+  std::vector< double >::value_type temp2 ;
   double val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorReal_append",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_append" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_append" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal_append" "', argument " "2"" of type '" "std::vector<double >::value_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal_append" "', argument " "2"" of type '" "std::vector< double >::value_type""'");
   } 
-  temp2 = static_cast< std::vector<double >::value_type >(val2);
+  temp2 = static_cast< std::vector< double >::value_type >(val2);
   arg2 = &temp2;
   std_vector_Sl_double_Sg__append(arg1,(double const &)*arg2);
   resultobj = SWIG_Py_Void();
@@ -13834,11 +17086,11 @@ fail:
 
 SWIGINTERN PyObject *_wrap_new_VectorReal__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *result = 0 ;
+  std::vector< double > *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)":new_VectorReal")) SWIG_fail;
-  result = (std::vector<double > *)new std::vector<double >();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, SWIG_POINTER_NEW |  0 );
+  result = (std::vector< double > *)new std::vector< double >();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -13847,25 +17099,25 @@ fail:
 
 SWIGINTERN PyObject *_wrap_new_VectorReal__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = 0 ;
-  std::vector<double > *result = 0 ;
+  std::vector< double > *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
+  std::vector< double > *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_VectorReal",&obj0)) SWIG_fail;
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_VectorReal" "', argument " "1"" of type '" "std::vector<double > const &""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_VectorReal" "', argument " "1"" of type '" "std::vector< double > const &""'"); 
     }
     if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_VectorReal" "', argument " "1"" of type '" "std::vector<double > const &""'"); 
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_VectorReal" "', argument " "1"" of type '" "std::vector< double > const &""'"); 
     }
     arg1 = ptr;
   }
-  result = (std::vector<double > *)new std::vector<double >((std::vector<double > const &)*arg1);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, SWIG_POINTER_NEW |  0 );
+  result = (std::vector< double > *)new std::vector< double >((std::vector< double > const &)*arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, SWIG_POINTER_NEW |  0 );
   if (SWIG_IsNewObj(res1)) delete arg1;
   return resultobj;
 fail:
@@ -13876,19 +17128,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorReal_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  bool result;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_empty",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_empty" "', argument " "1"" of type '" "std::vector<double > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_empty" "', argument " "1"" of type '" "std::vector< double > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  result = (bool)((std::vector<double > const *)arg1)->empty();
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  result = (bool)((std::vector< double > const *)arg1)->empty();
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
@@ -13898,19 +17150,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorReal_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::size_type result;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< double >::size_type result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_size",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_size" "', argument " "1"" of type '" "std::vector<double > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_size" "', argument " "1"" of type '" "std::vector< double > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  result = ((std::vector<double > const *)arg1)->size();
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  result = ((std::vector< double > const *)arg1)->size();
   resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
@@ -13918,31 +17170,10 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorReal_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_clear" "', argument " "1"" of type '" "std::vector<double > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  (arg1)->clear();
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_VectorReal_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double > *arg2 = 0 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  std::vector< double > *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -13951,19 +17182,19 @@ SWIGINTERN PyObject *_wrap_VectorReal_swap(PyObject *SWIGUNUSEDPARM(self), PyObj
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorReal_swap",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_swap" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_swap" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t,  0 );
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t,  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorReal_swap" "', argument " "2"" of type '" "std::vector<double > &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorReal_swap" "', argument " "2"" of type '" "std::vector< double > &""'"); 
   }
   if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorReal_swap" "', argument " "2"" of type '" "std::vector<double > &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorReal_swap" "', argument " "2"" of type '" "std::vector< double > &""'"); 
   }
-  arg2 = reinterpret_cast< std::vector<double > * >(argp2);
+  arg2 = reinterpret_cast< std::vector< double > * >(argp2);
   (arg1)->swap(*arg2);
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -13972,360 +17203,157 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorReal_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  SwigValueWrapper<std::allocator<double > > result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_get_allocator" "', argument " "1"" of type '" "std::vector<double > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  result = ((std::vector<double > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector<double >::allocator_type(static_cast< const std::vector<double >::allocator_type& >(result))), SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t__allocator_type, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorReal_begin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorReal_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::iterator result;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< double >::iterator result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_begin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_begin" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_begin" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
   result = (arg1)->begin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<double >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorReal_begin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::const_iterator result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_begin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_begin" "', argument " "1"" of type '" "std::vector<double > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  result = ((std::vector<double > const *)arg1)->begin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<double >::const_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorReal_begin(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
-  
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator<double > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorReal_begin__SWIG_0(self, args);
-    }
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator<double > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorReal_begin__SWIG_1(self, args);
-    }
-  }
-  
-fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorReal_begin'.\n  Possible C/C++ prototypes are:\n    begin()\n    begin()\n");
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorReal_end__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::iterator result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_end",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_end" "', argument " "1"" of type '" "std::vector<double > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  result = (arg1)->end();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<double >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorReal_end__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::const_iterator result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_end",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_end" "', argument " "1"" of type '" "std::vector<double > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  result = ((std::vector<double > const *)arg1)->end();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<double >::const_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorReal_end(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
-  
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator<double > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorReal_end__SWIG_0(self, args);
-    }
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator<double > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorReal_end__SWIG_1(self, args);
-    }
-  }
-  
-fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorReal_end'.\n  Possible C/C++ prototypes are:\n    end()\n    end()\n");
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorReal_rbegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::reverse_iterator result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_rbegin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_rbegin" "', argument " "1"" of type '" "std::vector<double > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  result = (arg1)->rbegin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<double >::reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< double >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorReal_rbegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorReal_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::const_reverse_iterator result;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< double >::iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_rbegin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_end",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_rbegin" "', argument " "1"" of type '" "std::vector<double > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_end" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  result = ((std::vector<double > const *)arg1)->rbegin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<double >::const_reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  result = (arg1)->end();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< double >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorReal_rbegin(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
+SWIGINTERN PyObject *_wrap_VectorReal_rbegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< double >::reverse_iterator result;
   
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator<double > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorReal_rbegin__SWIG_0(self, args);
-    }
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator<double > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorReal_rbegin__SWIG_1(self, args);
-    }
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_rbegin",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_rbegin" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  result = (arg1)->rbegin();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< double >::reverse_iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
+  return resultobj;
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorReal_rbegin'.\n  Possible C/C++ prototypes are:\n    rbegin()\n    rbegin()\n");
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorReal_rend__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorReal_rend(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::reverse_iterator result;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< double >::reverse_iterator result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_rend",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_rend" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_rend" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
   result = (arg1)->rend();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<double >::reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< double >::reverse_iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorReal_rend__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorReal_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::const_reverse_iterator result;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_rend",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_rend" "', argument " "1"" of type '" "std::vector<double > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_clear" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  result = ((std::vector<double > const *)arg1)->rend();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<double >::const_reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorReal_rend(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
+SWIGINTERN PyObject *_wrap_VectorReal_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< double > > result;
   
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator<double > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorReal_rend__SWIG_0(self, args);
-    }
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator<double > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorReal_rend__SWIG_1(self, args);
-    }
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_get_allocator" "', argument " "1"" of type '" "std::vector< double > const *""'"); 
   }
-  
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  result = ((std::vector< double > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< double >::allocator_type(static_cast< const std::vector< double >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_double_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorReal_rend'.\n  Possible C/C++ prototypes are:\n    rend()\n    rend()\n");
   return NULL;
 }
 
 
 SWIGINTERN PyObject *_wrap_new_VectorReal__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double >::size_type arg1 ;
-  std::vector<double > *result = 0 ;
+  std::vector< double >::size_type arg1 ;
   size_t val1 ;
   int ecode1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< double > *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_VectorReal",&obj0)) SWIG_fail;
   ecode1 = SWIG_AsVal_size_t(obj0, &val1);
   if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorReal" "', argument " "1"" of type '" "std::vector<double >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorReal" "', argument " "1"" of type '" "std::vector< double >::size_type""'");
   } 
-  arg1 = static_cast< std::vector<double >::size_type >(val1);
-  result = (std::vector<double > *)new std::vector<double >(arg1);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, SWIG_POINTER_NEW |  0 );
+  arg1 = static_cast< std::vector< double >::size_type >(val1);
+  result = (std::vector< double > *)new std::vector< double >(arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -14334,17 +17362,17 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorReal_pop_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_pop_back",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_pop_back" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_pop_back" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
   (arg1)->pop_back();
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -14355,8 +17383,8 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorReal_resize__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::size_type arg2 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  std::vector< double >::size_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
@@ -14365,16 +17393,16 @@ SWIGINTERN PyObject *_wrap_VectorReal_resize__SWIG_0(PyObject *SWIGUNUSEDPARM(se
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorReal_resize",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_resize" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_resize" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
   ecode2 = SWIG_AsVal_size_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal_resize" "', argument " "2"" of type '" "std::vector<double >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal_resize" "', argument " "2"" of type '" "std::vector< double >::size_type""'");
   } 
-  arg2 = static_cast< std::vector<double >::size_type >(val2);
+  arg2 = static_cast< std::vector< double >::size_type >(val2);
   (arg1)->resize(arg2);
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -14385,36 +17413,36 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorReal_erase__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::iterator arg2 ;
-  std::vector<double >::iterator result;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  std::vector< double >::iterator arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
   int res2 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  std::vector< double >::iterator result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorReal_erase",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_erase" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_erase" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal_erase" "', argument " "2"" of type '" "std::vector<double >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal_erase" "', argument " "2"" of type '" "std::vector< double >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<double >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<double >::iterator > *>(iter2);
+    swig::SwigPyIterator_T<std::vector< double >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< double >::iterator > *>(iter2);
     if (iter_t) {
       arg2 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal_erase" "', argument " "2"" of type '" "std::vector<double >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal_erase" "', argument " "2"" of type '" "std::vector< double >::iterator""'");
     }
   }
-  result = (arg1)->erase(arg2);
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<double >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  result = std_vector_Sl_double_Sg__erase__SWIG_0(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< double >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
@@ -14423,51 +17451,51 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorReal_erase__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::iterator arg2 ;
-  std::vector<double >::iterator arg3 ;
-  std::vector<double >::iterator result;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  std::vector< double >::iterator arg2 ;
+  std::vector< double >::iterator arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
   int res2 ;
-  swig::PySwigIterator *iter3 = 0 ;
+  swig::SwigPyIterator *iter3 = 0 ;
   int res3 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  std::vector< double >::iterator result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:VectorReal_erase",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_erase" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_erase" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal_erase" "', argument " "2"" of type '" "std::vector<double >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal_erase" "', argument " "2"" of type '" "std::vector< double >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<double >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<double >::iterator > *>(iter2);
+    swig::SwigPyIterator_T<std::vector< double >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< double >::iterator > *>(iter2);
     if (iter_t) {
       arg2 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal_erase" "', argument " "2"" of type '" "std::vector<double >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal_erase" "', argument " "2"" of type '" "std::vector< double >::iterator""'");
     }
   }
-  res3 = SWIG_ConvertPtr(obj2, SWIG_as_voidptrptr(&iter3), swig::PySwigIterator::descriptor(), 0);
+  res3 = SWIG_ConvertPtr(obj2, SWIG_as_voidptrptr(&iter3), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res3) || !iter3) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal_erase" "', argument " "3"" of type '" "std::vector<double >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal_erase" "', argument " "3"" of type '" "std::vector< double >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<double >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<double >::iterator > *>(iter3);
+    swig::SwigPyIterator_T<std::vector< double >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< double >::iterator > *>(iter3);
     if (iter_t) {
       arg3 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal_erase" "', argument " "3"" of type '" "std::vector<double >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal_erase" "', argument " "3"" of type '" "std::vector< double >::iterator""'");
     }
   }
-  result = (arg1)->erase(arg2,arg3);
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<double >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  result = std_vector_Sl_double_Sg__erase__SWIG_1(arg1,arg2,arg3);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< double >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
@@ -14475,23 +17503,25 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_VectorReal_erase(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator<double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<double >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< double >::iterator > *>(iter) != 0));
       if (_v) {
         return _wrap_VectorReal_erase__SWIG_0(self, args);
       }
@@ -14499,16 +17529,16 @@ SWIGINTERN PyObject *_wrap_VectorReal_erase(PyObject *self, PyObject *args) {
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator<double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<double >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< double >::iterator > *>(iter) != 0));
       if (_v) {
-        swig::PySwigIterator *iter = 0;
-        int res = SWIG_ConvertPtr(argv[2], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-        _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<double >::iterator > *>(iter) != 0));
+        swig::SwigPyIterator *iter = 0;
+        int res = SWIG_ConvertPtr(argv[2], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+        _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< double >::iterator > *>(iter) != 0));
         if (_v) {
           return _wrap_VectorReal_erase__SWIG_1(self, args);
         }
@@ -14517,38 +17547,41 @@ SWIGINTERN PyObject *_wrap_VectorReal_erase(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorReal_erase'.\n  Possible C/C++ prototypes are:\n    erase(std::vector<double >::iterator)\n    erase(std::vector<double >::iterator,std::vector<double >::iterator)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorReal_erase'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< double >::erase(std::vector< double >::iterator)\n"
+    "    std::vector< double >::erase(std::vector< double >::iterator,std::vector< double >::iterator)\n");
+  return 0;
 }
 
 
 SWIGINTERN PyObject *_wrap_new_VectorReal__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double >::size_type arg1 ;
-  std::vector<double >::value_type *arg2 = 0 ;
-  std::vector<double > *result = 0 ;
+  std::vector< double >::size_type arg1 ;
+  std::vector< double >::value_type *arg2 = 0 ;
   size_t val1 ;
   int ecode1 = 0 ;
-  std::vector<double >::value_type temp2 ;
+  std::vector< double >::value_type temp2 ;
   double val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  std::vector< double > *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:new_VectorReal",&obj0,&obj1)) SWIG_fail;
   ecode1 = SWIG_AsVal_size_t(obj0, &val1);
   if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorReal" "', argument " "1"" of type '" "std::vector<double >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorReal" "', argument " "1"" of type '" "std::vector< double >::size_type""'");
   } 
-  arg1 = static_cast< std::vector<double >::size_type >(val1);
+  arg1 = static_cast< std::vector< double >::size_type >(val1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_VectorReal" "', argument " "2"" of type '" "std::vector<double >::value_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_VectorReal" "', argument " "2"" of type '" "std::vector< double >::value_type""'");
   } 
-  temp2 = static_cast< std::vector<double >::value_type >(val2);
+  temp2 = static_cast< std::vector< double >::value_type >(val2);
   arg2 = &temp2;
-  result = (std::vector<double > *)new std::vector<double >(arg1,(std::vector<double >::value_type const &)*arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, SWIG_POINTER_NEW |  0 );
+  result = (std::vector< double > *)new std::vector< double >(arg1,(std::vector< double >::value_type const &)*arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -14556,13 +17589,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_VectorReal(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 0) {
@@ -14580,7 +17615,7 @@ SWIGINTERN PyObject *_wrap_new_VectorReal(PyObject *self, PyObject *args) {
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator<double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_VectorReal__SWIG_1(self, args);
@@ -14604,36 +17639,41 @@ SWIGINTERN PyObject *_wrap_new_VectorReal(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_VectorReal'.\n  Possible C/C++ prototypes are:\n    std::vector<(double)>()\n    std::vector<(double)>(std::vector<double > const &)\n    std::vector<(double)>(std::vector<double >::size_type)\n    std::vector<(double)>(std::vector<double >::size_type,std::vector<double >::value_type const &)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_VectorReal'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< double >::vector()\n"
+    "    std::vector< double >::vector(std::vector< double > const &)\n"
+    "    std::vector< double >::vector(std::vector< double >::size_type)\n"
+    "    std::vector< double >::vector(std::vector< double >::size_type,std::vector< double >::value_type const &)\n");
+  return 0;
 }
 
 
 SWIGINTERN PyObject *_wrap_VectorReal_push_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::value_type *arg2 = 0 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  std::vector< double >::value_type *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  std::vector<double >::value_type temp2 ;
+  std::vector< double >::value_type temp2 ;
   double val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorReal_push_back",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_push_back" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_push_back" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal_push_back" "', argument " "2"" of type '" "std::vector<double >::value_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal_push_back" "', argument " "2"" of type '" "std::vector< double >::value_type""'");
   } 
-  temp2 = static_cast< std::vector<double >::value_type >(val2);
+  temp2 = static_cast< std::vector< double >::value_type >(val2);
   arg2 = &temp2;
-  (arg1)->push_back((std::vector<double >::value_type const &)*arg2);
+  (arg1)->push_back((std::vector< double >::value_type const &)*arg2);
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -14643,22 +17683,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorReal_front(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::value_type *result = 0 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< double >::value_type *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_front",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_front" "', argument " "1"" of type '" "std::vector<double > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  {
-    std::vector<double >::value_type const &_result_ref = ((std::vector<double > const *)arg1)->front();
-    result = (std::vector<double >::value_type *) &_result_ref;
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_front" "', argument " "1"" of type '" "std::vector< double > const *""'"); 
   }
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  result = (std::vector< double >::value_type *) &((std::vector< double > const *)arg1)->front();
   resultobj = SWIG_From_double(static_cast< double >(*result));
   return resultobj;
 fail:
@@ -14668,22 +17705,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorReal_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::value_type *result = 0 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< double >::value_type *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_back",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_back" "', argument " "1"" of type '" "std::vector<double > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  {
-    std::vector<double >::value_type const &_result_ref = ((std::vector<double > const *)arg1)->back();
-    result = (std::vector<double >::value_type *) &_result_ref;
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_back" "', argument " "1"" of type '" "std::vector< double > const *""'"); 
   }
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  result = (std::vector< double >::value_type *) &((std::vector< double > const *)arg1)->back();
   resultobj = SWIG_From_double(static_cast< double >(*result));
   return resultobj;
 fail:
@@ -14693,14 +17727,14 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorReal_assign(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::size_type arg2 ;
-  std::vector<double >::value_type *arg3 = 0 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  std::vector< double >::size_type arg2 ;
+  std::vector< double >::value_type *arg3 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
   int ecode2 = 0 ;
-  std::vector<double >::value_type temp3 ;
+  std::vector< double >::value_type temp3 ;
   double val3 ;
   int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
@@ -14708,23 +17742,23 @@ SWIGINTERN PyObject *_wrap_VectorReal_assign(PyObject *SWIGUNUSEDPARM(self), PyO
   PyObject * obj2 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:VectorReal_assign",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_assign" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_assign" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
   ecode2 = SWIG_AsVal_size_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal_assign" "', argument " "2"" of type '" "std::vector<double >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal_assign" "', argument " "2"" of type '" "std::vector< double >::size_type""'");
   } 
-  arg2 = static_cast< std::vector<double >::size_type >(val2);
+  arg2 = static_cast< std::vector< double >::size_type >(val2);
   ecode3 = SWIG_AsVal_double(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorReal_assign" "', argument " "3"" of type '" "std::vector<double >::value_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorReal_assign" "', argument " "3"" of type '" "std::vector< double >::value_type""'");
   } 
-  temp3 = static_cast< std::vector<double >::value_type >(val3);
+  temp3 = static_cast< std::vector< double >::value_type >(val3);
   arg3 = &temp3;
-  (arg1)->assign(arg2,(std::vector<double >::value_type const &)*arg3);
+  (arg1)->assign(arg2,(std::vector< double >::value_type const &)*arg3);
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -14734,14 +17768,14 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorReal_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::size_type arg2 ;
-  std::vector<double >::value_type *arg3 = 0 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  std::vector< double >::size_type arg2 ;
+  std::vector< double >::value_type *arg3 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
   int ecode2 = 0 ;
-  std::vector<double >::value_type temp3 ;
+  std::vector< double >::value_type temp3 ;
   double val3 ;
   int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
@@ -14749,23 +17783,23 @@ SWIGINTERN PyObject *_wrap_VectorReal_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(se
   PyObject * obj2 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:VectorReal_resize",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_resize" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_resize" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
   ecode2 = SWIG_AsVal_size_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal_resize" "', argument " "2"" of type '" "std::vector<double >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal_resize" "', argument " "2"" of type '" "std::vector< double >::size_type""'");
   } 
-  arg2 = static_cast< std::vector<double >::size_type >(val2);
+  arg2 = static_cast< std::vector< double >::size_type >(val2);
   ecode3 = SWIG_AsVal_double(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorReal_resize" "', argument " "3"" of type '" "std::vector<double >::value_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorReal_resize" "', argument " "3"" of type '" "std::vector< double >::value_type""'");
   } 
-  temp3 = static_cast< std::vector<double >::value_type >(val3);
+  temp3 = static_cast< std::vector< double >::value_type >(val3);
   arg3 = &temp3;
-  (arg1)->resize(arg2,(std::vector<double >::value_type const &)*arg3);
+  (arg1)->resize(arg2,(std::vector< double >::value_type const &)*arg3);
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -14774,18 +17808,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_VectorReal_resize(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator<double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -14799,7 +17835,7 @@ SWIGINTERN PyObject *_wrap_VectorReal_resize(PyObject *self, PyObject *args) {
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator<double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -14819,54 +17855,57 @@ SWIGINTERN PyObject *_wrap_VectorReal_resize(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorReal_resize'.\n  Possible C/C++ prototypes are:\n    resize(std::vector<double >::size_type)\n    resize(std::vector<double >::size_type,std::vector<double >::value_type const &)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorReal_resize'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< double >::resize(std::vector< double >::size_type)\n"
+    "    std::vector< double >::resize(std::vector< double >::size_type,std::vector< double >::value_type const &)\n");
+  return 0;
 }
 
 
 SWIGINTERN PyObject *_wrap_VectorReal_insert__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::iterator arg2 ;
-  std::vector<double >::value_type *arg3 = 0 ;
-  std::vector<double >::iterator result;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  std::vector< double >::iterator arg2 ;
+  std::vector< double >::value_type *arg3 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
   int res2 ;
-  std::vector<double >::value_type temp3 ;
+  std::vector< double >::value_type temp3 ;
   double val3 ;
   int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  std::vector< double >::iterator result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:VectorReal_insert",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_insert" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_insert" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal_insert" "', argument " "2"" of type '" "std::vector<double >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal_insert" "', argument " "2"" of type '" "std::vector< double >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<double >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<double >::iterator > *>(iter2);
+    swig::SwigPyIterator_T<std::vector< double >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< double >::iterator > *>(iter2);
     if (iter_t) {
       arg2 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal_insert" "', argument " "2"" of type '" "std::vector<double >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal_insert" "', argument " "2"" of type '" "std::vector< double >::iterator""'");
     }
   }
   ecode3 = SWIG_AsVal_double(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorReal_insert" "', argument " "3"" of type '" "std::vector<double >::value_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorReal_insert" "', argument " "3"" of type '" "std::vector< double >::value_type""'");
   } 
-  temp3 = static_cast< std::vector<double >::value_type >(val3);
+  temp3 = static_cast< std::vector< double >::value_type >(val3);
   arg3 = &temp3;
-  result = (arg1)->insert(arg2,(std::vector<double >::value_type const &)*arg3);
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<double >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  result = std_vector_Sl_double_Sg__insert__SWIG_0(arg1,arg2,(double const &)*arg3);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< double >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
@@ -14875,17 +17914,17 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorReal_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::iterator arg2 ;
-  std::vector<double >::size_type arg3 ;
-  std::vector<double >::value_type *arg4 = 0 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  std::vector< double >::iterator arg2 ;
+  std::vector< double >::size_type arg3 ;
+  std::vector< double >::value_type *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
   int res2 ;
   size_t val3 ;
   int ecode3 = 0 ;
-  std::vector<double >::value_type temp4 ;
+  std::vector< double >::value_type temp4 ;
   double val4 ;
   int ecode4 = 0 ;
   PyObject * obj0 = 0 ;
@@ -14894,34 +17933,34 @@ SWIGINTERN PyObject *_wrap_VectorReal_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(se
   PyObject * obj3 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorReal_insert",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_insert" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_insert" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal_insert" "', argument " "2"" of type '" "std::vector<double >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal_insert" "', argument " "2"" of type '" "std::vector< double >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<double >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<double >::iterator > *>(iter2);
+    swig::SwigPyIterator_T<std::vector< double >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< double >::iterator > *>(iter2);
     if (iter_t) {
       arg2 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal_insert" "', argument " "2"" of type '" "std::vector<double >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorReal_insert" "', argument " "2"" of type '" "std::vector< double >::iterator""'");
     }
   }
   ecode3 = SWIG_AsVal_size_t(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorReal_insert" "', argument " "3"" of type '" "std::vector<double >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorReal_insert" "', argument " "3"" of type '" "std::vector< double >::size_type""'");
   } 
-  arg3 = static_cast< std::vector<double >::size_type >(val3);
+  arg3 = static_cast< std::vector< double >::size_type >(val3);
   ecode4 = SWIG_AsVal_double(obj3, &val4);
   if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "VectorReal_insert" "', argument " "4"" of type '" "std::vector<double >::value_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "VectorReal_insert" "', argument " "4"" of type '" "std::vector< double >::value_type""'");
   } 
-  temp4 = static_cast< std::vector<double >::value_type >(val4);
+  temp4 = static_cast< std::vector< double >::value_type >(val4);
   arg4 = &temp4;
-  (arg1)->insert(arg2,arg3,(std::vector<double >::value_type const &)*arg4);
+  std_vector_Sl_double_Sg__insert__SWIG_1(arg1,arg2,arg3,(double const &)*arg4);
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -14930,23 +17969,25 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_VectorReal_insert(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[5];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[5] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator<double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<double >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< double >::iterator > *>(iter) != 0));
       if (_v) {
         {
           int res = SWIG_AsVal_double(argv[2], NULL);
@@ -14960,12 +18001,12 @@ SWIGINTERN PyObject *_wrap_VectorReal_insert(PyObject *self, PyObject *args) {
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<double,std::allocator<double > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< double,std::allocator< double > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<double >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< double >::iterator > *>(iter) != 0));
       if (_v) {
         {
           int res = SWIG_AsVal_size_t(argv[2], NULL);
@@ -14985,15 +18026,18 @@ SWIGINTERN PyObject *_wrap_VectorReal_insert(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorReal_insert'.\n  Possible C/C++ prototypes are:\n    insert(std::vector<double >::iterator,std::vector<double >::value_type const &)\n    insert(std::vector<double >::iterator,std::vector<double >::size_type,std::vector<double >::value_type const &)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorReal_insert'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< double >::insert(std::vector< double >::iterator,std::vector< double >::value_type const &)\n"
+    "    std::vector< double >::insert(std::vector< double >::iterator,std::vector< double >::size_type,std::vector< double >::value_type const &)\n");
+  return 0;
 }
 
 
 SWIGINTERN PyObject *_wrap_VectorReal_reserve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::size_type arg2 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
+  std::vector< double >::size_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
@@ -15002,16 +18046,16 @@ SWIGINTERN PyObject *_wrap_VectorReal_reserve(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorReal_reserve",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_reserve" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_reserve" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
   ecode2 = SWIG_AsVal_size_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal_reserve" "', argument " "2"" of type '" "std::vector<double >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorReal_reserve" "', argument " "2"" of type '" "std::vector< double >::size_type""'");
   } 
-  arg2 = static_cast< std::vector<double >::size_type >(val2);
+  arg2 = static_cast< std::vector< double >::size_type >(val2);
   (arg1)->reserve(arg2);
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -15022,19 +18066,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorReal_capacity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
-  std::vector<double >::size_type result;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< double >::size_type result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorReal_capacity",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_capacity" "', argument " "1"" of type '" "std::vector<double > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorReal_capacity" "', argument " "1"" of type '" "std::vector< double > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
-  result = ((std::vector<double > const *)arg1)->capacity();
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
+  result = ((std::vector< double > const *)arg1)->capacity();
   resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
@@ -15044,222 +18088,552 @@ fail:
 
 SWIGINTERN PyObject *_wrap_delete_VectorReal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<double > *arg1 = (std::vector<double > *) 0 ;
+  std::vector< double > *arg1 = (std::vector< double > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:delete_VectorReal",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, SWIG_POINTER_DISOWN |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_VectorReal" "', argument " "1"" of type '" "std::vector<double > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_VectorReal" "', argument " "1"" of type '" "std::vector< double > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<double > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< double > * >(argp1);
   delete arg1;
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *VectorReal_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *obj;
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
+  SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, SWIG_NewClientData(obj));
+  return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_VectorInt_iterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  PyObject **arg2 = (PyObject **) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  swig::SwigPyIterator *result = 0 ;
+  
+  arg2 = &obj0;
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_iterator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_iterator" "', argument " "1"" of type '" "std::vector< int > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  result = (swig::SwigPyIterator *)std_vector_Sl_int_Sg__iterator(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorInt___nonzero__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  bool result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorInt___nonzero__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___nonzero__" "', argument " "1"" of type '" "std::vector< int > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  result = (bool)std_vector_Sl_int_Sg____nonzero__((std::vector< int > const *)arg1);
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorInt___bool__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  bool result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorInt___bool__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___bool__" "', argument " "1"" of type '" "std::vector< int > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  result = (bool)std_vector_Sl_int_Sg____bool__((std::vector< int > const *)arg1);
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorInt___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< int >::size_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorInt___len__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___len__" "', argument " "1"" of type '" "std::vector< int > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  result = std_vector_Sl_int_Sg____len__((std::vector< int > const *)arg1);
+  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorInt___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  std::vector< int >::difference_type arg2 ;
+  std::vector< int >::difference_type arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  std::vector< int,std::allocator< int > > *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorInt___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___getslice__" "', argument " "1"" of type '" "std::vector< int > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt___getslice__" "', argument " "2"" of type '" "std::vector< int >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< int >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorInt___getslice__" "', argument " "3"" of type '" "std::vector< int >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< int >::difference_type >(val3);
+  try {
+    result = (std::vector< int,std::allocator< int > > *)std_vector_Sl_int_Sg____getslice__(arg1,arg2,arg3);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorInt___setslice____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  std::vector< int >::difference_type arg2 ;
+  std::vector< int >::difference_type arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorInt___setslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___setslice__" "', argument " "1"" of type '" "std::vector< int > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt___setslice__" "', argument " "2"" of type '" "std::vector< int >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< int >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorInt___setslice__" "', argument " "3"" of type '" "std::vector< int >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< int >::difference_type >(val3);
+  try {
+    std_vector_Sl_int_Sg____setslice____SWIG_0(arg1,arg2,arg3);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorInt___setslice____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  std::vector< int >::difference_type arg2 ;
+  std::vector< int >::difference_type arg3 ;
+  std::vector< int,std::allocator< int > > *arg4 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
+  int res4 = SWIG_OLDOBJ ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorInt___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___setslice__" "', argument " "1"" of type '" "std::vector< int > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt___setslice__" "', argument " "2"" of type '" "std::vector< int >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< int >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorInt___setslice__" "', argument " "3"" of type '" "std::vector< int >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< int >::difference_type >(val3);
+  {
+    std::vector< int,std::allocator< int > > *ptr = (std::vector< int,std::allocator< int > > *)0;
+    res4 = swig::asptr(obj3, &ptr);
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorInt___setslice__" "', argument " "4"" of type '" "std::vector< int,std::allocator< int > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorInt___setslice__" "', argument " "4"" of type '" "std::vector< int,std::allocator< int > > const &""'"); 
+    }
+    arg4 = ptr;
+  }
+  try {
+    std_vector_Sl_int_Sg____setslice____SWIG_1(arg1,arg2,arg3,(std::vector< int,std::allocator< int > > const &)*arg4);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
+  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
 
-SWIGINTERN PyObject *VectorReal_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
-  SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t, SWIG_NewClientData(obj));
-  return SWIG_Py_Void();
-}
-
-SWIGINTERN PyObject *_wrap_VectorInt_iterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  PyObject **arg2 = (PyObject **) 0 ;
-  swig::PySwigIterator *result = 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
+SWIGINTERN PyObject *_wrap_VectorInt___setslice__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[5] = {
+    0
+  };
+  Py_ssize_t ii;
   
-  arg2 = &obj0;
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_iterator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_iterator" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 4) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  result = (swig::PySwigIterator *)std_vector_Sl_int_Sg__iterator(arg1,arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__PySwigIterator, SWIG_POINTER_OWN |  0 );
-  return resultobj;
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_ptrdiff_t(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_VectorInt___setslice____SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_ptrdiff_t(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          int res = swig::asptr(argv[3], (std::vector< int,std::allocator< int > >**)(0));
+          _v = SWIG_CheckState(res);
+          if (_v) {
+            return _wrap_VectorInt___setslice____SWIG_1(self, args);
+          }
+        }
+      }
+    }
+  }
+  
 fail:
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorInt___setslice__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< int >::__setslice__(std::vector< int >::difference_type,std::vector< int >::difference_type)\n"
+    "    std::vector< int >::__setslice__(std::vector< int >::difference_type,std::vector< int >::difference_type,std::vector< int,std::allocator< int > > const &)\n");
+  return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorInt___nonzero__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorInt___delslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  bool result;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  std::vector< int >::difference_type arg2 ;
+  std::vector< int >::difference_type arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
+  ptrdiff_t val3 ;
+  int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorInt___nonzero__",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorInt___delslice__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___nonzero__" "', argument " "1"" of type '" "std::vector<int > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___delslice__" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  result = (bool)std_vector_Sl_int_Sg____nonzero__((std::vector<int > const *)arg1);
-  resultobj = SWIG_From_bool(static_cast< bool >(result));
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt___delslice__" "', argument " "2"" of type '" "std::vector< int >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< int >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorInt___delslice__" "', argument " "3"" of type '" "std::vector< int >::difference_type""'");
+  } 
+  arg3 = static_cast< std::vector< int >::difference_type >(val3);
+  try {
+    std_vector_Sl_int_Sg____delslice__(arg1,arg2,arg3);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorInt___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorInt___delitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::size_type result;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  std::vector< int >::difference_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  ptrdiff_t val2 ;
+  int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorInt___len__",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorInt___delitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___len__" "', argument " "1"" of type '" "std::vector<int > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___delitem__" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  result = std_vector_Sl_int_Sg____len__((std::vector<int > const *)arg1);
-  resultobj = SWIG_From_size_t(static_cast< size_t >(result));
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt___delitem__" "', argument " "2"" of type '" "std::vector< int >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< int >::difference_type >(val2);
+  try {
+    std_vector_Sl_int_Sg____delitem____SWIG_0(arg1,arg2);
+  }
+  catch(std::out_of_range &_e) {
+    SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
+  }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
+  
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorInt_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorInt___getitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::value_type result;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  std::vector< int,std::allocator< int > > *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_pop",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorInt___getitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_pop" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___getitem__" "', argument " "1"" of type '" "std::vector< int > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt___getitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
   try {
-    result = (std::vector<int >::value_type)std_vector_Sl_int_Sg__pop(arg1);
+    result = (std::vector< int,std::allocator< int > > *)std_vector_Sl_int_Sg____getitem____SWIG_0(arg1,arg2);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
-  resultobj = SWIG_From_int(static_cast< int >(result));
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorInt___getslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorInt___setitem____SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::difference_type arg2 ;
-  std::vector<int >::difference_type arg3 ;
-  std::vector<int,std::allocator<int > > *result = 0 ;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
+  std::vector< int,std::allocator< int > > *arg3 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  ptrdiff_t val3 ;
-  int ecode3 = 0 ;
+  int res3 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorInt___getslice__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorInt___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___getslice__" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___setitem__" "', argument " "1"" of type '" "std::vector< int > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt___setitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
+  }
+  {
+    std::vector< int,std::allocator< int > > *ptr = (std::vector< int,std::allocator< int > > *)0;
+    res3 = swig::asptr(obj2, &ptr);
+    if (!SWIG_IsOK(res3)) {
+      SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VectorInt___setitem__" "', argument " "3"" of type '" "std::vector< int,std::allocator< int > > const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorInt___setitem__" "', argument " "3"" of type '" "std::vector< int,std::allocator< int > > const &""'"); 
+    }
+    arg3 = ptr;
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt___getslice__" "', argument " "2"" of type '" "std::vector<int >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector<int >::difference_type >(val2);
-  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorInt___getslice__" "', argument " "3"" of type '" "std::vector<int >::difference_type""'");
-  } 
-  arg3 = static_cast< std::vector<int >::difference_type >(val3);
   try {
-    result = (std::vector<int,std::allocator<int > > *)std_vector_Sl_int_Sg____getslice__(arg1,arg2,arg3);
+    std_vector_Sl_int_Sg____setitem____SWIG_0(arg1,arg2,(std::vector< int,std::allocator< int > > const &)*arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res3)) delete arg3;
   return resultobj;
 fail:
+  if (SWIG_IsNewObj(res3)) delete arg3;
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorInt___setslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorInt___setitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::difference_type arg2 ;
-  std::vector<int >::difference_type arg3 ;
-  std::vector<int,std::allocator<int > > *arg4 = 0 ;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  ptrdiff_t val3 ;
-  int ecode3 = 0 ;
-  int res4 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorInt___setslice__",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorInt___setitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___setslice__" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___setitem__" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt___setslice__" "', argument " "2"" of type '" "std::vector<int >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector<int >::difference_type >(val2);
-  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorInt___setslice__" "', argument " "3"" of type '" "std::vector<int >::difference_type""'");
-  } 
-  arg3 = static_cast< std::vector<int >::difference_type >(val3);
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
   {
-    std::vector<int,std::allocator<int > > *ptr = (std::vector<int,std::allocator<int > > *)0;
-    res4 = swig::asptr(obj3, &ptr);
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "VectorInt___setslice__" "', argument " "4"" of type '" "std::vector<int,std::allocator<int > > const &""'"); 
-    }
-    if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorInt___setslice__" "', argument " "4"" of type '" "std::vector<int,std::allocator<int > > const &""'"); 
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt___setitem__" "', argument " "2"" of type '" "PySliceObject *""'");
     }
-    arg4 = ptr;
+    arg2 = (PySliceObject *) obj1;
   }
   try {
-    std_vector_Sl_int_Sg____setslice__(arg1,arg2,arg3,(std::vector<int,std::allocator<int > > const &)*arg4);
+    std_vector_Sl_int_Sg____setitem____SWIG_1(arg1,arg2);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
@@ -15269,51 +18643,42 @@ SWIGINTERN PyObject *_wrap_VectorInt___setslice__(PyObject *SWIGUNUSEDPARM(self)
   }
   
   resultobj = SWIG_Py_Void();
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return resultobj;
 fail:
-  if (SWIG_IsNewObj(res4)) delete arg4;
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorInt___delslice__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorInt___delitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::difference_type arg2 ;
-  std::vector<int >::difference_type arg3 ;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  PySliceObject *arg2 = (PySliceObject *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  ptrdiff_t val3 ;
-  int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorInt___delslice__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorInt___delitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___delslice__" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___delitem__" "', argument " "1"" of type '" "std::vector< int > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  {
+    if (!PySlice_Check(obj1)) {
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt___delitem__" "', argument " "2"" of type '" "PySliceObject *""'");
+    }
+    arg2 = (PySliceObject *) obj1;
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt___delslice__" "', argument " "2"" of type '" "std::vector<int >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector<int >::difference_type >(val2);
-  ecode3 = SWIG_AsVal_ptrdiff_t(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorInt___delslice__" "', argument " "3"" of type '" "std::vector<int >::difference_type""'");
-  } 
-  arg3 = static_cast< std::vector<int >::difference_type >(val3);
   try {
-    std_vector_Sl_int_Sg____delslice__(arg1,arg2,arg3);
+    std_vector_Sl_int_Sg____delitem____SWIG_1(arg1,arg2);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -15322,123 +18687,283 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorInt___delitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorInt___delitem__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        return _wrap_VectorInt___delitem____SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_VectorInt___delitem____SWIG_0(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorInt___delitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< int >::__delitem__(std::vector< int >::difference_type)\n"
+    "    std::vector< int >::__delitem__(PySliceObject *)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorInt___getitem____SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::difference_type arg2 ;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  std::vector< int >::difference_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  std::vector< int >::value_type *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorInt___delitem__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:VectorInt___getitem__",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___delitem__" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___getitem__" "', argument " "1"" of type '" "std::vector< int > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt___delitem__" "', argument " "2"" of type '" "std::vector<int >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt___getitem__" "', argument " "2"" of type '" "std::vector< int >::difference_type""'");
   } 
-  arg2 = static_cast< std::vector<int >::difference_type >(val2);
+  arg2 = static_cast< std::vector< int >::difference_type >(val2);
   try {
-    std_vector_Sl_int_Sg____delitem__(arg1,arg2);
+    result = (std::vector< int >::value_type *) &std_vector_Sl_int_Sg____getitem____SWIG_1((std::vector< int > const *)arg1,arg2);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
   
-  resultobj = SWIG_Py_Void();
+  resultobj = SWIG_From_int(static_cast< int >(*result));
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorInt___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorInt___getitem__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        return _wrap_VectorInt___getitem____SWIG_0(self, args);
+      }
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_VectorInt___getitem____SWIG_1(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorInt___getitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< int >::__getitem__(PySliceObject *)\n"
+    "    std::vector< int >::__getitem__(std::vector< int >::difference_type) const\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorInt___setitem____SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::difference_type arg2 ;
-  std::vector<int >::value_type *result = 0 ;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  std::vector< int >::difference_type arg2 ;
+  std::vector< int >::value_type *arg3 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   ptrdiff_t val2 ;
   int ecode2 = 0 ;
+  std::vector< int >::value_type temp3 ;
+  int val3 ;
+  int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:VectorInt___getitem__",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorInt___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___getitem__" "', argument " "1"" of type '" "std::vector<int > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___setitem__" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
   ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt___getitem__" "', argument " "2"" of type '" "std::vector<int >::difference_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt___setitem__" "', argument " "2"" of type '" "std::vector< int >::difference_type""'");
+  } 
+  arg2 = static_cast< std::vector< int >::difference_type >(val2);
+  ecode3 = SWIG_AsVal_int(obj2, &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorInt___setitem__" "', argument " "3"" of type '" "std::vector< int >::value_type""'");
   } 
-  arg2 = static_cast< std::vector<int >::difference_type >(val2);
+  temp3 = static_cast< std::vector< int >::value_type >(val3);
+  arg3 = &temp3;
   try {
-    {
-      std::vector<int >::value_type const &_result_ref = std_vector_Sl_int_Sg____getitem__((std::vector<int > const *)arg1,arg2);
-      result = (std::vector<int >::value_type *) &_result_ref;
-    }
+    std_vector_Sl_int_Sg____setitem____SWIG_2(arg1,arg2,(int const &)*arg3);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
   
-  resultobj = SWIG_From_int(static_cast< int >(*result));
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorInt___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorInt___setitem__(PyObject *self, PyObject *args) {
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 2) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        return _wrap_VectorInt___setitem____SWIG_1(self, args);
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        _v = PySlice_Check(argv[1]);
+      }
+      if (_v) {
+        int res = swig::asptr(argv[2], (std::vector< int,std::allocator< int > >**)(0));
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_VectorInt___setitem____SWIG_0(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 3) {
+    int _v;
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_ptrdiff_t(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        {
+          int res = SWIG_AsVal_int(argv[2], NULL);
+          _v = SWIG_CheckState(res);
+        }
+        if (_v) {
+          return _wrap_VectorInt___setitem____SWIG_2(self, args);
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorInt___setitem__'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< int >::__setitem__(PySliceObject *,std::vector< int,std::allocator< int > > const &)\n"
+    "    std::vector< int >::__setitem__(PySliceObject *)\n"
+    "    std::vector< int >::__setitem__(std::vector< int >::difference_type,std::vector< int >::value_type const &)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorInt_pop(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::difference_type arg2 ;
-  std::vector<int >::value_type *arg3 = 0 ;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  ptrdiff_t val2 ;
-  int ecode2 = 0 ;
-  std::vector<int >::value_type temp3 ;
-  int val3 ;
-  int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
+  std::vector< int >::value_type result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:VectorInt___setitem__",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_pop",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt___setitem__" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_pop" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  ecode2 = SWIG_AsVal_ptrdiff_t(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt___setitem__" "', argument " "2"" of type '" "std::vector<int >::difference_type""'");
-  } 
-  arg2 = static_cast< std::vector<int >::difference_type >(val2);
-  ecode3 = SWIG_AsVal_int(obj2, &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorInt___setitem__" "', argument " "3"" of type '" "std::vector<int >::value_type""'");
-  } 
-  temp3 = static_cast< std::vector<int >::value_type >(val3);
-  arg3 = &temp3;
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
   try {
-    std_vector_Sl_int_Sg____setitem__(arg1,arg2,(int const &)*arg3);
+    result = (std::vector< int >::value_type)std_vector_Sl_int_Sg__pop(arg1);
   }
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
   
-  resultobj = SWIG_Py_Void();
+  resultobj = SWIG_From_int(static_cast< int >(result));
   return resultobj;
 fail:
   return NULL;
@@ -15447,27 +18972,27 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorInt_append(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::value_type *arg2 = 0 ;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  std::vector< int >::value_type *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  std::vector<int >::value_type temp2 ;
+  std::vector< int >::value_type temp2 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorInt_append",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_append" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_append" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt_append" "', argument " "2"" of type '" "std::vector<int >::value_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt_append" "', argument " "2"" of type '" "std::vector< int >::value_type""'");
   } 
-  temp2 = static_cast< std::vector<int >::value_type >(val2);
+  temp2 = static_cast< std::vector< int >::value_type >(val2);
   arg2 = &temp2;
   std_vector_Sl_int_Sg__append(arg1,(int const &)*arg2);
   resultobj = SWIG_Py_Void();
@@ -15479,11 +19004,11 @@ fail:
 
 SWIGINTERN PyObject *_wrap_new_VectorInt__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *result = 0 ;
+  std::vector< int > *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)":new_VectorInt")) SWIG_fail;
-  result = (std::vector<int > *)new std::vector<int >();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, SWIG_POINTER_NEW |  0 );
+  result = (std::vector< int > *)new std::vector< int >();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -15492,25 +19017,25 @@ fail:
 
 SWIGINTERN PyObject *_wrap_new_VectorInt__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = 0 ;
-  std::vector<int > *result = 0 ;
+  std::vector< int > *arg1 = 0 ;
   int res1 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
+  std::vector< int > *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_VectorInt",&obj0)) SWIG_fail;
   {
-    std::vector<int,std::allocator<int > > *ptr = (std::vector<int,std::allocator<int > > *)0;
+    std::vector< int,std::allocator< int > > *ptr = (std::vector< int,std::allocator< int > > *)0;
     res1 = swig::asptr(obj0, &ptr);
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_VectorInt" "', argument " "1"" of type '" "std::vector<int > const &""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_VectorInt" "', argument " "1"" of type '" "std::vector< int > const &""'"); 
     }
     if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_VectorInt" "', argument " "1"" of type '" "std::vector<int > const &""'"); 
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_VectorInt" "', argument " "1"" of type '" "std::vector< int > const &""'"); 
     }
     arg1 = ptr;
   }
-  result = (std::vector<int > *)new std::vector<int >((std::vector<int > const &)*arg1);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, SWIG_POINTER_NEW |  0 );
+  result = (std::vector< int > *)new std::vector< int >((std::vector< int > const &)*arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, SWIG_POINTER_NEW |  0 );
   if (SWIG_IsNewObj(res1)) delete arg1;
   return resultobj;
 fail:
@@ -15521,19 +19046,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorInt_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  bool result;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_empty",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_empty" "', argument " "1"" of type '" "std::vector<int > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_empty" "', argument " "1"" of type '" "std::vector< int > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  result = (bool)((std::vector<int > const *)arg1)->empty();
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  result = (bool)((std::vector< int > const *)arg1)->empty();
   resultobj = SWIG_From_bool(static_cast< bool >(result));
   return resultobj;
 fail:
@@ -15543,19 +19068,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorInt_size(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::size_type result;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< int >::size_type result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_size",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_size" "', argument " "1"" of type '" "std::vector<int > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_size" "', argument " "1"" of type '" "std::vector< int > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  result = ((std::vector<int > const *)arg1)->size();
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  result = ((std::vector< int > const *)arg1)->size();
   resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
@@ -15563,31 +19088,10 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorInt_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_clear",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_clear" "', argument " "1"" of type '" "std::vector<int > *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  (arg1)->clear();
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_VectorInt_swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int > *arg2 = 0 ;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  std::vector< int > *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -15596,19 +19100,19 @@ SWIGINTERN PyObject *_wrap_VectorInt_swap(PyObject *SWIGUNUSEDPARM(self), PyObje
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorInt_swap",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_swap" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_swap" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t,  0 );
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t,  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorInt_swap" "', argument " "2"" of type '" "std::vector<int > &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VectorInt_swap" "', argument " "2"" of type '" "std::vector< int > &""'"); 
   }
   if (!argp2) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorInt_swap" "', argument " "2"" of type '" "std::vector<int > &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VectorInt_swap" "', argument " "2"" of type '" "std::vector< int > &""'"); 
   }
-  arg2 = reinterpret_cast< std::vector<int > * >(argp2);
+  arg2 = reinterpret_cast< std::vector< int > * >(argp2);
   (arg1)->swap(*arg2);
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -15617,360 +19121,157 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorInt_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  SwigValueWrapper<std::allocator<int > > result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_get_allocator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_get_allocator" "', argument " "1"" of type '" "std::vector<int > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  result = ((std::vector<int > const *)arg1)->get_allocator();
-  resultobj = SWIG_NewPointerObj((new std::vector<int >::allocator_type(static_cast< const std::vector<int >::allocator_type& >(result))), SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t__allocator_type, SWIG_POINTER_OWN |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorInt_begin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorInt_begin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::iterator result;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< int >::iterator result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_begin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_begin" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_begin" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
   result = (arg1)->begin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorInt_begin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::const_iterator result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_begin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_begin" "', argument " "1"" of type '" "std::vector<int > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  result = ((std::vector<int > const *)arg1)->begin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::const_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< int >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorInt_begin(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
-  
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorInt_begin__SWIG_0(self, args);
-    }
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorInt_begin__SWIG_1(self, args);
-    }
-  }
-  
-fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorInt_begin'.\n  Possible C/C++ prototypes are:\n    begin()\n    begin()\n");
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorInt_end__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorInt_end(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::iterator result;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< int >::iterator result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_end",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_end" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_end" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
   result = (arg1)->end();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorInt_end__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::const_iterator result;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_end",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_end" "', argument " "1"" of type '" "std::vector<int > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  result = ((std::vector<int > const *)arg1)->end();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::const_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< int >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorInt_end(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
-  
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorInt_end__SWIG_0(self, args);
-    }
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorInt_end__SWIG_1(self, args);
-    }
-  }
-  
-fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorInt_end'.\n  Possible C/C++ prototypes are:\n    end()\n    end()\n");
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorInt_rbegin__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorInt_rbegin(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::reverse_iterator result;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< int >::reverse_iterator result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_rbegin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_rbegin" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_rbegin" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
   result = (arg1)->rbegin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< int >::reverse_iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorInt_rbegin__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorInt_rend(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::const_reverse_iterator result;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< int >::reverse_iterator result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_rbegin",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_rend",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_rbegin" "', argument " "1"" of type '" "std::vector<int > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_rend" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  result = ((std::vector<int > const *)arg1)->rbegin();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::const_reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  result = (arg1)->rend();
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< int >::reverse_iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorInt_rbegin(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
-  
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorInt_rbegin__SWIG_0(self, args);
-    }
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorInt_rbegin__SWIG_1(self, args);
-    }
-  }
-  
-fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorInt_rbegin'.\n  Possible C/C++ prototypes are:\n    rbegin()\n    rbegin()\n");
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorInt_rend__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorInt_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::reverse_iterator result;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_rend",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_clear",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_rend" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_clear" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  result = (arg1)->rend();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  (arg1)->clear();
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorInt_rend__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_VectorInt_get_allocator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::const_reverse_iterator result;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  SwigValueWrapper< std::allocator< int > > result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_rend",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_get_allocator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_rend" "', argument " "1"" of type '" "std::vector<int > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_get_allocator" "', argument " "1"" of type '" "std::vector< int > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  result = ((std::vector<int > const *)arg1)->rend();
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::const_reverse_iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  result = ((std::vector< int > const *)arg1)->get_allocator();
+  resultobj = SWIG_NewPointerObj((new std::vector< int >::allocator_type(static_cast< const std::vector< int >::allocator_type& >(result))), SWIGTYPE_p_std__allocatorT_int_t, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorInt_rend(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[2];
-  int ii;
-  
-  if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 1); ii++) {
-    argv[ii] = PyTuple_GET_ITEM(args,ii);
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorInt_rend__SWIG_0(self, args);
-    }
-  }
-  if (argc == 1) {
-    int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_VectorInt_rend__SWIG_1(self, args);
-    }
-  }
-  
-fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorInt_rend'.\n  Possible C/C++ prototypes are:\n    rend()\n    rend()\n");
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_new_VectorInt__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int >::size_type arg1 ;
-  std::vector<int > *result = 0 ;
+  std::vector< int >::size_type arg1 ;
   size_t val1 ;
   int ecode1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< int > *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_VectorInt",&obj0)) SWIG_fail;
   ecode1 = SWIG_AsVal_size_t(obj0, &val1);
   if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorInt" "', argument " "1"" of type '" "std::vector<int >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorInt" "', argument " "1"" of type '" "std::vector< int >::size_type""'");
   } 
-  arg1 = static_cast< std::vector<int >::size_type >(val1);
-  result = (std::vector<int > *)new std::vector<int >(arg1);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, SWIG_POINTER_NEW |  0 );
+  arg1 = static_cast< std::vector< int >::size_type >(val1);
+  result = (std::vector< int > *)new std::vector< int >(arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -15979,17 +19280,17 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorInt_pop_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_pop_back",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_pop_back" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_pop_back" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
   (arg1)->pop_back();
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -16000,8 +19301,8 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorInt_resize__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::size_type arg2 ;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  std::vector< int >::size_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
@@ -16010,16 +19311,16 @@ SWIGINTERN PyObject *_wrap_VectorInt_resize__SWIG_0(PyObject *SWIGUNUSEDPARM(sel
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorInt_resize",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_resize" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_resize" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
   ecode2 = SWIG_AsVal_size_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt_resize" "', argument " "2"" of type '" "std::vector<int >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt_resize" "', argument " "2"" of type '" "std::vector< int >::size_type""'");
   } 
-  arg2 = static_cast< std::vector<int >::size_type >(val2);
+  arg2 = static_cast< std::vector< int >::size_type >(val2);
   (arg1)->resize(arg2);
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -16030,36 +19331,36 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorInt_erase__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::iterator arg2 ;
-  std::vector<int >::iterator result;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  std::vector< int >::iterator arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
   int res2 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  std::vector< int >::iterator result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorInt_erase",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_erase" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_erase" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt_erase" "', argument " "2"" of type '" "std::vector<int >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt_erase" "', argument " "2"" of type '" "std::vector< int >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<int >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<int >::iterator > *>(iter2);
+    swig::SwigPyIterator_T<std::vector< int >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< int >::iterator > *>(iter2);
     if (iter_t) {
       arg2 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt_erase" "', argument " "2"" of type '" "std::vector<int >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt_erase" "', argument " "2"" of type '" "std::vector< int >::iterator""'");
     }
   }
-  result = (arg1)->erase(arg2);
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  result = std_vector_Sl_int_Sg__erase__SWIG_0(arg1,arg2);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< int >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
@@ -16068,51 +19369,51 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorInt_erase__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::iterator arg2 ;
-  std::vector<int >::iterator arg3 ;
-  std::vector<int >::iterator result;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  std::vector< int >::iterator arg2 ;
+  std::vector< int >::iterator arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
   int res2 ;
-  swig::PySwigIterator *iter3 = 0 ;
+  swig::SwigPyIterator *iter3 = 0 ;
   int res3 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  std::vector< int >::iterator result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:VectorInt_erase",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_erase" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_erase" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt_erase" "', argument " "2"" of type '" "std::vector<int >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt_erase" "', argument " "2"" of type '" "std::vector< int >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<int >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<int >::iterator > *>(iter2);
+    swig::SwigPyIterator_T<std::vector< int >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< int >::iterator > *>(iter2);
     if (iter_t) {
       arg2 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt_erase" "', argument " "2"" of type '" "std::vector<int >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt_erase" "', argument " "2"" of type '" "std::vector< int >::iterator""'");
     }
   }
-  res3 = SWIG_ConvertPtr(obj2, SWIG_as_voidptrptr(&iter3), swig::PySwigIterator::descriptor(), 0);
+  res3 = SWIG_ConvertPtr(obj2, SWIG_as_voidptrptr(&iter3), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res3) || !iter3) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt_erase" "', argument " "3"" of type '" "std::vector<int >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt_erase" "', argument " "3"" of type '" "std::vector< int >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<int >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<int >::iterator > *>(iter3);
+    swig::SwigPyIterator_T<std::vector< int >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< int >::iterator > *>(iter3);
     if (iter_t) {
       arg3 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt_erase" "', argument " "3"" of type '" "std::vector<int >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt_erase" "', argument " "3"" of type '" "std::vector< int >::iterator""'");
     }
   }
-  result = (arg1)->erase(arg2,arg3);
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  result = std_vector_Sl_int_Sg__erase__SWIG_1(arg1,arg2,arg3);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< int >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
@@ -16120,23 +19421,25 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_VectorInt_erase(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<int >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< int >::iterator > *>(iter) != 0));
       if (_v) {
         return _wrap_VectorInt_erase__SWIG_0(self, args);
       }
@@ -16144,16 +19447,16 @@ SWIGINTERN PyObject *_wrap_VectorInt_erase(PyObject *self, PyObject *args) {
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<int >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< int >::iterator > *>(iter) != 0));
       if (_v) {
-        swig::PySwigIterator *iter = 0;
-        int res = SWIG_ConvertPtr(argv[2], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-        _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<int >::iterator > *>(iter) != 0));
+        swig::SwigPyIterator *iter = 0;
+        int res = SWIG_ConvertPtr(argv[2], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+        _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< int >::iterator > *>(iter) != 0));
         if (_v) {
           return _wrap_VectorInt_erase__SWIG_1(self, args);
         }
@@ -16162,38 +19465,41 @@ SWIGINTERN PyObject *_wrap_VectorInt_erase(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorInt_erase'.\n  Possible C/C++ prototypes are:\n    erase(std::vector<int >::iterator)\n    erase(std::vector<int >::iterator,std::vector<int >::iterator)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorInt_erase'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< int >::erase(std::vector< int >::iterator)\n"
+    "    std::vector< int >::erase(std::vector< int >::iterator,std::vector< int >::iterator)\n");
+  return 0;
 }
 
 
 SWIGINTERN PyObject *_wrap_new_VectorInt__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int >::size_type arg1 ;
-  std::vector<int >::value_type *arg2 = 0 ;
-  std::vector<int > *result = 0 ;
+  std::vector< int >::size_type arg1 ;
+  std::vector< int >::value_type *arg2 = 0 ;
   size_t val1 ;
   int ecode1 = 0 ;
-  std::vector<int >::value_type temp2 ;
+  std::vector< int >::value_type temp2 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  std::vector< int > *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:new_VectorInt",&obj0,&obj1)) SWIG_fail;
   ecode1 = SWIG_AsVal_size_t(obj0, &val1);
   if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorInt" "', argument " "1"" of type '" "std::vector<int >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VectorInt" "', argument " "1"" of type '" "std::vector< int >::size_type""'");
   } 
-  arg1 = static_cast< std::vector<int >::size_type >(val1);
+  arg1 = static_cast< std::vector< int >::size_type >(val1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_VectorInt" "', argument " "2"" of type '" "std::vector<int >::value_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_VectorInt" "', argument " "2"" of type '" "std::vector< int >::value_type""'");
   } 
-  temp2 = static_cast< std::vector<int >::value_type >(val2);
+  temp2 = static_cast< std::vector< int >::value_type >(val2);
   arg2 = &temp2;
-  result = (std::vector<int > *)new std::vector<int >(arg1,(std::vector<int >::value_type const &)*arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, SWIG_POINTER_NEW |  0 );
+  result = (std::vector< int > *)new std::vector< int >(arg1,(std::vector< int >::value_type const &)*arg2);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -16201,13 +19507,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_VectorInt(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 0) {
@@ -16225,7 +19533,7 @@ SWIGINTERN PyObject *_wrap_new_VectorInt(PyObject *self, PyObject *args) {
   }
   if (argc == 1) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       return _wrap_new_VectorInt__SWIG_1(self, args);
@@ -16249,36 +19557,41 @@ SWIGINTERN PyObject *_wrap_new_VectorInt(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_VectorInt'.\n  Possible C/C++ prototypes are:\n    std::vector<(int)>()\n    std::vector<(int)>(std::vector<int > const &)\n    std::vector<(int)>(std::vector<int >::size_type)\n    std::vector<(int)>(std::vector<int >::size_type,std::vector<int >::value_type const &)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_VectorInt'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< int >::vector()\n"
+    "    std::vector< int >::vector(std::vector< int > const &)\n"
+    "    std::vector< int >::vector(std::vector< int >::size_type)\n"
+    "    std::vector< int >::vector(std::vector< int >::size_type,std::vector< int >::value_type const &)\n");
+  return 0;
 }
 
 
 SWIGINTERN PyObject *_wrap_VectorInt_push_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::value_type *arg2 = 0 ;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  std::vector< int >::value_type *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  std::vector<int >::value_type temp2 ;
+  std::vector< int >::value_type temp2 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorInt_push_back",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_push_back" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_push_back" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt_push_back" "', argument " "2"" of type '" "std::vector<int >::value_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt_push_back" "', argument " "2"" of type '" "std::vector< int >::value_type""'");
   } 
-  temp2 = static_cast< std::vector<int >::value_type >(val2);
+  temp2 = static_cast< std::vector< int >::value_type >(val2);
   arg2 = &temp2;
-  (arg1)->push_back((std::vector<int >::value_type const &)*arg2);
+  (arg1)->push_back((std::vector< int >::value_type const &)*arg2);
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -16288,22 +19601,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorInt_front(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::value_type *result = 0 ;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< int >::value_type *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_front",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_front" "', argument " "1"" of type '" "std::vector<int > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  {
-    std::vector<int >::value_type const &_result_ref = ((std::vector<int > const *)arg1)->front();
-    result = (std::vector<int >::value_type *) &_result_ref;
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_front" "', argument " "1"" of type '" "std::vector< int > const *""'"); 
   }
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  result = (std::vector< int >::value_type *) &((std::vector< int > const *)arg1)->front();
   resultobj = SWIG_From_int(static_cast< int >(*result));
   return resultobj;
 fail:
@@ -16313,22 +19623,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorInt_back(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::value_type *result = 0 ;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< int >::value_type *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_back",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_back" "', argument " "1"" of type '" "std::vector<int > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  {
-    std::vector<int >::value_type const &_result_ref = ((std::vector<int > const *)arg1)->back();
-    result = (std::vector<int >::value_type *) &_result_ref;
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_back" "', argument " "1"" of type '" "std::vector< int > const *""'"); 
   }
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  result = (std::vector< int >::value_type *) &((std::vector< int > const *)arg1)->back();
   resultobj = SWIG_From_int(static_cast< int >(*result));
   return resultobj;
 fail:
@@ -16338,14 +19645,14 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorInt_assign(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::size_type arg2 ;
-  std::vector<int >::value_type *arg3 = 0 ;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  std::vector< int >::size_type arg2 ;
+  std::vector< int >::value_type *arg3 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
   int ecode2 = 0 ;
-  std::vector<int >::value_type temp3 ;
+  std::vector< int >::value_type temp3 ;
   int val3 ;
   int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
@@ -16353,23 +19660,23 @@ SWIGINTERN PyObject *_wrap_VectorInt_assign(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject * obj2 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:VectorInt_assign",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_assign" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_assign" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
   ecode2 = SWIG_AsVal_size_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt_assign" "', argument " "2"" of type '" "std::vector<int >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt_assign" "', argument " "2"" of type '" "std::vector< int >::size_type""'");
   } 
-  arg2 = static_cast< std::vector<int >::size_type >(val2);
+  arg2 = static_cast< std::vector< int >::size_type >(val2);
   ecode3 = SWIG_AsVal_int(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorInt_assign" "', argument " "3"" of type '" "std::vector<int >::value_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorInt_assign" "', argument " "3"" of type '" "std::vector< int >::value_type""'");
   } 
-  temp3 = static_cast< std::vector<int >::value_type >(val3);
+  temp3 = static_cast< std::vector< int >::value_type >(val3);
   arg3 = &temp3;
-  (arg1)->assign(arg2,(std::vector<int >::value_type const &)*arg3);
+  (arg1)->assign(arg2,(std::vector< int >::value_type const &)*arg3);
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -16379,14 +19686,14 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorInt_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::size_type arg2 ;
-  std::vector<int >::value_type *arg3 = 0 ;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  std::vector< int >::size_type arg2 ;
+  std::vector< int >::value_type *arg3 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
   int ecode2 = 0 ;
-  std::vector<int >::value_type temp3 ;
+  std::vector< int >::value_type temp3 ;
   int val3 ;
   int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
@@ -16394,23 +19701,23 @@ SWIGINTERN PyObject *_wrap_VectorInt_resize__SWIG_1(PyObject *SWIGUNUSEDPARM(sel
   PyObject * obj2 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:VectorInt_resize",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_resize" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_resize" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
   ecode2 = SWIG_AsVal_size_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt_resize" "', argument " "2"" of type '" "std::vector<int >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt_resize" "', argument " "2"" of type '" "std::vector< int >::size_type""'");
   } 
-  arg2 = static_cast< std::vector<int >::size_type >(val2);
+  arg2 = static_cast< std::vector< int >::size_type >(val2);
   ecode3 = SWIG_AsVal_int(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorInt_resize" "', argument " "3"" of type '" "std::vector<int >::value_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorInt_resize" "', argument " "3"" of type '" "std::vector< int >::value_type""'");
   } 
-  temp3 = static_cast< std::vector<int >::value_type >(val3);
+  temp3 = static_cast< std::vector< int >::value_type >(val3);
   arg3 = &temp3;
-  (arg1)->resize(arg2,(std::vector<int >::value_type const &)*arg3);
+  (arg1)->resize(arg2,(std::vector< int >::value_type const &)*arg3);
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -16419,18 +19726,20 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_VectorInt_resize(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -16444,7 +19753,7 @@ SWIGINTERN PyObject *_wrap_VectorInt_resize(PyObject *self, PyObject *args) {
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
       {
@@ -16464,54 +19773,57 @@ SWIGINTERN PyObject *_wrap_VectorInt_resize(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorInt_resize'.\n  Possible C/C++ prototypes are:\n    resize(std::vector<int >::size_type)\n    resize(std::vector<int >::size_type,std::vector<int >::value_type const &)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorInt_resize'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< int >::resize(std::vector< int >::size_type)\n"
+    "    std::vector< int >::resize(std::vector< int >::size_type,std::vector< int >::value_type const &)\n");
+  return 0;
 }
 
 
 SWIGINTERN PyObject *_wrap_VectorInt_insert__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::iterator arg2 ;
-  std::vector<int >::value_type *arg3 = 0 ;
-  std::vector<int >::iterator result;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  std::vector< int >::iterator arg2 ;
+  std::vector< int >::value_type *arg3 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
   int res2 ;
-  std::vector<int >::value_type temp3 ;
+  std::vector< int >::value_type temp3 ;
   int val3 ;
   int ecode3 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  std::vector< int >::iterator result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:VectorInt_insert",&obj0,&obj1,&obj2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_insert" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_insert" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt_insert" "', argument " "2"" of type '" "std::vector<int >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt_insert" "', argument " "2"" of type '" "std::vector< int >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<int >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<int >::iterator > *>(iter2);
+    swig::SwigPyIterator_T<std::vector< int >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< int >::iterator > *>(iter2);
     if (iter_t) {
       arg2 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt_insert" "', argument " "2"" of type '" "std::vector<int >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt_insert" "', argument " "2"" of type '" "std::vector< int >::iterator""'");
     }
   }
   ecode3 = SWIG_AsVal_int(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorInt_insert" "', argument " "3"" of type '" "std::vector<int >::value_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorInt_insert" "', argument " "3"" of type '" "std::vector< int >::value_type""'");
   } 
-  temp3 = static_cast< std::vector<int >::value_type >(val3);
+  temp3 = static_cast< std::vector< int >::value_type >(val3);
   arg3 = &temp3;
-  result = (arg1)->insert(arg2,(std::vector<int >::value_type const &)*arg3);
-  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector<int >::iterator & >(result)),
-    swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
+  result = std_vector_Sl_int_Sg__insert__SWIG_0(arg1,arg2,(int const &)*arg3);
+  resultobj = SWIG_NewPointerObj(swig::make_output_iterator(static_cast< const std::vector< int >::iterator & >(result)),
+    swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
   return resultobj;
 fail:
   return NULL;
@@ -16520,17 +19832,17 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorInt_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::iterator arg2 ;
-  std::vector<int >::size_type arg3 ;
-  std::vector<int >::value_type *arg4 = 0 ;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  std::vector< int >::iterator arg2 ;
+  std::vector< int >::size_type arg3 ;
+  std::vector< int >::value_type *arg4 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  swig::PySwigIterator *iter2 = 0 ;
+  swig::SwigPyIterator *iter2 = 0 ;
   int res2 ;
   size_t val3 ;
   int ecode3 = 0 ;
-  std::vector<int >::value_type temp4 ;
+  std::vector< int >::value_type temp4 ;
   int val4 ;
   int ecode4 = 0 ;
   PyObject * obj0 = 0 ;
@@ -16539,34 +19851,34 @@ SWIGINTERN PyObject *_wrap_VectorInt_insert__SWIG_1(PyObject *SWIGUNUSEDPARM(sel
   PyObject * obj3 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:VectorInt_insert",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_insert" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_insert" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::PySwigIterator::descriptor(), 0);
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, SWIG_as_voidptrptr(&iter2), swig::SwigPyIterator::descriptor(), 0);
   if (!SWIG_IsOK(res2) || !iter2) {
-    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt_insert" "', argument " "2"" of type '" "std::vector<int >::iterator""'");
+    SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt_insert" "', argument " "2"" of type '" "std::vector< int >::iterator""'");
   } else {
-    swig::PySwigIterator_T<std::vector<int >::iterator > *iter_t = dynamic_cast<swig::PySwigIterator_T<std::vector<int >::iterator > *>(iter2);
+    swig::SwigPyIterator_T<std::vector< int >::iterator > *iter_t = dynamic_cast<swig::SwigPyIterator_T<std::vector< int >::iterator > *>(iter2);
     if (iter_t) {
       arg2 = iter_t->get_current();
     } else {
-      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt_insert" "', argument " "2"" of type '" "std::vector<int >::iterator""'");
+      SWIG_exception_fail(SWIG_ArgError(SWIG_TypeError), "in method '" "VectorInt_insert" "', argument " "2"" of type '" "std::vector< int >::iterator""'");
     }
   }
   ecode3 = SWIG_AsVal_size_t(obj2, &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorInt_insert" "', argument " "3"" of type '" "std::vector<int >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VectorInt_insert" "', argument " "3"" of type '" "std::vector< int >::size_type""'");
   } 
-  arg3 = static_cast< std::vector<int >::size_type >(val3);
+  arg3 = static_cast< std::vector< int >::size_type >(val3);
   ecode4 = SWIG_AsVal_int(obj3, &val4);
   if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "VectorInt_insert" "', argument " "4"" of type '" "std::vector<int >::value_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "VectorInt_insert" "', argument " "4"" of type '" "std::vector< int >::value_type""'");
   } 
-  temp4 = static_cast< std::vector<int >::value_type >(val4);
+  temp4 = static_cast< std::vector< int >::value_type >(val4);
   arg4 = &temp4;
-  (arg1)->insert(arg2,arg3,(std::vector<int >::value_type const &)*arg4);
+  std_vector_Sl_int_Sg__insert__SWIG_1(arg1,arg2,arg3,(int const &)*arg4);
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -16575,23 +19887,25 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_VectorInt_insert(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[5];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[5] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<int >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< int >::iterator > *>(iter) != 0));
       if (_v) {
         {
           int res = SWIG_AsVal_int(argv[2], NULL);
@@ -16605,12 +19919,12 @@ SWIGINTERN PyObject *_wrap_VectorInt_insert(PyObject *self, PyObject *args) {
   }
   if (argc == 4) {
     int _v;
-    int res = swig::asptr(argv[0], (std::vector<int,std::allocator<int > >**)(0));
+    int res = swig::asptr(argv[0], (std::vector< int,std::allocator< int > >**)(0));
     _v = SWIG_CheckState(res);
     if (_v) {
-      swig::PySwigIterator *iter = 0;
-      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
-      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<std::vector<int >::iterator > *>(iter) != 0));
+      swig::SwigPyIterator *iter = 0;
+      int res = SWIG_ConvertPtr(argv[1], SWIG_as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
+      _v = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<std::vector< int >::iterator > *>(iter) != 0));
       if (_v) {
         {
           int res = SWIG_AsVal_size_t(argv[2], NULL);
@@ -16630,15 +19944,18 @@ SWIGINTERN PyObject *_wrap_VectorInt_insert(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'VectorInt_insert'.\n  Possible C/C++ prototypes are:\n    insert(std::vector<int >::iterator,std::vector<int >::value_type const &)\n    insert(std::vector<int >::iterator,std::vector<int >::size_type,std::vector<int >::value_type const &)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'VectorInt_insert'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    std::vector< int >::insert(std::vector< int >::iterator,std::vector< int >::value_type const &)\n"
+    "    std::vector< int >::insert(std::vector< int >::iterator,std::vector< int >::size_type,std::vector< int >::value_type const &)\n");
+  return 0;
 }
 
 
 SWIGINTERN PyObject *_wrap_VectorInt_reserve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::size_type arg2 ;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
+  std::vector< int >::size_type arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   size_t val2 ;
@@ -16647,16 +19964,16 @@ SWIGINTERN PyObject *_wrap_VectorInt_reserve(PyObject *SWIGUNUSEDPARM(self), PyO
   PyObject * obj1 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:VectorInt_reserve",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_reserve" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_reserve" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
   ecode2 = SWIG_AsVal_size_t(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt_reserve" "', argument " "2"" of type '" "std::vector<int >::size_type""'");
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VectorInt_reserve" "', argument " "2"" of type '" "std::vector< int >::size_type""'");
   } 
-  arg2 = static_cast< std::vector<int >::size_type >(val2);
+  arg2 = static_cast< std::vector< int >::size_type >(val2);
   (arg1)->reserve(arg2);
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -16667,19 +19984,19 @@ fail:
 
 SWIGINTERN PyObject *_wrap_VectorInt_capacity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
-  std::vector<int >::size_type result;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  std::vector< int >::size_type result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorInt_capacity",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, 0 |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_capacity" "', argument " "1"" of type '" "std::vector<int > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorInt_capacity" "', argument " "1"" of type '" "std::vector< int > const *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
-  result = ((std::vector<int > const *)arg1)->capacity();
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
+  result = ((std::vector< int > const *)arg1)->capacity();
   resultobj = SWIG_From_size_t(static_cast< size_t >(result));
   return resultobj;
 fail:
@@ -16689,19 +20006,18 @@ fail:
 
 SWIGINTERN PyObject *_wrap_delete_VectorInt(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector<int > *arg1 = (std::vector<int > *) 0 ;
+  std::vector< int > *arg1 = (std::vector< int > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:delete_VectorInt",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, SWIG_POINTER_DISOWN |  0 );
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_VectorInt" "', argument " "1"" of type '" "std::vector<int > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_VectorInt" "', argument " "1"" of type '" "std::vector< int > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector<int > * >(argp1);
+  arg1 = reinterpret_cast< std::vector< int > * >(argp1);
   delete arg1;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -16711,18 +20027,18 @@ fail:
 
 SWIGINTERN PyObject *VectorInt_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
-  SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorTint_std__allocatorTint_t_t, SWIG_NewClientData(obj));
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
+  SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
 
-SWIGINTERN int ABR_TYPES_set(PyObject *) {
+SWIGINTERN int Swig_var_ABR_TYPES_set(PyObject *) {
   SWIG_Error(SWIG_AttributeError,"Variable ABR_TYPES is read-only.");
   return 1;
 }
 
 
-SWIGINTERN PyObject *ABR_TYPES_get(void) {
+SWIGINTERN PyObject *Swig_var_ABR_TYPES_get(void) {
   PyObject *pyobj = 0;
   
   pyobj = SWIG_FromCharPtr(Hex::ABR_TYPES);
@@ -16734,7 +20050,6 @@ SWIGINTERN PyObject *_wrap_get_temp_name(PyObject *SWIGUNUSEDPARM(self), PyObjec
   PyObject *resultobj = 0;
   cpchar arg1 = (cpchar) 0 ;
   pchar arg2 = (pchar) 0 ;
-  pchar result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -16743,6 +20058,7 @@ SWIGINTERN PyObject *_wrap_get_temp_name(PyObject *SWIGUNUSEDPARM(self), PyObjec
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  pchar result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:get_temp_name",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -16876,13 +20192,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_fatal_error(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 1) {
@@ -16923,8 +20241,12 @@ SWIGINTERN PyObject *_wrap_fatal_error(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'fatal_error'.\n  Possible C/C++ prototypes are:\n    Hex::fatal_error(cpchar,cpchar,cpchar)\n    Hex::fatal_error(cpchar,cpchar)\n    Hex::fatal_error(cpchar)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'fatal_error'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::fatal_error(cpchar,cpchar,cpchar)\n"
+    "    Hex::fatal_error(cpchar,cpchar)\n"
+    "    Hex::fatal_error(cpchar)\n");
+  return 0;
 }
 
 
@@ -16932,13 +20254,13 @@ SWIGINTERN PyObject *_wrap_prod_scalaire(PyObject *SWIGUNUSEDPARM(self), PyObjec
   PyObject *resultobj = 0;
   double *arg1 ;
   double *arg2 ;
-  double result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  double result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:prod_scalaire",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_double, 0 |  0 );
@@ -16964,7 +20286,6 @@ SWIGINTERN PyObject *_wrap_prod_vectoriel(PyObject *SWIGUNUSEDPARM(self), PyObje
   double *arg1 ;
   double *arg2 ;
   double *arg3 ;
-  double *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -16974,6 +20295,7 @@ SWIGINTERN PyObject *_wrap_prod_vectoriel(PyObject *SWIGUNUSEDPARM(self), PyObje
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  double *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:prod_vectoriel",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_double, 0 |  0 );
@@ -17004,7 +20326,6 @@ SWIGINTERN PyObject *_wrap_prod_mixte(PyObject *SWIGUNUSEDPARM(self), PyObject *
   double *arg1 ;
   double *arg2 ;
   double *arg3 ;
-  double result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -17014,6 +20335,7 @@ SWIGINTERN PyObject *_wrap_prod_mixte(PyObject *SWIGUNUSEDPARM(self), PyObject *
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  double result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:prod_mixte",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_double, 0 |  0 );
@@ -17042,10 +20364,10 @@ fail:
 SWIGINTERN PyObject *_wrap_deg2radians(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   double arg1 ;
-  double result;
   double val1 ;
   int ecode1 = 0 ;
   PyObject * obj0 = 0 ;
+  double result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:deg2radians",&obj0)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(obj0, &val1);
@@ -17064,10 +20386,10 @@ fail:
 SWIGINTERN PyObject *_wrap_rad2degres(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   double arg1 ;
-  double result;
   double val1 ;
   int ecode1 = 0 ;
   PyObject * obj0 = 0 ;
+  double result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:rad2degres",&obj0)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(obj0, &val1);
@@ -17086,10 +20408,10 @@ fail:
 SWIGINTERN PyObject *_wrap_calc_norme(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   double *arg1 ;
-  double result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  double result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:calc_norme",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_double, 0 |  0 );
@@ -17109,13 +20431,13 @@ SWIGINTERN PyObject *_wrap_calc_distance(PyObject *SWIGUNUSEDPARM(self), PyObjec
   PyObject *resultobj = 0;
   double *arg1 ;
   double *arg2 ;
-  double result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  double result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:calc_distance",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_double, 0 |  0 );
@@ -17140,13 +20462,13 @@ SWIGINTERN PyObject *_wrap_calc_d2(PyObject *SWIGUNUSEDPARM(self), PyObject *arg
   PyObject *resultobj = 0;
   double *arg1 ;
   double *arg2 ;
-  double result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  double result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:calc_d2",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_double, 0 |  0 );
@@ -17278,10 +20600,10 @@ fail:
 SWIGINTERN PyObject *_wrap_normer_vecteur(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   double *arg1 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:normer_vecteur",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_double, 0 |  0 );
@@ -17300,10 +20622,10 @@ fail:
 SWIGINTERN PyObject *_wrap_carre(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   double arg1 ;
-  double result;
   double val1 ;
   int ecode1 = 0 ;
   PyObject * obj0 = 0 ;
+  double result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:carre",&obj0)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(obj0, &val1);
@@ -17324,7 +20646,6 @@ SWIGINTERN PyObject *_wrap_same_coords__SWIG_0(PyObject *SWIGUNUSEDPARM(self), P
   double *arg1 = (double *) 0 ;
   double *arg2 = (double *) 0 ;
   double arg3 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -17334,6 +20655,7 @@ SWIGINTERN PyObject *_wrap_same_coords__SWIG_0(PyObject *SWIGUNUSEDPARM(self), P
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:same_coords",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_double, 0 |  0 );
@@ -17363,13 +20685,13 @@ SWIGINTERN PyObject *_wrap_same_coords__SWIG_1(PyObject *SWIGUNUSEDPARM(self), P
   PyObject *resultobj = 0;
   double *arg1 = (double *) 0 ;
   double *arg2 = (double *) 0 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:same_coords",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_double, 0 |  0 );
@@ -17391,13 +20713,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_same_coords(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
@@ -17436,8 +20760,11 @@ SWIGINTERN PyObject *_wrap_same_coords(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'same_coords'.\n  Possible C/C++ prototypes are:\n    Hex::same_coords(double *,double *,double)\n    Hex::same_coords(double *,double *)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'same_coords'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::same_coords(double *,double *,double)\n"
+    "    Hex::same_coords(double *,double *)\n");
+  return 0;
 }
 
 
@@ -17445,13 +20772,13 @@ SWIGINTERN PyObject *_wrap_requals__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObj
   PyObject *resultobj = 0;
   double arg1 ;
   double arg2 ;
-  bool result;
   double val1 ;
   int ecode1 = 0 ;
   double val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:requals",&obj0,&obj1)) SWIG_fail;
   ecode1 = SWIG_AsVal_double(obj0, &val1);
@@ -17476,13 +20803,13 @@ SWIGINTERN PyObject *_wrap_requals__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObj
   PyObject *resultobj = 0;
   double *arg1 = (double *) 0 ;
   double *arg2 = (double *) 0 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:requals",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_double, 0 |  0 );
@@ -17504,13 +20831,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_requals(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
@@ -17545,8 +20874,11 @@ SWIGINTERN PyObject *_wrap_requals(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'requals'.\n  Possible C/C++ prototypes are:\n    Hex::requals(double const,double const)\n    Hex::requals(double const *,double const *)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'requals'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::requals(double const,double const)\n"
+    "    Hex::requals(double const *,double const *)\n");
+  return 0;
 }
 
 
@@ -17650,11 +20982,11 @@ fail:
 SWIGINTERN PyObject *_wrap_sizeof_file(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   cpchar arg1 = (cpchar) 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:sizeof_file",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -17676,7 +21008,6 @@ SWIGINTERN PyObject *_wrap_read_file(PyObject *SWIGUNUSEDPARM(self), PyObject *a
   PyObject *resultobj = 0;
   cpchar arg1 = (cpchar) 0 ;
   int *arg2 = 0 ;
-  char *result = 0 ;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -17684,6 +21015,7 @@ SWIGINTERN PyObject *_wrap_read_file(PyObject *SWIGUNUSEDPARM(self), PyObject *a
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  char *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:read_file",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -17712,10 +21044,10 @@ fail:
 SWIGINTERN PyObject *_wrap_get_time(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   string *arg1 = 0 ;
-  cpchar result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  cpchar result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:get_time",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_string,  0 );
@@ -17738,7 +21070,6 @@ SWIGINTERN PyObject *_wrap_make_basename(PyObject *SWIGUNUSEDPARM(self), PyObjec
   PyObject *resultobj = 0;
   cpchar arg1 = (cpchar) 0 ;
   string *arg2 = 0 ;
-  int result;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -17746,6 +21077,7 @@ SWIGINTERN PyObject *_wrap_make_basename(PyObject *SWIGUNUSEDPARM(self), PyObjec
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:make_basename",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -17771,13 +21103,13 @@ fail:
 }
 
 
-SWIGINTERN int Epsil_set(PyObject *) {
+SWIGINTERN int Swig_var_Epsil_set(PyObject *) {
   SWIG_Error(SWIG_AttributeError,"Variable Epsil is read-only.");
   return 1;
 }
 
 
-SWIGINTERN PyObject *Epsil_get(void) {
+SWIGINTERN PyObject *Swig_var_Epsil_get(void) {
   PyObject *pyobj = 0;
   
   pyobj = SWIG_From_double(static_cast< double >(Hex::Epsil));
@@ -17785,13 +21117,13 @@ SWIGINTERN PyObject *Epsil_get(void) {
 }
 
 
-SWIGINTERN int UnEpsil_set(PyObject *) {
+SWIGINTERN int Swig_var_UnEpsil_set(PyObject *) {
   SWIG_Error(SWIG_AttributeError,"Variable UnEpsil is read-only.");
   return 1;
 }
 
 
-SWIGINTERN PyObject *UnEpsil_get(void) {
+SWIGINTERN PyObject *Swig_var_UnEpsil_get(void) {
   PyObject *pyobj = 0;
   
   pyobj = SWIG_From_double(static_cast< double >(Hex::UnEpsil));
@@ -17799,13 +21131,13 @@ SWIGINTERN PyObject *UnEpsil_get(void) {
 }
 
 
-SWIGINTERN int Epsil2_set(PyObject *) {
+SWIGINTERN int Swig_var_Epsil2_set(PyObject *) {
   SWIG_Error(SWIG_AttributeError,"Variable Epsil2 is read-only.");
   return 1;
 }
 
 
-SWIGINTERN PyObject *Epsil2_get(void) {
+SWIGINTERN PyObject *Swig_var_Epsil2_get(void) {
   PyObject *pyobj = 0;
   
   pyobj = SWIG_From_double(static_cast< double >(Hex::Epsil2));
@@ -17816,10 +21148,10 @@ SWIGINTERN PyObject *Epsil2_get(void) {
 SWIGINTERN PyObject *_wrap_EltBase_countHexa(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:EltBase_countHexa",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -17838,10 +21170,10 @@ fail:
 SWIGINTERN PyObject *_wrap_EltBase_countQuad(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:EltBase_countQuad",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -17860,10 +21192,10 @@ fail:
 SWIGINTERN PyObject *_wrap_EltBase_countEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:EltBase_countEdge",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -17882,10 +21214,10 @@ fail:
 SWIGINTERN PyObject *_wrap_EltBase_countVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:EltBase_countVertex",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -17953,13 +21285,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_EltBase_setError(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 1) {
@@ -17988,18 +21322,21 @@ SWIGINTERN PyObject *_wrap_EltBase_setError(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'EltBase_setError'.\n  Possible C/C++ prototypes are:\n    setError(int)\n    setError()\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'EltBase_setError'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::EltBase::setError(int)\n"
+    "    Hex::EltBase::setError()\n");
+  return 0;
 }
 
 
 SWIGINTERN PyObject *_wrap_EltBase_getError(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:EltBase_getError",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -18018,10 +21355,10 @@ fail:
 SWIGINTERN PyObject *_wrap_EltBase_isValid(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:EltBase_isValid",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -18040,10 +21377,10 @@ fail:
 SWIGINTERN PyObject *_wrap_EltBase_isBad(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:EltBase_isBad",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -18183,13 +21520,13 @@ SWIGINTERN PyObject *_wrap_new_EltBase__SWIG_0(PyObject *SWIGUNUSEDPARM(self), P
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::EnumElt arg2 ;
-  Hex::EltBase *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::EltBase *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:new_EltBase",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -18213,10 +21550,10 @@ fail:
 SWIGINTERN PyObject *_wrap_new_EltBase__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  Hex::EltBase *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  Hex::EltBase *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_EltBase",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -18235,10 +21572,10 @@ fail:
 SWIGINTERN PyObject *_wrap_new_EltBase__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::EnumElt arg1 ;
-  Hex::EltBase *result = 0 ;
   int val1 ;
   int ecode1 = 0 ;
   PyObject * obj0 = 0 ;
+  Hex::EltBase *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_EltBase",&obj0)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(obj0, &val1);
@@ -18268,13 +21605,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_EltBase(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 0) {
@@ -18316,8 +21655,13 @@ SWIGINTERN PyObject *_wrap_new_EltBase(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_EltBase'.\n  Possible C/C++ prototypes are:\n    Hex::EltBase(Hex::Document *,Hex::EnumElt)\n    Hex::EltBase(Hex::Document *)\n    Hex::EltBase(Hex::EnumElt)\n    Hex::EltBase()\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_EltBase'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::EltBase::EltBase(Hex::Document *,Hex::EnumElt)\n"
+    "    Hex::EltBase::EltBase(Hex::Document *)\n"
+    "    Hex::EltBase::EltBase(Hex::EnumElt)\n"
+    "    Hex::EltBase::EltBase()\n");
+  return 0;
 }
 
 
@@ -18335,7 +21679,6 @@ SWIGINTERN PyObject *_wrap_delete_EltBase(PyObject *SWIGUNUSEDPARM(self), PyObje
   }
   arg1 = reinterpret_cast< Hex::EltBase * >(argp1);
   delete arg1;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -18461,7 +21804,6 @@ SWIGINTERN PyObject *_wrap_EltBase_makeVarName(PyObject *SWIGUNUSEDPARM(self), P
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
   char *arg2 = (char *) 0 ;
-  char *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -18469,6 +21811,7 @@ SWIGINTERN PyObject *_wrap_EltBase_makeVarName(PyObject *SWIGUNUSEDPARM(self), P
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  char *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:EltBase_makeVarName",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -18496,7 +21839,6 @@ SWIGINTERN PyObject *_wrap_EltBase_makeName(PyObject *SWIGUNUSEDPARM(self), PyOb
   int arg1 ;
   int arg2 ;
   char *arg3 = (char *) 0 ;
-  char *result = 0 ;
   int val1 ;
   int ecode1 = 0 ;
   int val2 ;
@@ -18507,6 +21849,7 @@ SWIGINTERN PyObject *_wrap_EltBase_makeName(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  char *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:EltBase_makeName",&obj0,&obj1,&obj2)) SWIG_fail;
   ecode1 = SWIG_AsVal_int(obj0, &val1);
@@ -18537,10 +21880,10 @@ fail:
 SWIGINTERN PyObject *_wrap_EltBase_next(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
-  Hex::EltBase *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  Hex::EltBase *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:EltBase_next",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -18589,10 +21932,10 @@ fail:
 SWIGINTERN PyObject *_wrap_EltBase_getId(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:EltBase_getId",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -18641,10 +21984,10 @@ fail:
 SWIGINTERN PyObject *_wrap_EltBase_dad(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
-  Hex::Document *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  Hex::Document *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:EltBase_dad",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -18663,10 +22006,10 @@ fail:
 SWIGINTERN PyObject *_wrap_EltBase_getType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
-  Hex::EnumElt result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  Hex::EnumElt result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:EltBase_getType",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -18685,10 +22028,10 @@ fail:
 SWIGINTERN PyObject *_wrap_EltBase_isHere(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:EltBase_isHere",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -18707,10 +22050,10 @@ fail:
 SWIGINTERN PyObject *_wrap_EltBase_isDeleted(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:EltBase_isDeleted",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -18780,10 +22123,10 @@ fail:
 SWIGINTERN PyObject *_wrap_EltBase_getNbrParents(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:EltBase_getNbrParents",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -18802,10 +22145,10 @@ fail:
 SWIGINTERN PyObject *_wrap_EltBase_hasParents(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:EltBase_hasParents",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -18825,13 +22168,13 @@ SWIGINTERN PyObject *_wrap_EltBase_getFather(PyObject *SWIGUNUSEDPARM(self), PyO
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
   int arg2 ;
-  Hex::EltBase *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::EltBase *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:EltBase_getFather",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -18855,10 +22198,10 @@ fail:
 SWIGINTERN PyObject *_wrap_EltBase_getMark(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:EltBase_getMark",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -18908,7 +22251,6 @@ SWIGINTERN PyObject *_wrap_EltBase_getName__SWIG_0(PyObject *SWIGUNUSEDPARM(self
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
   pchar arg2 = (pchar) 0 ;
-  char *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -18916,6 +22258,7 @@ SWIGINTERN PyObject *_wrap_EltBase_getName__SWIG_0(PyObject *SWIGUNUSEDPARM(self
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  char *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:EltBase_getName",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -18993,13 +22336,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_EltBase_printName(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 1) {
@@ -19026,8 +22371,11 @@ SWIGINTERN PyObject *_wrap_EltBase_printName(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'EltBase_printName'.\n  Possible C/C++ prototypes are:\n    printName(cpchar)\n    printName()\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'EltBase_printName'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::EltBase::printName(cpchar)\n"
+    "    Hex::EltBase::printName()\n");
+  return 0;
 }
 
 
@@ -19055,10 +22403,10 @@ fail:
 SWIGINTERN PyObject *_wrap_EltBase_getName__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
-  cpchar result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  cpchar result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:EltBase_getName",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -19075,13 +22423,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_EltBase_getName(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 1) {
@@ -19108,8 +22458,11 @@ SWIGINTERN PyObject *_wrap_EltBase_getName(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'EltBase_getName'.\n  Possible C/C++ prototypes are:\n    getName(pchar)\n    getName()\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'EltBase_getName'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::EltBase::getName(pchar)\n"
+    "    Hex::EltBase::getName()\n");
+  return 0;
 }
 
 
@@ -19180,13 +22533,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_EltBase_setName(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
@@ -19217,8 +22572,11 @@ SWIGINTERN PyObject *_wrap_EltBase_setName(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'EltBase_setName'.\n  Possible C/C++ prototypes are:\n    setName(string const &)\n    setName(cpchar)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'EltBase_setName'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::EltBase::setName(string const &)\n"
+    "    Hex::EltBase::setName(cpchar)\n");
+  return 0;
 }
 
 
@@ -19226,13 +22584,13 @@ SWIGINTERN PyObject *_wrap_EltBase_debug__SWIG_0(PyObject *SWIGUNUSEDPARM(self),
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
   int arg2 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:EltBase_debug",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -19256,10 +22614,10 @@ fail:
 SWIGINTERN PyObject *_wrap_EltBase_debug__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:EltBase_debug",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -19276,13 +22634,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_EltBase_debug(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 1) {
@@ -19311,18 +22671,21 @@ SWIGINTERN PyObject *_wrap_EltBase_debug(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'EltBase_debug'.\n  Possible C/C++ prototypes are:\n    debug(int)\n    debug()\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'EltBase_debug'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::EltBase::debug(int)\n"
+    "    Hex::EltBase::debug()\n");
+  return 0;
 }
 
 
 SWIGINTERN PyObject *_wrap_EltBase_isAssociated(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:EltBase_isAssociated",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -19341,10 +22704,10 @@ fail:
 SWIGINTERN PyObject *_wrap_EltBase_getNextName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::EltBase *arg1 = (Hex::EltBase *) 0 ;
-  string result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  string result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:EltBase_getNextName",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__EltBase, 0 |  0 );
@@ -19362,7 +22725,7 @@ fail:
 
 SWIGINTERN PyObject *EltBase_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_Hex__EltBase, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -19370,10 +22733,10 @@ SWIGINTERN PyObject *EltBase_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObje
 SWIGINTERN PyObject *_wrap_Vertex_getX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Vertex *arg1 = (Hex::Vertex *) 0 ;
-  double result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  double result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Vertex_getX",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Vertex, 0 |  0 );
@@ -19392,10 +22755,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Vertex_getY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Vertex *arg1 = (Hex::Vertex *) 0 ;
-  double result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  double result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Vertex_getY",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Vertex, 0 |  0 );
@@ -19414,10 +22777,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Vertex_getZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Vertex *arg1 = (Hex::Vertex *) 0 ;
-  double result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  double result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Vertex_getZ",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Vertex, 0 |  0 );
@@ -19526,10 +22889,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Vertex_getAssoX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Vertex *arg1 = (Hex::Vertex *) 0 ;
-  double result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  double result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Vertex_getAssoX",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Vertex, 0 |  0 );
@@ -19548,10 +22911,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Vertex_getAssoY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Vertex *arg1 = (Hex::Vertex *) 0 ;
-  double result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  double result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Vertex_getAssoY",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Vertex, 0 |  0 );
@@ -19570,10 +22933,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Vertex_getAssoZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Vertex *arg1 = (Hex::Vertex *) 0 ;
-  double result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  double result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Vertex_getAssoZ",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Vertex, 0 |  0 );
@@ -19594,7 +22957,6 @@ SWIGINTERN PyObject *_wrap_Vertex_setAssociation(PyObject *SWIGUNUSEDPARM(self),
   Hex::Vertex *arg1 = (Hex::Vertex *) 0 ;
   Hex::NewShape *arg2 = (Hex::NewShape *) 0 ;
   int arg3 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -19604,6 +22966,7 @@ SWIGINTERN PyObject *_wrap_Vertex_setAssociation(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Vertex_setAssociation",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Vertex, 0 |  0 );
@@ -19686,7 +23049,6 @@ SWIGINTERN PyObject *_wrap_new_Vertex(PyObject *SWIGUNUSEDPARM(self), PyObject *
   double arg2 ;
   double arg3 ;
   double arg4 ;
-  Hex::Vertex *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val2 ;
@@ -19699,6 +23061,7 @@ SWIGINTERN PyObject *_wrap_new_Vertex(PyObject *SWIGUNUSEDPARM(self), PyObject *
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Vertex *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:new_Vertex",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -19743,7 +23106,6 @@ SWIGINTERN PyObject *_wrap_delete_Vertex(PyObject *SWIGUNUSEDPARM(self), PyObjec
   }
   arg1 = reinterpret_cast< Hex::Vertex * >(argp1);
   delete arg1;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -19753,7 +23115,7 @@ fail:
 
 SWIGINTERN PyObject *Vertex_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_Hex__Vertex, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -19762,13 +23124,13 @@ SWIGINTERN PyObject *_wrap_Edge_getVertex(PyObject *SWIGUNUSEDPARM(self), PyObje
   PyObject *resultobj = 0;
   Hex::Edge *arg1 = (Hex::Edge *) 0 ;
   int arg2 ;
-  Hex::Vertex *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Vertex *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Edge_getVertex",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Edge, 0 |  0 );
@@ -19796,7 +23158,6 @@ SWIGINTERN PyObject *_wrap_Edge_addAssociation(PyObject *SWIGUNUSEDPARM(self), P
   int arg3 ;
   double arg4 ;
   double arg5 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -19812,6 +23173,7 @@ SWIGINTERN PyObject *_wrap_Edge_addAssociation(PyObject *SWIGUNUSEDPARM(self), P
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:Edge_addAssociation",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Edge, 0 |  0 );
@@ -19852,7 +23214,6 @@ SWIGINTERN PyObject *_wrap_Edge_setAssociation(PyObject *SWIGUNUSEDPARM(self), P
   Hex::Edge *arg1 = (Hex::Edge *) 0 ;
   Hex::NewShape *arg2 = (Hex::NewShape *) 0 ;
   int arg3 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -19862,6 +23223,7 @@ SWIGINTERN PyObject *_wrap_Edge_setAssociation(PyObject *SWIGUNUSEDPARM(self), P
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Edge_setAssociation",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Edge, 0 |  0 );
@@ -19891,13 +23253,13 @@ SWIGINTERN PyObject *_wrap_Edge_findAssociation(PyObject *SWIGUNUSEDPARM(self),
   PyObject *resultobj = 0;
   Hex::Edge *arg1 = (Hex::Edge *) 0 ;
   Hex::NewShape *arg2 = (Hex::NewShape *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Edge_findAssociation",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Edge, 0 |  0 );
@@ -19972,10 +23334,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Edge_getWay(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Edge *arg1 = (Hex::Edge *) 0 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Edge_getWay",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Edge, 0 |  0 );
@@ -19994,10 +23356,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Edge_getLength(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Edge *arg1 = (Hex::Edge *) 0 ;
-  double result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  double result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Edge_getLength",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Edge, 0 |  0 );
@@ -20017,13 +23379,13 @@ SWIGINTERN PyObject *_wrap_new_Edge(PyObject *SWIGUNUSEDPARM(self), PyObject *ar
   PyObject *resultobj = 0;
   Hex::Vertex *arg1 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg2 = (Hex::Vertex *) 0 ;
-  Hex::Edge *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Edge *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:new_Edge",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Vertex, 0 |  0 );
@@ -20058,7 +23420,6 @@ SWIGINTERN PyObject *_wrap_delete_Edge(PyObject *SWIGUNUSEDPARM(self), PyObject
   }
   arg1 = reinterpret_cast< Hex::Edge * >(argp1);
   delete arg1;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -20068,7 +23429,7 @@ fail:
 
 SWIGINTERN PyObject *Edge_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_Hex__Edge, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -20077,13 +23438,13 @@ SWIGINTERN PyObject *_wrap_Quad_getEdge(PyObject *SWIGUNUSEDPARM(self), PyObject
   PyObject *resultobj = 0;
   Hex::Quad *arg1 = (Hex::Quad *) 0 ;
   int arg2 ;
-  Hex::Edge *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Edge *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Quad_getEdge",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Quad, 0 |  0 );
@@ -20108,13 +23469,13 @@ SWIGINTERN PyObject *_wrap_Quad_getVertex(PyObject *SWIGUNUSEDPARM(self), PyObje
   PyObject *resultobj = 0;
   Hex::Quad *arg1 = (Hex::Quad *) 0 ;
   int arg2 ;
-  Hex::Vertex *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Vertex *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Quad_getVertex",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Quad, 0 |  0 );
@@ -20140,7 +23501,6 @@ SWIGINTERN PyObject *_wrap_Quad_addAssociation(PyObject *SWIGUNUSEDPARM(self), P
   Hex::Quad *arg1 = (Hex::Quad *) 0 ;
   Hex::NewShape *arg2 = (Hex::NewShape *) 0 ;
   int arg3 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -20150,6 +23510,7 @@ SWIGINTERN PyObject *_wrap_Quad_addAssociation(PyObject *SWIGUNUSEDPARM(self), P
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Quad_addAssociation",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Quad, 0 |  0 );
@@ -20230,13 +23591,13 @@ SWIGINTERN PyObject *_wrap_Quad_nearestVertex(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject *resultobj = 0;
   Hex::Quad *arg1 = (Hex::Quad *) 0 ;
   Hex::Vertex *arg2 = (Hex::Vertex *) 0 ;
-  Hex::Vertex *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Vertex *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Quad_nearestVertex",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Quad, 0 |  0 );
@@ -20261,13 +23622,13 @@ SWIGINTERN PyObject *_wrap_Quad_getCenter(PyObject *SWIGUNUSEDPARM(self), PyObje
   PyObject *resultobj = 0;
   Hex::Quad *arg1 = (Hex::Quad *) 0 ;
   double *arg2 = (double *) 0 ;
-  double *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  double *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Quad_getCenter",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Quad, 0 |  0 );
@@ -20294,7 +23655,6 @@ SWIGINTERN PyObject *_wrap_new_Quad(PyObject *SWIGUNUSEDPARM(self), PyObject *ar
   Hex::Vertex *arg2 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg3 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg4 = (Hex::Vertex *) 0 ;
-  Hex::Quad *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -20307,6 +23667,7 @@ SWIGINTERN PyObject *_wrap_new_Quad(PyObject *SWIGUNUSEDPARM(self), PyObject *ar
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Quad *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:new_Quad",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Vertex, 0 |  0 );
@@ -20351,7 +23712,6 @@ SWIGINTERN PyObject *_wrap_delete_Quad(PyObject *SWIGUNUSEDPARM(self), PyObject
   }
   arg1 = reinterpret_cast< Hex::Quad * >(argp1);
   delete arg1;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -20361,7 +23721,7 @@ fail:
 
 SWIGINTERN PyObject *Quad_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_Hex__Quad, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -20370,13 +23730,13 @@ SWIGINTERN PyObject *_wrap_Hexa_getQuad(PyObject *SWIGUNUSEDPARM(self), PyObject
   PyObject *resultobj = 0;
   Hex::Hexa *arg1 = (Hex::Hexa *) 0 ;
   int arg2 ;
-  Hex::Quad *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Quad *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Hexa_getQuad",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Hexa, 0 |  0 );
@@ -20401,13 +23761,13 @@ SWIGINTERN PyObject *_wrap_Hexa_getEdge(PyObject *SWIGUNUSEDPARM(self), PyObject
   PyObject *resultobj = 0;
   Hex::Hexa *arg1 = (Hex::Hexa *) 0 ;
   int arg2 ;
-  Hex::Edge *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Edge *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Hexa_getEdge",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Hexa, 0 |  0 );
@@ -20432,13 +23792,13 @@ SWIGINTERN PyObject *_wrap_Hexa_getVertex(PyObject *SWIGUNUSEDPARM(self), PyObje
   PyObject *resultobj = 0;
   Hex::Hexa *arg1 = (Hex::Hexa *) 0 ;
   int arg2 ;
-  Hex::Vertex *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Vertex *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Hexa_getVertex",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Hexa, 0 |  0 );
@@ -20497,7 +23857,6 @@ SWIGINTERN PyObject *_wrap_new_Hexa(PyObject *SWIGUNUSEDPARM(self), PyObject *ar
   Hex::Quad *arg4 = (Hex::Quad *) 0 ;
   Hex::Quad *arg5 = (Hex::Quad *) 0 ;
   Hex::Quad *arg6 = (Hex::Quad *) 0 ;
-  Hex::Hexa *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -20516,6 +23875,7 @@ SWIGINTERN PyObject *_wrap_new_Hexa(PyObject *SWIGUNUSEDPARM(self), PyObject *ar
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
   PyObject * obj5 = 0 ;
+  Hex::Hexa *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOO:new_Hexa",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Quad, 0 |  0 );
@@ -20570,7 +23930,6 @@ SWIGINTERN PyObject *_wrap_delete_Hexa(PyObject *SWIGUNUSEDPARM(self), PyObject
   }
   arg1 = reinterpret_cast< Hex::Hexa * >(argp1);
   delete arg1;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -20580,7 +23939,7 @@ fail:
 
 SWIGINTERN PyObject *Hexa_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_Hex__Hexa, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -20588,10 +23947,10 @@ SWIGINTERN PyObject *Hexa_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject
 SWIGINTERN PyObject *_wrap_Vector_getDx(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Vector *arg1 = (Hex::Vector *) 0 ;
-  double result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  double result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Vector_getDx",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Vector, 0 |  0 );
@@ -20610,10 +23969,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Vector_getDy(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Vector *arg1 = (Hex::Vector *) 0 ;
-  double result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  double result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Vector_getDy",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Vector, 0 |  0 );
@@ -20632,10 +23991,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Vector_getDz(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Vector *arg1 = (Hex::Vector *) 0 ;
-  double result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  double result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Vector_getDz",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Vector, 0 |  0 );
@@ -20654,10 +24013,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Vector_getNorm(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Vector *arg1 = (Hex::Vector *) 0 ;
-  double result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  double result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Vector_getNorm",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Vector, 0 |  0 );
@@ -20676,10 +24035,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Vector_getAngleX(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Vector *arg1 = (Hex::Vector *) 0 ;
-  double result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  double result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Vector_getAngleX",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Vector, 0 |  0 );
@@ -20701,7 +24060,6 @@ SWIGINTERN PyObject *_wrap_new_Vector__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py
   double arg2 ;
   double arg3 ;
   double arg4 ;
-  Hex::Vector *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val2 ;
@@ -20714,6 +24072,7 @@ SWIGINTERN PyObject *_wrap_new_Vector__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Vector *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:new_Vector",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -20749,7 +24108,6 @@ SWIGINTERN PyObject *_wrap_new_Vector__SWIG_1(PyObject *SWIGUNUSEDPARM(self), Py
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   double arg2 ;
   double arg3 ;
-  Hex::Vector *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val2 ;
@@ -20759,6 +24117,7 @@ SWIGINTERN PyObject *_wrap_new_Vector__SWIG_1(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Vector *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:new_Vector",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -20788,13 +24147,13 @@ SWIGINTERN PyObject *_wrap_new_Vector__SWIG_2(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   double arg2 ;
-  Hex::Vector *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Vector *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:new_Vector",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -20818,10 +24177,10 @@ fail:
 SWIGINTERN PyObject *_wrap_new_Vector__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  Hex::Vector *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  Hex::Vector *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_Vector",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -20838,13 +24197,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_Vector(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[5];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[5] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 1) {
@@ -20921,8 +24282,13 @@ SWIGINTERN PyObject *_wrap_new_Vector(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Vector'.\n  Possible C/C++ prototypes are:\n    Hex::Vector(Hex::Document *,double,double,double)\n    Hex::Vector(Hex::Document *,double,double)\n    Hex::Vector(Hex::Document *,double)\n    Hex::Vector(Hex::Document *)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_Vector'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::Vector::Vector(Hex::Document *,double,double,double)\n"
+    "    Hex::Vector::Vector(Hex::Document *,double,double)\n"
+    "    Hex::Vector::Vector(Hex::Document *,double)\n"
+    "    Hex::Vector::Vector(Hex::Document *)\n");
+  return 0;
 }
 
 
@@ -20940,7 +24306,6 @@ SWIGINTERN PyObject *_wrap_delete_Vector(PyObject *SWIGUNUSEDPARM(self), PyObjec
   }
   arg1 = reinterpret_cast< Hex::Vector * >(argp1);
   delete arg1;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -20950,7 +24315,7 @@ fail:
 
 SWIGINTERN PyObject *Vector_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_Hex__Vector, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -20959,7 +24324,6 @@ SWIGINTERN PyObject *_wrap_new_Document__SWIG_0(PyObject *SWIGUNUSEDPARM(self),
   PyObject *resultobj = 0;
   cpchar arg1 = (cpchar) 0 ;
   Hex::Hex *arg2 = (Hex::Hex *) 0 ;
-  Hex::Document *result = 0 ;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
@@ -20967,6 +24331,7 @@ SWIGINTERN PyObject *_wrap_new_Document__SWIG_0(PyObject *SWIGUNUSEDPARM(self),
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Document *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:new_Document",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -20992,11 +24357,11 @@ fail:
 SWIGINTERN PyObject *_wrap_new_Document__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   cpchar arg1 = (cpchar) 0 ;
-  Hex::Document *result = 0 ;
   int res1 ;
   char *buf1 = 0 ;
   int alloc1 = 0 ;
   PyObject * obj0 = 0 ;
+  Hex::Document *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_Document",&obj0)) SWIG_fail;
   res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
@@ -21015,13 +24380,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_Document(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 1) {
@@ -21047,8 +24414,11 @@ SWIGINTERN PyObject *_wrap_new_Document(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_Document'.\n  Possible C/C++ prototypes are:\n    Hex::Document(cpchar,Hex::Hex *)\n    Hex::Document(cpchar)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_Document'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::Document::Document(cpchar,Hex::Hex *)\n"
+    "    Hex::Document::Document(cpchar)\n");
+  return 0;
 }
 
 
@@ -21077,7 +24447,6 @@ SWIGINTERN PyObject *_wrap_Document_setName(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   char *arg2 = (char *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -21085,6 +24454,7 @@ SWIGINTERN PyObject *_wrap_Document_setName(PyObject *SWIGUNUSEDPARM(self), PyOb
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_setName",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -21141,7 +24511,6 @@ SWIGINTERN PyObject *_wrap_Document_save(PyObject *SWIGUNUSEDPARM(self), PyObjec
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   char *arg2 = (char *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -21149,6 +24518,7 @@ SWIGINTERN PyObject *_wrap_Document_save(PyObject *SWIGUNUSEDPARM(self), PyObjec
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_save",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -21175,7 +24545,6 @@ SWIGINTERN PyObject *_wrap_Document_saveVtk(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   cpchar arg2 = (cpchar) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -21183,6 +24552,7 @@ SWIGINTERN PyObject *_wrap_Document_saveVtk(PyObject *SWIGUNUSEDPARM(self), PyOb
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_saveVtk",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -21259,10 +24629,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Document_getTolerance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  double result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  double result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Document_getTolerance",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -21284,7 +24654,6 @@ SWIGINTERN PyObject *_wrap_Document_addVertex__SWIG_0(PyObject *SWIGUNUSEDPARM(s
   double arg2 ;
   double arg3 ;
   double arg4 ;
-  Hex::Vertex *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val2 ;
@@ -21297,6 +24666,7 @@ SWIGINTERN PyObject *_wrap_Document_addVertex__SWIG_0(PyObject *SWIGUNUSEDPARM(s
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Vertex *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Document_addVertex",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -21332,7 +24702,6 @@ SWIGINTERN PyObject *_wrap_Document_addVertex__SWIG_1(PyObject *SWIGUNUSEDPARM(s
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   double arg2 ;
   double arg3 ;
-  Hex::Vertex *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val2 ;
@@ -21342,6 +24711,7 @@ SWIGINTERN PyObject *_wrap_Document_addVertex__SWIG_1(PyObject *SWIGUNUSEDPARM(s
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Vertex *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_addVertex",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -21371,13 +24741,13 @@ SWIGINTERN PyObject *_wrap_Document_addVertex__SWIG_2(PyObject *SWIGUNUSEDPARM(s
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   double arg2 ;
-  Hex::Vertex *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Vertex *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_addVertex",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -21401,10 +24771,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Document_addVertex__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  Hex::Vertex *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  Hex::Vertex *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Document_addVertex",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -21421,13 +24791,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Document_addVertex(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[5];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[5] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 1) {
@@ -21504,8 +24876,13 @@ SWIGINTERN PyObject *_wrap_Document_addVertex(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Document_addVertex'.\n  Possible C/C++ prototypes are:\n    addVertex(double,double,double)\n    addVertex(double,double)\n    addVertex(double)\n    addVertex()\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'Document_addVertex'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::Document::addVertex(double,double,double)\n"
+    "    Hex::Document::addVertex(double,double)\n"
+    "    Hex::Document::addVertex(double)\n"
+    "    Hex::Document::addVertex()\n");
+  return 0;
 }
 
 
@@ -21514,7 +24891,6 @@ SWIGINTERN PyObject *_wrap_Document_addEdge(PyObject *SWIGUNUSEDPARM(self), PyOb
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Vertex *arg2 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg3 = (Hex::Vertex *) 0 ;
-  Hex::Edge *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -21524,6 +24900,7 @@ SWIGINTERN PyObject *_wrap_Document_addEdge(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Edge *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_addEdge",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -21554,7 +24931,6 @@ SWIGINTERN PyObject *_wrap_Document_addEdgeVector(PyObject *SWIGUNUSEDPARM(self)
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Vertex *arg2 = (Hex::Vertex *) 0 ;
   Hex::Vector *arg3 = (Hex::Vector *) 0 ;
-  Hex::Edge *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -21564,6 +24940,7 @@ SWIGINTERN PyObject *_wrap_Document_addEdgeVector(PyObject *SWIGUNUSEDPARM(self)
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Edge *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_addEdgeVector",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -21596,7 +24973,6 @@ SWIGINTERN PyObject *_wrap_Document_addQuad(PyObject *SWIGUNUSEDPARM(self), PyOb
   Hex::Edge *arg3 = (Hex::Edge *) 0 ;
   Hex::Edge *arg4 = (Hex::Edge *) 0 ;
   Hex::Edge *arg5 = (Hex::Edge *) 0 ;
-  Hex::Quad *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -21612,6 +24988,7 @@ SWIGINTERN PyObject *_wrap_Document_addQuad(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  Hex::Quad *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:Document_addQuad",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -21654,7 +25031,6 @@ SWIGINTERN PyObject *_wrap_Document_addQuadVertices(PyObject *SWIGUNUSEDPARM(sel
   Hex::Vertex *arg3 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg4 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg5 = (Hex::Vertex *) 0 ;
-  Hex::Quad *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -21670,6 +25046,7 @@ SWIGINTERN PyObject *_wrap_Document_addQuadVertices(PyObject *SWIGUNUSEDPARM(sel
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  Hex::Quad *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:Document_addQuadVertices",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -21714,7 +25091,6 @@ SWIGINTERN PyObject *_wrap_Document_addHexa(PyObject *SWIGUNUSEDPARM(self), PyOb
   Hex::Quad *arg5 = (Hex::Quad *) 0 ;
   Hex::Quad *arg6 = (Hex::Quad *) 0 ;
   Hex::Quad *arg7 = (Hex::Quad *) 0 ;
-  Hex::Hexa *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -21736,6 +25112,7 @@ SWIGINTERN PyObject *_wrap_Document_addHexa(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject * obj4 = 0 ;
   PyObject * obj5 = 0 ;
   PyObject * obj6 = 0 ;
+  Hex::Hexa *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:Document_addHexa",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -21792,7 +25169,6 @@ SWIGINTERN PyObject *_wrap_Document_addHexaVertices(PyObject *SWIGUNUSEDPARM(sel
   Hex::Vertex *arg7 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg8 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg9 = (Hex::Vertex *) 0 ;
-  Hex::Hexa *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -21820,6 +25196,7 @@ SWIGINTERN PyObject *_wrap_Document_addHexaVertices(PyObject *SWIGUNUSEDPARM(sel
   PyObject * obj6 = 0 ;
   PyObject * obj7 = 0 ;
   PyObject * obj8 = 0 ;
+  Hex::Hexa *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:Document_addHexaVertices",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -21880,7 +25257,6 @@ SWIGINTERN PyObject *_wrap_Document_addHexa2Quads(PyObject *SWIGUNUSEDPARM(self)
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Quad *arg2 = (Hex::Quad *) 0 ;
   Hex::Quad *arg3 = (Hex::Quad *) 0 ;
-  Hex::Hexa *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -21890,6 +25266,7 @@ SWIGINTERN PyObject *_wrap_Document_addHexa2Quads(PyObject *SWIGUNUSEDPARM(self)
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Hexa *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_addHexa2Quads",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -21921,7 +25298,6 @@ SWIGINTERN PyObject *_wrap_Document_addHexa3Quads(PyObject *SWIGUNUSEDPARM(self)
   Hex::Quad *arg2 = (Hex::Quad *) 0 ;
   Hex::Quad *arg3 = (Hex::Quad *) 0 ;
   Hex::Quad *arg4 = (Hex::Quad *) 0 ;
-  Hex::Hexa *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -21934,6 +25310,7 @@ SWIGINTERN PyObject *_wrap_Document_addHexa3Quads(PyObject *SWIGUNUSEDPARM(self)
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Hexa *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Document_addHexa3Quads",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -21971,7 +25348,6 @@ SWIGINTERN PyObject *_wrap_Document_addHexa4Quads(PyObject *SWIGUNUSEDPARM(self)
   Hex::Quad *arg3 = (Hex::Quad *) 0 ;
   Hex::Quad *arg4 = (Hex::Quad *) 0 ;
   Hex::Quad *arg5 = (Hex::Quad *) 0 ;
-  Hex::Hexa *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -21987,6 +25363,7 @@ SWIGINTERN PyObject *_wrap_Document_addHexa4Quads(PyObject *SWIGUNUSEDPARM(self)
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  Hex::Hexa *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:Document_addHexa4Quads",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -22030,7 +25407,6 @@ SWIGINTERN PyObject *_wrap_Document_addHexa5Quads(PyObject *SWIGUNUSEDPARM(self)
   Hex::Quad *arg4 = (Hex::Quad *) 0 ;
   Hex::Quad *arg5 = (Hex::Quad *) 0 ;
   Hex::Quad *arg6 = (Hex::Quad *) 0 ;
-  Hex::Hexa *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -22049,6 +25425,7 @@ SWIGINTERN PyObject *_wrap_Document_addHexa5Quads(PyObject *SWIGUNUSEDPARM(self)
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
   PyObject * obj5 = 0 ;
+  Hex::Hexa *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOO:Document_addHexa5Quads",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -22095,7 +25472,6 @@ SWIGINTERN PyObject *_wrap_Document_addVector__SWIG_0(PyObject *SWIGUNUSEDPARM(s
   double arg2 ;
   double arg3 ;
   double arg4 ;
-  Hex::Vector *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val2 ;
@@ -22108,6 +25484,7 @@ SWIGINTERN PyObject *_wrap_Document_addVector__SWIG_0(PyObject *SWIGUNUSEDPARM(s
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Vector *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Document_addVector",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -22143,7 +25520,6 @@ SWIGINTERN PyObject *_wrap_Document_addVector__SWIG_1(PyObject *SWIGUNUSEDPARM(s
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   double arg2 ;
   double arg3 ;
-  Hex::Vector *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val2 ;
@@ -22153,6 +25529,7 @@ SWIGINTERN PyObject *_wrap_Document_addVector__SWIG_1(PyObject *SWIGUNUSEDPARM(s
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Vector *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_addVector",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -22182,13 +25559,13 @@ SWIGINTERN PyObject *_wrap_Document_addVector__SWIG_2(PyObject *SWIGUNUSEDPARM(s
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   double arg2 ;
-  Hex::Vector *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Vector *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_addVector",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -22212,10 +25589,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Document_addVector__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  Hex::Vector *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  Hex::Vector *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Document_addVector",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -22232,13 +25609,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Document_addVector(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[5];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[5] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 1) {
@@ -22315,8 +25694,13 @@ SWIGINTERN PyObject *_wrap_Document_addVector(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Document_addVector'.\n  Possible C/C++ prototypes are:\n    addVector(double,double,double)\n    addVector(double,double)\n    addVector(double)\n    addVector()\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'Document_addVector'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::Document::addVector(double,double,double)\n"
+    "    Hex::Document::addVector(double,double)\n"
+    "    Hex::Document::addVector(double)\n"
+    "    Hex::Document::addVector()\n");
+  return 0;
 }
 
 
@@ -22325,7 +25709,6 @@ SWIGINTERN PyObject *_wrap_Document_addVectorVertices(PyObject *SWIGUNUSEDPARM(s
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Vertex *arg2 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg3 = (Hex::Vertex *) 0 ;
-  Hex::Vector *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -22335,6 +25718,7 @@ SWIGINTERN PyObject *_wrap_Document_addVectorVertices(PyObject *SWIGUNUSEDPARM(s
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Vector *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_addVectorVertices",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -22365,7 +25749,6 @@ SWIGINTERN PyObject *_wrap_Document_addLaw__SWIG_0(PyObject *SWIGUNUSEDPARM(self
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   char *arg2 = (char *) 0 ;
   int arg3 ;
-  Hex::Law *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -22376,6 +25759,7 @@ SWIGINTERN PyObject *_wrap_Document_addLaw__SWIG_0(PyObject *SWIGUNUSEDPARM(self
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Law *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_addLaw",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -22408,7 +25792,6 @@ SWIGINTERN PyObject *_wrap_Document_addLaws__SWIG_0(PyObject *SWIGUNUSEDPARM(sel
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   double arg2 ;
   bool arg3 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val2 ;
@@ -22418,6 +25801,7 @@ SWIGINTERN PyObject *_wrap_Document_addLaws__SWIG_0(PyObject *SWIGUNUSEDPARM(sel
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_addLaws",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -22447,13 +25831,13 @@ SWIGINTERN PyObject *_wrap_Document_addLaws__SWIG_1(PyObject *SWIGUNUSEDPARM(sel
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   double arg2 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_addLaws",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -22475,13 +25859,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Document_addLaws(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
@@ -22522,8 +25908,11 @@ SWIGINTERN PyObject *_wrap_Document_addLaws(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Document_addLaws'.\n  Possible C/C++ prototypes are:\n    addLaws(double,bool)\n    addLaws(double)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'Document_addLaws'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::Document::addLaws(double,bool)\n"
+    "    Hex::Document::addLaws(double)\n");
+  return 0;
 }
 
 
@@ -22531,7 +25920,6 @@ SWIGINTERN PyObject *_wrap_Document_addHexaGroup(PyObject *SWIGUNUSEDPARM(self),
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   cpchar arg2 = (cpchar) 0 ;
-  Hex::Group *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -22539,6 +25927,7 @@ SWIGINTERN PyObject *_wrap_Document_addHexaGroup(PyObject *SWIGUNUSEDPARM(self),
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Group *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_addHexaGroup",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -22565,7 +25954,6 @@ SWIGINTERN PyObject *_wrap_Document_addQuadGroup(PyObject *SWIGUNUSEDPARM(self),
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   cpchar arg2 = (cpchar) 0 ;
-  Hex::Group *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -22573,6 +25961,7 @@ SWIGINTERN PyObject *_wrap_Document_addQuadGroup(PyObject *SWIGUNUSEDPARM(self),
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Group *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_addQuadGroup",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -22599,7 +25988,6 @@ SWIGINTERN PyObject *_wrap_Document_addQuadNodeGroup(PyObject *SWIGUNUSEDPARM(se
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   cpchar arg2 = (cpchar) 0 ;
-  Hex::Group *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -22607,6 +25995,7 @@ SWIGINTERN PyObject *_wrap_Document_addQuadNodeGroup(PyObject *SWIGUNUSEDPARM(se
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Group *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_addQuadNodeGroup",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -22633,7 +26022,6 @@ SWIGINTERN PyObject *_wrap_Document_addHexaNodeGroup(PyObject *SWIGUNUSEDPARM(se
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   cpchar arg2 = (cpchar) 0 ;
-  Hex::Group *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -22641,6 +26029,7 @@ SWIGINTERN PyObject *_wrap_Document_addHexaNodeGroup(PyObject *SWIGUNUSEDPARM(se
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Group *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_addHexaNodeGroup",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -22667,7 +26056,6 @@ SWIGINTERN PyObject *_wrap_Document_addEdgeGroup(PyObject *SWIGUNUSEDPARM(self),
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   cpchar arg2 = (cpchar) 0 ;
-  Hex::Group *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -22675,6 +26063,7 @@ SWIGINTERN PyObject *_wrap_Document_addEdgeGroup(PyObject *SWIGUNUSEDPARM(self),
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Group *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_addEdgeGroup",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -22701,7 +26090,6 @@ SWIGINTERN PyObject *_wrap_Document_addEdgeNodeGroup(PyObject *SWIGUNUSEDPARM(se
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   cpchar arg2 = (cpchar) 0 ;
-  Hex::Group *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -22709,6 +26097,7 @@ SWIGINTERN PyObject *_wrap_Document_addEdgeNodeGroup(PyObject *SWIGUNUSEDPARM(se
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Group *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_addEdgeNodeGroup",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -22735,7 +26124,6 @@ SWIGINTERN PyObject *_wrap_Document_addVertexNodeGroup(PyObject *SWIGUNUSEDPARM(
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   cpchar arg2 = (cpchar) 0 ;
-  Hex::Group *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -22743,6 +26131,7 @@ SWIGINTERN PyObject *_wrap_Document_addVertexNodeGroup(PyObject *SWIGUNUSEDPARM(
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Group *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_addVertexNodeGroup",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -22770,7 +26159,6 @@ SWIGINTERN PyObject *_wrap_Document_makeTranslation(PyObject *SWIGUNUSEDPARM(sel
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Elements *arg2 = (Hex::Elements *) 0 ;
   Hex::Vector *arg3 = (Hex::Vector *) 0 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -22780,6 +26168,7 @@ SWIGINTERN PyObject *_wrap_Document_makeTranslation(PyObject *SWIGUNUSEDPARM(sel
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_makeTranslation",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -22811,7 +26200,6 @@ SWIGINTERN PyObject *_wrap_Document_makeScale(PyObject *SWIGUNUSEDPARM(self), Py
   Hex::Elements *arg2 = (Hex::Elements *) 0 ;
   Hex::Vertex *arg3 = (Hex::Vertex *) 0 ;
   double arg4 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -22824,6 +26212,7 @@ SWIGINTERN PyObject *_wrap_Document_makeScale(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Document_makeScale",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -22861,7 +26250,6 @@ SWIGINTERN PyObject *_wrap_Document_makeRotation(PyObject *SWIGUNUSEDPARM(self),
   Hex::Vertex *arg3 = (Hex::Vertex *) 0 ;
   Hex::Vector *arg4 = (Hex::Vector *) 0 ;
   double arg5 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -22877,6 +26265,7 @@ SWIGINTERN PyObject *_wrap_Document_makeRotation(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:Document_makeRotation",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -22917,7 +26306,6 @@ SWIGINTERN PyObject *_wrap_Document_makeSymmetryPoint(PyObject *SWIGUNUSEDPARM(s
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Elements *arg2 = (Hex::Elements *) 0 ;
   Hex::Vertex *arg3 = (Hex::Vertex *) 0 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -22927,6 +26315,7 @@ SWIGINTERN PyObject *_wrap_Document_makeSymmetryPoint(PyObject *SWIGUNUSEDPARM(s
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_makeSymmetryPoint",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -22958,7 +26347,6 @@ SWIGINTERN PyObject *_wrap_Document_makeSymmetryLine(PyObject *SWIGUNUSEDPARM(se
   Hex::Elements *arg2 = (Hex::Elements *) 0 ;
   Hex::Vertex *arg3 = (Hex::Vertex *) 0 ;
   Hex::Vector *arg4 = (Hex::Vector *) 0 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -22971,6 +26359,7 @@ SWIGINTERN PyObject *_wrap_Document_makeSymmetryLine(PyObject *SWIGUNUSEDPARM(se
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Document_makeSymmetryLine",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -23007,7 +26396,6 @@ SWIGINTERN PyObject *_wrap_Document_makeSymmetryPlane(PyObject *SWIGUNUSEDPARM(s
   Hex::Elements *arg2 = (Hex::Elements *) 0 ;
   Hex::Vertex *arg3 = (Hex::Vertex *) 0 ;
   Hex::Vector *arg4 = (Hex::Vector *) 0 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -23020,6 +26408,7 @@ SWIGINTERN PyObject *_wrap_Document_makeSymmetryPlane(PyObject *SWIGUNUSEDPARM(s
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Document_makeSymmetryPlane",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -23055,7 +26444,6 @@ SWIGINTERN PyObject *_wrap_Document_performTranslation(PyObject *SWIGUNUSEDPARM(
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Elements *arg2 = (Hex::Elements *) 0 ;
   Hex::Vector *arg3 = (Hex::Vector *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -23065,6 +26453,7 @@ SWIGINTERN PyObject *_wrap_Document_performTranslation(PyObject *SWIGUNUSEDPARM(
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_performTranslation",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -23096,7 +26485,6 @@ SWIGINTERN PyObject *_wrap_Document_performScale(PyObject *SWIGUNUSEDPARM(self),
   Hex::Elements *arg2 = (Hex::Elements *) 0 ;
   Hex::Vertex *arg3 = (Hex::Vertex *) 0 ;
   double arg4 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -23109,6 +26497,7 @@ SWIGINTERN PyObject *_wrap_Document_performScale(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Document_performScale",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -23146,7 +26535,6 @@ SWIGINTERN PyObject *_wrap_Document_performRotation(PyObject *SWIGUNUSEDPARM(sel
   Hex::Vertex *arg3 = (Hex::Vertex *) 0 ;
   Hex::Vector *arg4 = (Hex::Vector *) 0 ;
   double arg5 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -23162,6 +26550,7 @@ SWIGINTERN PyObject *_wrap_Document_performRotation(PyObject *SWIGUNUSEDPARM(sel
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:Document_performRotation",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -23202,7 +26591,6 @@ SWIGINTERN PyObject *_wrap_Document_performSymmetryPoint(PyObject *SWIGUNUSEDPAR
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Elements *arg2 = (Hex::Elements *) 0 ;
   Hex::Vertex *arg3 = (Hex::Vertex *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -23212,6 +26600,7 @@ SWIGINTERN PyObject *_wrap_Document_performSymmetryPoint(PyObject *SWIGUNUSEDPAR
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_performSymmetryPoint",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -23243,7 +26632,6 @@ SWIGINTERN PyObject *_wrap_Document_performSymmetryLine(PyObject *SWIGUNUSEDPARM
   Hex::Elements *arg2 = (Hex::Elements *) 0 ;
   Hex::Vertex *arg3 = (Hex::Vertex *) 0 ;
   Hex::Vector *arg4 = (Hex::Vector *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -23256,6 +26644,7 @@ SWIGINTERN PyObject *_wrap_Document_performSymmetryLine(PyObject *SWIGUNUSEDPARM
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Document_performSymmetryLine",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -23292,7 +26681,6 @@ SWIGINTERN PyObject *_wrap_Document_performSymmetryPlane(PyObject *SWIGUNUSEDPAR
   Hex::Elements *arg2 = (Hex::Elements *) 0 ;
   Hex::Vertex *arg3 = (Hex::Vertex *) 0 ;
   Hex::Vector *arg4 = (Hex::Vector *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -23305,6 +26693,7 @@ SWIGINTERN PyObject *_wrap_Document_performSymmetryPlane(PyObject *SWIGUNUSEDPAR
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Document_performSymmetryPlane",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -23340,7 +26729,6 @@ SWIGINTERN PyObject *_wrap_Document_disconnectQuad(PyObject *SWIGUNUSEDPARM(self
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Hexa *arg2 = (Hex::Hexa *) 0 ;
   Hex::Quad *arg3 = (Hex::Quad *) 0 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -23350,6 +26738,7 @@ SWIGINTERN PyObject *_wrap_Document_disconnectQuad(PyObject *SWIGUNUSEDPARM(self
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_disconnectQuad",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -23380,7 +26769,6 @@ SWIGINTERN PyObject *_wrap_Document_disconnectEdge(PyObject *SWIGUNUSEDPARM(self
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Hexa *arg2 = (Hex::Hexa *) 0 ;
   Hex::Edge *arg3 = (Hex::Edge *) 0 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -23390,6 +26778,7 @@ SWIGINTERN PyObject *_wrap_Document_disconnectEdge(PyObject *SWIGUNUSEDPARM(self
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_disconnectEdge",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -23420,7 +26809,6 @@ SWIGINTERN PyObject *_wrap_Document_disconnectVertex(PyObject *SWIGUNUSEDPARM(se
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Hexa *arg2 = (Hex::Hexa *) 0 ;
   Hex::Vertex *arg3 = (Hex::Vertex *) 0 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -23430,6 +26818,7 @@ SWIGINTERN PyObject *_wrap_Document_disconnectVertex(PyObject *SWIGUNUSEDPARM(se
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_disconnectVertex",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -23460,12 +26849,12 @@ SWIGINTERN PyObject *_wrap_Document_disconnectEdges(PyObject *SWIGUNUSEDPARM(sel
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Hexas arg2 ;
   Hex::Edges arg3 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_disconnectEdges",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -23474,7 +26863,7 @@ SWIGINTERN PyObject *_wrap_Document_disconnectEdges(PyObject *SWIGUNUSEDPARM(sel
   }
   arg1 = reinterpret_cast< Hex::Document * >(argp1);
   {
-    std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > > *ptr = (std::vector<Hex::Hexa*,std::allocator<Hex::Hexa * > > *)0;
+    std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > > *ptr = (std::vector< Hex::Hexa*,std::allocator< Hex::Hexa * > > *)0;
     int res = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_disconnectEdges" "', argument " "2"" of type '" "Hex::Hexas""'"); 
@@ -23483,7 +26872,7 @@ SWIGINTERN PyObject *_wrap_Document_disconnectEdges(PyObject *SWIGUNUSEDPARM(sel
     if (SWIG_IsNewObj(res)) delete ptr;
   }
   {
-    std::vector<Hex::Edge*,std::allocator<Hex::Edge * > > *ptr = (std::vector<Hex::Edge*,std::allocator<Hex::Edge * > > *)0;
+    std::vector< Hex::Edge*,std::allocator< Hex::Edge * > > *ptr = (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > > *)0;
     int res = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_disconnectEdges" "', argument " "3"" of type '" "Hex::Edges""'"); 
@@ -23508,7 +26897,6 @@ SWIGINTERN PyObject *_wrap_Document_replace(PyObject *SWIGUNUSEDPARM(self), PyOb
   Hex::Vertex *arg5 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg6 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg7 = (Hex::Vertex *) 0 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp4 = 0 ;
@@ -23526,6 +26914,7 @@ SWIGINTERN PyObject *_wrap_Document_replace(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject * obj4 = 0 ;
   PyObject * obj5 = 0 ;
   PyObject * obj6 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:Document_replace",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -23534,7 +26923,7 @@ SWIGINTERN PyObject *_wrap_Document_replace(PyObject *SWIGUNUSEDPARM(self), PyOb
   }
   arg1 = reinterpret_cast< Hex::Document * >(argp1);
   {
-    std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *ptr = (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *)0;
+    std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *ptr = (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *)0;
     int res = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_replace" "', argument " "2"" of type '" "Hex::Quads""'"); 
@@ -23543,7 +26932,7 @@ SWIGINTERN PyObject *_wrap_Document_replace(PyObject *SWIGUNUSEDPARM(self), PyOb
     if (SWIG_IsNewObj(res)) delete ptr;
   }
   {
-    std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *ptr = (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *)0;
+    std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *ptr = (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *)0;
     int res = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_replace" "', argument " "3"" of type '" "Hex::Quads""'"); 
@@ -23584,7 +26973,6 @@ SWIGINTERN PyObject *_wrap_Document_mergeVertices(PyObject *SWIGUNUSEDPARM(self)
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Vertex *arg2 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg3 = (Hex::Vertex *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -23594,6 +26982,7 @@ SWIGINTERN PyObject *_wrap_Document_mergeVertices(PyObject *SWIGUNUSEDPARM(self)
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_mergeVertices",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -23626,7 +27015,6 @@ SWIGINTERN PyObject *_wrap_Document_mergeEdges(PyObject *SWIGUNUSEDPARM(self), P
   Hex::Edge *arg3 = (Hex::Edge *) 0 ;
   Hex::Vertex *arg4 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg5 = (Hex::Vertex *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -23642,6 +27030,7 @@ SWIGINTERN PyObject *_wrap_Document_mergeEdges(PyObject *SWIGUNUSEDPARM(self), P
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:Document_mergeEdges",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -23686,7 +27075,6 @@ SWIGINTERN PyObject *_wrap_Document_mergeQuads(PyObject *SWIGUNUSEDPARM(self), P
   Hex::Vertex *arg5 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg6 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg7 = (Hex::Vertex *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -23708,6 +27096,7 @@ SWIGINTERN PyObject *_wrap_Document_mergeQuads(PyObject *SWIGUNUSEDPARM(self), P
   PyObject * obj4 = 0 ;
   PyObject * obj5 = 0 ;
   PyObject * obj6 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:Document_mergeQuads",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -23782,7 +27171,6 @@ SWIGINTERN PyObject *_wrap_Document_associateOpenedLine(PyObject *SWIGUNUSEDPARM
   Hex::IntVector arg4 ;
   double arg5 ;
   double arg6 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val5 ;
@@ -23795,6 +27183,7 @@ SWIGINTERN PyObject *_wrap_Document_associateOpenedLine(PyObject *SWIGUNUSEDPARM
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
   PyObject * obj5 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOO:Document_associateOpenedLine",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -23803,7 +27192,7 @@ SWIGINTERN PyObject *_wrap_Document_associateOpenedLine(PyObject *SWIGUNUSEDPARM
   }
   arg1 = reinterpret_cast< Hex::Document * >(argp1);
   {
-    std::vector<Hex::Edge*,std::allocator<Hex::Edge * > > *ptr = (std::vector<Hex::Edge*,std::allocator<Hex::Edge * > > *)0;
+    std::vector< Hex::Edge*,std::allocator< Hex::Edge * > > *ptr = (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > > *)0;
     int res = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_associateOpenedLine" "', argument " "2"" of type '" "Hex::Edges""'"); 
@@ -23812,7 +27201,7 @@ SWIGINTERN PyObject *_wrap_Document_associateOpenedLine(PyObject *SWIGUNUSEDPARM
     if (SWIG_IsNewObj(res)) delete ptr;
   }
   {
-    std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > > *ptr = (std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > > *)0;
+    std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > > *ptr = (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > > *)0;
     int res = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_associateOpenedLine" "', argument " "3"" of type '" "Hex::NewShapes""'"); 
@@ -23821,7 +27210,7 @@ SWIGINTERN PyObject *_wrap_Document_associateOpenedLine(PyObject *SWIGUNUSEDPARM
     if (SWIG_IsNewObj(res)) delete ptr;
   }
   {
-    std::vector<int,std::allocator<int > > *ptr = (std::vector<int,std::allocator<int > > *)0;
+    std::vector< int,std::allocator< int > > *ptr = (std::vector< int,std::allocator< int > > *)0;
     int res = swig::asptr(obj3, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_associateOpenedLine" "', argument " "4"" of type '" "Hex::IntVector""'"); 
@@ -23856,7 +27245,6 @@ SWIGINTERN PyObject *_wrap_Document_associateClosedLine(PyObject *SWIGUNUSEDPARM
   Hex::IntVector arg5 ;
   double arg6 ;
   bool arg7 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -23872,6 +27260,7 @@ SWIGINTERN PyObject *_wrap_Document_associateClosedLine(PyObject *SWIGUNUSEDPARM
   PyObject * obj4 = 0 ;
   PyObject * obj5 = 0 ;
   PyObject * obj6 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:Document_associateClosedLine",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -23885,7 +27274,7 @@ SWIGINTERN PyObject *_wrap_Document_associateClosedLine(PyObject *SWIGUNUSEDPARM
   }
   arg2 = reinterpret_cast< Hex::Vertex * >(argp2);
   {
-    std::vector<Hex::Edge*,std::allocator<Hex::Edge * > > *ptr = (std::vector<Hex::Edge*,std::allocator<Hex::Edge * > > *)0;
+    std::vector< Hex::Edge*,std::allocator< Hex::Edge * > > *ptr = (std::vector< Hex::Edge*,std::allocator< Hex::Edge * > > *)0;
     int res = swig::asptr(obj2, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_associateClosedLine" "', argument " "3"" of type '" "Hex::Edges""'"); 
@@ -23894,7 +27283,7 @@ SWIGINTERN PyObject *_wrap_Document_associateClosedLine(PyObject *SWIGUNUSEDPARM
     if (SWIG_IsNewObj(res)) delete ptr;
   }
   {
-    std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > > *ptr = (std::vector<Hex::NewShape*,std::allocator<Hex::NewShape * > > *)0;
+    std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > > *ptr = (std::vector< Hex::NewShape*,std::allocator< Hex::NewShape * > > *)0;
     int res = swig::asptr(obj3, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_associateClosedLine" "', argument " "4"" of type '" "Hex::NewShapes""'"); 
@@ -23903,7 +27292,7 @@ SWIGINTERN PyObject *_wrap_Document_associateClosedLine(PyObject *SWIGUNUSEDPARM
     if (SWIG_IsNewObj(res)) delete ptr;
   }
   {
-    std::vector<int,std::allocator<int > > *ptr = (std::vector<int,std::allocator<int > > *)0;
+    std::vector< int,std::allocator< int > > *ptr = (std::vector< int,std::allocator< int > > *)0;
     int res = swig::asptr(obj4, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_associateClosedLine" "', argument " "5"" of type '" "Hex::IntVector""'"); 
@@ -23932,10 +27321,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Document_countHexa(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Document_countHexa",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -23954,10 +27343,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Document_countQuad(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Document_countQuad",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -23976,10 +27365,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Document_countEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Document_countEdge",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -23998,10 +27387,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Document_countVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Document_countVertex",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24020,10 +27409,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Document_countVector(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Document_countVector",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24042,10 +27431,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Document_countGroup(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Document_countGroup",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24064,10 +27453,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Document_countLaw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Document_countLaw",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24086,10 +27475,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Document_countPropagation(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Document_countPropagation",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24108,10 +27497,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Document_countShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Document_countShape",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24130,10 +27519,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Document_countUsedHexa(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Document_countUsedHexa",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24152,10 +27541,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Document_countUsedQuad(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Document_countUsedQuad",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24174,10 +27563,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Document_countUsedEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Document_countUsedEdge",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24196,10 +27585,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Document_countUsedVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Document_countUsedVertex",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24219,13 +27608,13 @@ SWIGINTERN PyObject *_wrap_Document_getHexa(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   int arg2 ;
-  Hex::Hexa *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Hexa *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_getHexa",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24250,13 +27639,13 @@ SWIGINTERN PyObject *_wrap_Document_getQuad(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   int arg2 ;
-  Hex::Quad *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Quad *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_getQuad",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24281,13 +27670,13 @@ SWIGINTERN PyObject *_wrap_Document_getEdge(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   int arg2 ;
-  Hex::Edge *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Edge *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_getEdge",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24312,13 +27701,13 @@ SWIGINTERN PyObject *_wrap_Document_getVertex(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   int arg2 ;
-  Hex::Vertex *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Vertex *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_getVertex",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24343,13 +27732,13 @@ SWIGINTERN PyObject *_wrap_Document_getUsedHexa(PyObject *SWIGUNUSEDPARM(self),
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   int arg2 ;
-  Hex::Hexa *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Hexa *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_getUsedHexa",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24374,13 +27763,13 @@ SWIGINTERN PyObject *_wrap_Document_getUsedQuad(PyObject *SWIGUNUSEDPARM(self),
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   int arg2 ;
-  Hex::Quad *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Quad *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_getUsedQuad",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24405,13 +27794,13 @@ SWIGINTERN PyObject *_wrap_Document_getUsedEdge(PyObject *SWIGUNUSEDPARM(self),
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   int arg2 ;
-  Hex::Edge *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Edge *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_getUsedEdge",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24436,13 +27825,13 @@ SWIGINTERN PyObject *_wrap_Document_getUsedVertex(PyObject *SWIGUNUSEDPARM(self)
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   int arg2 ;
-  Hex::Vertex *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Vertex *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_getUsedVertex",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24467,13 +27856,13 @@ SWIGINTERN PyObject *_wrap_Document_getVector(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   int arg2 ;
-  Hex::Vector *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Vector *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_getVector",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24498,13 +27887,13 @@ SWIGINTERN PyObject *_wrap_Document_getShape(PyObject *SWIGUNUSEDPARM(self), PyO
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   int arg2 ;
-  Hex::NewShape *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::NewShape *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_getShape",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24529,13 +27918,13 @@ SWIGINTERN PyObject *_wrap_Document_getGroup(PyObject *SWIGUNUSEDPARM(self), PyO
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   int arg2 ;
-  Hex::Group *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Group *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_getGroup",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24560,13 +27949,13 @@ SWIGINTERN PyObject *_wrap_Document_getLaw(PyObject *SWIGUNUSEDPARM(self), PyObj
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   int arg2 ;
-  Hex::Law *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Law *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_getLaw",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24591,13 +27980,13 @@ SWIGINTERN PyObject *_wrap_Document_getPropagation(PyObject *SWIGUNUSEDPARM(self
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   int arg2 ;
-  Hex::Propagation *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Propagation *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_getPropagation",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24621,10 +28010,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Document_getFirstExplicitShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  cpchar result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  cpchar result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Document_getFirstExplicitShape",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24646,7 +28035,6 @@ SWIGINTERN PyObject *_wrap_Document_findVertex__SWIG_0(PyObject *SWIGUNUSEDPARM(
   double arg2 ;
   double arg3 ;
   double arg4 ;
-  Hex::Vertex *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double val2 ;
@@ -24659,6 +28047,7 @@ SWIGINTERN PyObject *_wrap_Document_findVertex__SWIG_0(PyObject *SWIGUNUSEDPARM(
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Vertex *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Document_findVertex",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24694,7 +28083,6 @@ SWIGINTERN PyObject *_wrap_Document_findEdge(PyObject *SWIGUNUSEDPARM(self), PyO
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Vertex *arg2 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg3 = (Hex::Vertex *) 0 ;
-  Hex::Edge *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -24704,6 +28092,7 @@ SWIGINTERN PyObject *_wrap_Document_findEdge(PyObject *SWIGUNUSEDPARM(self), PyO
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Edge *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_findEdge",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24734,7 +28123,6 @@ SWIGINTERN PyObject *_wrap_Document_findQuad__SWIG_0(PyObject *SWIGUNUSEDPARM(se
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Vertex *arg2 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg3 = (Hex::Vertex *) 0 ;
-  Hex::Quad *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -24744,6 +28132,7 @@ SWIGINTERN PyObject *_wrap_Document_findQuad__SWIG_0(PyObject *SWIGUNUSEDPARM(se
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Quad *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_findQuad",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24774,7 +28163,6 @@ SWIGINTERN PyObject *_wrap_Document_findQuad__SWIG_1(PyObject *SWIGUNUSEDPARM(se
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Edge *arg2 = (Hex::Edge *) 0 ;
   Hex::Edge *arg3 = (Hex::Edge *) 0 ;
-  Hex::Quad *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -24784,6 +28172,7 @@ SWIGINTERN PyObject *_wrap_Document_findQuad__SWIG_1(PyObject *SWIGUNUSEDPARM(se
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Quad *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_findQuad",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24810,13 +28199,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Document_findQuad(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 3) {
@@ -24859,8 +28250,11 @@ SWIGINTERN PyObject *_wrap_Document_findQuad(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Document_findQuad'.\n  Possible C/C++ prototypes are:\n    findQuad(Hex::Vertex *,Hex::Vertex *)\n    findQuad(Hex::Edge *,Hex::Edge *)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'Document_findQuad'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::Document::findQuad(Hex::Vertex *,Hex::Vertex *)\n"
+    "    Hex::Document::findQuad(Hex::Edge *,Hex::Edge *)\n");
+  return 0;
 }
 
 
@@ -24869,7 +28263,6 @@ SWIGINTERN PyObject *_wrap_Document_findHexa(PyObject *SWIGUNUSEDPARM(self), PyO
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Vertex *arg2 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg3 = (Hex::Vertex *) 0 ;
-  Hex::Hexa *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -24879,6 +28272,7 @@ SWIGINTERN PyObject *_wrap_Document_findHexa(PyObject *SWIGUNUSEDPARM(self), PyO
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Hexa *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_findHexa",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24908,7 +28302,6 @@ SWIGINTERN PyObject *_wrap_Document_findGroup(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   cpchar arg2 = (cpchar) 0 ;
-  Hex::Group *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -24916,6 +28309,7 @@ SWIGINTERN PyObject *_wrap_Document_findGroup(PyObject *SWIGUNUSEDPARM(self), Py
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Group *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_findGroup",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24942,7 +28336,6 @@ SWIGINTERN PyObject *_wrap_Document_findLaw(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   cpchar arg2 = (cpchar) 0 ;
-  Hex::Law *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -24950,6 +28343,7 @@ SWIGINTERN PyObject *_wrap_Document_findLaw(PyObject *SWIGUNUSEDPARM(self), PyOb
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Law *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_findLaw",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -24976,13 +28370,13 @@ SWIGINTERN PyObject *_wrap_Document_findPropagation(PyObject *SWIGUNUSEDPARM(sel
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Edge *arg2 = (Hex::Edge *) 0 ;
-  Hex::Propagation *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Propagation *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_findPropagation",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -25007,13 +28401,13 @@ SWIGINTERN PyObject *_wrap_Document_removeHexa(PyObject *SWIGUNUSEDPARM(self), P
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Hexa *arg2 = (Hex::Hexa *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_removeHexa",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -25038,13 +28432,13 @@ SWIGINTERN PyObject *_wrap_Document_removeQuad(PyObject *SWIGUNUSEDPARM(self), P
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Quad *arg2 = (Hex::Quad *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_removeQuad",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -25069,13 +28463,13 @@ SWIGINTERN PyObject *_wrap_Document_removeConnectedHexa(PyObject *SWIGUNUSEDPARM
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Hexa *arg2 = (Hex::Hexa *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_removeConnectedHexa",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -25100,13 +28494,13 @@ SWIGINTERN PyObject *_wrap_Document_removeElements(PyObject *SWIGUNUSEDPARM(self
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Elements *arg2 = (Hex::Elements *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_removeElements",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -25131,13 +28525,13 @@ SWIGINTERN PyObject *_wrap_Document_removeGroup(PyObject *SWIGUNUSEDPARM(self),
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Group *arg2 = (Hex::Group *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_removeGroup",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -25162,13 +28556,13 @@ SWIGINTERN PyObject *_wrap_Document_removeLaw(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Law *arg2 = (Hex::Law *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_removeLaw",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -25195,7 +28589,6 @@ SWIGINTERN PyObject *_wrap_Document_makeCartesianTop(PyObject *SWIGUNUSEDPARM(se
   int arg2 ;
   int arg3 ;
   int arg4 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -25208,6 +28601,7 @@ SWIGINTERN PyObject *_wrap_Document_makeCartesianTop(PyObject *SWIGUNUSEDPARM(se
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Document_makeCartesianTop",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -25251,7 +28645,6 @@ SWIGINTERN PyObject *_wrap_Document_makeCartesianUni(PyObject *SWIGUNUSEDPARM(se
   int arg9 ;
   int arg10 ;
   int arg11 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -25285,6 +28678,7 @@ SWIGINTERN PyObject *_wrap_Document_makeCartesianUni(PyObject *SWIGUNUSEDPARM(se
   PyObject * obj8 = 0 ;
   PyObject * obj9 = 0 ;
   PyObject * obj10 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOOO:Document_makeCartesianUni",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9,&obj10)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -25360,7 +28754,6 @@ SWIGINTERN PyObject *_wrap_Document_makeCartesian(PyObject *SWIGUNUSEDPARM(self)
   Hex::RealVector arg6 ;
   Hex::RealVector arg7 ;
   Hex::RealVector arg8 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -25379,6 +28772,7 @@ SWIGINTERN PyObject *_wrap_Document_makeCartesian(PyObject *SWIGUNUSEDPARM(self)
   PyObject * obj5 = 0 ;
   PyObject * obj6 = 0 ;
   PyObject * obj7 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:Document_makeCartesian",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -25407,7 +28801,7 @@ SWIGINTERN PyObject *_wrap_Document_makeCartesian(PyObject *SWIGUNUSEDPARM(self)
   }
   arg5 = reinterpret_cast< Hex::Vector * >(argp5);
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     int res = swig::asptr(obj5, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_makeCartesian" "', argument " "6"" of type '" "Hex::RealVector""'"); 
@@ -25416,7 +28810,7 @@ SWIGINTERN PyObject *_wrap_Document_makeCartesian(PyObject *SWIGUNUSEDPARM(self)
     if (SWIG_IsNewObj(res)) delete ptr;
   }
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     int res = swig::asptr(obj6, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_makeCartesian" "', argument " "7"" of type '" "Hex::RealVector""'"); 
@@ -25425,7 +28819,7 @@ SWIGINTERN PyObject *_wrap_Document_makeCartesian(PyObject *SWIGUNUSEDPARM(self)
     if (SWIG_IsNewObj(res)) delete ptr;
   }
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     int res = swig::asptr(obj7, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_makeCartesian" "', argument " "8"" of type '" "Hex::RealVector""'"); 
@@ -25447,7 +28841,6 @@ SWIGINTERN PyObject *_wrap_Document_makeCylinderTop(PyObject *SWIGUNUSEDPARM(sel
   int arg2 ;
   int arg3 ;
   int arg4 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -25460,6 +28853,7 @@ SWIGINTERN PyObject *_wrap_Document_makeCylinderTop(PyObject *SWIGUNUSEDPARM(sel
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Document_makeCylinderTop",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -25503,7 +28897,6 @@ SWIGINTERN PyObject *_wrap_Document_makeCylinderUni(PyObject *SWIGUNUSEDPARM(sel
   int arg9 ;
   int arg10 ;
   int arg11 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -25537,6 +28930,7 @@ SWIGINTERN PyObject *_wrap_Document_makeCylinderUni(PyObject *SWIGUNUSEDPARM(sel
   PyObject * obj8 = 0 ;
   PyObject * obj9 = 0 ;
   PyObject * obj10 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOOO:Document_makeCylinderUni",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9,&obj10)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -25611,7 +29005,6 @@ SWIGINTERN PyObject *_wrap_Document_makeCylinder(PyObject *SWIGUNUSEDPARM(self),
   Hex::RealVector arg5 ;
   Hex::RealVector arg6 ;
   Hex::RealVector arg7 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -25627,6 +29020,7 @@ SWIGINTERN PyObject *_wrap_Document_makeCylinder(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj4 = 0 ;
   PyObject * obj5 = 0 ;
   PyObject * obj6 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:Document_makeCylinder",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -25650,7 +29044,7 @@ SWIGINTERN PyObject *_wrap_Document_makeCylinder(PyObject *SWIGUNUSEDPARM(self),
   }
   arg4 = reinterpret_cast< Hex::Vector * >(argp4);
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     int res = swig::asptr(obj4, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_makeCylinder" "', argument " "5"" of type '" "Hex::RealVector""'"); 
@@ -25659,7 +29053,7 @@ SWIGINTERN PyObject *_wrap_Document_makeCylinder(PyObject *SWIGUNUSEDPARM(self),
     if (SWIG_IsNewObj(res)) delete ptr;
   }
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     int res = swig::asptr(obj5, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_makeCylinder" "', argument " "6"" of type '" "Hex::RealVector""'"); 
@@ -25668,7 +29062,7 @@ SWIGINTERN PyObject *_wrap_Document_makeCylinder(PyObject *SWIGUNUSEDPARM(self),
     if (SWIG_IsNewObj(res)) delete ptr;
   }
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     int res = swig::asptr(obj6, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_makeCylinder" "', argument " "7"" of type '" "Hex::RealVector""'"); 
@@ -25690,7 +29084,6 @@ SWIGINTERN PyObject *_wrap_Document_makePipeTop(PyObject *SWIGUNUSEDPARM(self),
   int arg2 ;
   int arg3 ;
   int arg4 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -25703,6 +29096,7 @@ SWIGINTERN PyObject *_wrap_Document_makePipeTop(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Document_makePipeTop",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -25746,7 +29140,6 @@ SWIGINTERN PyObject *_wrap_Document_makePipeUni(PyObject *SWIGUNUSEDPARM(self),
   int arg9 ;
   int arg10 ;
   int arg11 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -25780,6 +29173,7 @@ SWIGINTERN PyObject *_wrap_Document_makePipeUni(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj8 = 0 ;
   PyObject * obj9 = 0 ;
   PyObject * obj10 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOOO:Document_makePipeUni",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9,&obj10)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -25854,7 +29248,6 @@ SWIGINTERN PyObject *_wrap_Document_makePipe(PyObject *SWIGUNUSEDPARM(self), PyO
   Hex::RealVector arg5 ;
   Hex::RealVector arg6 ;
   Hex::RealVector arg7 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -25870,6 +29263,7 @@ SWIGINTERN PyObject *_wrap_Document_makePipe(PyObject *SWIGUNUSEDPARM(self), PyO
   PyObject * obj4 = 0 ;
   PyObject * obj5 = 0 ;
   PyObject * obj6 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:Document_makePipe",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -25893,7 +29287,7 @@ SWIGINTERN PyObject *_wrap_Document_makePipe(PyObject *SWIGUNUSEDPARM(self), PyO
   }
   arg4 = reinterpret_cast< Hex::Vector * >(argp4);
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     int res = swig::asptr(obj4, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_makePipe" "', argument " "5"" of type '" "Hex::RealVector""'"); 
@@ -25902,7 +29296,7 @@ SWIGINTERN PyObject *_wrap_Document_makePipe(PyObject *SWIGUNUSEDPARM(self), PyO
     if (SWIG_IsNewObj(res)) delete ptr;
   }
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     int res = swig::asptr(obj5, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_makePipe" "', argument " "6"" of type '" "Hex::RealVector""'"); 
@@ -25911,7 +29305,7 @@ SWIGINTERN PyObject *_wrap_Document_makePipe(PyObject *SWIGUNUSEDPARM(self), PyO
     if (SWIG_IsNewObj(res)) delete ptr;
   }
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     int res = swig::asptr(obj6, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_makePipe" "', argument " "7"" of type '" "Hex::RealVector""'"); 
@@ -25932,7 +29326,6 @@ SWIGINTERN PyObject *_wrap_Document_makeSphericalTop__SWIG_0(PyObject *SWIGUNUSE
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   int arg2 ;
   int arg3 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -25942,6 +29335,7 @@ SWIGINTERN PyObject *_wrap_Document_makeSphericalTop__SWIG_0(PyObject *SWIGUNUSE
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_makeSphericalTop",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -25971,13 +29365,13 @@ SWIGINTERN PyObject *_wrap_Document_makeSphericalTop__SWIG_1(PyObject *SWIGUNUSE
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   int arg2 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_makeSphericalTop",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -25999,13 +29393,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Document_makeSphericalTop(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
@@ -26046,8 +29442,11 @@ SWIGINTERN PyObject *_wrap_Document_makeSphericalTop(PyObject *self, PyObject *a
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Document_makeSphericalTop'.\n  Possible C/C++ prototypes are:\n    makeSphericalTop(int,int)\n    makeSphericalTop(int)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'Document_makeSphericalTop'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::Document::makeSphericalTop(int,int)\n"
+    "    Hex::Document::makeSphericalTop(int)\n");
+  return 0;
 }
 
 
@@ -26060,7 +29459,6 @@ SWIGINTERN PyObject *_wrap_Document_makeSphericalUni__SWIG_0(PyObject *SWIGUNUSE
   double arg5 ;
   int arg6 ;
   int arg7 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -26082,6 +29480,7 @@ SWIGINTERN PyObject *_wrap_Document_makeSphericalUni__SWIG_0(PyObject *SWIGUNUSE
   PyObject * obj4 = 0 ;
   PyObject * obj5 = 0 ;
   PyObject * obj6 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:Document_makeSphericalUni",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -26135,7 +29534,6 @@ SWIGINTERN PyObject *_wrap_Document_makeSphericalUni__SWIG_1(PyObject *SWIGUNUSE
   Hex::Vector *arg4 = (Hex::Vector *) 0 ;
   double arg5 ;
   int arg6 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -26154,6 +29552,7 @@ SWIGINTERN PyObject *_wrap_Document_makeSphericalUni__SWIG_1(PyObject *SWIGUNUSE
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
   PyObject * obj5 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOO:Document_makeSphericalUni",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -26195,13 +29594,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Document_makeSphericalUni(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[8];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[8] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 7); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 7) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 6) {
@@ -26284,8 +29685,11 @@ SWIGINTERN PyObject *_wrap_Document_makeSphericalUni(PyObject *self, PyObject *a
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Document_makeSphericalUni'.\n  Possible C/C++ prototypes are:\n    makeSphericalUni(Hex::Vertex *,Hex::Vector *,Hex::Vector *,double,int,int)\n    makeSphericalUni(Hex::Vertex *,Hex::Vector *,Hex::Vector *,double,int)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'Document_makeSphericalUni'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::Document::makeSphericalUni(Hex::Vertex *,Hex::Vector *,Hex::Vector *,double,int,int)\n"
+    "    Hex::Document::makeSphericalUni(Hex::Vertex *,Hex::Vector *,Hex::Vector *,double,int)\n");
+  return 0;
 }
 
 
@@ -26297,7 +29701,6 @@ SWIGINTERN PyObject *_wrap_Document_makeSpherical__SWIG_0(PyObject *SWIGUNUSEDPA
   Hex::Vector *arg4 = (Hex::Vector *) 0 ;
   Hex::RealVector arg5 ;
   int arg6 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -26314,6 +29717,7 @@ SWIGINTERN PyObject *_wrap_Document_makeSpherical__SWIG_0(PyObject *SWIGUNUSEDPA
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
   PyObject * obj5 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOO:Document_makeSpherical",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -26337,7 +29741,7 @@ SWIGINTERN PyObject *_wrap_Document_makeSpherical__SWIG_0(PyObject *SWIGUNUSEDPA
   }
   arg4 = reinterpret_cast< Hex::Vector * >(argp4);
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     int res = swig::asptr(obj4, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_makeSpherical" "', argument " "5"" of type '" "Hex::RealVector""'"); 
@@ -26365,7 +29769,6 @@ SWIGINTERN PyObject *_wrap_Document_makeSpherical__SWIG_1(PyObject *SWIGUNUSEDPA
   Hex::Vector *arg3 = (Hex::Vector *) 0 ;
   Hex::Vector *arg4 = (Hex::Vector *) 0 ;
   Hex::RealVector arg5 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -26379,6 +29782,7 @@ SWIGINTERN PyObject *_wrap_Document_makeSpherical__SWIG_1(PyObject *SWIGUNUSEDPA
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:Document_makeSpherical",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -26402,7 +29806,7 @@ SWIGINTERN PyObject *_wrap_Document_makeSpherical__SWIG_1(PyObject *SWIGUNUSEDPA
   }
   arg4 = reinterpret_cast< Hex::Vector * >(argp4);
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     int res = swig::asptr(obj4, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_makeSpherical" "', argument " "5"" of type '" "Hex::RealVector""'"); 
@@ -26419,13 +29823,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Document_makeSpherical(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[7];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[7] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 6); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 6) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 5) {
@@ -26446,7 +29852,7 @@ SWIGINTERN PyObject *_wrap_Document_makeSpherical(PyObject *self, PyObject *args
           int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_Hex__Vector, 0);
           _v = SWIG_CheckState(res);
           if (_v) {
-            int res = swig::asptr(argv[4], (std::vector<double,std::allocator<double > >**)(0));
+            int res = swig::asptr(argv[4], (std::vector< double,std::allocator< double > >**)(0));
             _v = SWIG_CheckState(res);
             if (_v) {
               return _wrap_Document_makeSpherical__SWIG_1(self, args);
@@ -26474,7 +29880,7 @@ SWIGINTERN PyObject *_wrap_Document_makeSpherical(PyObject *self, PyObject *args
           int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_Hex__Vector, 0);
           _v = SWIG_CheckState(res);
           if (_v) {
-            int res = swig::asptr(argv[4], (std::vector<double,std::allocator<double > >**)(0));
+            int res = swig::asptr(argv[4], (std::vector< double,std::allocator< double > >**)(0));
             _v = SWIG_CheckState(res);
             if (_v) {
               {
@@ -26492,8 +29898,11 @@ SWIGINTERN PyObject *_wrap_Document_makeSpherical(PyObject *self, PyObject *args
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Document_makeSpherical'.\n  Possible C/C++ prototypes are:\n    makeSpherical(Hex::Vertex *,Hex::Vector *,Hex::Vector *,Hex::RealVector,int)\n    makeSpherical(Hex::Vertex *,Hex::Vector *,Hex::Vector *,Hex::RealVector)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'Document_makeSpherical'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::Document::makeSpherical(Hex::Vertex *,Hex::Vector *,Hex::Vector *,Hex::RealVector,int)\n"
+    "    Hex::Document::makeSpherical(Hex::Vertex *,Hex::Vector *,Hex::Vector *,Hex::RealVector)\n");
+  return 0;
 }
 
 
@@ -26503,7 +29912,6 @@ SWIGINTERN PyObject *_wrap_Document_makeSphereTop(PyObject *SWIGUNUSEDPARM(self)
   int arg2 ;
   int arg3 ;
   int arg4 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -26516,6 +29924,7 @@ SWIGINTERN PyObject *_wrap_Document_makeSphereTop(PyObject *SWIGUNUSEDPARM(self)
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Document_makeSphereTop",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -26559,7 +29968,6 @@ SWIGINTERN PyObject *_wrap_Document_makeSphereUni(PyObject *SWIGUNUSEDPARM(self)
   int arg9 ;
   int arg10 ;
   int arg11 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -26593,6 +30001,7 @@ SWIGINTERN PyObject *_wrap_Document_makeSphereUni(PyObject *SWIGUNUSEDPARM(self)
   PyObject * obj8 = 0 ;
   PyObject * obj9 = 0 ;
   PyObject * obj10 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOOO:Document_makeSphereUni",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9,&obj10)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -26667,7 +30076,6 @@ SWIGINTERN PyObject *_wrap_Document_makeSphere(PyObject *SWIGUNUSEDPARM(self), P
   Hex::RealVector arg5 ;
   Hex::RealVector arg6 ;
   Hex::RealVector arg7 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -26683,6 +30091,7 @@ SWIGINTERN PyObject *_wrap_Document_makeSphere(PyObject *SWIGUNUSEDPARM(self), P
   PyObject * obj4 = 0 ;
   PyObject * obj5 = 0 ;
   PyObject * obj6 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:Document_makeSphere",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -26706,7 +30115,7 @@ SWIGINTERN PyObject *_wrap_Document_makeSphere(PyObject *SWIGUNUSEDPARM(self), P
   }
   arg4 = reinterpret_cast< Hex::Vector * >(argp4);
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     int res = swig::asptr(obj4, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_makeSphere" "', argument " "5"" of type '" "Hex::RealVector""'"); 
@@ -26715,7 +30124,7 @@ SWIGINTERN PyObject *_wrap_Document_makeSphere(PyObject *SWIGUNUSEDPARM(self), P
     if (SWIG_IsNewObj(res)) delete ptr;
   }
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     int res = swig::asptr(obj5, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_makeSphere" "', argument " "6"" of type '" "Hex::RealVector""'"); 
@@ -26724,7 +30133,7 @@ SWIGINTERN PyObject *_wrap_Document_makeSphere(PyObject *SWIGUNUSEDPARM(self), P
     if (SWIG_IsNewObj(res)) delete ptr;
   }
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     int res = swig::asptr(obj6, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_makeSphere" "', argument " "7"" of type '" "Hex::RealVector""'"); 
@@ -26746,7 +30155,6 @@ SWIGINTERN PyObject *_wrap_Document_makeRindTop(PyObject *SWIGUNUSEDPARM(self),
   int arg2 ;
   int arg3 ;
   int arg4 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -26759,6 +30167,7 @@ SWIGINTERN PyObject *_wrap_Document_makeRindTop(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Document_makeRindTop",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -26803,7 +30212,6 @@ SWIGINTERN PyObject *_wrap_Document_makeRindUni(PyObject *SWIGUNUSEDPARM(self),
   int arg10 ;
   int arg11 ;
   int arg12 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -26840,6 +30248,7 @@ SWIGINTERN PyObject *_wrap_Document_makeRindUni(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj9 = 0 ;
   PyObject * obj10 = 0 ;
   PyObject * obj11 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOOOO:Document_makeRindUni",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9,&obj10,&obj11)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -26919,7 +30328,6 @@ SWIGINTERN PyObject *_wrap_Document_makeRind(PyObject *SWIGUNUSEDPARM(self), PyO
   Hex::RealVector arg5 ;
   Hex::RealVector arg6 ;
   Hex::RealVector arg7 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -26935,6 +30343,7 @@ SWIGINTERN PyObject *_wrap_Document_makeRind(PyObject *SWIGUNUSEDPARM(self), PyO
   PyObject * obj4 = 0 ;
   PyObject * obj5 = 0 ;
   PyObject * obj6 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:Document_makeRind",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -26958,7 +30367,7 @@ SWIGINTERN PyObject *_wrap_Document_makeRind(PyObject *SWIGUNUSEDPARM(self), PyO
   }
   arg4 = reinterpret_cast< Hex::Vector * >(argp4);
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     int res = swig::asptr(obj4, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_makeRind" "', argument " "5"" of type '" "Hex::RealVector""'"); 
@@ -26967,7 +30376,7 @@ SWIGINTERN PyObject *_wrap_Document_makeRind(PyObject *SWIGUNUSEDPARM(self), PyO
     if (SWIG_IsNewObj(res)) delete ptr;
   }
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     int res = swig::asptr(obj5, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_makeRind" "', argument " "6"" of type '" "Hex::RealVector""'"); 
@@ -26976,7 +30385,7 @@ SWIGINTERN PyObject *_wrap_Document_makeRind(PyObject *SWIGUNUSEDPARM(self), PyO
     if (SWIG_IsNewObj(res)) delete ptr;
   }
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     int res = swig::asptr(obj6, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_makeRind" "', argument " "7"" of type '" "Hex::RealVector""'"); 
@@ -27003,7 +30412,6 @@ SWIGINTERN PyObject *_wrap_Document_makeCylinders(PyObject *SWIGUNUSEDPARM(self)
   Hex::Vector *arg7 = (Hex::Vector *) 0 ;
   double arg8 ;
   double arg9 ;
-  Hex::BiCylinder *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -27031,6 +30439,7 @@ SWIGINTERN PyObject *_wrap_Document_makeCylinders(PyObject *SWIGUNUSEDPARM(self)
   PyObject * obj6 = 0 ;
   PyObject * obj7 = 0 ;
   PyObject * obj8 = 0 ;
+  Hex::BiCylinder *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOO:Document_makeCylinders",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -27099,7 +30508,6 @@ SWIGINTERN PyObject *_wrap_Document_makePipes(PyObject *SWIGUNUSEDPARM(self), Py
   double arg9 ;
   double arg10 ;
   double arg11 ;
-  Hex::BiCylinder *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -27133,6 +30541,7 @@ SWIGINTERN PyObject *_wrap_Document_makePipes(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject * obj8 = 0 ;
   PyObject * obj9 = 0 ;
   PyObject * obj10 = 0 ;
+  Hex::BiCylinder *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOOO:Document_makePipes",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9,&obj10)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -27203,7 +30612,6 @@ SWIGINTERN PyObject *_wrap_Document_extrudeQuadTop(PyObject *SWIGUNUSEDPARM(self
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Quad *arg2 = (Hex::Quad *) 0 ;
   int arg3 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -27213,6 +30621,7 @@ SWIGINTERN PyObject *_wrap_Document_extrudeQuadTop(PyObject *SWIGUNUSEDPARM(self
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_extrudeQuadTop",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -27245,7 +30654,6 @@ SWIGINTERN PyObject *_wrap_Document_extrudeQuadUni(PyObject *SWIGUNUSEDPARM(self
   Hex::Vector *arg3 = (Hex::Vector *) 0 ;
   double arg4 ;
   int arg5 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -27261,6 +30669,7 @@ SWIGINTERN PyObject *_wrap_Document_extrudeQuadUni(PyObject *SWIGUNUSEDPARM(self
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:Document_extrudeQuadUni",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -27302,7 +30711,6 @@ SWIGINTERN PyObject *_wrap_Document_extrudeQuad(PyObject *SWIGUNUSEDPARM(self),
   Hex::Quad *arg2 = (Hex::Quad *) 0 ;
   Hex::Vector *arg3 = (Hex::Vector *) 0 ;
   Hex::RealVector arg4 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -27313,6 +30721,7 @@ SWIGINTERN PyObject *_wrap_Document_extrudeQuad(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Document_extrudeQuad",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -27331,7 +30740,7 @@ SWIGINTERN PyObject *_wrap_Document_extrudeQuad(PyObject *SWIGUNUSEDPARM(self),
   }
   arg3 = reinterpret_cast< Hex::Vector * >(argp3);
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     int res = swig::asptr(obj3, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_extrudeQuad" "', argument " "4"" of type '" "Hex::RealVector""'"); 
@@ -27352,7 +30761,6 @@ SWIGINTERN PyObject *_wrap_Document_extrudeQuadsTop(PyObject *SWIGUNUSEDPARM(sel
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Quads arg2 ;
   int arg3 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val3 ;
@@ -27360,6 +30768,7 @@ SWIGINTERN PyObject *_wrap_Document_extrudeQuadsTop(PyObject *SWIGUNUSEDPARM(sel
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_extrudeQuadsTop",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -27368,7 +30777,7 @@ SWIGINTERN PyObject *_wrap_Document_extrudeQuadsTop(PyObject *SWIGUNUSEDPARM(sel
   }
   arg1 = reinterpret_cast< Hex::Document * >(argp1);
   {
-    std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *ptr = (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *)0;
+    std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *ptr = (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *)0;
     int res = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_extrudeQuadsTop" "', argument " "2"" of type '" "Hex::Quads""'"); 
@@ -27396,7 +30805,6 @@ SWIGINTERN PyObject *_wrap_Document_extrudeQuadsUni(PyObject *SWIGUNUSEDPARM(sel
   Hex::Vector *arg3 = (Hex::Vector *) 0 ;
   double arg4 ;
   int arg5 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp3 = 0 ;
@@ -27410,6 +30818,7 @@ SWIGINTERN PyObject *_wrap_Document_extrudeQuadsUni(PyObject *SWIGUNUSEDPARM(sel
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:Document_extrudeQuadsUni",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -27418,7 +30827,7 @@ SWIGINTERN PyObject *_wrap_Document_extrudeQuadsUni(PyObject *SWIGUNUSEDPARM(sel
   }
   arg1 = reinterpret_cast< Hex::Document * >(argp1);
   {
-    std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *ptr = (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *)0;
+    std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *ptr = (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *)0;
     int res = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_extrudeQuadsUni" "', argument " "2"" of type '" "Hex::Quads""'"); 
@@ -27455,7 +30864,6 @@ SWIGINTERN PyObject *_wrap_Document_extrudeQuads(PyObject *SWIGUNUSEDPARM(self),
   Hex::Quads arg2 ;
   Hex::Vector *arg3 = (Hex::Vector *) 0 ;
   Hex::RealVector arg4 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp3 = 0 ;
@@ -27464,6 +30872,7 @@ SWIGINTERN PyObject *_wrap_Document_extrudeQuads(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Document_extrudeQuads",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -27472,7 +30881,7 @@ SWIGINTERN PyObject *_wrap_Document_extrudeQuads(PyObject *SWIGUNUSEDPARM(self),
   }
   arg1 = reinterpret_cast< Hex::Document * >(argp1);
   {
-    std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *ptr = (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *)0;
+    std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *ptr = (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *)0;
     int res = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_extrudeQuads" "', argument " "2"" of type '" "Hex::Quads""'"); 
@@ -27486,7 +30895,7 @@ SWIGINTERN PyObject *_wrap_Document_extrudeQuads(PyObject *SWIGUNUSEDPARM(self),
   }
   arg3 = reinterpret_cast< Hex::Vector * >(argp3);
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     int res = swig::asptr(obj3, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_extrudeQuads" "', argument " "4"" of type '" "Hex::RealVector""'"); 
@@ -27510,7 +30919,6 @@ SWIGINTERN PyObject *_wrap_Document_revolutionQuadUni(PyObject *SWIGUNUSEDPARM(s
   Hex::Vector *arg4 = (Hex::Vector *) 0 ;
   double arg5 ;
   int arg6 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -27529,6 +30937,7 @@ SWIGINTERN PyObject *_wrap_Document_revolutionQuadUni(PyObject *SWIGUNUSEDPARM(s
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
   PyObject * obj5 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOO:Document_revolutionQuadUni",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -27576,7 +30985,6 @@ SWIGINTERN PyObject *_wrap_Document_revolutionQuad(PyObject *SWIGUNUSEDPARM(self
   Hex::Vertex *arg3 = (Hex::Vertex *) 0 ;
   Hex::Vector *arg4 = (Hex::Vector *) 0 ;
   Hex::RealVector arg5 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -27590,6 +30998,7 @@ SWIGINTERN PyObject *_wrap_Document_revolutionQuad(PyObject *SWIGUNUSEDPARM(self
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:Document_revolutionQuad",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -27613,7 +31022,7 @@ SWIGINTERN PyObject *_wrap_Document_revolutionQuad(PyObject *SWIGUNUSEDPARM(self
   }
   arg4 = reinterpret_cast< Hex::Vector * >(argp4);
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     int res = swig::asptr(obj4, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_revolutionQuad" "', argument " "5"" of type '" "Hex::RealVector""'"); 
@@ -27637,7 +31046,6 @@ SWIGINTERN PyObject *_wrap_Document_revolutionQuadsUni(PyObject *SWIGUNUSEDPARM(
   Hex::Vector *arg4 = (Hex::Vector *) 0 ;
   double arg5 ;
   int arg6 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp3 = 0 ;
@@ -27654,6 +31062,7 @@ SWIGINTERN PyObject *_wrap_Document_revolutionQuadsUni(PyObject *SWIGUNUSEDPARM(
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
   PyObject * obj5 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOO:Document_revolutionQuadsUni",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -27662,7 +31071,7 @@ SWIGINTERN PyObject *_wrap_Document_revolutionQuadsUni(PyObject *SWIGUNUSEDPARM(
   }
   arg1 = reinterpret_cast< Hex::Document * >(argp1);
   {
-    std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *ptr = (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *)0;
+    std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *ptr = (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *)0;
     int res = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_revolutionQuadsUni" "', argument " "2"" of type '" "Hex::Quads""'"); 
@@ -27705,7 +31114,6 @@ SWIGINTERN PyObject *_wrap_Document_revolutionQuads(PyObject *SWIGUNUSEDPARM(sel
   Hex::Vertex *arg3 = (Hex::Vertex *) 0 ;
   Hex::Vector *arg4 = (Hex::Vector *) 0 ;
   Hex::RealVector arg5 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp3 = 0 ;
@@ -27717,6 +31125,7 @@ SWIGINTERN PyObject *_wrap_Document_revolutionQuads(PyObject *SWIGUNUSEDPARM(sel
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:Document_revolutionQuads",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -27725,7 +31134,7 @@ SWIGINTERN PyObject *_wrap_Document_revolutionQuads(PyObject *SWIGUNUSEDPARM(sel
   }
   arg1 = reinterpret_cast< Hex::Document * >(argp1);
   {
-    std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *ptr = (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *)0;
+    std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *ptr = (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *)0;
     int res = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_revolutionQuads" "', argument " "2"" of type '" "Hex::Quads""'"); 
@@ -27744,7 +31153,7 @@ SWIGINTERN PyObject *_wrap_Document_revolutionQuads(PyObject *SWIGUNUSEDPARM(sel
   }
   arg4 = reinterpret_cast< Hex::Vector * >(argp4);
   {
-    std::vector<double,std::allocator<double > > *ptr = (std::vector<double,std::allocator<double > > *)0;
+    std::vector< double,std::allocator< double > > *ptr = (std::vector< double,std::allocator< double > > *)0;
     int res = swig::asptr(obj4, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_revolutionQuads" "', argument " "5"" of type '" "Hex::RealVector""'"); 
@@ -27770,7 +31179,6 @@ SWIGINTERN PyObject *_wrap_Document_joinQuadUni(PyObject *SWIGUNUSEDPARM(self),
   Hex::Vertex *arg6 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg7 = (Hex::Vertex *) 0 ;
   int arg8 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -27795,6 +31203,7 @@ SWIGINTERN PyObject *_wrap_Document_joinQuadUni(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj5 = 0 ;
   PyObject * obj6 = 0 ;
   PyObject * obj7 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:Document_joinQuadUni",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -27855,7 +31264,6 @@ SWIGINTERN PyObject *_wrap_Document_joinQuadsUni(PyObject *SWIGUNUSEDPARM(self),
   Hex::Vertex *arg6 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg7 = (Hex::Vertex *) 0 ;
   int arg8 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp3 = 0 ;
@@ -27878,6 +31286,7 @@ SWIGINTERN PyObject *_wrap_Document_joinQuadsUni(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj5 = 0 ;
   PyObject * obj6 = 0 ;
   PyObject * obj7 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:Document_joinQuadsUni",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -27886,7 +31295,7 @@ SWIGINTERN PyObject *_wrap_Document_joinQuadsUni(PyObject *SWIGUNUSEDPARM(self),
   }
   arg1 = reinterpret_cast< Hex::Document * >(argp1);
   {
-    std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *ptr = (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *)0;
+    std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *ptr = (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *)0;
     int res = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_joinQuadsUni" "', argument " "2"" of type '" "Hex::Quads""'"); 
@@ -27942,7 +31351,6 @@ SWIGINTERN PyObject *_wrap_Document_joinQuad(PyObject *SWIGUNUSEDPARM(self), PyO
   Hex::Vertex *arg6 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg7 = (Hex::Vertex *) 0 ;
   Hex::RealVector *arg8 = 0 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -27967,6 +31375,7 @@ SWIGINTERN PyObject *_wrap_Document_joinQuad(PyObject *SWIGUNUSEDPARM(self), PyO
   PyObject * obj5 = 0 ;
   PyObject * obj6 = 0 ;
   PyObject * obj7 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:Document_joinQuad",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -28004,7 +31413,7 @@ SWIGINTERN PyObject *_wrap_Document_joinQuad(PyObject *SWIGUNUSEDPARM(self), PyO
     SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "Document_joinQuad" "', argument " "7"" of type '" "Hex::Vertex *""'"); 
   }
   arg7 = reinterpret_cast< Hex::Vertex * >(argp7);
-  res8 = SWIG_ConvertPtr(obj7, &argp8, SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t,  0 );
+  res8 = SWIG_ConvertPtr(obj7, &argp8, SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t,  0 );
   if (!SWIG_IsOK(res8)) {
     SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "Document_joinQuad" "', argument " "8"" of type '" "Hex::RealVector &""'"); 
   }
@@ -28030,7 +31439,6 @@ SWIGINTERN PyObject *_wrap_Document_joinQuads(PyObject *SWIGUNUSEDPARM(self), Py
   Hex::Vertex *arg6 = (Hex::Vertex *) 0 ;
   Hex::Vertex *arg7 = (Hex::Vertex *) 0 ;
   Hex::RealVector *arg8 = 0 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp3 = 0 ;
@@ -28053,6 +31461,7 @@ SWIGINTERN PyObject *_wrap_Document_joinQuads(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject * obj5 = 0 ;
   PyObject * obj6 = 0 ;
   PyObject * obj7 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:Document_joinQuads",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -28061,7 +31470,7 @@ SWIGINTERN PyObject *_wrap_Document_joinQuads(PyObject *SWIGUNUSEDPARM(self), Py
   }
   arg1 = reinterpret_cast< Hex::Document * >(argp1);
   {
-    std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *ptr = (std::vector<Hex::Quad*,std::allocator<Hex::Quad * > > *)0;
+    std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *ptr = (std::vector< Hex::Quad*,std::allocator< Hex::Quad * > > *)0;
     int res = swig::asptr(obj1, &ptr);
     if (!SWIG_IsOK(res) || !ptr) {
       SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "Document_joinQuads" "', argument " "2"" of type '" "Hex::Quads""'"); 
@@ -28094,7 +31503,7 @@ SWIGINTERN PyObject *_wrap_Document_joinQuads(PyObject *SWIGUNUSEDPARM(self), Py
     SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "Document_joinQuads" "', argument " "7"" of type '" "Hex::Vertex *""'"); 
   }
   arg7 = reinterpret_cast< Hex::Vertex * >(argp7);
-  res8 = SWIG_ConvertPtr(obj7, &argp8, SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t,  0 );
+  res8 = SWIG_ConvertPtr(obj7, &argp8, SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t,  0 );
   if (!SWIG_IsOK(res8)) {
     SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "Document_joinQuads" "', argument " "8"" of type '" "Hex::RealVector &""'"); 
   }
@@ -28115,7 +31524,6 @@ SWIGINTERN PyObject *_wrap_Document_cutUni(PyObject *SWIGUNUSEDPARM(self), PyObj
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Edge *arg2 = (Hex::Edge *) 0 ;
   int arg3 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -28125,6 +31533,7 @@ SWIGINTERN PyObject *_wrap_Document_cutUni(PyObject *SWIGUNUSEDPARM(self), PyObj
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_cutUni",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -28155,7 +31564,6 @@ SWIGINTERN PyObject *_wrap_Document_cut(PyObject *SWIGUNUSEDPARM(self), PyObject
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Edge *arg2 = (Hex::Edge *) 0 ;
   Hex::RealVector *arg3 = 0 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -28165,6 +31573,7 @@ SWIGINTERN PyObject *_wrap_Document_cut(PyObject *SWIGUNUSEDPARM(self), PyObject
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_cut",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -28177,7 +31586,7 @@ SWIGINTERN PyObject *_wrap_Document_cut(PyObject *SWIGUNUSEDPARM(self), PyObject
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Document_cut" "', argument " "2"" of type '" "Hex::Edge *""'"); 
   }
   arg2 = reinterpret_cast< Hex::Edge * >(argp2);
-  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_std__vectorTdouble_std__allocatorTdouble_t_t,  0 );
+  res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t,  0 );
   if (!SWIG_IsOK(res3)) {
     SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "Document_cut" "', argument " "3"" of type '" "Hex::RealVector &""'"); 
   }
@@ -28198,7 +31607,6 @@ SWIGINTERN PyObject *_wrap_Document_addGroup(PyObject *SWIGUNUSEDPARM(self), PyO
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   cpchar arg2 = (cpchar) 0 ;
   Hex::EnumGroup arg3 ;
-  Hex::Group *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -28209,6 +31617,7 @@ SWIGINTERN PyObject *_wrap_Document_addGroup(PyObject *SWIGUNUSEDPARM(self), PyO
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Group *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_addGroup",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -28239,10 +31648,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Document_isSaved(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Document_isSaved",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -28262,13 +31671,13 @@ SWIGINTERN PyObject *_wrap_Document_appendXml(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   pfile arg2 = (pfile) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_appendXml",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -28292,10 +31701,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Document_getXml(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  cpchar result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  cpchar result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Document_getXml",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -28314,10 +31723,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Document_getLevel(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Document_getLevel",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -28337,13 +31746,13 @@ SWIGINTERN PyObject *_wrap_Document_findVertex__SWIG_1(PyObject *SWIGUNUSEDPARM(
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   int arg2 ;
-  Hex::Vertex *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Vertex *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_findVertex",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -28365,13 +31774,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Document_findVertex(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[5];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[5] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 4); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 4) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
@@ -28418,8 +31829,11 @@ SWIGINTERN PyObject *_wrap_Document_findVertex(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Document_findVertex'.\n  Possible C/C++ prototypes are:\n    findVertex(double,double,double)\n    findVertex(int)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'Document_findVertex'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::Document::findVertex(double,double,double)\n"
+    "    Hex::Document::findVertex(int)\n");
+  return 0;
 }
 
 
@@ -28428,7 +31842,6 @@ SWIGINTERN PyObject *_wrap_Document_closeQuads(PyObject *SWIGUNUSEDPARM(self), P
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Quad *arg2 = (Hex::Quad *) 0 ;
   Hex::Quad *arg3 = (Hex::Quad *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -28438,6 +31851,7 @@ SWIGINTERN PyObject *_wrap_Document_closeQuads(PyObject *SWIGUNUSEDPARM(self), P
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_closeQuads",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -28467,13 +31881,13 @@ SWIGINTERN PyObject *_wrap_Document_addLaw__SWIG_1(PyObject *SWIGUNUSEDPARM(self
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::Law *arg2 = (Hex::Law *) 0 ;
-  Hex::Law *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Law *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Document_addLaw",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -28495,13 +31909,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Document_addLaw(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[4];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[4] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 3); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 3) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
@@ -28539,18 +31955,21 @@ SWIGINTERN PyObject *_wrap_Document_addLaw(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Document_addLaw'.\n  Possible C/C++ prototypes are:\n    addLaw(char const *,int)\n    addLaw(Hex::Law *)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'Document_addLaw'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::Document::addLaw(char const *,int)\n"
+    "    Hex::Document::addLaw(Hex::Law *)\n");
+  return 0;
 }
 
 
 SWIGINTERN PyObject *_wrap_Document_checkAssociations(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Document_checkAssociations",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -28571,7 +31990,6 @@ SWIGINTERN PyObject *_wrap_Document_addShape(PyObject *SWIGUNUSEDPARM(self), PyO
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   long arg2 ;
   char *arg3 = (char *) 0 ;
-  Hex::NewShape *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   long val2 ;
@@ -28582,6 +32000,7 @@ SWIGINTERN PyObject *_wrap_Document_addShape(PyObject *SWIGUNUSEDPARM(self), PyO
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::NewShape *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:Document_addShape",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -28623,7 +32042,6 @@ SWIGINTERN PyObject *_wrap_delete_Document(PyObject *SWIGUNUSEDPARM(self), PyObj
   }
   arg1 = reinterpret_cast< Hex::Document * >(argp1);
   delete arg1;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -28633,7 +32051,7 @@ fail:
 
 SWIGINTERN PyObject *Document_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_Hex__Document, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -28641,10 +32059,10 @@ SWIGINTERN PyObject *Document_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObj
 SWIGINTERN PyObject *_wrap_Propagation_getEdges(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Propagation *arg1 = (Hex::Propagation *) 0 ;
-  Hex::Edges *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  Hex::Edges *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Propagation_getEdges",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Propagation, 0 |  0 );
@@ -28652,11 +32070,8 @@ SWIGINTERN PyObject *_wrap_Propagation_getEdges(PyObject *SWIGUNUSEDPARM(self),
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Propagation_getEdges" "', argument " "1"" of type '" "Hex::Propagation *""'"); 
   }
   arg1 = reinterpret_cast< Hex::Propagation * >(argp1);
-  {
-    Hex::Edges const &_result_ref = (arg1)->getEdges();
-    result = (Hex::Edges *) &_result_ref;
-  }
-  resultobj = swig::from(static_cast< std::vector<Hex::Edge*,std::allocator<Hex::Edge * > > >(*result));
+  result = (Hex::Edges *) &(arg1)->getEdges();
+  resultobj = swig::from(static_cast< std::vector< Hex::Edge*,std::allocator< Hex::Edge * > > >(*result));
   return resultobj;
 fail:
   return NULL;
@@ -28666,10 +32081,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Propagation_getLaw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Propagation *arg1 = (Hex::Propagation *) 0 ;
-  Hex::Law *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  Hex::Law *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Propagation_getLaw",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Propagation, 0 |  0 );
@@ -28688,10 +32103,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Propagation_getWay(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Propagation *arg1 = (Hex::Propagation *) 0 ;
-  bool result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  bool result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Propagation_getWay",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Propagation, 0 |  0 );
@@ -28741,13 +32156,13 @@ SWIGINTERN PyObject *_wrap_Propagation_setLaw(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject *resultobj = 0;
   Hex::Propagation *arg1 = (Hex::Propagation *) 0 ;
   Hex::Law *arg2 = (Hex::Law *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Propagation_setLaw",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Propagation, 0 |  0 );
@@ -28771,10 +32186,10 @@ fail:
 SWIGINTERN PyObject *_wrap_new_Propagation(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  Hex::Propagation *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  Hex::Propagation *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_Propagation",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -28885,7 +32300,6 @@ SWIGINTERN PyObject *_wrap_delete_Propagation(PyObject *SWIGUNUSEDPARM(self), Py
   }
   arg1 = reinterpret_cast< Hex::Propagation * >(argp1);
   delete arg1;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -28895,7 +32309,7 @@ fail:
 
 SWIGINTERN PyObject *Propagation_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_Hex__Propagation, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -28929,10 +32343,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Hex_countDocument(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Hex *arg1 = (Hex::Hex *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Hex_countDocument",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Hex, 0 |  0 );
@@ -28952,13 +32366,13 @@ SWIGINTERN PyObject *_wrap_Hex_getDocument(PyObject *SWIGUNUSEDPARM(self), PyObj
   PyObject *resultobj = 0;
   Hex::Hex *arg1 = (Hex::Hex *) 0 ;
   int arg2 ;
-  Hex::Document *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Document *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Hex_getDocument",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Hex, 0 |  0 );
@@ -29013,7 +32427,6 @@ SWIGINTERN PyObject *_wrap_Hex_addDocument__SWIG_0(PyObject *SWIGUNUSEDPARM(self
   PyObject *resultobj = 0;
   Hex::Hex *arg1 = (Hex::Hex *) 0 ;
   cpchar arg2 = (cpchar) 0 ;
-  Hex::Document *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -29021,6 +32434,7 @@ SWIGINTERN PyObject *_wrap_Hex_addDocument__SWIG_0(PyObject *SWIGUNUSEDPARM(self
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Document *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Hex_addDocument",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Hex, 0 |  0 );
@@ -29046,10 +32460,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Hex_addDocument__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Hex *arg1 = (Hex::Hex *) 0 ;
-  Hex::Document *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  Hex::Document *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Hex_addDocument",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Hex, 0 |  0 );
@@ -29066,13 +32480,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Hex_addDocument(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 1) {
@@ -29099,8 +32515,11 @@ SWIGINTERN PyObject *_wrap_Hex_addDocument(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Hex_addDocument'.\n  Possible C/C++ prototypes are:\n    addDocument(cpchar)\n    addDocument()\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'Hex_addDocument'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::Hex::addDocument(cpchar)\n"
+    "    Hex::Hex::addDocument()\n");
+  return 0;
 }
 
 
@@ -29108,7 +32527,6 @@ SWIGINTERN PyObject *_wrap_Hex_loadDocument(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject *resultobj = 0;
   Hex::Hex *arg1 = (Hex::Hex *) 0 ;
   cpchar arg2 = (cpchar) 0 ;
-  Hex::Document *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -29116,6 +32534,7 @@ SWIGINTERN PyObject *_wrap_Hex_loadDocument(PyObject *SWIGUNUSEDPARM(self), PyOb
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Document *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Hex_loadDocument",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Hex, 0 |  0 );
@@ -29142,7 +32561,6 @@ SWIGINTERN PyObject *_wrap_Hex_findDocument__SWIG_0(PyObject *SWIGUNUSEDPARM(sel
   PyObject *resultobj = 0;
   Hex::Hex *arg1 = (Hex::Hex *) 0 ;
   cpchar arg2 = (cpchar) 0 ;
-  Hex::Document *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -29150,6 +32568,7 @@ SWIGINTERN PyObject *_wrap_Hex_findDocument__SWIG_0(PyObject *SWIGUNUSEDPARM(sel
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Document *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Hex_findDocument",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Hex, 0 |  0 );
@@ -29176,13 +32595,13 @@ SWIGINTERN PyObject *_wrap_Hex_findDocument__SWIG_1(PyObject *SWIGUNUSEDPARM(sel
   PyObject *resultobj = 0;
   Hex::Hex *arg1 = (Hex::Hex *) 0 ;
   string *arg2 = 0 ;
-  Hex::Document *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Document *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Hex_findDocument",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Hex, 0 |  0 );
@@ -29207,13 +32626,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Hex_findDocument(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
@@ -29244,8 +32665,11 @@ SWIGINTERN PyObject *_wrap_Hex_findDocument(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Hex_findDocument'.\n  Possible C/C++ prototypes are:\n    findDocument(cpchar)\n    findDocument(string const &)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'Hex_findDocument'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::Hex::findDocument(cpchar)\n"
+    "    Hex::Hex::findDocument(string const &)\n");
+  return 0;
 }
 
 
@@ -29273,10 +32697,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Hex_sizeofMessage(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Hex *arg1 = (Hex::Hex *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Hex_sizeofMessage",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Hex, 0 |  0 );
@@ -29296,13 +32720,13 @@ SWIGINTERN PyObject *_wrap_Hex_getMessageLine(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject *resultobj = 0;
   Hex::Hex *arg1 = (Hex::Hex *) 0 ;
   int arg2 ;
-  cpchar result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  cpchar result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Hex_getMessageLine",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Hex, 0 |  0 );
@@ -29350,7 +32774,6 @@ SWIGINTERN PyObject *_wrap_delete_Hex(PyObject *SWIGUNUSEDPARM(self), PyObject *
   }
   arg1 = reinterpret_cast< Hex::Hex * >(argp1);
   delete arg1;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -29360,7 +32783,7 @@ fail:
 
 SWIGINTERN PyObject *Hex_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_Hex__Hex, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -29381,13 +32804,13 @@ SWIGINTERN PyObject *_wrap_Elements_getHexa(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject *resultobj = 0;
   Hex::Elements *arg1 = (Hex::Elements *) 0 ;
   int arg2 ;
-  Hex::Hexa *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Hexa *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Elements_getHexa",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Elements, 0 |  0 );
@@ -29412,13 +32835,13 @@ SWIGINTERN PyObject *_wrap_Elements_getQuad(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject *resultobj = 0;
   Hex::Elements *arg1 = (Hex::Elements *) 0 ;
   int arg2 ;
-  Hex::Quad *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Quad *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Elements_getQuad",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Elements, 0 |  0 );
@@ -29443,13 +32866,13 @@ SWIGINTERN PyObject *_wrap_Elements_getEdge(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject *resultobj = 0;
   Hex::Elements *arg1 = (Hex::Elements *) 0 ;
   int arg2 ;
-  Hex::Edge *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Edge *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Elements_getEdge",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Elements, 0 |  0 );
@@ -29474,13 +32897,13 @@ SWIGINTERN PyObject *_wrap_Elements_getVertex(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject *resultobj = 0;
   Hex::Elements *arg1 = (Hex::Elements *) 0 ;
   int arg2 ;
-  Hex::Vertex *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Vertex *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Elements_getVertex",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Elements, 0 |  0 );
@@ -29507,7 +32930,6 @@ SWIGINTERN PyObject *_wrap_Elements_getHexaIJK(PyObject *SWIGUNUSEDPARM(self), P
   int arg2 ;
   int arg3 ;
   int arg4 ;
-  Hex::Hexa *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -29520,6 +32942,7 @@ SWIGINTERN PyObject *_wrap_Elements_getHexaIJK(PyObject *SWIGUNUSEDPARM(self), P
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Hexa *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Elements_getHexaIJK",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Elements, 0 |  0 );
@@ -29556,7 +32979,6 @@ SWIGINTERN PyObject *_wrap_Elements_getQuadIJ(PyObject *SWIGUNUSEDPARM(self), Py
   int arg2 ;
   int arg3 ;
   int arg4 ;
-  Hex::Quad *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -29569,6 +32991,7 @@ SWIGINTERN PyObject *_wrap_Elements_getQuadIJ(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Quad *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Elements_getQuadIJ",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Elements, 0 |  0 );
@@ -29605,7 +33028,6 @@ SWIGINTERN PyObject *_wrap_Elements_getQuadJK(PyObject *SWIGUNUSEDPARM(self), Py
   int arg2 ;
   int arg3 ;
   int arg4 ;
-  Hex::Quad *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -29618,6 +33040,7 @@ SWIGINTERN PyObject *_wrap_Elements_getQuadJK(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Quad *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Elements_getQuadJK",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Elements, 0 |  0 );
@@ -29654,7 +33077,6 @@ SWIGINTERN PyObject *_wrap_Elements_getQuadIK(PyObject *SWIGUNUSEDPARM(self), Py
   int arg2 ;
   int arg3 ;
   int arg4 ;
-  Hex::Quad *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -29667,6 +33089,7 @@ SWIGINTERN PyObject *_wrap_Elements_getQuadIK(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Quad *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Elements_getQuadIK",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Elements, 0 |  0 );
@@ -29703,7 +33126,6 @@ SWIGINTERN PyObject *_wrap_Elements_getEdgeI(PyObject *SWIGUNUSEDPARM(self), PyO
   int arg2 ;
   int arg3 ;
   int arg4 ;
-  Hex::Edge *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -29716,6 +33138,7 @@ SWIGINTERN PyObject *_wrap_Elements_getEdgeI(PyObject *SWIGUNUSEDPARM(self), PyO
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Edge *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Elements_getEdgeI",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Elements, 0 |  0 );
@@ -29752,7 +33175,6 @@ SWIGINTERN PyObject *_wrap_Elements_getEdgeJ(PyObject *SWIGUNUSEDPARM(self), PyO
   int arg2 ;
   int arg3 ;
   int arg4 ;
-  Hex::Edge *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -29765,6 +33187,7 @@ SWIGINTERN PyObject *_wrap_Elements_getEdgeJ(PyObject *SWIGUNUSEDPARM(self), PyO
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Edge *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Elements_getEdgeJ",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Elements, 0 |  0 );
@@ -29801,7 +33224,6 @@ SWIGINTERN PyObject *_wrap_Elements_getEdgeK(PyObject *SWIGUNUSEDPARM(self), PyO
   int arg2 ;
   int arg3 ;
   int arg4 ;
-  Hex::Edge *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -29814,6 +33236,7 @@ SWIGINTERN PyObject *_wrap_Elements_getEdgeK(PyObject *SWIGUNUSEDPARM(self), PyO
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Edge *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Elements_getEdgeK",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Elements, 0 |  0 );
@@ -29850,7 +33273,6 @@ SWIGINTERN PyObject *_wrap_Elements_getVertexIJK(PyObject *SWIGUNUSEDPARM(self),
   int arg2 ;
   int arg3 ;
   int arg4 ;
-  Hex::Vertex *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -29863,6 +33285,7 @@ SWIGINTERN PyObject *_wrap_Elements_getVertexIJK(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
+  Hex::Vertex *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOO:Elements_getVertexIJK",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Elements, 0 |  0 );
@@ -29896,10 +33319,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Elements_countHexa(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Elements *arg1 = (Hex::Elements *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Elements_countHexa",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Elements, 0 |  0 );
@@ -29918,10 +33341,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Elements_countQuad(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Elements *arg1 = (Hex::Elements *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Elements_countQuad",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Elements, 0 |  0 );
@@ -29940,10 +33363,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Elements_countEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Elements *arg1 = (Hex::Elements *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Elements_countEdge",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Elements, 0 |  0 );
@@ -29962,10 +33385,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Elements_countVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Elements *arg1 = (Hex::Elements *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Elements_countVertex",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Elements, 0 |  0 );
@@ -29985,13 +33408,13 @@ SWIGINTERN PyObject *_wrap_Elements_nearestVertex(PyObject *SWIGUNUSEDPARM(self)
   PyObject *resultobj = 0;
   Hex::Elements *arg1 = (Hex::Elements *) 0 ;
   Hex::Vertex *arg2 = (Hex::Vertex *) 0 ;
-  Hex::Vertex *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::Vertex *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Elements_nearestVertex",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Elements, 0 |  0 );
@@ -30016,13 +33439,13 @@ SWIGINTERN PyObject *_wrap_Elements_findVertex(PyObject *SWIGUNUSEDPARM(self), P
   PyObject *resultobj = 0;
   Hex::Elements *arg1 = (Hex::Elements *) 0 ;
   Hex::Vertex *arg2 = (Hex::Vertex *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Elements_findVertex",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Elements, 0 |  0 );
@@ -30068,7 +33491,6 @@ SWIGINTERN PyObject *_wrap_Elements_saveVtk(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject *resultobj = 0;
   Hex::Elements *arg1 = (Hex::Elements *) 0 ;
   cpchar arg2 = (cpchar) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -30076,6 +33498,7 @@ SWIGINTERN PyObject *_wrap_Elements_saveVtk(PyObject *SWIGUNUSEDPARM(self), PyOb
   int alloc2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Elements_saveVtk",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Elements, 0 |  0 );
@@ -30101,10 +33524,10 @@ fail:
 SWIGINTERN PyObject *_wrap_new_Elements(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  Hex::Elements *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  Hex::Elements *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_Elements",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -30134,7 +33557,6 @@ SWIGINTERN PyObject *_wrap_delete_Elements(PyObject *SWIGUNUSEDPARM(self), PyObj
   }
   arg1 = reinterpret_cast< Hex::Elements * >(argp1);
   delete arg1;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -30144,7 +33566,7 @@ fail:
 
 SWIGINTERN PyObject *Elements_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_Hex__Elements, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -30152,10 +33574,10 @@ SWIGINTERN PyObject *Elements_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObj
 SWIGINTERN PyObject *_wrap_new_BiCylinder(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  Hex::BiCylinder *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  Hex::BiCylinder *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_BiCylinder",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -30178,7 +33600,6 @@ SWIGINTERN PyObject *_wrap_BiCylinder_getHexaIJK(PyObject *SWIGUNUSEDPARM(self),
   int arg3 ;
   int arg4 ;
   int arg5 ;
-  Hex::Hexa *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -30194,6 +33615,7 @@ SWIGINTERN PyObject *_wrap_BiCylinder_getHexaIJK(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  Hex::Hexa *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:BiCylinder_getHexaIJK",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__BiCylinder, 0 |  0 );
@@ -30236,7 +33658,6 @@ SWIGINTERN PyObject *_wrap_BiCylinder_getQuadIJ(PyObject *SWIGUNUSEDPARM(self),
   int arg3 ;
   int arg4 ;
   int arg5 ;
-  Hex::Quad *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -30252,6 +33673,7 @@ SWIGINTERN PyObject *_wrap_BiCylinder_getQuadIJ(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  Hex::Quad *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:BiCylinder_getQuadIJ",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__BiCylinder, 0 |  0 );
@@ -30294,7 +33716,6 @@ SWIGINTERN PyObject *_wrap_BiCylinder_getQuadJK(PyObject *SWIGUNUSEDPARM(self),
   int arg3 ;
   int arg4 ;
   int arg5 ;
-  Hex::Quad *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -30310,6 +33731,7 @@ SWIGINTERN PyObject *_wrap_BiCylinder_getQuadJK(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  Hex::Quad *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:BiCylinder_getQuadJK",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__BiCylinder, 0 |  0 );
@@ -30352,7 +33774,6 @@ SWIGINTERN PyObject *_wrap_BiCylinder_getQuadIK(PyObject *SWIGUNUSEDPARM(self),
   int arg3 ;
   int arg4 ;
   int arg5 ;
-  Hex::Quad *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -30368,6 +33789,7 @@ SWIGINTERN PyObject *_wrap_BiCylinder_getQuadIK(PyObject *SWIGUNUSEDPARM(self),
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  Hex::Quad *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:BiCylinder_getQuadIK",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__BiCylinder, 0 |  0 );
@@ -30410,7 +33832,6 @@ SWIGINTERN PyObject *_wrap_BiCylinder_getEdgeI(PyObject *SWIGUNUSEDPARM(self), P
   int arg3 ;
   int arg4 ;
   int arg5 ;
-  Hex::Edge *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -30426,6 +33847,7 @@ SWIGINTERN PyObject *_wrap_BiCylinder_getEdgeI(PyObject *SWIGUNUSEDPARM(self), P
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  Hex::Edge *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:BiCylinder_getEdgeI",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__BiCylinder, 0 |  0 );
@@ -30468,7 +33890,6 @@ SWIGINTERN PyObject *_wrap_BiCylinder_getEdgeJ(PyObject *SWIGUNUSEDPARM(self), P
   int arg3 ;
   int arg4 ;
   int arg5 ;
-  Hex::Edge *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -30484,6 +33905,7 @@ SWIGINTERN PyObject *_wrap_BiCylinder_getEdgeJ(PyObject *SWIGUNUSEDPARM(self), P
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  Hex::Edge *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:BiCylinder_getEdgeJ",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__BiCylinder, 0 |  0 );
@@ -30526,7 +33948,6 @@ SWIGINTERN PyObject *_wrap_BiCylinder_getEdgeK(PyObject *SWIGUNUSEDPARM(self), P
   int arg3 ;
   int arg4 ;
   int arg5 ;
-  Hex::Edge *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -30542,6 +33963,7 @@ SWIGINTERN PyObject *_wrap_BiCylinder_getEdgeK(PyObject *SWIGUNUSEDPARM(self), P
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  Hex::Edge *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:BiCylinder_getEdgeK",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__BiCylinder, 0 |  0 );
@@ -30584,7 +34006,6 @@ SWIGINTERN PyObject *_wrap_BiCylinder_getVertexIJK(PyObject *SWIGUNUSEDPARM(self
   int arg3 ;
   int arg4 ;
   int arg5 ;
-  Hex::Vertex *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -30600,6 +34021,7 @@ SWIGINTERN PyObject *_wrap_BiCylinder_getVertexIJK(PyObject *SWIGUNUSEDPARM(self
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
+  Hex::Vertex *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:BiCylinder_getVertexIJK",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__BiCylinder, 0 |  0 );
@@ -30649,7 +34071,6 @@ SWIGINTERN PyObject *_wrap_delete_BiCylinder(PyObject *SWIGUNUSEDPARM(self), PyO
   }
   arg1 = reinterpret_cast< Hex::BiCylinder * >(argp1);
   delete arg1;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -30659,7 +34080,7 @@ fail:
 
 SWIGINTERN PyObject *BiCylinder_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_Hex__BiCylinder, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -30667,10 +34088,10 @@ SWIGINTERN PyObject *BiCylinder_swigregister(PyObject *SWIGUNUSEDPARM(self), PyO
 SWIGINTERN PyObject *_wrap_NewShape_countVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::NewShape *arg1 = (Hex::NewShape *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:NewShape_countVertex",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__NewShape, 0 |  0 );
@@ -30689,10 +34110,10 @@ fail:
 SWIGINTERN PyObject *_wrap_NewShape_countEdge(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::NewShape *arg1 = (Hex::NewShape *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:NewShape_countEdge",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__NewShape, 0 |  0 );
@@ -30711,10 +34132,10 @@ fail:
 SWIGINTERN PyObject *_wrap_NewShape_countFace(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::NewShape *arg1 = (Hex::NewShape *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:NewShape_countFace",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__NewShape, 0 |  0 );
@@ -30734,13 +34155,13 @@ SWIGINTERN PyObject *_wrap_NewShape_getVertex(PyObject *SWIGUNUSEDPARM(self), Py
   PyObject *resultobj = 0;
   Hex::NewShape *arg1 = (Hex::NewShape *) 0 ;
   int arg2 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:NewShape_getVertex",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__NewShape, 0 |  0 );
@@ -30765,13 +34186,13 @@ SWIGINTERN PyObject *_wrap_NewShape_getEdge(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject *resultobj = 0;
   Hex::NewShape *arg1 = (Hex::NewShape *) 0 ;
   int arg2 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:NewShape_getEdge",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__NewShape, 0 |  0 );
@@ -30796,13 +34217,13 @@ SWIGINTERN PyObject *_wrap_NewShape_getFace(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject *resultobj = 0;
   Hex::NewShape *arg1 = (Hex::NewShape *) 0 ;
   int arg2 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:NewShape_getFace",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__NewShape, 0 |  0 );
@@ -30827,13 +34248,13 @@ SWIGINTERN PyObject *_wrap_NewShape_getNameVertex(PyObject *SWIGUNUSEDPARM(self)
   PyObject *resultobj = 0;
   Hex::NewShape *arg1 = (Hex::NewShape *) 0 ;
   int arg2 ;
-  cpchar result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  cpchar result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:NewShape_getNameVertex",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__NewShape, 0 |  0 );
@@ -30858,13 +34279,13 @@ SWIGINTERN PyObject *_wrap_NewShape_getNameEdge(PyObject *SWIGUNUSEDPARM(self),
   PyObject *resultobj = 0;
   Hex::NewShape *arg1 = (Hex::NewShape *) 0 ;
   int arg2 ;
-  cpchar result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  cpchar result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:NewShape_getNameEdge",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__NewShape, 0 |  0 );
@@ -30889,13 +34310,13 @@ SWIGINTERN PyObject *_wrap_NewShape_getNameFace(PyObject *SWIGUNUSEDPARM(self),
   PyObject *resultobj = 0;
   Hex::NewShape *arg1 = (Hex::NewShape *) 0 ;
   int arg2 ;
-  cpchar result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  cpchar result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:NewShape_getNameFace",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__NewShape, 0 |  0 );
@@ -30920,13 +34341,13 @@ SWIGINTERN PyObject *_wrap_new_NewShape__SWIG_0(PyObject *SWIGUNUSEDPARM(self),
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   Hex::EnumShape arg2 ;
-  Hex::NewShape *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::NewShape *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:new_NewShape",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -30950,10 +34371,10 @@ fail:
 SWIGINTERN PyObject *_wrap_new_NewShape__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Document *arg1 = (Hex::Document *) 0 ;
-  Hex::NewShape *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  Hex::NewShape *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"O:new_NewShape",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -30970,13 +34391,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_new_NewShape(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 1) {
@@ -31005,8 +34428,11 @@ SWIGINTERN PyObject *_wrap_new_NewShape(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_NewShape'.\n  Possible C/C++ prototypes are:\n    Hex::NewShape(Hex::Document *,Hex::EnumShape)\n    Hex::NewShape(Hex::Document *)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_NewShape'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::NewShape::NewShape(Hex::Document *,Hex::EnumShape)\n"
+    "    Hex::NewShape::NewShape(Hex::Document *)\n");
+  return 0;
 }
 
 
@@ -31024,7 +34450,6 @@ SWIGINTERN PyObject *_wrap_delete_NewShape(PyObject *SWIGUNUSEDPARM(self), PyObj
   }
   arg1 = reinterpret_cast< Hex::NewShape * >(argp1);
   delete arg1;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -31034,7 +34459,7 @@ fail:
 
 SWIGINTERN PyObject *NewShape_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_Hex__NewShape, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
@@ -31043,13 +34468,13 @@ SWIGINTERN PyObject *_wrap_Group_addElement(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject *resultobj = 0;
   Hex::Group *arg1 = (Hex::Group *) 0 ;
   Hex::EltBase *arg2 = (Hex::EltBase *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Group_addElement",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Group, 0 |  0 );
@@ -31073,10 +34498,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Group_countElement(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Group *arg1 = (Hex::Group *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Group_countElement",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Group, 0 |  0 );
@@ -31095,10 +34520,10 @@ fail:
 SWIGINTERN PyObject *_wrap_Group_getKind(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Hex::Group *arg1 = (Hex::Group *) 0 ;
-  Hex::EnumGroup result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  Hex::EnumGroup result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:Group_getKind",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Group, 0 |  0 );
@@ -31118,13 +34543,13 @@ SWIGINTERN PyObject *_wrap_Group_removeElement__SWIG_0(PyObject *SWIGUNUSEDPARM(
   PyObject *resultobj = 0;
   Hex::Group *arg1 = (Hex::Group *) 0 ;
   int arg2 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Group_removeElement",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Group, 0 |  0 );
@@ -31170,13 +34595,13 @@ SWIGINTERN PyObject *_wrap_Group_removeElement__SWIG_1(PyObject *SWIGUNUSEDPARM(
   PyObject *resultobj = 0;
   Hex::Group *arg1 = (Hex::Group *) 0 ;
   Hex::EltBase *arg2 = (Hex::EltBase *) 0 ;
-  int result;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  int result;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Group_removeElement",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Group, 0 |  0 );
@@ -31198,13 +34623,15 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_Group_removeElement(PyObject *self, PyObject *args) {
-  int argc;
-  PyObject *argv[3];
-  int ii;
+  Py_ssize_t argc;
+  PyObject *argv[3] = {
+    0
+  };
+  Py_ssize_t ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+  argc = args ? PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
@@ -31238,8 +34665,11 @@ SWIGINTERN PyObject *_wrap_Group_removeElement(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'Group_removeElement'.\n  Possible C/C++ prototypes are:\n    removeElement(int)\n    removeElement(Hex::EltBase *)\n");
-  return NULL;
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'Group_removeElement'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    Hex::Group::removeElement(int)\n"
+    "    Hex::Group::removeElement(Hex::EltBase *)\n");
+  return 0;
 }
 
 
@@ -31247,13 +34677,13 @@ SWIGINTERN PyObject *_wrap_Group_getElement(PyObject *SWIGUNUSEDPARM(self), PyOb
   PyObject *resultobj = 0;
   Hex::Group *arg1 = (Hex::Group *) 0 ;
   int arg2 ;
-  Hex::EltBase *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
   int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  Hex::EltBase *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OO:Group_getElement",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Group, 0 |  0 );
@@ -31279,7 +34709,6 @@ SWIGINTERN PyObject *_wrap_new_Group(PyObject *SWIGUNUSEDPARM(self), PyObject *a
   Hex::Document *arg1 = (Hex::Document *) 0 ;
   cpchar arg2 = (cpchar) 0 ;
   Hex::EnumGroup arg3 ;
-  Hex::Group *result = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
@@ -31290,6 +34719,7 @@ SWIGINTERN PyObject *_wrap_new_Group(PyObject *SWIGUNUSEDPARM(self), PyObject *a
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   PyObject * obj2 = 0 ;
+  Hex::Group *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"OOO:new_Group",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Document, 0 |  0 );
@@ -31331,7 +34761,6 @@ SWIGINTERN PyObject *_wrap_delete_Group(PyObject *SWIGUNUSEDPARM(self), PyObject
   }
   arg1 = reinterpret_cast< Hex::Group * >(argp1);
   delete arg1;
-  
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -31341,49 +34770,52 @@ fail:
 
 SWIGINTERN PyObject *Group_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O|swigregister", &obj)) return NULL;
+  if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
   SWIG_TypeNewClientData(SWIGTYPE_p_Hex__Group, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
 
 static PyMethodDef SwigMethods[] = {
-        { (char *)"delete_PySwigIterator", _wrap_delete_PySwigIterator, METH_VARARGS, NULL},
-        { (char *)"PySwigIterator_value", _wrap_PySwigIterator_value, METH_VARARGS, NULL},
-        { (char *)"PySwigIterator_incr", _wrap_PySwigIterator_incr, METH_VARARGS, NULL},
-        { (char *)"PySwigIterator_decr", _wrap_PySwigIterator_decr, METH_VARARGS, NULL},
-        { (char *)"PySwigIterator_distance", _wrap_PySwigIterator_distance, METH_VARARGS, NULL},
-        { (char *)"PySwigIterator_equal", _wrap_PySwigIterator_equal, METH_VARARGS, NULL},
-        { (char *)"PySwigIterator_copy", _wrap_PySwigIterator_copy, METH_VARARGS, NULL},
-        { (char *)"PySwigIterator_next", _wrap_PySwigIterator_next, METH_VARARGS, NULL},
-        { (char *)"PySwigIterator_previous", _wrap_PySwigIterator_previous, METH_VARARGS, NULL},
-        { (char *)"PySwigIterator_advance", _wrap_PySwigIterator_advance, METH_VARARGS, NULL},
-        { (char *)"PySwigIterator___eq__", _wrap_PySwigIterator___eq__, METH_VARARGS, NULL},
-        { (char *)"PySwigIterator___ne__", _wrap_PySwigIterator___ne__, METH_VARARGS, NULL},
-        { (char *)"PySwigIterator___iadd__", _wrap_PySwigIterator___iadd__, METH_VARARGS, NULL},
-        { (char *)"PySwigIterator___isub__", _wrap_PySwigIterator___isub__, METH_VARARGS, NULL},
-        { (char *)"PySwigIterator___add__", _wrap_PySwigIterator___add__, METH_VARARGS, NULL},
-        { (char *)"PySwigIterator___sub__", _wrap_PySwigIterator___sub__, METH_VARARGS, NULL},
-        { (char *)"PySwigIterator_swigregister", PySwigIterator_swigregister, METH_VARARGS, NULL},
+        { (char *)"SWIG_PyInstanceMethod_New", (PyCFunction)SWIG_PyInstanceMethod_New, METH_O, NULL},
+        { (char *)"delete_SwigPyIterator", _wrap_delete_SwigPyIterator, METH_VARARGS, NULL},
+        { (char *)"SwigPyIterator_value", _wrap_SwigPyIterator_value, METH_VARARGS, NULL},
+        { (char *)"SwigPyIterator_incr", _wrap_SwigPyIterator_incr, METH_VARARGS, NULL},
+        { (char *)"SwigPyIterator_decr", _wrap_SwigPyIterator_decr, METH_VARARGS, NULL},
+        { (char *)"SwigPyIterator_distance", _wrap_SwigPyIterator_distance, METH_VARARGS, NULL},
+        { (char *)"SwigPyIterator_equal", _wrap_SwigPyIterator_equal, METH_VARARGS, NULL},
+        { (char *)"SwigPyIterator_copy", _wrap_SwigPyIterator_copy, METH_VARARGS, NULL},
+        { (char *)"SwigPyIterator_next", _wrap_SwigPyIterator_next, METH_VARARGS, NULL},
+        { (char *)"SwigPyIterator___next__", _wrap_SwigPyIterator___next__, METH_VARARGS, NULL},
+        { (char *)"SwigPyIterator_previous", _wrap_SwigPyIterator_previous, METH_VARARGS, NULL},
+        { (char *)"SwigPyIterator_advance", _wrap_SwigPyIterator_advance, METH_VARARGS, NULL},
+        { (char *)"SwigPyIterator___eq__", _wrap_SwigPyIterator___eq__, METH_VARARGS, NULL},
+        { (char *)"SwigPyIterator___ne__", _wrap_SwigPyIterator___ne__, METH_VARARGS, NULL},
+        { (char *)"SwigPyIterator___iadd__", _wrap_SwigPyIterator___iadd__, METH_VARARGS, NULL},
+        { (char *)"SwigPyIterator___isub__", _wrap_SwigPyIterator___isub__, METH_VARARGS, NULL},
+        { (char *)"SwigPyIterator___add__", _wrap_SwigPyIterator___add__, METH_VARARGS, NULL},
+        { (char *)"SwigPyIterator___sub__", _wrap_SwigPyIterator___sub__, METH_VARARGS, NULL},
+        { (char *)"SwigPyIterator_swigregister", SwigPyIterator_swigregister, METH_VARARGS, NULL},
         { (char *)"VectorHexas_iterator", _wrap_VectorHexas_iterator, METH_VARARGS, NULL},
         { (char *)"VectorHexas___nonzero__", _wrap_VectorHexas___nonzero__, METH_VARARGS, NULL},
+        { (char *)"VectorHexas___bool__", _wrap_VectorHexas___bool__, METH_VARARGS, NULL},
         { (char *)"VectorHexas___len__", _wrap_VectorHexas___len__, METH_VARARGS, NULL},
-        { (char *)"VectorHexas_pop", _wrap_VectorHexas_pop, METH_VARARGS, NULL},
         { (char *)"VectorHexas___getslice__", _wrap_VectorHexas___getslice__, METH_VARARGS, NULL},
         { (char *)"VectorHexas___setslice__", _wrap_VectorHexas___setslice__, METH_VARARGS, NULL},
         { (char *)"VectorHexas___delslice__", _wrap_VectorHexas___delslice__, METH_VARARGS, NULL},
         { (char *)"VectorHexas___delitem__", _wrap_VectorHexas___delitem__, METH_VARARGS, NULL},
         { (char *)"VectorHexas___getitem__", _wrap_VectorHexas___getitem__, METH_VARARGS, NULL},
         { (char *)"VectorHexas___setitem__", _wrap_VectorHexas___setitem__, METH_VARARGS, NULL},
+        { (char *)"VectorHexas_pop", _wrap_VectorHexas_pop, METH_VARARGS, NULL},
         { (char *)"VectorHexas_append", _wrap_VectorHexas_append, METH_VARARGS, NULL},
         { (char *)"VectorHexas_empty", _wrap_VectorHexas_empty, METH_VARARGS, NULL},
         { (char *)"VectorHexas_size", _wrap_VectorHexas_size, METH_VARARGS, NULL},
-        { (char *)"VectorHexas_clear", _wrap_VectorHexas_clear, METH_VARARGS, NULL},
         { (char *)"VectorHexas_swap", _wrap_VectorHexas_swap, METH_VARARGS, NULL},
-        { (char *)"VectorHexas_get_allocator", _wrap_VectorHexas_get_allocator, METH_VARARGS, NULL},
         { (char *)"VectorHexas_begin", _wrap_VectorHexas_begin, METH_VARARGS, NULL},
         { (char *)"VectorHexas_end", _wrap_VectorHexas_end, METH_VARARGS, NULL},
         { (char *)"VectorHexas_rbegin", _wrap_VectorHexas_rbegin, METH_VARARGS, NULL},
         { (char *)"VectorHexas_rend", _wrap_VectorHexas_rend, METH_VARARGS, NULL},
+        { (char *)"VectorHexas_clear", _wrap_VectorHexas_clear, METH_VARARGS, NULL},
+        { (char *)"VectorHexas_get_allocator", _wrap_VectorHexas_get_allocator, METH_VARARGS, NULL},
         { (char *)"VectorHexas_pop_back", _wrap_VectorHexas_pop_back, METH_VARARGS, NULL},
         { (char *)"VectorHexas_erase", _wrap_VectorHexas_erase, METH_VARARGS, NULL},
         { (char *)"new_VectorHexas", _wrap_new_VectorHexas, METH_VARARGS, NULL},
@@ -31399,24 +34831,25 @@ static PyMethodDef SwigMethods[] = {
         { (char *)"VectorHexas_swigregister", VectorHexas_swigregister, METH_VARARGS, NULL},
         { (char *)"VectorQuads_iterator", _wrap_VectorQuads_iterator, METH_VARARGS, NULL},
         { (char *)"VectorQuads___nonzero__", _wrap_VectorQuads___nonzero__, METH_VARARGS, NULL},
+        { (char *)"VectorQuads___bool__", _wrap_VectorQuads___bool__, METH_VARARGS, NULL},
         { (char *)"VectorQuads___len__", _wrap_VectorQuads___len__, METH_VARARGS, NULL},
-        { (char *)"VectorQuads_pop", _wrap_VectorQuads_pop, METH_VARARGS, NULL},
         { (char *)"VectorQuads___getslice__", _wrap_VectorQuads___getslice__, METH_VARARGS, NULL},
         { (char *)"VectorQuads___setslice__", _wrap_VectorQuads___setslice__, METH_VARARGS, NULL},
         { (char *)"VectorQuads___delslice__", _wrap_VectorQuads___delslice__, METH_VARARGS, NULL},
         { (char *)"VectorQuads___delitem__", _wrap_VectorQuads___delitem__, METH_VARARGS, NULL},
         { (char *)"VectorQuads___getitem__", _wrap_VectorQuads___getitem__, METH_VARARGS, NULL},
         { (char *)"VectorQuads___setitem__", _wrap_VectorQuads___setitem__, METH_VARARGS, NULL},
+        { (char *)"VectorQuads_pop", _wrap_VectorQuads_pop, METH_VARARGS, NULL},
         { (char *)"VectorQuads_append", _wrap_VectorQuads_append, METH_VARARGS, NULL},
         { (char *)"VectorQuads_empty", _wrap_VectorQuads_empty, METH_VARARGS, NULL},
         { (char *)"VectorQuads_size", _wrap_VectorQuads_size, METH_VARARGS, NULL},
-        { (char *)"VectorQuads_clear", _wrap_VectorQuads_clear, METH_VARARGS, NULL},
         { (char *)"VectorQuads_swap", _wrap_VectorQuads_swap, METH_VARARGS, NULL},
-        { (char *)"VectorQuads_get_allocator", _wrap_VectorQuads_get_allocator, METH_VARARGS, NULL},
         { (char *)"VectorQuads_begin", _wrap_VectorQuads_begin, METH_VARARGS, NULL},
         { (char *)"VectorQuads_end", _wrap_VectorQuads_end, METH_VARARGS, NULL},
         { (char *)"VectorQuads_rbegin", _wrap_VectorQuads_rbegin, METH_VARARGS, NULL},
         { (char *)"VectorQuads_rend", _wrap_VectorQuads_rend, METH_VARARGS, NULL},
+        { (char *)"VectorQuads_clear", _wrap_VectorQuads_clear, METH_VARARGS, NULL},
+        { (char *)"VectorQuads_get_allocator", _wrap_VectorQuads_get_allocator, METH_VARARGS, NULL},
         { (char *)"VectorQuads_pop_back", _wrap_VectorQuads_pop_back, METH_VARARGS, NULL},
         { (char *)"VectorQuads_erase", _wrap_VectorQuads_erase, METH_VARARGS, NULL},
         { (char *)"new_VectorQuads", _wrap_new_VectorQuads, METH_VARARGS, NULL},
@@ -31432,24 +34865,25 @@ static PyMethodDef SwigMethods[] = {
         { (char *)"VectorQuads_swigregister", VectorQuads_swigregister, METH_VARARGS, NULL},
         { (char *)"VectorEdges_iterator", _wrap_VectorEdges_iterator, METH_VARARGS, NULL},
         { (char *)"VectorEdges___nonzero__", _wrap_VectorEdges___nonzero__, METH_VARARGS, NULL},
+        { (char *)"VectorEdges___bool__", _wrap_VectorEdges___bool__, METH_VARARGS, NULL},
         { (char *)"VectorEdges___len__", _wrap_VectorEdges___len__, METH_VARARGS, NULL},
-        { (char *)"VectorEdges_pop", _wrap_VectorEdges_pop, METH_VARARGS, NULL},
         { (char *)"VectorEdges___getslice__", _wrap_VectorEdges___getslice__, METH_VARARGS, NULL},
         { (char *)"VectorEdges___setslice__", _wrap_VectorEdges___setslice__, METH_VARARGS, NULL},
         { (char *)"VectorEdges___delslice__", _wrap_VectorEdges___delslice__, METH_VARARGS, NULL},
         { (char *)"VectorEdges___delitem__", _wrap_VectorEdges___delitem__, METH_VARARGS, NULL},
         { (char *)"VectorEdges___getitem__", _wrap_VectorEdges___getitem__, METH_VARARGS, NULL},
         { (char *)"VectorEdges___setitem__", _wrap_VectorEdges___setitem__, METH_VARARGS, NULL},
+        { (char *)"VectorEdges_pop", _wrap_VectorEdges_pop, METH_VARARGS, NULL},
         { (char *)"VectorEdges_append", _wrap_VectorEdges_append, METH_VARARGS, NULL},
         { (char *)"VectorEdges_empty", _wrap_VectorEdges_empty, METH_VARARGS, NULL},
         { (char *)"VectorEdges_size", _wrap_VectorEdges_size, METH_VARARGS, NULL},
-        { (char *)"VectorEdges_clear", _wrap_VectorEdges_clear, METH_VARARGS, NULL},
         { (char *)"VectorEdges_swap", _wrap_VectorEdges_swap, METH_VARARGS, NULL},
-        { (char *)"VectorEdges_get_allocator", _wrap_VectorEdges_get_allocator, METH_VARARGS, NULL},
         { (char *)"VectorEdges_begin", _wrap_VectorEdges_begin, METH_VARARGS, NULL},
         { (char *)"VectorEdges_end", _wrap_VectorEdges_end, METH_VARARGS, NULL},
         { (char *)"VectorEdges_rbegin", _wrap_VectorEdges_rbegin, METH_VARARGS, NULL},
         { (char *)"VectorEdges_rend", _wrap_VectorEdges_rend, METH_VARARGS, NULL},
+        { (char *)"VectorEdges_clear", _wrap_VectorEdges_clear, METH_VARARGS, NULL},
+        { (char *)"VectorEdges_get_allocator", _wrap_VectorEdges_get_allocator, METH_VARARGS, NULL},
         { (char *)"VectorEdges_pop_back", _wrap_VectorEdges_pop_back, METH_VARARGS, NULL},
         { (char *)"VectorEdges_erase", _wrap_VectorEdges_erase, METH_VARARGS, NULL},
         { (char *)"new_VectorEdges", _wrap_new_VectorEdges, METH_VARARGS, NULL},
@@ -31465,24 +34899,25 @@ static PyMethodDef SwigMethods[] = {
         { (char *)"VectorEdges_swigregister", VectorEdges_swigregister, METH_VARARGS, NULL},
         { (char *)"VectorVertices_iterator", _wrap_VectorVertices_iterator, METH_VARARGS, NULL},
         { (char *)"VectorVertices___nonzero__", _wrap_VectorVertices___nonzero__, METH_VARARGS, NULL},
+        { (char *)"VectorVertices___bool__", _wrap_VectorVertices___bool__, METH_VARARGS, NULL},
         { (char *)"VectorVertices___len__", _wrap_VectorVertices___len__, METH_VARARGS, NULL},
-        { (char *)"VectorVertices_pop", _wrap_VectorVertices_pop, METH_VARARGS, NULL},
         { (char *)"VectorVertices___getslice__", _wrap_VectorVertices___getslice__, METH_VARARGS, NULL},
         { (char *)"VectorVertices___setslice__", _wrap_VectorVertices___setslice__, METH_VARARGS, NULL},
         { (char *)"VectorVertices___delslice__", _wrap_VectorVertices___delslice__, METH_VARARGS, NULL},
         { (char *)"VectorVertices___delitem__", _wrap_VectorVertices___delitem__, METH_VARARGS, NULL},
         { (char *)"VectorVertices___getitem__", _wrap_VectorVertices___getitem__, METH_VARARGS, NULL},
         { (char *)"VectorVertices___setitem__", _wrap_VectorVertices___setitem__, METH_VARARGS, NULL},
+        { (char *)"VectorVertices_pop", _wrap_VectorVertices_pop, METH_VARARGS, NULL},
         { (char *)"VectorVertices_append", _wrap_VectorVertices_append, METH_VARARGS, NULL},
         { (char *)"VectorVertices_empty", _wrap_VectorVertices_empty, METH_VARARGS, NULL},
         { (char *)"VectorVertices_size", _wrap_VectorVertices_size, METH_VARARGS, NULL},
-        { (char *)"VectorVertices_clear", _wrap_VectorVertices_clear, METH_VARARGS, NULL},
         { (char *)"VectorVertices_swap", _wrap_VectorVertices_swap, METH_VARARGS, NULL},
-        { (char *)"VectorVertices_get_allocator", _wrap_VectorVertices_get_allocator, METH_VARARGS, NULL},
         { (char *)"VectorVertices_begin", _wrap_VectorVertices_begin, METH_VARARGS, NULL},
         { (char *)"VectorVertices_end", _wrap_VectorVertices_end, METH_VARARGS, NULL},
         { (char *)"VectorVertices_rbegin", _wrap_VectorVertices_rbegin, METH_VARARGS, NULL},
         { (char *)"VectorVertices_rend", _wrap_VectorVertices_rend, METH_VARARGS, NULL},
+        { (char *)"VectorVertices_clear", _wrap_VectorVertices_clear, METH_VARARGS, NULL},
+        { (char *)"VectorVertices_get_allocator", _wrap_VectorVertices_get_allocator, METH_VARARGS, NULL},
         { (char *)"VectorVertices_pop_back", _wrap_VectorVertices_pop_back, METH_VARARGS, NULL},
         { (char *)"VectorVertices_erase", _wrap_VectorVertices_erase, METH_VARARGS, NULL},
         { (char *)"new_VectorVertices", _wrap_new_VectorVertices, METH_VARARGS, NULL},
@@ -31498,24 +34933,25 @@ static PyMethodDef SwigMethods[] = {
         { (char *)"VectorVertices_swigregister", VectorVertices_swigregister, METH_VARARGS, NULL},
         { (char *)"VectorShapes_iterator", _wrap_VectorShapes_iterator, METH_VARARGS, NULL},
         { (char *)"VectorShapes___nonzero__", _wrap_VectorShapes___nonzero__, METH_VARARGS, NULL},
+        { (char *)"VectorShapes___bool__", _wrap_VectorShapes___bool__, METH_VARARGS, NULL},
         { (char *)"VectorShapes___len__", _wrap_VectorShapes___len__, METH_VARARGS, NULL},
-        { (char *)"VectorShapes_pop", _wrap_VectorShapes_pop, METH_VARARGS, NULL},
         { (char *)"VectorShapes___getslice__", _wrap_VectorShapes___getslice__, METH_VARARGS, NULL},
         { (char *)"VectorShapes___setslice__", _wrap_VectorShapes___setslice__, METH_VARARGS, NULL},
         { (char *)"VectorShapes___delslice__", _wrap_VectorShapes___delslice__, METH_VARARGS, NULL},
         { (char *)"VectorShapes___delitem__", _wrap_VectorShapes___delitem__, METH_VARARGS, NULL},
         { (char *)"VectorShapes___getitem__", _wrap_VectorShapes___getitem__, METH_VARARGS, NULL},
         { (char *)"VectorShapes___setitem__", _wrap_VectorShapes___setitem__, METH_VARARGS, NULL},
+        { (char *)"VectorShapes_pop", _wrap_VectorShapes_pop, METH_VARARGS, NULL},
         { (char *)"VectorShapes_append", _wrap_VectorShapes_append, METH_VARARGS, NULL},
         { (char *)"VectorShapes_empty", _wrap_VectorShapes_empty, METH_VARARGS, NULL},
         { (char *)"VectorShapes_size", _wrap_VectorShapes_size, METH_VARARGS, NULL},
-        { (char *)"VectorShapes_clear", _wrap_VectorShapes_clear, METH_VARARGS, NULL},
         { (char *)"VectorShapes_swap", _wrap_VectorShapes_swap, METH_VARARGS, NULL},
-        { (char *)"VectorShapes_get_allocator", _wrap_VectorShapes_get_allocator, METH_VARARGS, NULL},
         { (char *)"VectorShapes_begin", _wrap_VectorShapes_begin, METH_VARARGS, NULL},
         { (char *)"VectorShapes_end", _wrap_VectorShapes_end, METH_VARARGS, NULL},
         { (char *)"VectorShapes_rbegin", _wrap_VectorShapes_rbegin, METH_VARARGS, NULL},
         { (char *)"VectorShapes_rend", _wrap_VectorShapes_rend, METH_VARARGS, NULL},
+        { (char *)"VectorShapes_clear", _wrap_VectorShapes_clear, METH_VARARGS, NULL},
+        { (char *)"VectorShapes_get_allocator", _wrap_VectorShapes_get_allocator, METH_VARARGS, NULL},
         { (char *)"VectorShapes_pop_back", _wrap_VectorShapes_pop_back, METH_VARARGS, NULL},
         { (char *)"VectorShapes_erase", _wrap_VectorShapes_erase, METH_VARARGS, NULL},
         { (char *)"new_VectorShapes", _wrap_new_VectorShapes, METH_VARARGS, NULL},
@@ -31531,24 +34967,25 @@ static PyMethodDef SwigMethods[] = {
         { (char *)"VectorShapes_swigregister", VectorShapes_swigregister, METH_VARARGS, NULL},
         { (char *)"VectorReal_iterator", _wrap_VectorReal_iterator, METH_VARARGS, NULL},
         { (char *)"VectorReal___nonzero__", _wrap_VectorReal___nonzero__, METH_VARARGS, NULL},
+        { (char *)"VectorReal___bool__", _wrap_VectorReal___bool__, METH_VARARGS, NULL},
         { (char *)"VectorReal___len__", _wrap_VectorReal___len__, METH_VARARGS, NULL},
-        { (char *)"VectorReal_pop", _wrap_VectorReal_pop, METH_VARARGS, NULL},
         { (char *)"VectorReal___getslice__", _wrap_VectorReal___getslice__, METH_VARARGS, NULL},
         { (char *)"VectorReal___setslice__", _wrap_VectorReal___setslice__, METH_VARARGS, NULL},
         { (char *)"VectorReal___delslice__", _wrap_VectorReal___delslice__, METH_VARARGS, NULL},
         { (char *)"VectorReal___delitem__", _wrap_VectorReal___delitem__, METH_VARARGS, NULL},
         { (char *)"VectorReal___getitem__", _wrap_VectorReal___getitem__, METH_VARARGS, NULL},
         { (char *)"VectorReal___setitem__", _wrap_VectorReal___setitem__, METH_VARARGS, NULL},
+        { (char *)"VectorReal_pop", _wrap_VectorReal_pop, METH_VARARGS, NULL},
         { (char *)"VectorReal_append", _wrap_VectorReal_append, METH_VARARGS, NULL},
         { (char *)"VectorReal_empty", _wrap_VectorReal_empty, METH_VARARGS, NULL},
         { (char *)"VectorReal_size", _wrap_VectorReal_size, METH_VARARGS, NULL},
-        { (char *)"VectorReal_clear", _wrap_VectorReal_clear, METH_VARARGS, NULL},
         { (char *)"VectorReal_swap", _wrap_VectorReal_swap, METH_VARARGS, NULL},
-        { (char *)"VectorReal_get_allocator", _wrap_VectorReal_get_allocator, METH_VARARGS, NULL},
         { (char *)"VectorReal_begin", _wrap_VectorReal_begin, METH_VARARGS, NULL},
         { (char *)"VectorReal_end", _wrap_VectorReal_end, METH_VARARGS, NULL},
         { (char *)"VectorReal_rbegin", _wrap_VectorReal_rbegin, METH_VARARGS, NULL},
         { (char *)"VectorReal_rend", _wrap_VectorReal_rend, METH_VARARGS, NULL},
+        { (char *)"VectorReal_clear", _wrap_VectorReal_clear, METH_VARARGS, NULL},
+        { (char *)"VectorReal_get_allocator", _wrap_VectorReal_get_allocator, METH_VARARGS, NULL},
         { (char *)"VectorReal_pop_back", _wrap_VectorReal_pop_back, METH_VARARGS, NULL},
         { (char *)"VectorReal_erase", _wrap_VectorReal_erase, METH_VARARGS, NULL},
         { (char *)"new_VectorReal", _wrap_new_VectorReal, METH_VARARGS, NULL},
@@ -31564,24 +35001,25 @@ static PyMethodDef SwigMethods[] = {
         { (char *)"VectorReal_swigregister", VectorReal_swigregister, METH_VARARGS, NULL},
         { (char *)"VectorInt_iterator", _wrap_VectorInt_iterator, METH_VARARGS, NULL},
         { (char *)"VectorInt___nonzero__", _wrap_VectorInt___nonzero__, METH_VARARGS, NULL},
+        { (char *)"VectorInt___bool__", _wrap_VectorInt___bool__, METH_VARARGS, NULL},
         { (char *)"VectorInt___len__", _wrap_VectorInt___len__, METH_VARARGS, NULL},
-        { (char *)"VectorInt_pop", _wrap_VectorInt_pop, METH_VARARGS, NULL},
         { (char *)"VectorInt___getslice__", _wrap_VectorInt___getslice__, METH_VARARGS, NULL},
         { (char *)"VectorInt___setslice__", _wrap_VectorInt___setslice__, METH_VARARGS, NULL},
         { (char *)"VectorInt___delslice__", _wrap_VectorInt___delslice__, METH_VARARGS, NULL},
         { (char *)"VectorInt___delitem__", _wrap_VectorInt___delitem__, METH_VARARGS, NULL},
         { (char *)"VectorInt___getitem__", _wrap_VectorInt___getitem__, METH_VARARGS, NULL},
         { (char *)"VectorInt___setitem__", _wrap_VectorInt___setitem__, METH_VARARGS, NULL},
+        { (char *)"VectorInt_pop", _wrap_VectorInt_pop, METH_VARARGS, NULL},
         { (char *)"VectorInt_append", _wrap_VectorInt_append, METH_VARARGS, NULL},
         { (char *)"VectorInt_empty", _wrap_VectorInt_empty, METH_VARARGS, NULL},
         { (char *)"VectorInt_size", _wrap_VectorInt_size, METH_VARARGS, NULL},
-        { (char *)"VectorInt_clear", _wrap_VectorInt_clear, METH_VARARGS, NULL},
         { (char *)"VectorInt_swap", _wrap_VectorInt_swap, METH_VARARGS, NULL},
-        { (char *)"VectorInt_get_allocator", _wrap_VectorInt_get_allocator, METH_VARARGS, NULL},
         { (char *)"VectorInt_begin", _wrap_VectorInt_begin, METH_VARARGS, NULL},
         { (char *)"VectorInt_end", _wrap_VectorInt_end, METH_VARARGS, NULL},
         { (char *)"VectorInt_rbegin", _wrap_VectorInt_rbegin, METH_VARARGS, NULL},
         { (char *)"VectorInt_rend", _wrap_VectorInt_rend, METH_VARARGS, NULL},
+        { (char *)"VectorInt_clear", _wrap_VectorInt_clear, METH_VARARGS, NULL},
+        { (char *)"VectorInt_get_allocator", _wrap_VectorInt_get_allocator, METH_VARARGS, NULL},
         { (char *)"VectorInt_pop_back", _wrap_VectorInt_pop_back, METH_VARARGS, NULL},
         { (char *)"VectorInt_erase", _wrap_VectorInt_erase, METH_VARARGS, NULL},
         { (char *)"new_VectorInt", _wrap_new_VectorInt, METH_VARARGS, NULL},
@@ -31944,100 +35382,96 @@ static PyMethodDef SwigMethods[] = {
 
 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
 
-static void *_p_Hex__VectorTo_p_Hex__EltBase(void *x) {
+static void *_p_Hex__VectorTo_p_Hex__EltBase(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((Hex::EltBase *)  ((Hex::Vector *) x));
 }
-static void *_p_Hex__NewShapeTo_p_Hex__EltBase(void *x) {
+static void *_p_Hex__NewShapeTo_p_Hex__EltBase(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((Hex::EltBase *)  ((Hex::NewShape *) x));
 }
-static void *_p_Hex__GroupTo_p_Hex__EltBase(void *x) {
+static void *_p_Hex__GroupTo_p_Hex__EltBase(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((Hex::EltBase *)  ((Hex::Group *) x));
 }
-static void *_p_Hex__PropagationTo_p_Hex__EltBase(void *x) {
+static void *_p_Hex__PropagationTo_p_Hex__EltBase(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((Hex::EltBase *)  ((Hex::Propagation *) x));
 }
-static void *_p_Hex__VertexTo_p_Hex__EltBase(void *x) {
+static void *_p_Hex__VertexTo_p_Hex__EltBase(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((Hex::EltBase *)  ((Hex::Vertex *) x));
 }
-static void *_p_Hex__HexaTo_p_Hex__EltBase(void *x) {
+static void *_p_Hex__HexaTo_p_Hex__EltBase(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((Hex::EltBase *)  ((Hex::Hexa *) x));
 }
-static void *_p_Hex__EdgeTo_p_Hex__EltBase(void *x) {
+static void *_p_Hex__EdgeTo_p_Hex__EltBase(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((Hex::EltBase *)  ((Hex::Edge *) x));
 }
-static void *_p_Hex__QuadTo_p_Hex__EltBase(void *x) {
+static void *_p_Hex__QuadTo_p_Hex__EltBase(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((Hex::EltBase *)  ((Hex::Quad *) x));
 }
-static void *_p_Hex__ElementsTo_p_Hex__EltBase(void *x) {
+static void *_p_Hex__ElementsTo_p_Hex__EltBase(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((Hex::EltBase *)  ((Hex::Elements *) x));
 }
-static void *_p_Hex__DocumentTo_p_Hex__EltBase(void *x) {
+static void *_p_Hex__DocumentTo_p_Hex__EltBase(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((Hex::EltBase *)  ((Hex::Document *) x));
 }
-static void *_p_Hex__BiCylinderTo_p_Hex__EltBase(void *x) {
+static void *_p_Hex__BiCylinderTo_p_Hex__EltBase(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((Hex::EltBase *) (Hex::Elements *) ((Hex::BiCylinder *) x));
 }
-static void *_p_Hex__BiCylinderTo_p_Hex__Elements(void *x) {
+static void *_p_Hex__BiCylinderTo_p_Hex__Elements(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((Hex::Elements *)  ((Hex::BiCylinder *) x));
 }
 static swig_type_info _swigt__p_FILE = {"_p_FILE", "FILE *|pfile", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Hex__BiCylinder = {"_p_Hex__BiCylinder", "Hex::BiCylinder *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Hex__Document = {"_p_Hex__Document", "Hex::Document *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_Hex__Edge = {"_p_Hex__Edge", "Hex::Edge *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Hex__Edge = {"_p_Hex__Edge", "std::vector< Hex::Edge * >::value_type|Hex::Edge *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Hex__Elements = {"_p_Hex__Elements", "Hex::Elements *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Hex__EltBase = {"_p_Hex__EltBase", "Hex::EltBase *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Hex__Group = {"_p_Hex__Group", "Hex::Group *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Hex__Hex = {"_p_Hex__Hex", "Hex::Hex *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Hex__Hex__Elements = {"_p_Hex__Hex__Elements", "Hex::Elements *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Hex__Hex__EltBase = {"_p_Hex__Hex__EltBase", "Hex::EltBase *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_Hex__Hexa = {"_p_Hex__Hexa", "Hex::Hexa *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Hex__Hexa = {"_p_Hex__Hexa", "Hex::Hexa *|std::vector< Hex::Hexa * >::value_type", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Hex__Law = {"_p_Hex__Law", "Hex::Law *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_Hex__NewShape = {"_p_Hex__NewShape", "Hex::NewShape *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Hex__NewShape = {"_p_Hex__NewShape", "std::vector< Hex::NewShape * >::value_type|Hex::NewShape *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Hex__Propagation = {"_p_Hex__Propagation", "Hex::Propagation *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_Hex__Quad = {"_p_Hex__Quad", "Hex::Quad *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Hex__Quad = {"_p_Hex__Quad", "std::vector< Hex::Quad * >::value_type|Hex::Quad *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Hex__Shape = {"_p_Hex__Shape", "Hex::Shape *|Hex::OldShape *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Hex__Vector = {"_p_Hex__Vector", "Hex::Vector *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_Hex__Vertex = {"_p_Hex__Vertex", "Hex::Vertex *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_Hex__Vertex = {"_p_Hex__Vertex", "std::vector< Hex::Vertex * >::value_type|Hex::Vertex *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Hex__XmlWriter = {"_p_Hex__XmlWriter", "Hex::XmlWriter *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_a_Hex__DIM3__double = {"_p_a_Hex__DIM3__double", "double (*)[Hex::DIM3]|Hex::Real3 *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_allocator_type = {"_p_allocator_type", "allocator_type *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_const_reference = {"_p_const_reference", "const_reference *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_difference_type = {"_p_difference_type", "difference_type *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_double = {"_p_double", "double *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_double = {"_p_double", "double *|Hex::Real *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_int = {"_p_int", "int *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_p_PyObject = {"_p_p_PyObject", "PyObject **", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_reference = {"_p_reference", "reference *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_size_type = {"_p_size_type", "size_type *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__allocatorT_Hex__Edge_p_t = {"_p_std__allocatorT_Hex__Edge_p_t", "std::vector< Hex::Edge * >::allocator_type *|std::allocator< Hex::Edge * > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__allocatorT_Hex__Hexa_p_t = {"_p_std__allocatorT_Hex__Hexa_p_t", "std::vector< Hex::Hexa * >::allocator_type *|std::allocator< Hex::Hexa * > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__allocatorT_Hex__NewShape_p_t = {"_p_std__allocatorT_Hex__NewShape_p_t", "std::vector< Hex::NewShape * >::allocator_type *|std::allocator< Hex::NewShape * > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__allocatorT_Hex__Quad_p_t = {"_p_std__allocatorT_Hex__Quad_p_t", "std::vector< Hex::Quad * >::allocator_type *|std::allocator< Hex::Quad * > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__allocatorT_Hex__Vertex_p_t = {"_p_std__allocatorT_Hex__Vertex_p_t", "std::vector< Hex::Vertex * >::allocator_type *|std::allocator< Hex::Vertex * > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__allocatorT_double_t = {"_p_std__allocatorT_double_t", "std::vector< double >::allocator_type *|std::allocator< double > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__allocatorT_int_t = {"_p_std__allocatorT_int_t", "std::vector< int >::allocator_type *|std::allocator< int > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_std__invalid_argument = {"_p_std__invalid_argument", "std::invalid_argument *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorTHex__AssoEdge_p_std__allocatorTHex__AssoEdge_p_t_t = {"_p_std__vectorTHex__AssoEdge_p_std__allocatorTHex__AssoEdge_p_t_t", "std::vector<Hex::AssoEdge *,std::allocator<Hex::AssoEdge * > > *|Hex::AssoEdges *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorTHex__EdgeShape_p_std__allocatorTHex__EdgeShape_p_t_t = {"_p_std__vectorTHex__EdgeShape_p_std__allocatorTHex__EdgeShape_p_t_t", "std::vector<Hex::EdgeShape *,std::allocator<Hex::EdgeShape * > > *|Hex::EdgeShapes *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t = {"_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t", "std::vector<Hex::Edge *,std::allocator<Hex::Edge * > > *|Hex::Edges *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__allocator_type = {"_p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__allocator_type", "std::allocator<Hex::Edge * > *|std::vector<Hex::Edge * >::allocator_type *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorTHex__EltBase_p_std__allocatorTHex__EltBase_p_t_t = {"_p_std__vectorTHex__EltBase_p_std__allocatorTHex__EltBase_p_t_t", "std::vector<Hex::EltBase *,std::allocator<Hex::EltBase * > > *|Hex::TabElts *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorTHex__FaceShape_p_std__allocatorTHex__FaceShape_p_t_t = {"_p_std__vectorTHex__FaceShape_p_std__allocatorTHex__FaceShape_p_t_t", "std::vector<Hex::FaceShape *,std::allocator<Hex::FaceShape * > > *|Hex::FaceShapes *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t = {"_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t", "std::vector<Hex::Hexa *,std::allocator<Hex::Hexa * > > *|Hex::Hexas *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__allocator_type = {"_p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__allocator_type", "std::allocator<Hex::Hexa * > *|std::vector<Hex::Hexa * >::allocator_type *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t = {"_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t", "std::vector<Hex::NewShape *,std::allocator<Hex::NewShape * > > *|Hex::NewShapes *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__allocator_type = {"_p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__allocator_type", "std::allocator<Hex::NewShape * > *|std::vector<Hex::NewShape * >::allocator_type *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t = {"_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t", "std::vector<Hex::Quad *,std::allocator<Hex::Quad * > > *|Hex::Quads *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__allocator_type = {"_p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__allocator_type", "std::allocator<Hex::Quad * > *|std::vector<Hex::Quad * >::allocator_type *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorTHex__Shape_p_std__allocatorTHex__Shape_p_t_t = {"_p_std__vectorTHex__Shape_p_std__allocatorTHex__Shape_p_t_t", "std::vector<Hex::Shape *,std::allocator<Hex::Shape * > > *|Hex::Shapes *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorTHex__SubShape_p_std__allocatorTHex__SubShape_p_t_t = {"_p_std__vectorTHex__SubShape_p_std__allocatorTHex__SubShape_p_t_t", "std::vector<Hex::SubShape *,std::allocator<Hex::SubShape * > > *|Hex::SubShapes *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t = {"_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t", "std::vector<Hex::Vertex *,std::allocator<Hex::Vertex * > > *|Hex::Vertices *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__allocator_type = {"_p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__allocator_type", "std::allocator<Hex::Vertex * > *|std::vector<Hex::Vertex * >::allocator_type *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorTdouble_std__allocatorTdouble_t_t = {"_p_std__vectorTdouble_std__allocatorTdouble_t_t", "std::vector<double,std::allocator<double > > *|Hex::RealVector *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorTdouble_std__allocatorTdouble_t_t__allocator_type = {"_p_std__vectorTdouble_std__allocatorTdouble_t_t__allocator_type", "std::allocator<double > *|std::vector<double >::allocator_type *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorTint_std__allocatorTint_t_t = {"_p_std__vectorTint_std__allocatorTint_t_t", "std::vector<int,std::allocator<int > > *|Hex::IntVector *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorTint_std__allocatorTint_t_t__allocator_type = {"_p_std__vectorTint_std__allocatorTint_t_t__allocator_type", "std::allocator<int > *|std::vector<int >::allocator_type *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_std__vectorTstd__string_std__allocatorTstd__string_t_t = {"_p_std__vectorTstd__string_std__allocatorTstd__string_t_t", "std::vector<std::string,std::allocator<std::string > > *|Hex::TabText *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorT_Hex__AssoEdge_p_std__allocatorT_Hex__AssoEdge_p_t_t = {"_p_std__vectorT_Hex__AssoEdge_p_std__allocatorT_Hex__AssoEdge_p_t_t", "std::vector< Hex::AssoEdge *,std::allocator< Hex::AssoEdge * > > *|Hex::AssoEdges *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorT_Hex__EdgeShape_p_std__allocatorT_Hex__EdgeShape_p_t_t = {"_p_std__vectorT_Hex__EdgeShape_p_std__allocatorT_Hex__EdgeShape_p_t_t", "Hex::EdgeShapes *|std::vector< Hex::EdgeShape *,std::allocator< Hex::EdgeShape * > > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t = {"_p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t", "std::vector< Hex::Edge *,std::allocator< Hex::Edge * > > *|std::vector< Hex::Edge * > *|Hex::Edges *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorT_Hex__EltBase_p_std__allocatorT_Hex__EltBase_p_t_t = {"_p_std__vectorT_Hex__EltBase_p_std__allocatorT_Hex__EltBase_p_t_t", "std::vector< Hex::EltBase *,std::allocator< Hex::EltBase * > > *|Hex::TabElts *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorT_Hex__FaceShape_p_std__allocatorT_Hex__FaceShape_p_t_t = {"_p_std__vectorT_Hex__FaceShape_p_std__allocatorT_Hex__FaceShape_p_t_t", "Hex::FaceShapes *|std::vector< Hex::FaceShape *,std::allocator< Hex::FaceShape * > > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t = {"_p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t", "Hex::Hexas *|std::vector< Hex::Hexa *,std::allocator< Hex::Hexa * > > *|std::vector< Hex::Hexa * > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t = {"_p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t", "Hex::NewShapes *|std::vector< Hex::NewShape *,std::allocator< Hex::NewShape * > > *|std::vector< Hex::NewShape * > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t = {"_p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t", "std::vector< Hex::Quad *,std::allocator< Hex::Quad * > > *|std::vector< Hex::Quad * > *|Hex::Quads *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorT_Hex__Shape_p_std__allocatorT_Hex__Shape_p_t_t = {"_p_std__vectorT_Hex__Shape_p_std__allocatorT_Hex__Shape_p_t_t", "Hex::Shapes *|std::vector< Hex::Shape *,std::allocator< Hex::Shape * > > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorT_Hex__SubShape_p_std__allocatorT_Hex__SubShape_p_t_t = {"_p_std__vectorT_Hex__SubShape_p_std__allocatorT_Hex__SubShape_p_t_t", "Hex::SubShapes *|std::vector< Hex::SubShape *,std::allocator< Hex::SubShape * > > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t = {"_p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t", "std::vector< Hex::Vertex *,std::allocator< Hex::Vertex * > > *|std::vector< Hex::Vertex * > *|Hex::Vertices *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorT_double_std__allocatorT_double_t_t = {"_p_std__vectorT_double_std__allocatorT_double_t_t", "std::vector< double,std::allocator< double > > *|Hex::RealVector *|std::vector< double > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorT_int_std__allocatorT_int_t_t = {"_p_std__vectorT_int_std__allocatorT_int_t_t", "std::vector< int,std::allocator< int > > *|Hex::IntVector *|std::vector< int > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorT_std__string_std__allocatorT_std__string_t_t = {"_p_std__vectorT_std__string_std__allocatorT_std__string_t_t", "Hex::TabText *|std::vector< std::string,std::allocator< std::string > > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_string = {"_p_string", "string *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_swig__PySwigIterator = {"_p_swig__PySwigIterator", "swig::PySwigIterator *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_swig__SwigPyIterator = {"_p_swig__SwigPyIterator", "swig::SwigPyIterator *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_value_type = {"_p_value_type", "value_type *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type = {"_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type", "Hex::Edge *|std::vector<Hex::Edge * >::value_type", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type = {"_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type", "Hex::Hexa *|std::vector<Hex::Hexa * >::value_type", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type = {"_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type", "Hex::NewShape *|std::vector<Hex::NewShape * >::value_type", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type = {"_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type", "Hex::Quad *|std::vector<Hex::Quad * >::value_type", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type = {"_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type", "Hex::Vertex *|std::vector<Hex::Vertex * >::value_type", 0, 0, (void*)0, 0};
 
 static swig_type_info *swig_type_initial[] = {
   &_swigt__p_FILE,
@@ -32048,6 +35482,7 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_Hex__EltBase,
   &_swigt__p_Hex__Group,
   &_swigt__p_Hex__Hex,
+  &_swigt__p_Hex__Hex__Elements,
   &_swigt__p_Hex__Hex__EltBase,
   &_swigt__p_Hex__Hexa,
   &_swigt__p_Hex__Law,
@@ -32068,55 +35503,51 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_p_PyObject,
   &_swigt__p_reference,
   &_swigt__p_size_type,
+  &_swigt__p_std__allocatorT_Hex__Edge_p_t,
+  &_swigt__p_std__allocatorT_Hex__Hexa_p_t,
+  &_swigt__p_std__allocatorT_Hex__NewShape_p_t,
+  &_swigt__p_std__allocatorT_Hex__Quad_p_t,
+  &_swigt__p_std__allocatorT_Hex__Vertex_p_t,
+  &_swigt__p_std__allocatorT_double_t,
+  &_swigt__p_std__allocatorT_int_t,
   &_swigt__p_std__invalid_argument,
-  &_swigt__p_std__vectorTHex__AssoEdge_p_std__allocatorTHex__AssoEdge_p_t_t,
-  &_swigt__p_std__vectorTHex__EdgeShape_p_std__allocatorTHex__EdgeShape_p_t_t,
-  &_swigt__p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t,
-  &_swigt__p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__allocator_type,
-  &_swigt__p_std__vectorTHex__EltBase_p_std__allocatorTHex__EltBase_p_t_t,
-  &_swigt__p_std__vectorTHex__FaceShape_p_std__allocatorTHex__FaceShape_p_t_t,
-  &_swigt__p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t,
-  &_swigt__p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__allocator_type,
-  &_swigt__p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t,
-  &_swigt__p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__allocator_type,
-  &_swigt__p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t,
-  &_swigt__p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__allocator_type,
-  &_swigt__p_std__vectorTHex__Shape_p_std__allocatorTHex__Shape_p_t_t,
-  &_swigt__p_std__vectorTHex__SubShape_p_std__allocatorTHex__SubShape_p_t_t,
-  &_swigt__p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t,
-  &_swigt__p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__allocator_type,
-  &_swigt__p_std__vectorTdouble_std__allocatorTdouble_t_t,
-  &_swigt__p_std__vectorTdouble_std__allocatorTdouble_t_t__allocator_type,
-  &_swigt__p_std__vectorTint_std__allocatorTint_t_t,
-  &_swigt__p_std__vectorTint_std__allocatorTint_t_t__allocator_type,
-  &_swigt__p_std__vectorTstd__string_std__allocatorTstd__string_t_t,
+  &_swigt__p_std__vectorT_Hex__AssoEdge_p_std__allocatorT_Hex__AssoEdge_p_t_t,
+  &_swigt__p_std__vectorT_Hex__EdgeShape_p_std__allocatorT_Hex__EdgeShape_p_t_t,
+  &_swigt__p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t,
+  &_swigt__p_std__vectorT_Hex__EltBase_p_std__allocatorT_Hex__EltBase_p_t_t,
+  &_swigt__p_std__vectorT_Hex__FaceShape_p_std__allocatorT_Hex__FaceShape_p_t_t,
+  &_swigt__p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t,
+  &_swigt__p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t,
+  &_swigt__p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t,
+  &_swigt__p_std__vectorT_Hex__Shape_p_std__allocatorT_Hex__Shape_p_t_t,
+  &_swigt__p_std__vectorT_Hex__SubShape_p_std__allocatorT_Hex__SubShape_p_t_t,
+  &_swigt__p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t,
+  &_swigt__p_std__vectorT_double_std__allocatorT_double_t_t,
+  &_swigt__p_std__vectorT_int_std__allocatorT_int_t_t,
+  &_swigt__p_std__vectorT_std__string_std__allocatorT_std__string_t_t,
   &_swigt__p_string,
-  &_swigt__p_swig__PySwigIterator,
+  &_swigt__p_swig__SwigPyIterator,
   &_swigt__p_value_type,
-  &_swigt__std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type,
-  &_swigt__std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type,
-  &_swigt__std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type,
-  &_swigt__std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type,
-  &_swigt__std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type,
 };
 
 static swig_cast_info _swigc__p_FILE[] = {  {&_swigt__p_FILE, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Hex__BiCylinder[] = {  {&_swigt__p_Hex__BiCylinder, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Hex__Document[] = {  {&_swigt__p_Hex__Document, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_Hex__Edge[] = {  {&_swigt__std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type, 0, 0, 0},  {&_swigt__p_Hex__Edge, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Hex__Edge[] = {  {&_swigt__p_Hex__Edge, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Hex__Elements[] = {  {&_swigt__p_Hex__Elements, 0, 0, 0},  {&_swigt__p_Hex__BiCylinder, _p_Hex__BiCylinderTo_p_Hex__Elements, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_Hex__EltBase[] = {  {&_swigt__p_Hex__Group, _p_Hex__GroupTo_p_Hex__EltBase, 0, 0},  {&_swigt__p_Hex__Vertex, _p_Hex__VertexTo_p_Hex__EltBase, 0, 0},  {&_swigt__std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type, _p_Hex__NewShapeTo_p_Hex__EltBase, 0, 0},  {&_swigt__p_Hex__Elements, _p_Hex__ElementsTo_p_Hex__EltBase, 0, 0},  {&_swigt__p_Hex__NewShape, _p_Hex__NewShapeTo_p_Hex__EltBase, 0, 0},  {&_swigt__p_Hex__Hexa, _p_Hex__HexaTo_p_Hex__EltBase, 0, 0},  {&_swigt__std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type, _p_Hex__HexaTo_p_Hex__EltBase, 0, 0},  {&_swigt__std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type, _p_Hex__VertexTo_p_Hex__EltBase, 0, 0},  {&_swigt__p_Hex__Propagation, _p_Hex__PropagationTo_p_Hex__EltBase, 0, 0},  {&_swigt__std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type, _p_Hex__QuadTo_p_Hex__EltBase, 0, 0},  {&_swigt__std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type, _p_Hex__EdgeTo_p_Hex__EltBase, 0, 0},  {&_swigt__p_Hex__Hex__EltBase, 0, 0, 0},  {&_swigt__p_Hex__EltBase, 0, 0, 0},  {&_swigt__p_Hex__Vector, _p_Hex__VectorTo_p_Hex__EltBase, 0, 0},  {&_swigt__p_Hex__BiCylinder, _p_Hex__BiCylinderTo_p_Hex__EltBase, 0, 0},  {&_swigt__p_Hex__Document, _p_Hex__DocumentTo_p_Hex__EltBase, 0, 0},  {&_swigt__p_Hex__Quad, _p_Hex__QuadTo_p_Hex__EltBase, 0, 0},  {&_swigt__p_Hex__Edge, _p_Hex__EdgeTo_p_Hex__EltBase, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Hex__EltBase[] = {  {&_swigt__p_Hex__EltBase, 0, 0, 0},  {&_swigt__p_Hex__NewShape, _p_Hex__NewShapeTo_p_Hex__EltBase, 0, 0},  {&_swigt__p_Hex__Vector, _p_Hex__VectorTo_p_Hex__EltBase, 0, 0},  {&_swigt__p_Hex__Group, _p_Hex__GroupTo_p_Hex__EltBase, 0, 0},  {&_swigt__p_Hex__Propagation, _p_Hex__PropagationTo_p_Hex__EltBase, 0, 0},  {&_swigt__p_Hex__Vertex, _p_Hex__VertexTo_p_Hex__EltBase, 0, 0},  {&_swigt__p_Hex__Elements, _p_Hex__ElementsTo_p_Hex__EltBase, 0, 0},  {&_swigt__p_Hex__Document, _p_Hex__DocumentTo_p_Hex__EltBase, 0, 0},  {&_swigt__p_Hex__BiCylinder, _p_Hex__BiCylinderTo_p_Hex__EltBase, 0, 0},  {&_swigt__p_Hex__Hexa, _p_Hex__HexaTo_p_Hex__EltBase, 0, 0},  {&_swigt__p_Hex__Edge, _p_Hex__EdgeTo_p_Hex__EltBase, 0, 0},  {&_swigt__p_Hex__Quad, _p_Hex__QuadTo_p_Hex__EltBase, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Hex__Group[] = {  {&_swigt__p_Hex__Group, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Hex__Hex[] = {  {&_swigt__p_Hex__Hex, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_Hex__Hex__EltBase[] = {  {&_swigt__p_Hex__Group, 0, 0, 0},  {&_swigt__p_Hex__Vertex, 0, 0, 0},  {&_swigt__std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type, 0, 0, 0},  {&_swigt__p_Hex__Elements, 0, 0, 0},  {&_swigt__p_Hex__NewShape, 0, 0, 0},  {&_swigt__p_Hex__Hexa, 0, 0, 0},  {&_swigt__std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type, 0, 0, 0},  {&_swigt__std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type, 0, 0, 0},  {&_swigt__p_Hex__Propagation, 0, 0, 0},  {&_swigt__std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type, 0, 0, 0},  {&_swigt__std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type, 0, 0, 0},  {&_swigt__p_Hex__EltBase, 0, 0, 0},  {&_swigt__p_Hex__Hex__EltBase, 0, 0, 0},  {&_swigt__p_Hex__Vector, 0, 0, 0},  {&_swigt__p_Hex__BiCylinder, 0, 0, 0},  {&_swigt__p_Hex__Document, 0, 0, 0},  {&_swigt__p_Hex__Quad, 0, 0, 0},  {&_swigt__p_Hex__Edge, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_Hex__Hexa[] = {  {&_swigt__std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type, 0, 0, 0},  {&_swigt__p_Hex__Hexa, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Hex__Hex__Elements[] = {  {&_swigt__p_Hex__Hex__Elements, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Hex__Hex__EltBase[] = {  {&_swigt__p_Hex__Hex__EltBase, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Hex__Hexa[] = {  {&_swigt__p_Hex__Hexa, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Hex__Law[] = {  {&_swigt__p_Hex__Law, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_Hex__NewShape[] = {  {&_swigt__p_Hex__NewShape, 0, 0, 0},  {&_swigt__std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Hex__NewShape[] = {  {&_swigt__p_Hex__NewShape, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Hex__Propagation[] = {  {&_swigt__p_Hex__Propagation, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_Hex__Quad[] = {  {&_swigt__std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type, 0, 0, 0},  {&_swigt__p_Hex__Quad, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Hex__Quad[] = {  {&_swigt__p_Hex__Quad, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Hex__Shape[] = {  {&_swigt__p_Hex__Shape, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Hex__Vector[] = {  {&_swigt__p_Hex__Vector, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_Hex__Vertex[] = {  {&_swigt__std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type, 0, 0, 0},  {&_swigt__p_Hex__Vertex, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_Hex__Vertex[] = {  {&_swigt__p_Hex__Vertex, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Hex__XmlWriter[] = {  {&_swigt__p_Hex__XmlWriter, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_a_Hex__DIM3__double[] = {  {&_swigt__p_a_Hex__DIM3__double, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_allocator_type[] = {  {&_swigt__p_allocator_type, 0, 0, 0},{0, 0, 0, 0}};
@@ -32128,36 +35559,31 @@ static swig_cast_info _swigc__p_int[] = {  {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0
 static swig_cast_info _swigc__p_p_PyObject[] = {  {&_swigt__p_p_PyObject, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_reference[] = {  {&_swigt__p_reference, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_size_type[] = {  {&_swigt__p_size_type, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__allocatorT_Hex__Edge_p_t[] = {  {&_swigt__p_std__allocatorT_Hex__Edge_p_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__allocatorT_Hex__Hexa_p_t[] = {  {&_swigt__p_std__allocatorT_Hex__Hexa_p_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__allocatorT_Hex__NewShape_p_t[] = {  {&_swigt__p_std__allocatorT_Hex__NewShape_p_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__allocatorT_Hex__Quad_p_t[] = {  {&_swigt__p_std__allocatorT_Hex__Quad_p_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__allocatorT_Hex__Vertex_p_t[] = {  {&_swigt__p_std__allocatorT_Hex__Vertex_p_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__allocatorT_double_t[] = {  {&_swigt__p_std__allocatorT_double_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__allocatorT_int_t[] = {  {&_swigt__p_std__allocatorT_int_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_std__invalid_argument[] = {  {&_swigt__p_std__invalid_argument, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorTHex__AssoEdge_p_std__allocatorTHex__AssoEdge_p_t_t[] = {  {&_swigt__p_std__vectorTHex__AssoEdge_p_std__allocatorTHex__AssoEdge_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorTHex__EdgeShape_p_std__allocatorTHex__EdgeShape_p_t_t[] = {  {&_swigt__p_std__vectorTHex__EdgeShape_p_std__allocatorTHex__EdgeShape_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t[] = {  {&_swigt__p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__allocator_type[] = {  {&_swigt__p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__allocator_type, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorTHex__EltBase_p_std__allocatorTHex__EltBase_p_t_t[] = {  {&_swigt__p_std__vectorTHex__EltBase_p_std__allocatorTHex__EltBase_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorTHex__FaceShape_p_std__allocatorTHex__FaceShape_p_t_t[] = {  {&_swigt__p_std__vectorTHex__FaceShape_p_std__allocatorTHex__FaceShape_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t[] = {  {&_swigt__p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__allocator_type[] = {  {&_swigt__p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__allocator_type, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t[] = {  {&_swigt__p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__allocator_type[] = {  {&_swigt__p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__allocator_type, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t[] = {  {&_swigt__p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__allocator_type[] = {  {&_swigt__p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__allocator_type, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorTHex__Shape_p_std__allocatorTHex__Shape_p_t_t[] = {  {&_swigt__p_std__vectorTHex__Shape_p_std__allocatorTHex__Shape_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorTHex__SubShape_p_std__allocatorTHex__SubShape_p_t_t[] = {  {&_swigt__p_std__vectorTHex__SubShape_p_std__allocatorTHex__SubShape_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t[] = {  {&_swigt__p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__allocator_type[] = {  {&_swigt__p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__allocator_type, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorTdouble_std__allocatorTdouble_t_t[] = {  {&_swigt__p_std__vectorTdouble_std__allocatorTdouble_t_t, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorTdouble_std__allocatorTdouble_t_t__allocator_type[] = {  {&_swigt__p_std__vectorTdouble_std__allocatorTdouble_t_t__allocator_type, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorTint_std__allocatorTint_t_t[] = {  {&_swigt__p_std__vectorTint_std__allocatorTint_t_t, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorTint_std__allocatorTint_t_t__allocator_type[] = {  {&_swigt__p_std__vectorTint_std__allocatorTint_t_t__allocator_type, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_std__vectorTstd__string_std__allocatorTstd__string_t_t[] = {  {&_swigt__p_std__vectorTstd__string_std__allocatorTstd__string_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorT_Hex__AssoEdge_p_std__allocatorT_Hex__AssoEdge_p_t_t[] = {  {&_swigt__p_std__vectorT_Hex__AssoEdge_p_std__allocatorT_Hex__AssoEdge_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorT_Hex__EdgeShape_p_std__allocatorT_Hex__EdgeShape_p_t_t[] = {  {&_swigt__p_std__vectorT_Hex__EdgeShape_p_std__allocatorT_Hex__EdgeShape_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t[] = {  {&_swigt__p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorT_Hex__EltBase_p_std__allocatorT_Hex__EltBase_p_t_t[] = {  {&_swigt__p_std__vectorT_Hex__EltBase_p_std__allocatorT_Hex__EltBase_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorT_Hex__FaceShape_p_std__allocatorT_Hex__FaceShape_p_t_t[] = {  {&_swigt__p_std__vectorT_Hex__FaceShape_p_std__allocatorT_Hex__FaceShape_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t[] = {  {&_swigt__p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t[] = {  {&_swigt__p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t[] = {  {&_swigt__p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorT_Hex__Shape_p_std__allocatorT_Hex__Shape_p_t_t[] = {  {&_swigt__p_std__vectorT_Hex__Shape_p_std__allocatorT_Hex__Shape_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorT_Hex__SubShape_p_std__allocatorT_Hex__SubShape_p_t_t[] = {  {&_swigt__p_std__vectorT_Hex__SubShape_p_std__allocatorT_Hex__SubShape_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t[] = {  {&_swigt__p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorT_double_std__allocatorT_double_t_t[] = {  {&_swigt__p_std__vectorT_double_std__allocatorT_double_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorT_int_std__allocatorT_int_t_t[] = {  {&_swigt__p_std__vectorT_int_std__allocatorT_int_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorT_std__string_std__allocatorT_std__string_t_t[] = {  {&_swigt__p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_string[] = {  {&_swigt__p_string, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_swig__PySwigIterator[] = {  {&_swigt__p_swig__PySwigIterator, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_swig__SwigPyIterator[] = {  {&_swigt__p_swig__SwigPyIterator, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_value_type[] = {  {&_swigt__p_value_type, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type[] = {  {&_swigt__std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type, 0, 0, 0},  {&_swigt__p_Hex__Edge, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type[] = {  {&_swigt__std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type, 0, 0, 0},  {&_swigt__p_Hex__Hexa, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type[] = {  {&_swigt__p_Hex__NewShape, 0, 0, 0},  {&_swigt__std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type[] = {  {&_swigt__std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type, 0, 0, 0},  {&_swigt__p_Hex__Quad, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type[] = {  {&_swigt__std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type, 0, 0, 0},  {&_swigt__p_Hex__Vertex, 0, 0, 0},{0, 0, 0, 0}};
 
 static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_FILE,
@@ -32168,6 +35594,7 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_Hex__EltBase,
   _swigc__p_Hex__Group,
   _swigc__p_Hex__Hex,
+  _swigc__p_Hex__Hex__Elements,
   _swigc__p_Hex__Hex__EltBase,
   _swigc__p_Hex__Hexa,
   _swigc__p_Hex__Law,
@@ -32188,36 +35615,31 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_p_PyObject,
   _swigc__p_reference,
   _swigc__p_size_type,
+  _swigc__p_std__allocatorT_Hex__Edge_p_t,
+  _swigc__p_std__allocatorT_Hex__Hexa_p_t,
+  _swigc__p_std__allocatorT_Hex__NewShape_p_t,
+  _swigc__p_std__allocatorT_Hex__Quad_p_t,
+  _swigc__p_std__allocatorT_Hex__Vertex_p_t,
+  _swigc__p_std__allocatorT_double_t,
+  _swigc__p_std__allocatorT_int_t,
   _swigc__p_std__invalid_argument,
-  _swigc__p_std__vectorTHex__AssoEdge_p_std__allocatorTHex__AssoEdge_p_t_t,
-  _swigc__p_std__vectorTHex__EdgeShape_p_std__allocatorTHex__EdgeShape_p_t_t,
-  _swigc__p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t,
-  _swigc__p_std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__allocator_type,
-  _swigc__p_std__vectorTHex__EltBase_p_std__allocatorTHex__EltBase_p_t_t,
-  _swigc__p_std__vectorTHex__FaceShape_p_std__allocatorTHex__FaceShape_p_t_t,
-  _swigc__p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t,
-  _swigc__p_std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__allocator_type,
-  _swigc__p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t,
-  _swigc__p_std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__allocator_type,
-  _swigc__p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t,
-  _swigc__p_std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__allocator_type,
-  _swigc__p_std__vectorTHex__Shape_p_std__allocatorTHex__Shape_p_t_t,
-  _swigc__p_std__vectorTHex__SubShape_p_std__allocatorTHex__SubShape_p_t_t,
-  _swigc__p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t,
-  _swigc__p_std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__allocator_type,
-  _swigc__p_std__vectorTdouble_std__allocatorTdouble_t_t,
-  _swigc__p_std__vectorTdouble_std__allocatorTdouble_t_t__allocator_type,
-  _swigc__p_std__vectorTint_std__allocatorTint_t_t,
-  _swigc__p_std__vectorTint_std__allocatorTint_t_t__allocator_type,
-  _swigc__p_std__vectorTstd__string_std__allocatorTstd__string_t_t,
+  _swigc__p_std__vectorT_Hex__AssoEdge_p_std__allocatorT_Hex__AssoEdge_p_t_t,
+  _swigc__p_std__vectorT_Hex__EdgeShape_p_std__allocatorT_Hex__EdgeShape_p_t_t,
+  _swigc__p_std__vectorT_Hex__Edge_p_std__allocatorT_Hex__Edge_p_t_t,
+  _swigc__p_std__vectorT_Hex__EltBase_p_std__allocatorT_Hex__EltBase_p_t_t,
+  _swigc__p_std__vectorT_Hex__FaceShape_p_std__allocatorT_Hex__FaceShape_p_t_t,
+  _swigc__p_std__vectorT_Hex__Hexa_p_std__allocatorT_Hex__Hexa_p_t_t,
+  _swigc__p_std__vectorT_Hex__NewShape_p_std__allocatorT_Hex__NewShape_p_t_t,
+  _swigc__p_std__vectorT_Hex__Quad_p_std__allocatorT_Hex__Quad_p_t_t,
+  _swigc__p_std__vectorT_Hex__Shape_p_std__allocatorT_Hex__Shape_p_t_t,
+  _swigc__p_std__vectorT_Hex__SubShape_p_std__allocatorT_Hex__SubShape_p_t_t,
+  _swigc__p_std__vectorT_Hex__Vertex_p_std__allocatorT_Hex__Vertex_p_t_t,
+  _swigc__p_std__vectorT_double_std__allocatorT_double_t_t,
+  _swigc__p_std__vectorT_int_std__allocatorT_int_t_t,
+  _swigc__p_std__vectorT_std__string_std__allocatorT_std__string_t_t,
   _swigc__p_string,
-  _swigc__p_swig__PySwigIterator,
+  _swigc__p_swig__SwigPyIterator,
   _swigc__p_value_type,
-  _swigc__std__vectorTHex__Edge_p_std__allocatorTHex__Edge_p_t_t__value_type,
-  _swigc__std__vectorTHex__Hexa_p_std__allocatorTHex__Hexa_p_t_t__value_type,
-  _swigc__std__vectorTHex__NewShape_p_std__allocatorTHex__NewShape_p_t_t__value_type,
-  _swigc__std__vectorTHex__Quad_p_std__allocatorTHex__Quad_p_t_t__value_type,
-  _swigc__std__vectorTHex__Vertex_p_std__allocatorTHex__Vertex_p_t_t__value_type,
 };
 
 
@@ -32231,18 +35653,18 @@ static swig_const_info swig_const_table[] = {
 #endif
 /* -----------------------------------------------------------------------------
  * Type initialization:
- * This problem is tough by the requirement that no dynamic 
- * memory is used. Also, since swig_type_info structures store pointers to 
+ * This problem is tough by the requirement that no dynamic
+ * memory is used. Also, since swig_type_info structures store pointers to
  * swig_cast_info structures and swig_cast_info structures store pointers back
- * to swig_type_info structures, we need some lookup code at initialization. 
- * The idea is that swig generates all the structures that are needed. 
- * The runtime then collects these partially filled structures. 
- * The SWIG_InitializeModule function takes these initial arrays out of 
+ * to swig_type_info structures, we need some lookup code at initialization.
+ * The idea is that swig generates all the structures that are needed.
+ * The runtime then collects these partially filled structures.
+ * The SWIG_InitializeModule function takes these initial arrays out of
  * swig_module, and does all the lookup, filling in the swig_module.types
  * array with the correct data and linking the correct swig_cast_info
  * structures together.
  *
- * The generated swig_type_info structures are assigned staticly to an initial 
+ * The generated swig_type_info structures are assigned statically to an initial
  * array. We just loop through that array, and handle each type individually.
  * First we lookup if this type has been already loaded, and if so, use the
  * loaded structure instead of the generated one. Then we have to fill in the
@@ -32252,17 +35674,17 @@ static swig_const_info swig_const_table[] = {
  * a column is one of the swig_cast_info structures for that type.
  * The cast_initial array is actually an array of arrays, because each row has
  * a variable number of columns. So to actually build the cast linked list,
- * we find the array of casts associated with the type, and loop through it 
+ * we find the array of casts associated with the type, and loop through it
  * adding the casts to the list. The one last trick we need to do is making
  * sure the type pointer in the swig_cast_info struct is correct.
  *
- * First off, we lookup the cast->type name to see if it is already loaded. 
+ * First off, we lookup the cast->type name to see if it is already loaded.
  * There are three cases to handle:
  *  1) If the cast->type has already been loaded AND the type we are adding
  *     casting info to has not been loaded (it is in this module), THEN we
  *     replace the cast->type pointer with the type pointer that has already
  *     been loaded.
- *  2) If BOTH types (the one we are adding casting info to, and the 
+ *  2) If BOTH types (the one we are adding casting info to, and the
  *     cast->type) are loaded, THEN the cast info has already been loaded by
  *     the previous module so we just ignore it.
  *  3) Finally, if cast->type has not already been loaded, then we add that
@@ -32286,9 +35708,7 @@ SWIGRUNTIME void
 SWIG_InitializeModule(void *clientdata) {
   size_t i;
   swig_module_info *module_head, *iter;
-  int found;
-  
-  clientdata = clientdata;
+  int init;
   
   /* check to see if the circular list has been setup, if not, set it up */
   if (swig_module.next==0) {
@@ -32296,6 +35716,9 @@ SWIG_InitializeModule(void *clientdata) {
     swig_module.type_initial = swig_type_initial;
     swig_module.cast_initial = swig_cast_initial;
     swig_module.next = &swig_module;
+    init = 1;
+  } else {
+    init = 0;
   }
   
   /* Try and load any already created modules */
@@ -32304,26 +35727,28 @@ SWIG_InitializeModule(void *clientdata) {
     /* This is the first module loaded for this interpreter */
     /* so set the swig module into the interpreter */
     SWIG_SetModule(clientdata, &swig_module);
-    module_head = &swig_module;
   } else {
     /* the interpreter has loaded a SWIG module, but has it loaded this one? */
-    found=0;
     iter=module_head;
     do {
       if (iter==&swig_module) {
-        found=1;
-        break;
+        /* Our module is already in the list, so there's nothing more to do. */
+        return;
       }
       iter=iter->next;
     } while (iter!= module_head);
     
-    /* if the is found in the list, then all is done and we may leave */
-    if (found) return;
-    /* otherwise we must add out module into the list */
+    /* otherwise we must add our module into the list */
     swig_module.next = module_head->next;
     module_head->next = &swig_module;
   }
   
+  /* When multiple interpreters are used, a module could have already been initialized in
+       a different interpreter, but not yet have a pointer in this interpreter.
+       In this case, we do not want to continue adding types... everything should be
+       set up already */
+  if (init == 0) return;
+  
   /* Now work on filling in swig_module.types */
 #ifdef SWIGRUNTIME_DEBUG
   printf("SWIG_InitializeModule: size %d\n", swig_module.size);
@@ -32486,26 +35911,58 @@ extern "C" {
   
   SWIGINTERN PyObject *
   swig_varlink_repr(swig_varlinkobject *SWIGUNUSEDPARM(v)) {
+#if PY_VERSION_HEX >= 0x03000000
+    return PyUnicode_InternFromString("<Swig global variables>");
+#else
     return PyString_FromString("<Swig global variables>");
+#endif
   }
   
   SWIGINTERN PyObject *
   swig_varlink_str(swig_varlinkobject *v) {
+#if PY_VERSION_HEX >= 0x03000000
+    PyObject *str = PyUnicode_InternFromString("(");
+    PyObject *tail;
+    PyObject *joined;
+    swig_globalvar *var;
+    for (var = v->vars; var; var=var->next) {
+      tail = PyUnicode_FromString(var->name);
+      joined = PyUnicode_Concat(str, tail);
+      Py_DecRef(str);
+      Py_DecRef(tail);
+      str = joined;
+      if (var->next) {
+        tail = PyUnicode_InternFromString(", ");
+        joined = PyUnicode_Concat(str, tail);
+        Py_DecRef(str);
+        Py_DecRef(tail);
+        str = joined;
+      }
+    }
+    tail = PyUnicode_InternFromString(")");
+    joined = PyUnicode_Concat(str, tail);
+    Py_DecRef(str);
+    Py_DecRef(tail);
+    str = joined;
+#else
     PyObject *str = PyString_FromString("(");
-    swig_globalvar  *var;
+    swig_globalvar *var;
     for (var = v->vars; var; var=var->next) {
       PyString_ConcatAndDel(&str,PyString_FromString(var->name));
       if (var->next) PyString_ConcatAndDel(&str,PyString_FromString(", "));
     }
     PyString_ConcatAndDel(&str,PyString_FromString(")"));
+#endif
     return str;
   }
   
   SWIGINTERN int
   swig_varlink_print(swig_varlinkobject *v, FILE *fp, int SWIGUNUSEDPARM(flags)) {
+    char *tmp;
     PyObject *str = swig_varlink_str(v);
     fprintf(fp,"Swig global variables ");
-    fprintf(fp,"%s\n", PyString_AsString(str));
+    fprintf(fp,"%s\n", tmp = SWIG_Python_str_AsChar(str));
+    SWIG_Python_str_DelForPy3(tmp);
     Py_DECREF(str);
     return 0;
   }
@@ -32533,7 +35990,7 @@ extern "C" {
       var = var->next;
     }
     if (res == NULL && !PyErr_Occurred()) {
-      PyErr_SetString(PyExc_NameError,"Unknown C global variable");
+      PyErr_Format(PyExc_AttributeError, "Unknown C global variable '%s'", n);
     }
     return res;
   }
@@ -32550,7 +36007,7 @@ extern "C" {
       var = var->next;
     }
     if (res == 1 && !PyErr_Occurred()) {
-      PyErr_SetString(PyExc_NameError,"Unknown C global variable");
+      PyErr_Format(PyExc_AttributeError, "Unknown C global variable '%s'", n);
     }
     return res;
   }
@@ -32559,19 +36016,22 @@ extern "C" {
   swig_varlink_type(void) {
     static char varlink__doc__[] = "Swig var link object";
     static PyTypeObject varlink_type;
-    static int type_init = 0;  
+    static int type_init = 0;
     if (!type_init) {
-      const PyTypeObject tmp
-      = {
+      const PyTypeObject tmp = {
+#if PY_VERSION_HEX >= 0x03000000
+        PyVarObject_HEAD_INIT(NULL, 0)
+#else
         PyObject_HEAD_INIT(NULL)
-        0,                                  /* Number of items in variable part (ob_size) */
-        (char *)"swigvarlink",              /* Type name (tp_name) */
-        sizeof(swig_varlinkobject),         /* Basic size (tp_basicsize) */
-        0,                                  /* Itemsize (tp_itemsize) */
-        (destructor) swig_varlink_dealloc,   /* Deallocator (tp_dealloc) */ 
-        (printfunc) swig_varlink_print,     /* Print (tp_print) */
-        (getattrfunc) swig_varlink_getattr, /* get attr (tp_getattr) */
-        (setattrfunc) swig_varlink_setattr, /* Set attr (tp_setattr) */
+        0,                                  /* ob_size */
+#endif
+        (char *)"swigvarlink",              /* tp_name */
+        sizeof(swig_varlinkobject),         /* tp_basicsize */
+        0,                                  /* tp_itemsize */
+        (destructor) swig_varlink_dealloc,  /* tp_dealloc */
+        (printfunc) swig_varlink_print,     /* tp_print */
+        (getattrfunc) swig_varlink_getattr, /* tp_getattr */
+        (setattrfunc) swig_varlink_setattr, /* tp_setattr */
         0,                                  /* tp_compare */
         (reprfunc) swig_varlink_repr,       /* tp_repr */
         0,                                  /* tp_as_number */
@@ -32579,7 +36039,7 @@ extern "C" {
         0,                                  /* tp_as_mapping */
         0,                                  /* tp_hash */
         0,                                  /* tp_call */
-        (reprfunc)swig_varlink_str,        /* tp_str */
+        (reprfunc) swig_varlink_str,        /* tp_str */
         0,                                  /* tp_getattro */
         0,                                  /* tp_setattro */
         0,                                  /* tp_as_buffer */
@@ -32595,13 +36055,30 @@ extern "C" {
 #if PY_VERSION_HEX >= 0x02030000
         0,                                  /* tp_del */
 #endif
+#if PY_VERSION_HEX >= 0x02060000
+        0,                                  /* tp_version_tag */
+#endif
+#if PY_VERSION_HEX >= 0x03040000
+        0,                                  /* tp_finalize */
+#endif
 #ifdef COUNT_ALLOCS
-        0,0,0,0                             /* tp_alloc -> tp_next */
+        0,                                  /* tp_allocs */
+        0,                                  /* tp_frees */
+        0,                                  /* tp_maxalloc */
+#if PY_VERSION_HEX >= 0x02050000
+        0,                                  /* tp_prev */
+#endif
+        0                                   /* tp_next */
 #endif
       };
       varlink_type = tmp;
-      varlink_type.ob_type = &PyType_Type;
       type_init = 1;
+#if PY_VERSION_HEX < 0x02020000
+      varlink_type.ob_type = &PyType_Type;
+#else
+      if (PyType_Ready(&varlink_type) < 0)
+      return NULL;
+#endif
     }
     return &varlink_type;
   }
@@ -32652,7 +36129,7 @@ extern "C" {
     for (i = 0; constants[i].type; ++i) {
       switch(constants[i].type) {
       case SWIG_PY_POINTER:
-        obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0);
+        obj = SWIG_InternalNewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0);
         break;
       case SWIG_PY_BINARY:
         obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype));
@@ -32680,7 +36157,9 @@ extern "C" {
     size_t i;
     for (i = 0; methods[i].ml_name; ++i) {
       const char *c = methods[i].ml_doc;
-      if (c && (c = strstr(c, "swig_ptr: "))) {
+      if (!c) continue;
+      c = strstr(c, "swig_ptr: ");
+      if (c) {
         int j;
         swig_const_info *ci = 0;
         const char *name = c + 10;
@@ -32692,15 +36171,15 @@ extern "C" {
           }
         }
         if (ci) {
-          size_t shift = (ci->ptype) - types;
-          swig_type_info *ty = types_initial[shift];
-          size_t ldoc = (c - methods[i].ml_doc);
-          size_t lptr = strlen(ty->name)+2*sizeof(void*)+2;
-          char *ndoc = (char*)malloc(ldoc + lptr + 10);
-          if (ndoc) {
-            char *buff = ndoc;
-            void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0;
-            if (ptr) {
+          void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0;
+          if (ptr) {
+            size_t shift = (ci->ptype) - types;
+            swig_type_info *ty = types_initial[shift];
+            size_t ldoc = (c - methods[i].ml_doc);
+            size_t lptr = strlen(ty->name)+2*sizeof(void*)+2;
+            char *ndoc = (char*)malloc(ldoc + lptr + 10);
+            if (ndoc) {
+              char *buff = ndoc;
               strncpy(buff, methods[i].ml_doc, ldoc);
               buff += ldoc;
               strncpy(buff, "swig_ptr: ", 10);
@@ -32725,19 +36204,133 @@ extern "C" {
 #ifdef __cplusplus
 extern "C"
 #endif
-SWIGEXPORT void SWIG_init(void) {
-  PyObject *m, *d;
+
+SWIGEXPORT 
+#if PY_VERSION_HEX >= 0x03000000
+PyObject*
+#else
+void
+#endif
+SWIG_init(void) {
+  PyObject *m, *d, *md;
+#if PY_VERSION_HEX >= 0x03000000
+  static struct PyModuleDef SWIG_module = {
+# if PY_VERSION_HEX >= 0x03020000
+    PyModuleDef_HEAD_INIT,
+# else
+    {
+      PyObject_HEAD_INIT(NULL)
+      NULL, /* m_init */
+      0,    /* m_index */
+      NULL, /* m_copy */
+    },
+# endif
+    (char *) SWIG_name,
+    NULL,
+    -1,
+    SwigMethods,
+    NULL,
+    NULL,
+    NULL,
+    NULL
+  };
+#endif
+  
+#if defined(SWIGPYTHON_BUILTIN)
+  static SwigPyClientData SwigPyObject_clientdata = {
+    0, 0, 0, 0, 0, 0, 0
+  };
+  static PyGetSetDef this_getset_def = {
+    (char *)"this", &SwigPyBuiltin_ThisClosure, NULL, NULL, NULL
+  };
+  static SwigPyGetSet thisown_getset_closure = {
+    (PyCFunction) SwigPyObject_own,
+    (PyCFunction) SwigPyObject_own
+  };
+  static PyGetSetDef thisown_getset_def = {
+    (char *)"thisown", SwigPyBuiltin_GetterClosure, SwigPyBuiltin_SetterClosure, NULL, &thisown_getset_closure
+  };
+  PyTypeObject *builtin_pytype;
+  int builtin_base_count;
+  swig_type_info *builtin_basetype;
+  PyObject *tuple;
+  PyGetSetDescrObject *static_getset;
+  PyTypeObject *metatype;
+  PyTypeObject *swigpyobject;
+  SwigPyClientData *cd;
+  PyObject *public_interface, *public_symbol;
+  PyObject *this_descr;
+  PyObject *thisown_descr;
+  PyObject *self = 0;
+  int i;
+  
+  (void)builtin_pytype;
+  (void)builtin_base_count;
+  (void)builtin_basetype;
+  (void)tuple;
+  (void)static_getset;
+  (void)self;
+  
+  /* Metaclass is used to implement static member variables */
+  metatype = SwigPyObjectType();
+  assert(metatype);
+#endif
   
   /* Fix SwigMethods to carry the callback ptrs when needed */
   SWIG_Python_FixMethods(SwigMethods, swig_const_table, swig_types, swig_type_initial);
   
+#if PY_VERSION_HEX >= 0x03000000
+  m = PyModule_Create(&SWIG_module);
+#else
   m = Py_InitModule((char *) SWIG_name, SwigMethods);
-  d = PyModule_GetDict(m);
+#endif
+  
+  md = d = PyModule_GetDict(m);
+  (void)md;
   
   SWIG_InitializeModule(0);
-  SWIG_InstallConstants(d,swig_const_table);
   
+#ifdef SWIGPYTHON_BUILTIN
+  swigpyobject = SwigPyObject_TypeOnce();
+  
+  SwigPyObject_stype = SWIG_MangledTypeQuery("_p_SwigPyObject");
+  assert(SwigPyObject_stype);
+  cd = (SwigPyClientData*) SwigPyObject_stype->clientdata;
+  if (!cd) {
+    SwigPyObject_stype->clientdata = &SwigPyObject_clientdata;
+    SwigPyObject_clientdata.pytype = swigpyobject;
+  } else if (swigpyobject->tp_basicsize != cd->pytype->tp_basicsize) {
+    PyErr_SetString(PyExc_RuntimeError, "Import error: attempted to load two incompatible swig-generated modules.");
+# if PY_VERSION_HEX >= 0x03000000
+    return NULL;
+# else
+    return;
+# endif
+  }
+  
+  /* All objects have a 'this' attribute */
+  this_descr = PyDescr_NewGetSet(SwigPyObject_type(), &this_getset_def);
+  (void)this_descr;
   
+  /* All objects have a 'thisown' attribute */
+  thisown_descr = PyDescr_NewGetSet(SwigPyObject_type(), &thisown_getset_def);
+  (void)thisown_descr;
+  
+  public_interface = PyList_New(0);
+  public_symbol = 0;
+  (void)public_symbol;
+  
+  PyDict_SetItemString(md, "__all__", public_interface);
+  Py_DECREF(public_interface);
+  for (i = 0; SwigMethods[i].ml_name != NULL; ++i)
+  SwigPyBuiltin_AddPublicSymbol(public_interface, SwigMethods[i].ml_name);
+  for (i = 0; swig_const_table[i].name != 0; ++i)
+  SwigPyBuiltin_AddPublicSymbol(public_interface, swig_const_table[i].name);
+#endif
+  
+  SWIG_InstallConstants(d,swig_const_table);
+  
+  SWIG_Python_SetConstant(d, "DumpActif",SWIG_From_bool(static_cast< bool >(true)));
   SWIG_Python_SetConstant(d, "HOK",SWIG_From_int(static_cast< int >(0)));
   SWIG_Python_SetConstant(d, "HERR",SWIG_From_int(static_cast< int >(1)));
   SWIG_Python_SetConstant(d, "NOTHING",SWIG_From_int(static_cast< int >(-1)));
@@ -32771,8 +36364,8 @@ SWIGEXPORT void SWIG_init(void) {
   SWIG_Python_SetConstant(d, "EL_DOCU",SWIG_From_int(static_cast< int >(Hex::EL_DOCU)));
   SWIG_Python_SetConstant(d, "EL_REMOVED",SWIG_From_int(static_cast< int >(Hex::EL_REMOVED)));
   SWIG_Python_SetConstant(d, "EL_MAXI",SWIG_From_int(static_cast< int >(Hex::EL_MAXI)));
-  PyDict_SetItemString(d,(char*)"cvar", SWIG_globals());
-  SWIG_addvarlink(SWIG_globals(),(char*)"ABR_TYPES",ABR_TYPES_get, ABR_TYPES_set);
+  PyDict_SetItemString(md,(char *)"cvar", SWIG_globals());
+  SWIG_addvarlink(SWIG_globals(),(char *)"ABR_TYPES",Swig_var_ABR_TYPES_get, Swig_var_ABR_TYPES_set);
   SWIG_Python_SetConstant(d, "HexaCell",SWIG_From_int(static_cast< int >(Hex::HexaCell)));
   SWIG_Python_SetConstant(d, "QuadCell",SWIG_From_int(static_cast< int >(Hex::QuadCell)));
   SWIG_Python_SetConstant(d, "EdgeCell",SWIG_From_int(static_cast< int >(Hex::EdgeCell)));
@@ -32881,8 +36474,13 @@ SWIGEXPORT void SWIG_init(void) {
   SWIG_Python_SetConstant(d, "CylBig",SWIG_From_int(static_cast< int >(Hex::CylBig)));
   SWIG_Python_SetConstant(d, "NxInt",SWIG_From_int(static_cast< int >(Hex::NxInt)));
   SWIG_Python_SetConstant(d, "NxExt",SWIG_From_int(static_cast< int >(Hex::NxExt)));
-  SWIG_addvarlink(SWIG_globals(),(char*)"Epsil",Epsil_get, Epsil_set);
-  SWIG_addvarlink(SWIG_globals(),(char*)"UnEpsil",UnEpsil_get, UnEpsil_set);
-  SWIG_addvarlink(SWIG_globals(),(char*)"Epsil2",Epsil2_get, Epsil2_set);
+  SWIG_addvarlink(SWIG_globals(),(char *)"Epsil",Swig_var_Epsil_get, Swig_var_Epsil_set);
+  SWIG_addvarlink(SWIG_globals(),(char *)"UnEpsil",Swig_var_UnEpsil_get, Swig_var_UnEpsil_set);
+  SWIG_addvarlink(SWIG_globals(),(char *)"Epsil2",Swig_var_Epsil2_get, Swig_var_Epsil2_set);
+#if PY_VERSION_HEX >= 0x03000000
+  return m;
+#else
+  return;
+#endif
 }
 
index 4635a6101f589f939d6cc58fc9f8397e994a2c22..83877673bf9870ef079326c16f422e67da7283fb 100755 (executable)
@@ -74,7 +74,7 @@ def nearest (grid, vertex) :
            result = v1
            dmin   = d2
 
-    print  vertex.getName () , px, py, pz, " -> ", result.getName()
+    print(vertex.getName () , px, py, pz, " -> ", result.getName())
     return result
 
 # ======================================================= nearest_quad
@@ -92,7 +92,7 @@ def nearest_quad (grid, quad) :
               result = q1
               dmin   = d2
 
-    print  quad.getName () , px, py, pz, " -> ", result.getName()
+    print(quad.getName () , px, py, pz, " -> ", result.getName())
     return result
 
 # ======================================================= insert_cylinder
@@ -137,7 +137,7 @@ def insert_cylinder (plaque, nx, ny) :
         quad = pipe.getQuadJK (1, nq, 0)
         tabquad.append (quad)
 
-    print  " .. tabquad[0] = ", tabquad[0].getName ()
+    print(" .. tabquad[0] = ", tabquad[0].getName ())
     cible = nearest_quad (plaque, tabquad[0])
     tabquad[0]. setColor (5)
     cible . setColor (5)
@@ -156,7 +156,7 @@ def insert_cylinder (plaque, nx, ny) :
     doc.setLevel (1)
     for nv in range (8) :
         ier = doc.mergeVertices (tabv0[nv], tabv1[nv])
-        print "ier = ", ier
+        print("ier = ", ier)
         save_vtk ()
 
 
index 03949bca4de8d1782348cf03ed06a0e9b20b98f4..03e2a1c7f508d5342762afcc95e356558eba7aca 100644 (file)
@@ -236,7 +236,7 @@ def make_pave () :
     trait_vertical ()
 
     if maillage_actif :
-       print "  ________________________ Maillage"
+       print("  ________________________ Maillage")
        the_doc.addLaws (2, True)
        mesh_hexas = hexablock.mesh(the_doc)
 
index 9bd924a6bae850eb4ec72304751dbcf401757f8c..16a2bfcefe253e2d433ed83a34852799b58b2d74 100644 (file)
@@ -1,4 +1,4 @@
 
 
 a = 2
-print a
+print(a)
index 43cf548a5a41556ffb00183a2430224422ca8f3d..4f0ecfadee8ea4061b09726878fd1112ab96cfe6 100644 (file)
@@ -98,7 +98,7 @@ doc.setShape(bielle)
 # Netoyer les associations implicites du prisme
 # ---------------------------------------------
 
-for i in xrange( prisme.countEdge() ):
+for i in range( prisme.countEdge() ):
   em = prisme.getEdge(i)
   if em != None:
     em.clearAssociation()
@@ -137,14 +137,14 @@ arc(grille_g, 0, 2, 1, ga_ghcd)
 # --------------------------------------
 
 hm = prisme.getHexa(0)
-for i in xrange(0, 4):
+for i in range(0, 4):
   em = hm.getEdge(i+8)
   ga = aretes[ aretes_petit[i] ]
 
   em.addAssociation(ga, 0, 1)
 
 hm = prisme.getHexa(2)
-for i in xrange(0, 4):
+for i in range(0, 4):
   em = hm.getEdge(i+8)
   ga = aretes[ aretes_grand[i] ]
 
@@ -152,13 +152,13 @@ for i in xrange(0, 4):
 # --------------------------------------------------
 
 hm = prisme.getHexa(1)
-for i in xrange(0, 4):
+for i in range(0, 4):
   vm = hm.getVertex(i)
   ga = sommets[ sommets_petit[i] ]
   vm.setAssociation(ga)
 
 hm = prisme.getHexa(2)
-for i in xrange(0, 4):
+for i in range(0, 4):
   vm = hm.getVertex(i)
   ga = sommets[ sommets_grand[i] ]
   vm.setAssociation(ga)
@@ -167,14 +167,14 @@ for i in xrange(0, 4):
 # --------------------------------------
 
 hm = prisme.getHexa(0)
-for i in xrange(0, 4):
+for i in range(0, 4):
   em = hm.getEdge(i+8)
   ga = aretes[ aretes_petit[i] ]
   em.clearAssociation()
   em.addAssociation(ga, 0, 1)
 
 hm = prisme.getHexa(2)
-for i in xrange(0, 4):
+for i in range(0, 4):
   em = hm.getEdge(i+8)
   ga = aretes[ aretes_grand[i] ]
   em.clearAssociation()
@@ -204,9 +204,9 @@ for nro in range (nbedges) :
     edge  = doc.getEdge (nro)
     assos = edge.getAssociations()
     nbass = len (assos)
-    print " ... %d Edge = %s, nb asso = %d" % (nro, edge.getName(), nbass)
+    print(" ... %d Edge = %s, nb asso = %d" % (nro, edge.getName(), nbass))
     for na in range (nbass) :
-        print " ... Asso(", na, ") = ", assos[na]
+        print(" ... Asso(", na, ") = ", assos[na])
 
 
 # Mailler le modèle de bloc
@@ -224,21 +224,21 @@ groupe_contour = doc.addQuadGroup("Contour")
 # Constituer les groupes petit et grand
 # -------------------------------------
 
-for i in xrange(3):
+for i in range(3):
   groupe_petit.addElement( grille_p.getQuadJK(0, i, 0) )
   groupe_grand.addElement( grille_g.getQuadJK(0, i, 0) )
 
 # Constituer les groupes bas et haut
 # ----------------------------------
 
-for i in xrange(3):
+for i in range(3):
   groupe_bas.addElement(  grille_p.getQuadIJ(0, i, 0) )
   groupe_bas.addElement(  grille_g.getQuadIJ(0, i, 0) )
 
   groupe_haut.addElement( grille_p.getQuadIJ(0, i, 1) )
   groupe_haut.addElement( grille_g.getQuadIJ(0, i, 1) )
 
-for i in xrange(3):
+for i in range(3):
   h = prisme.getHexa(i)
   groupe_bas.addElement(  h.getQuad(2) )
   groupe_haut.addElement( h.getQuad(3) )
@@ -246,13 +246,13 @@ for i in xrange(3):
 # Constituer le groupe contour
 # ----------------------------
 
-for i in xrange(2):
+for i in range(2):
   groupe_contour.addElement( grille_p.getQuadJK(1, i, 0) )
 
 for i in [0, 2]:
   groupe_contour.addElement( grille_g.getQuadJK(1, i, 0) )
 
-for i in xrange(3):
+for i in range(3):
   h = prisme.getHexa(i)
 
   groupe_contour.addElement( h.getQuad(4) )
@@ -265,11 +265,11 @@ groupe_petit  = doc.addHexaGroup("Petit")
 groupe_grand  = doc.addHexaGroup("Grand")
 groupe_prisme = doc.addHexaGroup("Prisme")
 
-for i in xrange(3):
+for i in range(3):
   groupe_petit.addElement( grille_p.getHexa(i) )
   groupe_grand.addElement( grille_g.getHexa(i) )
 
-for i in xrange(3):
+for i in range(3):
   groupe_prisme.addElement( prisme.getHexa(i) )
 
 # Mailler le modèle de bloc avec association
index e7fa8dffd4a93df767fb1b9a4f63e3f414912944..1e703d9fe3c283a7a125634b4b3e0631c518ed6a 100644 (file)
@@ -174,13 +174,13 @@ arc(grille_g, 0, 2, 1, subid_ghcd)
 # --------------------------------------------------
 
 hm = prisme.getHexa(1)
-for i in xrange(0, 4):
+for i in range(0, 4):
   vm = hm.getVertex(i)
   subid = node_little_subid [i]
   vm.setAssociation (geometry, subid)
 
 hm = prisme.getHexa(2)
-for i in xrange(0, 4):
+for i in range(0, 4):
   vm = hm.getVertex(i)
   subid = node_big_subid [i]
   vm.setAssociation (geometry, subid)
@@ -189,13 +189,13 @@ for i in xrange(0, 4):
 # --------------------------------------
 
 hm = prisme.getHexa(0)
-for i in xrange(0, 4):
+for i in range(0, 4):
   em = hm.getEdge(i+8)
   subid = arc_little_subid [i]
   em.addAssociation (geometry, subid, 0, 1)
 
 hm = prisme.getHexa(2)
-for i in xrange(0, 4):
+for i in range(0, 4):
   em = hm.getEdge(i+8)
   subid = arc_big_subid [i]
   em.addAssociation (geometry, subid, 0, 1)
@@ -256,21 +256,21 @@ groupe_contour = doc.addQuadGroup("Contour")
 # Constituer les groupes petit et grand
 # -------------------------------------
 
-for i in xrange(3):
+for i in range(3):
   groupe_petit.addElement( grille_p.getQuadJK(0, i, 0) )
   groupe_grand.addElement( grille_g.getQuadJK(0, i, 0) )
 
 # Constituer les groupes bas et haut
 # ----------------------------------
 
-for i in xrange(3):
+for i in range(3):
   groupe_bas.addElement(  grille_p.getQuadIJ(0, i, 0) )
   groupe_bas.addElement(  grille_g.getQuadIJ(0, i, 0) )
 
   groupe_haut.addElement( grille_p.getQuadIJ(0, i, 1) )
   groupe_haut.addElement( grille_g.getQuadIJ(0, i, 1) )
 
-for i in xrange(3):
+for i in range(3):
   h = prisme.getHexa(i)
 
   groupe_bas.addElement(  h.getQuad(2) )
@@ -279,13 +279,13 @@ for i in xrange(3):
 # Constituer le groupe contour
 # ----------------------------
 
-for i in xrange(2):
+for i in range(2):
   groupe_contour.addElement( grille_p.getQuadJK(1, i, 0) )
 
 for i in [0, 2]:
   groupe_contour.addElement( grille_g.getQuadJK(1, i, 0) )
 
-for i in xrange(3):
+for i in range(3):
   h = prisme.getHexa(i)
 
   groupe_contour.addElement( h.getQuad(4) )
@@ -298,11 +298,11 @@ groupe_petit  = doc.addHexaGroup("Petit")
 groupe_grand  = doc.addHexaGroup("Grand")
 groupe_prisme = doc.addHexaGroup("Prisme")
 
-for i in xrange(3):
+for i in range(3):
   groupe_petit.addElement( grille_p.getHexa(i) )
   groupe_grand.addElement( grille_g.getHexa(i) )
 
-for i in xrange(3):
+for i in range(3):
   groupe_prisme.addElement( prisme.getHexa(i) )
 
 # Mailler le modele de bloc avec association
index 4c401208794ede8f22216e44665e946fd205a3c3..3d880fa3fd0af5f33eaff87a80bb7c32f376570c 100644 (file)
@@ -190,7 +190,7 @@ rayons = [ petit_rayon, interne_rayon-petit_rayon, externe_rayon-interne_rayon,
 points = [ point_1, point_2, point_3, point_4, point_5, point_6, point_7, point_8, point_1 ]
 
 angles = []
-for i in xrange(8):
+for i in range(8):
   angle = calculer_angle(points[i], points[i+1])
   angles.append(angle)
 
@@ -229,7 +229,7 @@ part_0  = geompy.MakePartition([piquage_1_feh], [plan_0], [], [], geompy.ShapeTy
 point_0 = geompy.SubShapeAllSortedCentres(part_0, geompy.ShapeType["VERTEX"])[1]
 
 enceinte_quads = []
-for j in xrange(8):
+for j in range(8):
   q = grille.getQuadIJ(1, j, 1)
   enceinte_quads.append(q)
 
@@ -298,7 +298,7 @@ piquage_vz = doc.addVector(0, 0, 1)
 
 piquage = doc.makeCylindrical(piquage_centre, piquage_vx, piquage_vz,  1, 360, 1,  1, 4, 1,  False)
 
-piquage_quads = [ piquage.getQuadIJ(0, j, 0) for j in xrange(4) ]
+piquage_quads = [ piquage.getQuadIJ(0, j, 0) for j in range(4) ]
 
 piquage_s1 = piquage.getVertexIJK(1, 0, 0)
 piquage_s2 = piquage.getVertexIJK(1, 1, 0)
@@ -331,9 +331,9 @@ doc.setShape(cuve)
 # Nettoyer les associations implicites du centre et de la périphérie
 # ------------------------------------------------------------------
 
-for i in xrange(0, 4, 3):
-  for j in xrange(8):
-    for k in xrange(2):
+for i in range(0, 4, 3):
+  for j in range(8):
+    for k in range(2):
       e = grille.getEdgeJ(i, j, k)
       e.clearAssociation()
 
@@ -368,11 +368,11 @@ supports_points = [
   [ support_b_o, support_b_x, support_b_d, support_b_y ]
 ]
 
-for s in xrange(4):
+for s in range(4):
   qb = supports_quads_b[s]
   qh = supports_quads_h[s]
   cs = supports_points[s]
-  for i in xrange(4):
+  for i in range(4):
     smb = qb.getVertex(i)
     sgb = cs[i]
     smb.setAssociation(sgb)
@@ -407,7 +407,7 @@ for j, ag, p in periph_grille:
 
 periph_deco = [ [cote_c, par_2], [cote_a, par_1], [cote_b, par_1] ]
 
-for i in xrange(3):
+for i in range(3):
   hxa = periph_hexas[i]
   ag, p = periph_deco[i]
   smb = hxa.getVertex(2)
@@ -538,27 +538,27 @@ groupe_p1 = doc.addHexaGroup("piquage:1")
 groupe_p2 = doc.addHexaGroup("piquage:2")
 groupe_su = doc.addHexaGroup("supports")
 
-for i in xrange( doc.countUsedHexa() ):
+for i in range( doc.countUsedHexa() ):
   h = doc.getUsedHexa(i)
   groupe_fd.addElement(h)
 
-for i in xrange( enceinte.countHexa() ):
+for i in range( enceinte.countHexa() ):
   h = enceinte.getHexa(i)
   if h != None:
     groupe_en.addElement(h)
     groupe_fd.removeElement(h)
 
-for i in xrange( piquage_1.countHexa() ):
+for i in range( piquage_1.countHexa() ):
   h = piquage_1.getHexa(i)
   groupe_p1.addElement(h)
   groupe_fd.removeElement(h)
 
-for i in xrange( piquage_2.countHexa() ):
+for i in range( piquage_2.countHexa() ):
   h = piquage_2.getHexa(i)
   groupe_p2.addElement(h)
   groupe_fd.removeElement(h)
 
-for i in xrange( supports.countHexa() ):
+for i in range( supports.countHexa() ):
   h = supports.getHexa(i)
   groupe_su.addElement(h)
   groupe_fd.removeElement(h)
index e4bf5e19156fab8e910a3b1fe1164467318e1397..a39d88ae8b81b0c41cbd13f9314ae61c8aa6b26c 100644 (file)
@@ -116,7 +116,7 @@ cer_ext_dep = modele.getVertexIJK(1, 0, 1)
 
 cer_int = []
 cer_ext = []
-for j in xrange(4):
+for j in range(4):
     a = modele.getEdgeJ(0, j, 1)
     cer_int.append(a)
 
@@ -134,7 +134,7 @@ ell_ext_dep = modele.getVertexIJK(1, 0, 0)
 
 ell_int = []
 ell_ext = []
-for j in xrange(4):
+for j in range(4):
     a = modele.getEdgeJ(0, j, 0)
     ell_int.append(a)
 
@@ -150,7 +150,7 @@ doc.associateClosedLine(ell_ext_dep, ell_ext, [sh_tuyau], [15, 8], 1, True)
 def generatrice(face):
     n = 10
     l = []
-    for i in xrange(0, n+1):
+    for i in range(0, n+1):
         v = float(i) / n
         s = geompy.MakeVertexOnSurface(face, 0.5, v)
         l.append(s)
@@ -216,8 +216,8 @@ groupe_exterieur = doc.addQuadGroup("Exterieur")
 # Constituer les groupes d'aretes
 # -------------------------------
 
-for i in xrange(2):
-    for j in xrange(4):
+for i in range(2):
+    for j in range(4):
         arete = modele.getEdgeJ(i, j, 1)
         groupe_cercles.addElement(arete)
 
@@ -230,7 +230,7 @@ for i in xrange(2):
 # Constituer les groupes de faces
 # -------------------------------
 
-for j in xrange(4):
+for j in range(4):
     quad = modele.getQuadIJ(0, j, 1)
     groupe_couronne.addElement(quad)
 
index 4a2a785f48c66af0c08b4d1cc0c2628efc3fa969..10b02893c49cc633e4cb97c729fea9f097aa104b 100644 (file)
@@ -128,9 +128,9 @@ cylindres_gp = doc.makeCylinders (grand_oppo, grand_dir_b, grand_rayon, grand_ha
 
 doc.saveVtk ("tuyauterie0.vtk")
 
-print "grand_rayon = ", grand_rayon
-print "moyen_rayon = ", moyen_rayon
-print "petit_rayon = ", petit_rayon
+print("grand_rayon = ", grand_rayon)
+print("moyen_rayon = ", moyen_rayon)
+print("petit_rayon = ", petit_rayon)
 
 
 # Joindre les 2 croix
@@ -189,7 +189,7 @@ doc.addShape(geometrie, nom)
 # Associer les arêtes du modèle issues du joinQuads
 # -------------------------------------------------
 
-for i in xrange(hexablock.CV_MAXI_EXT):
+for i in range(hexablock.CV_MAXI_EXT):
     asso_h  = prisme.getHexa(i)
     asso_a  = [ hexablock.E_CE, hexablock.E_CF, hexablock.E_CE, hexablock.E_CF, hexablock.E_CE, hexablock.E_CF, hexablock.E_CE, hexablock.E_CF ][i]
     asso_e  = asso_h.getEdge(asso_a)
@@ -202,7 +202,7 @@ for i in xrange(hexablock.CV_MAXI_EXT):
     asso_pts = [ asso_v1 ]
     n = 9
     pas = math.sqrt( (x2-x1)**2 + (y2-y1)**2 + (z2-z1)**2 ) / n
-    for i in xrange(1, n):
+    for i in range(1, n):
         x = x1 + (x2 - x1) * i * pas
         y = y1 + (y2 - y1) * i * pas
         z = z1 + (z2 - z1) * i * pas
@@ -215,7 +215,7 @@ for i in xrange(hexablock.CV_MAXI_EXT):
 # Associer les quadrangles du modèle issues du joinQuads
 # ------------------------------------------------------
 
-for i in xrange(hexablock.CV_MAXI_EXT):
+for i in range(hexablock.CV_MAXI_EXT):
     asso_h = prisme.getHexa(i)
     asso_f = [ hexablock.Q_C, hexablock.Q_F, hexablock.Q_E, hexablock.Q_F, hexablock.Q_E, hexablock.Q_F, hexablock.Q_E, hexablock.Q_F ][i]
     asso_q = asso_h.getQuad(asso_f)
@@ -232,8 +232,8 @@ groupe_d_moyen = doc.addQuadGroup("moyen:disque")
 groupe_d_petit = doc.addQuadGroup("petit:disque")
 groupe_d_coude = doc.addQuadGroup("coude:disque")
 
-for i in xrange(2):
-    for j in xrange( [hexablock.CV_MAXI_INT, hexablock.CV_MAXI_EXT][i] ):
+for i in range(2):
+    for j in range( [hexablock.CV_MAXI_INT, hexablock.CV_MAXI_EXT][i] ):
         quad = cylindres_gm.getQuadIJ(hexablock.CYL_BIG  , i, j, 0)
         groupe_d_grand.addElement(quad)
 
@@ -243,7 +243,7 @@ for i in xrange(2):
         quad = cylindres_gp.getQuadIJ(hexablock.CYL_SMALL, i, j, 0)
         groupe_d_petit.addElement(quad)
 
-for i in xrange( hexablock.CV_MAXI_INT + hexablock.CV_MAXI_EXT ):
+for i in range( hexablock.CV_MAXI_INT + hexablock.CV_MAXI_EXT ):
     h = coude.getHexa(i)
     quad = h.getQuad(hexablock.Q_B)
     groupe_d_coude.addElement(quad)
@@ -255,12 +255,12 @@ groupe_grand = doc.addHexaGroup("grand")
 groupe_moyen = doc.addHexaGroup("moyen")
 groupe_petit = doc.addHexaGroup("petit")
 
-for i in xrange( doc.countUsedHexa() ):
+for i in range( doc.countUsedHexa() ):
     h = doc.getUsedHexa(i)
     groupe_grand.addElement(h)
 
-for i in xrange(2):
-    for j in xrange( [hexablock.CV_MAXI_INT, hexablock.CV_MAXI_EXT][i] ):
+for i in range(2):
+    for j in range( [hexablock.CV_MAXI_INT, hexablock.CV_MAXI_EXT][i] ):
         h = cylindres_gm.getHexaIJK(hexablock.CYL_SMALL, i, j, 0)
         groupe_moyen.addElement(h)
         groupe_grand.removeElement(h)
index b0c994250e356f27c6276838046ecc96e68456d1..c5ca7062c272f738dd779c5e144b1b20c511d428 100644 (file)
@@ -53,9 +53,9 @@ for j in range(doc.countPropagation()):
 
 mesh_hexas = hexablock.mesh(doc, "Grille:hexas")
 
-print "Nombre d hexaedres:", mesh_hexas.NbHexas()
-print "Nombre de quadrangles:", mesh_hexas.NbQuadrangles()
-print "Nombre de segments:", mesh_hexas.NbEdges()
-print "Nombre de noeuds:", mesh_hexas.NbNodes()
+print("Nombre d hexaedres:", mesh_hexas.NbHexas())
+print("Nombre de quadrangles:", mesh_hexas.NbQuadrangles())
+print("Nombre de segments:", mesh_hexas.NbEdges())
+print("Nombre de noeuds:", mesh_hexas.NbNodes())
 
 
index cd171e1e8602244ae3dd592744bc86520748bfe7..ce0c4c0dfe5d69640d7d826533ef856dfd3e4c75 100644 (file)
@@ -88,7 +88,7 @@ elements = doc.cut(arete, 4)
 l = doc.addLaw("Uniform", 5)
 n = doc.countPropagation()
 
-for i in xrange(n):
+for i in range(n):
   p = doc.getPropagation(i)
   p.setLaw(l)
 
@@ -99,14 +99,14 @@ maillage = hexablock.mesh (doc)
 # Afficher des informations
 # -------------------------
 
-print "Sur le document:"
-print "nombre de sommets     du modèle de bloc: ", doc.countUsedVertex()
-print "nombre d'arêtes       du modèle de bloc: ", doc.countUsedEdge()
-print "nombre de quadrangles du modèle de bloc: ", doc.countUsedQuad()
-print "nombre de blocs       du modèle de bloc: ", doc.countUsedHexa()
-
-print "Sur le maillage:"
-print "  - Nombre de noeuds     : ", maillage.NbNodes()
-print "  - Nombre de segments   : ", maillage.NbEdges()
-print "  - Nombre de quadrangles: ", maillage.NbQuadrangles()
-print "  - Nombre d'hexaèdres   : ", maillage.NbHexas()
+print("Sur le document:")
+print("nombre de sommets     du modèle de bloc: ", doc.countUsedVertex())
+print("nombre d'arêtes       du modèle de bloc: ", doc.countUsedEdge())
+print("nombre de quadrangles du modèle de bloc: ", doc.countUsedQuad())
+print("nombre de blocs       du modèle de bloc: ", doc.countUsedHexa())
+
+print("Sur le maillage:")
+print("  - Nombre de noeuds     : ", maillage.NbNodes())
+print("  - Nombre de segments   : ", maillage.NbEdges())
+print("  - Nombre de quadrangles: ", maillage.NbQuadrangles())
+print("  - Nombre d'hexaèdres   : ", maillage.NbHexas())
index 3cf12901b892e5e1dfee4d1b2464d181fe5b208a..4079844b9e00a09137e625125096231e4b1b841f 100644 (file)
@@ -68,7 +68,7 @@ def test_revolution () :
     for nx in range (nr) :
         for ny in range (na) :
             cell = grid.getQuadIJ (nx, ny, nl)
-            print " ... cell = ", cell
+            print(" ... cell = ", cell)
             liste.append (cell);
 
     center = doc.addVertex (0, -10, 0);
@@ -94,7 +94,7 @@ def test_prism () :
     for nx in range (nr) :
         for ny in range (na) :
             cell = grid.getQuadIJ (nx, ny, nl)
-            print " ... cell = ", cell
+            print(" ... cell = ", cell)
             liste.append (cell);
 
     axis = doc.addVector (1, 1, 1);
@@ -117,7 +117,7 @@ def test_prism_vec () :
     for nx in range (nr) :
         for ny in range (na) :
             cell = grid.getQuadIJ (nx, ny, nl)
-            print " ... cell = ", cell
+            print(" ... cell = ", cell)
             liste.append (cell);
 
     axis = doc.addVector (1, 1, 1);
index cae2eb37414ec28070767086749b276516ab7368..3033c54a4da090516fadb14cb5d08a40ff26a550 100644 (file)
@@ -43,23 +43,23 @@ shape  = doc.addShape (bielle, "bielle")
 sommets = geompy.SubShapeAllIDs (bielle, geompy.ShapeType["VERTEX"])
 aretes  = geompy.SubShapeAllIDs (bielle, geompy.ShapeType["EDGE"])
 
-print " ... Aretes  = ", aretes
-print " ... Sommets = ", sommets
+print(" ... Aretes  = ", aretes)
+print(" ... Sommets = ", sommets)
 
 nbfaces  = shape.countFace ()
 nbedges  = shape.countEdge ()
 nbvertex = shape.countVertex ()
 
 for n in range (nbfaces) :
-    print " Face nro %d = %s" % (n , shape.getNameFace (n))
-print
+    print(" Face nro %d = %s" % (n , shape.getNameFace (n)))
+print()
 
 for n in range (nbedges) :
-    print " Edge nro %d = %s" % (n , shape.getNameEdge (n))
-print
+    print(" Edge nro %d = %s" % (n , shape.getNameEdge (n)))
+print()
 
 for n in range (nbvertex) :
-    print " Vertex nro %d = %s" % (n , shape.getNameVertex (n))
+    print(" Vertex nro %d = %s" % (n , shape.getNameVertex (n)))
 
 
 
index 897cd98bf3bc0e62e3a5c48a23c071b7bedc4fbe..eb40a38472cdbf5f650c15a6e39d86ec3b846a3f 100644 (file)
@@ -125,8 +125,8 @@ croix = doc.makeCylinders(moy_p_cylindre, petit_cylindre)
 
 croix_quads = []
 
-for i in xrange(1, -1, -1):
-    for j in xrange( [hexablock.CV_MAXI_INT, hexablock.CV_MAXI_EXT][i] ):
+for i in range(1, -1, -1):
+    for j in range( [hexablock.CV_MAXI_INT, hexablock.CV_MAXI_EXT][i] ):
         quad = croix.getQuadIJ(hexablock.CYL_BIG, i, j, hexablock.CYL_BIG_SLICES)
         croix_quads.append(quad)
 
@@ -157,8 +157,8 @@ groupe_moyen_f = doc.addQuadGroup("Moyen")
 groupe_petit_a = doc.addQuadGroup("Petit_A")
 groupe_petit_b = doc.addQuadGroup("Petit_B")
 
-for i in xrange(2):
-    for j in xrange( [hexablock.CV_MAXI_INT, hexablock.CV_MAXI_EXT][i] ):
+for i in range(2):
+    for j in range( [hexablock.CV_MAXI_INT, hexablock.CV_MAXI_EXT][i] ):
         quad = en_te.getQuadIJ(hexablock.CYL_BIG  , i, j, 0)
         groupe_grand_a.addElement(quad)
 
@@ -181,12 +181,12 @@ groupe_grand = doc.addHexaGroup("Grand")
 groupe_moyen = doc.addHexaGroup("Moyen")
 groupe_petit = doc.addHexaGroup("Petit")
 
-for i in xrange( doc.countUsedHexa() ):
+for i in range( doc.countUsedHexa() ):
     h = doc.getUsedHexa(i)
     groupe_moyen.addElement(h)
 
-for i in xrange(2):
-    for j in xrange( [hexablock.CV_MAXI_INT, hexablock.CV_MAXI_EXT][i] ):
+for i in range(2):
+    for j in range( [hexablock.CV_MAXI_INT, hexablock.CV_MAXI_EXT][i] ):
         for k in [ 0, hexablock.CYL_BIG_SLICES-1 ]:
             h = en_te.getHexaIJK(hexablock.CYL_BIG, i, j, k)
             groupe_grand.addElement(h)
index 0d84af69ef5d552d6ff10cd8c7688efd8b104184..009a04728afa37db888a521debb2caf96b300504 100755 (executable)
@@ -74,7 +74,7 @@ def nearest (grid, vertex) :
            result = v1
            dmin   = d2
 
-    print  vertex.getName () , px, py, pz, " -> ", result.getName()
+    print(vertex.getName () , px, py, pz, " -> ", result.getName())
     return result
 
 # ======================================================= nearest_quad
@@ -92,7 +92,7 @@ def nearest_quad (grid, quad) :
               result = q1
               dmin   = d2
 
-    print  quad.getName () , px, py, pz, " -> ", result.getName()
+    print(quad.getName () , px, py, pz, " -> ", result.getName())
     return result
 
 # ======================================================= insert_cylinder
@@ -137,7 +137,7 @@ def insert_cylinder (plaque, nx, ny) :
         quad = pipe.getQuadJK (1, nq, 1)
         tabquad.append (quad)
 
-    print  " .. tabquad[0] = ", tabquad[0].getName ()
+    print(" .. tabquad[0] = ", tabquad[0].getName ())
     cible = nearest_quad (plaque, tabquad[0])
     tabquad[0]. setColor (5)
     cible . setColor (5)
@@ -156,7 +156,7 @@ def insert_cylinder (plaque, nx, ny) :
     doc.setLevel (1)
     for nv in range (8) :
         ier = doc.mergeVertices (tabv0[nv], tabv1[nv])
-        print "ier = ", ier
+        print("ier = ", ier)
         save_vtk ()