From 6ac550e22431138b65b825cc0625e3a54c61aaff Mon Sep 17 00:00:00 2001
From: Adam Sylvester <adam.sylvester@mdaus.com>
Date: Fri, 14 Aug 2015 16:41:23 -0400
Subject: [PATCH] Adding MatchType to Swig bindings

---
 .../six.sicd/source/generated/six_sicd.py     |   95 +-
 .../source/generated/six_sicd_wrap.cxx        | 1732 ++++++++++++++---
 modules/python/six.sicd/source/six_sicd.i     |    2 +
 3 files changed, 1590 insertions(+), 239 deletions(-)

diff --git a/modules/python/six.sicd/source/generated/six_sicd.py b/modules/python/six.sicd/source/generated/six_sicd.py
index 3be7a2f51..b5793967c 100644
--- a/modules/python/six.sicd/source/generated/six_sicd.py
+++ b/modules/python/six.sicd/source/generated/six_sicd.py
@@ -4502,6 +4502,77 @@ def __ne__(self, other):
 ScopedCopyableGainAndPhasePolys_swigregister = _six_sicd.ScopedCopyableGainAndPhasePolys_swigregister
 ScopedCopyableGainAndPhasePolys_swigregister(ScopedCopyableGainAndPhasePolys)
 
+class ScopedCopyabledMatchType(_object):
+    """Proxy of C++ mem::ScopedCopyablePtr<(six::sicd::MatchType)> class"""
+    __swig_setmethods__ = {}
+    __setattr__ = lambda self, name, value: _swig_setattr(self, ScopedCopyabledMatchType, name, value)
+    __swig_getmethods__ = {}
+    __getattr__ = lambda self, name: _swig_getattr(self, ScopedCopyabledMatchType, name)
+    __repr__ = _swig_repr
+
+    def __init__(self, *args):
+        """
+        __init__(mem::ScopedCopyablePtr<(six::sicd::MatchType)> self, MatchType ptr=None) -> ScopedCopyabledMatchType
+        __init__(mem::ScopedCopyablePtr<(six::sicd::MatchType)> self) -> ScopedCopyabledMatchType
+        __init__(mem::ScopedCopyablePtr<(six::sicd::MatchType)> self, ScopedCopyabledMatchType rhs) -> ScopedCopyabledMatchType
+        """
+        this = _six_sicd.new_ScopedCopyabledMatchType(*args)
+        try:
+            self.this.append(this)
+        except:
+            self.this = this
+
+    def get(self):
+        """get(ScopedCopyabledMatchType self) -> MatchType"""
+        return _six_sicd.ScopedCopyabledMatchType_get(self)
+
+
+    def __ref__(self):
+        """__ref__(ScopedCopyabledMatchType self) -> MatchType"""
+        return _six_sicd.ScopedCopyabledMatchType___ref__(self)
+
+
+    def __deref__(self):
+        """__deref__(ScopedCopyabledMatchType self) -> MatchType"""
+        return _six_sicd.ScopedCopyabledMatchType___deref__(self)
+
+
+    def reset(self, ptr=None):
+        """
+        reset(ScopedCopyabledMatchType self, MatchType ptr=None)
+        reset(ScopedCopyabledMatchType self)
+        """
+        return _six_sicd.ScopedCopyabledMatchType_reset(self, ptr)
+
+    __swig_destroy__ = _six_sicd.delete_ScopedCopyabledMatchType
+    __del__ = lambda self: None
+    __swig_setmethods__["collectorName"] = _six_sicd.ScopedCopyabledMatchType_collectorName_set
+    __swig_getmethods__["collectorName"] = _six_sicd.ScopedCopyabledMatchType_collectorName_get
+    if _newclass:
+        collectorName = _swig_property(_six_sicd.ScopedCopyabledMatchType_collectorName_get, _six_sicd.ScopedCopyabledMatchType_collectorName_set)
+    __swig_setmethods__["illuminatorName"] = _six_sicd.ScopedCopyabledMatchType_illuminatorName_set
+    __swig_getmethods__["illuminatorName"] = _six_sicd.ScopedCopyabledMatchType_illuminatorName_get
+    if _newclass:
+        illuminatorName = _swig_property(_six_sicd.ScopedCopyabledMatchType_illuminatorName_get, _six_sicd.ScopedCopyabledMatchType_illuminatorName_set)
+    __swig_setmethods__["matchType"] = _six_sicd.ScopedCopyabledMatchType_matchType_set
+    __swig_getmethods__["matchType"] = _six_sicd.ScopedCopyabledMatchType_matchType_get
+    if _newclass:
+        matchType = _swig_property(_six_sicd.ScopedCopyabledMatchType_matchType_get, _six_sicd.ScopedCopyabledMatchType_matchType_set)
+    __swig_setmethods__["typeID"] = _six_sicd.ScopedCopyabledMatchType_typeID_set
+    __swig_getmethods__["typeID"] = _six_sicd.ScopedCopyabledMatchType_typeID_get
+    if _newclass:
+        typeID = _swig_property(_six_sicd.ScopedCopyabledMatchType_typeID_get, _six_sicd.ScopedCopyabledMatchType_typeID_set)
+    __swig_setmethods__["currentIndex"] = _six_sicd.ScopedCopyabledMatchType_currentIndex_set
+    __swig_getmethods__["currentIndex"] = _six_sicd.ScopedCopyabledMatchType_currentIndex_get
+    if _newclass:
+        currentIndex = _swig_property(_six_sicd.ScopedCopyabledMatchType_currentIndex_get, _six_sicd.ScopedCopyabledMatchType_currentIndex_set)
+    __swig_setmethods__["matchCollects"] = _six_sicd.ScopedCopyabledMatchType_matchCollects_set
+    __swig_getmethods__["matchCollects"] = _six_sicd.ScopedCopyabledMatchType_matchCollects_get
+    if _newclass:
+        matchCollects = _swig_property(_six_sicd.ScopedCopyabledMatchType_matchCollects_get, _six_sicd.ScopedCopyabledMatchType_matchCollects_set)
+ScopedCopyabledMatchType_swigregister = _six_sicd.ScopedCopyabledMatchType_swigregister
+ScopedCopyabledMatchType_swigregister(ScopedCopyabledMatchType)
+
 class ScopedCopyableWeightType(_object):
     """Proxy of C++ mem::ScopedCopyablePtr<(six::sicd::WeightType)> class"""
     __swig_setmethods__ = {}
@@ -7260,7 +7331,7 @@ def __len__(self):
 
 
     def pop(self):
-        """pop(VectorScopedCopyableMatchType self) -> std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type"""
+        """pop(VectorScopedCopyableMatchType self) -> ScopedCopyabledMatchType"""
         return _six_sicd.VectorScopedCopyableMatchType_pop(self)
 
 
@@ -7293,7 +7364,7 @@ def __delitem__(self, *args):
     def __getitem__(self, *args):
         """
         __getitem__(VectorScopedCopyableMatchType self, PySliceObject * slice) -> VectorScopedCopyableMatchType
-        __getitem__(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::difference_type i) -> std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const &
+        __getitem__(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::difference_type i) -> ScopedCopyabledMatchType
         """
         return _six_sicd.VectorScopedCopyableMatchType___getitem__(self, *args)
 
@@ -7302,13 +7373,13 @@ def __setitem__(self, *args):
         """
         __setitem__(VectorScopedCopyableMatchType self, PySliceObject * slice, VectorScopedCopyableMatchType v)
         __setitem__(VectorScopedCopyableMatchType self, PySliceObject * slice)
-        __setitem__(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::difference_type i, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const & x)
+        __setitem__(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::difference_type i, ScopedCopyabledMatchType x)
         """
         return _six_sicd.VectorScopedCopyableMatchType___setitem__(self, *args)
 
 
     def append(self, x):
-        """append(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const & x)"""
+        """append(VectorScopedCopyableMatchType self, ScopedCopyabledMatchType x)"""
         return _six_sicd.VectorScopedCopyableMatchType_append(self, x)
 
 
@@ -7375,7 +7446,7 @@ def __init__(self, *args):
         __init__(std::vector<(mem::ScopedCopyablePtr<(six::sicd::MatchType)>)> self) -> VectorScopedCopyableMatchType
         __init__(std::vector<(mem::ScopedCopyablePtr<(six::sicd::MatchType)>)> self, VectorScopedCopyableMatchType arg2) -> VectorScopedCopyableMatchType
         __init__(std::vector<(mem::ScopedCopyablePtr<(six::sicd::MatchType)>)> self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type size) -> VectorScopedCopyableMatchType
-        __init__(std::vector<(mem::ScopedCopyablePtr<(six::sicd::MatchType)>)> self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type size, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const & value) -> VectorScopedCopyableMatchType
+        __init__(std::vector<(mem::ScopedCopyablePtr<(six::sicd::MatchType)>)> self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type size, ScopedCopyabledMatchType value) -> VectorScopedCopyableMatchType
         """
         this = _six_sicd.new_VectorScopedCopyableMatchType(*args)
         try:
@@ -7384,37 +7455,37 @@ def __init__(self, *args):
             self.this = this
 
     def push_back(self, x):
-        """push_back(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const & x)"""
+        """push_back(VectorScopedCopyableMatchType self, ScopedCopyabledMatchType x)"""
         return _six_sicd.VectorScopedCopyableMatchType_push_back(self, x)
 
 
     def front(self):
-        """front(VectorScopedCopyableMatchType self) -> std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const &"""
+        """front(VectorScopedCopyableMatchType self) -> ScopedCopyabledMatchType"""
         return _six_sicd.VectorScopedCopyableMatchType_front(self)
 
 
     def back(self):
-        """back(VectorScopedCopyableMatchType self) -> std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const &"""
+        """back(VectorScopedCopyableMatchType self) -> ScopedCopyabledMatchType"""
         return _six_sicd.VectorScopedCopyableMatchType_back(self)
 
 
     def assign(self, n, x):
-        """assign(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type n, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const & x)"""
+        """assign(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type n, ScopedCopyabledMatchType x)"""
         return _six_sicd.VectorScopedCopyableMatchType_assign(self, n, x)
 
 
     def resize(self, *args):
         """
         resize(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type new_size)
-        resize(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type new_size, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const & x)
+        resize(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type new_size, ScopedCopyabledMatchType x)
         """
         return _six_sicd.VectorScopedCopyableMatchType_resize(self, *args)
 
 
     def insert(self, *args):
         """
-        insert(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::iterator pos, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const & x) -> std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::iterator
-        insert(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::iterator pos, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type n, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const & x)
+        insert(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::iterator pos, ScopedCopyabledMatchType x) -> std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::iterator
+        insert(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::iterator pos, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type n, ScopedCopyabledMatchType x)
         """
         return _six_sicd.VectorScopedCopyableMatchType_insert(self, *args)
 
diff --git a/modules/python/six.sicd/source/generated/six_sicd_wrap.cxx b/modules/python/six.sicd/source/generated/six_sicd_wrap.cxx
index 406005517..ba86a791c 100644
--- a/modules/python/six.sicd/source/generated/six_sicd_wrap.cxx
+++ b/modules/python/six.sicd/source/generated/six_sicd_wrap.cxx
@@ -77268,24 +77268,24 @@ SWIGINTERN PyObject *ScopedCopyableGainAndPhasePolys_swigregister(PyObject *SWIG
   return SWIG_Py_Void();
 }
 
-SWIGINTERN PyObject *_wrap_new_ScopedCopyableWeightType__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_new_ScopedCopyabledMatchType__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  six::sicd::WeightType *arg1 = (six::sicd::WeightType *) 0 ;
+  six::sicd::MatchType *arg1 = (six::sicd::MatchType *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
-  mem::ScopedCopyablePtr< six::sicd::WeightType > *result = 0 ;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:new_ScopedCopyableWeightType",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_six__sicd__WeightType, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:new_ScopedCopyabledMatchType",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_six__sicd__MatchType, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ScopedCopyableWeightType" "', argument " "1"" of type '" "six::sicd::WeightType *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ScopedCopyabledMatchType" "', argument " "1"" of type '" "six::sicd::MatchType *""'"); 
   }
-  arg1 = reinterpret_cast< six::sicd::WeightType * >(argp1);
+  arg1 = reinterpret_cast< six::sicd::MatchType * >(argp1);
   {
     try
     {
-      result = (mem::ScopedCopyablePtr< six::sicd::WeightType > *)new mem::ScopedCopyablePtr< six::sicd::WeightType >(arg1);
+      result = (mem::ScopedCopyablePtr< six::sicd::MatchType > *)new mem::ScopedCopyablePtr< six::sicd::MatchType >(arg1);
     } 
     catch (const std::exception& e)
     {
@@ -77313,22 +77313,22 @@ SWIGINTERN PyObject *_wrap_new_ScopedCopyableWeightType__SWIG_0(PyObject *SWIGUN
       SWIG_fail;
     }
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, SWIG_POINTER_NEW |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_new_ScopedCopyableWeightType__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_new_ScopedCopyabledMatchType__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mem::ScopedCopyablePtr< six::sicd::WeightType > *result = 0 ;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)":new_ScopedCopyableWeightType")) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)":new_ScopedCopyabledMatchType")) SWIG_fail;
   {
     try
     {
-      result = (mem::ScopedCopyablePtr< six::sicd::WeightType > *)new mem::ScopedCopyablePtr< six::sicd::WeightType >();
+      result = (mem::ScopedCopyablePtr< six::sicd::MatchType > *)new mem::ScopedCopyablePtr< six::sicd::MatchType >();
     } 
     catch (const std::exception& e)
     {
@@ -77356,34 +77356,34 @@ SWIGINTERN PyObject *_wrap_new_ScopedCopyableWeightType__SWIG_1(PyObject *SWIGUN
       SWIG_fail;
     }
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, SWIG_POINTER_NEW |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_new_ScopedCopyableWeightType__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_new_ScopedCopyabledMatchType__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = 0 ;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *arg1 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
-  mem::ScopedCopyablePtr< six::sicd::WeightType > *result = 0 ;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:new_ScopedCopyableWeightType",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t,  0  | 0);
+  if (!PyArg_ParseTuple(args,(char *)"O:new_ScopedCopyabledMatchType",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t,  0  | 0);
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ScopedCopyableWeightType" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > const &""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ScopedCopyabledMatchType" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::MatchType > const &""'"); 
   }
   if (!argp1) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ScopedCopyableWeightType" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > const &""'"); 
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ScopedCopyabledMatchType" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::MatchType > const &""'"); 
   }
-  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::MatchType > * >(argp1);
   {
     try
     {
-      result = (mem::ScopedCopyablePtr< six::sicd::WeightType > *)new mem::ScopedCopyablePtr< six::sicd::WeightType >((mem::ScopedCopyablePtr< six::sicd::WeightType > const &)*arg1);
+      result = (mem::ScopedCopyablePtr< six::sicd::MatchType > *)new mem::ScopedCopyablePtr< six::sicd::MatchType >((mem::ScopedCopyablePtr< six::sicd::MatchType > const &)*arg1);
     } 
     catch (const std::exception& e)
     {
@@ -77411,14 +77411,14 @@ SWIGINTERN PyObject *_wrap_new_ScopedCopyableWeightType__SWIG_2(PyObject *SWIGUN
       SWIG_fail;
     }
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, SWIG_POINTER_NEW |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_new_ScopedCopyableWeightType(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_new_ScopedCopyabledMatchType(PyObject *self, PyObject *args) {
   int argc;
   PyObject *argv[2];
   int ii;
@@ -77429,54 +77429,54 @@ SWIGINTERN PyObject *_wrap_new_ScopedCopyableWeightType(PyObject *self, PyObject
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 0) {
-    return _wrap_new_ScopedCopyableWeightType__SWIG_1(self, args);
+    return _wrap_new_ScopedCopyabledMatchType__SWIG_1(self, args);
   }
   if (argc == 1) {
     int _v;
     void *vptr = 0;
-    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_six__sicd__WeightType, 0);
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_six__sicd__MatchType, 0);
     _v = SWIG_CheckState(res);
     if (_v) {
-      return _wrap_new_ScopedCopyableWeightType__SWIG_0(self, args);
+      return _wrap_new_ScopedCopyabledMatchType__SWIG_0(self, args);
     }
   }
   if (argc == 1) {
     int _v;
-    int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0);
+    int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, 0);
     _v = SWIG_CheckState(res);
     if (_v) {
-      return _wrap_new_ScopedCopyableWeightType__SWIG_2(self, args);
+      return _wrap_new_ScopedCopyabledMatchType__SWIG_2(self, args);
     }
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_ScopedCopyableWeightType'.\n"
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_ScopedCopyabledMatchType'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    mem::ScopedCopyablePtr< six::sicd::WeightType >::ScopedCopyablePtr(six::sicd::WeightType *)\n"
-    "    mem::ScopedCopyablePtr< six::sicd::WeightType >::ScopedCopyablePtr()\n"
-    "    mem::ScopedCopyablePtr< six::sicd::WeightType >::ScopedCopyablePtr(mem::ScopedCopyablePtr< six::sicd::WeightType > const &)\n");
+    "    mem::ScopedCopyablePtr< six::sicd::MatchType >::ScopedCopyablePtr(six::sicd::MatchType *)\n"
+    "    mem::ScopedCopyablePtr< six::sicd::MatchType >::ScopedCopyablePtr()\n"
+    "    mem::ScopedCopyablePtr< six::sicd::MatchType >::ScopedCopyablePtr(mem::ScopedCopyablePtr< six::sicd::MatchType > const &)\n");
   return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_ScopedCopyabledMatchType_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::WeightType > *) 0 ;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::MatchType > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
-  six::sicd::WeightType *result = 0 ;
+  six::sicd::MatchType *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyableWeightType_get",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyabledMatchType_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyableWeightType_get" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyabledMatchType_get" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::MatchType > const *""'"); 
   }
-  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::MatchType > * >(argp1);
   {
     try
     {
-      result = (six::sicd::WeightType *)((mem::ScopedCopyablePtr< six::sicd::WeightType > const *)arg1)->get();
+      result = (six::sicd::MatchType *)((mem::ScopedCopyablePtr< six::sicd::MatchType > const *)arg1)->get();
     } 
     catch (const std::exception& e)
     {
@@ -77504,31 +77504,31 @@ SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_get(PyObject *SWIGUNUSEDPARM
       SWIG_fail;
     }
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_six__sicd__WeightType, 0 |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_six__sicd__MatchType, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType___ref__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_ScopedCopyabledMatchType___ref__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::WeightType > *) 0 ;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::MatchType > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
-  six::sicd::WeightType *result = 0 ;
+  six::sicd::MatchType *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyableWeightType___ref__",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyabledMatchType___ref__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyableWeightType___ref__" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyabledMatchType___ref__" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::MatchType > const *""'"); 
   }
-  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::MatchType > * >(argp1);
   {
     try
     {
-      result = (six::sicd::WeightType *) &((mem::ScopedCopyablePtr< six::sicd::WeightType > const *)arg1)->operator *();
+      result = (six::sicd::MatchType *) &((mem::ScopedCopyablePtr< six::sicd::MatchType > const *)arg1)->operator *();
     } 
     catch (const std::exception& e)
     {
@@ -77556,31 +77556,31 @@ SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType___ref__(PyObject *SWIGUNUSED
       SWIG_fail;
     }
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_six__sicd__WeightType, 0 |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_six__sicd__MatchType, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType___deref__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_ScopedCopyabledMatchType___deref__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::WeightType > *) 0 ;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::MatchType > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
-  six::sicd::WeightType *result = 0 ;
+  six::sicd::MatchType *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyableWeightType___deref__",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyabledMatchType___deref__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyableWeightType___deref__" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyabledMatchType___deref__" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::MatchType > const *""'"); 
   }
-  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::MatchType > * >(argp1);
   {
     try
     {
-      result = (six::sicd::WeightType *)((mem::ScopedCopyablePtr< six::sicd::WeightType > const *)arg1)->operator ->();
+      result = (six::sicd::MatchType *)((mem::ScopedCopyablePtr< six::sicd::MatchType > const *)arg1)->operator ->();
     } 
     catch (const std::exception& e)
     {
@@ -77608,17 +77608,17 @@ SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType___deref__(PyObject *SWIGUNUS
       SWIG_fail;
     }
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_six__sicd__WeightType, 0 |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_six__sicd__MatchType, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_reset__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_ScopedCopyabledMatchType_reset__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::WeightType > *) 0 ;
-  six::sicd::WeightType *arg2 = (six::sicd::WeightType *) 0 ;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::MatchType > *) 0 ;
+  six::sicd::MatchType *arg2 = (six::sicd::MatchType *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -77626,17 +77626,17 @@ SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_reset__SWIG_0(PyObject *SWIG
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:ScopedCopyableWeightType_reset",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:ScopedCopyabledMatchType_reset",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyableWeightType_reset" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyabledMatchType_reset" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::MatchType > *""'"); 
   }
-  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_six__sicd__WeightType, 0 |  0 );
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::MatchType > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_six__sicd__MatchType, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ScopedCopyableWeightType_reset" "', argument " "2"" of type '" "six::sicd::WeightType *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ScopedCopyabledMatchType_reset" "', argument " "2"" of type '" "six::sicd::MatchType *""'"); 
   }
-  arg2 = reinterpret_cast< six::sicd::WeightType * >(argp2);
+  arg2 = reinterpret_cast< six::sicd::MatchType * >(argp2);
   {
     try
     {
@@ -77675,19 +77675,19 @@ SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_reset__SWIG_0(PyObject *SWIG
 }
 
 
-SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_reset__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_ScopedCopyabledMatchType_reset__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::WeightType > *) 0 ;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::MatchType > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyableWeightType_reset",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyabledMatchType_reset",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyableWeightType_reset" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyabledMatchType_reset" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::MatchType > *""'"); 
   }
-  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::MatchType > * >(argp1);
   {
     try
     {
@@ -77726,7 +77726,7 @@ SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_reset__SWIG_1(PyObject *SWIG
 }
 
 
-SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_reset(PyObject *self, PyObject *args) {
+SWIGINTERN PyObject *_wrap_ScopedCopyabledMatchType_reset(PyObject *self, PyObject *args) {
   int argc;
   PyObject *argv[3];
   int ii;
@@ -77739,49 +77739,49 @@ SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_reset(PyObject *self, PyObje
   if (argc == 1) {
     int _v;
     void *vptr = 0;
-    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0);
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, 0);
     _v = SWIG_CheckState(res);
     if (_v) {
-      return _wrap_ScopedCopyableWeightType_reset__SWIG_1(self, args);
+      return _wrap_ScopedCopyabledMatchType_reset__SWIG_1(self, args);
     }
   }
   if (argc == 2) {
     int _v;
     void *vptr = 0;
-    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0);
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, 0);
     _v = SWIG_CheckState(res);
     if (_v) {
       void *vptr = 0;
-      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_six__sicd__WeightType, 0);
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_six__sicd__MatchType, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_ScopedCopyableWeightType_reset__SWIG_0(self, args);
+        return _wrap_ScopedCopyabledMatchType_reset__SWIG_0(self, args);
       }
     }
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'ScopedCopyableWeightType_reset'.\n"
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'ScopedCopyabledMatchType_reset'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    mem::ScopedCopyablePtr< six::sicd::WeightType >::reset(six::sicd::WeightType *)\n"
-    "    mem::ScopedCopyablePtr< six::sicd::WeightType >::reset()\n");
+    "    mem::ScopedCopyablePtr< six::sicd::MatchType >::reset(six::sicd::MatchType *)\n"
+    "    mem::ScopedCopyablePtr< six::sicd::MatchType >::reset()\n");
   return 0;
 }
 
 
-SWIGINTERN PyObject *_wrap_delete_ScopedCopyableWeightType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_delete_ScopedCopyabledMatchType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::WeightType > *) 0 ;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::MatchType > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:delete_ScopedCopyableWeightType",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, SWIG_POINTER_DISOWN |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:delete_ScopedCopyabledMatchType",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ScopedCopyableWeightType" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ScopedCopyabledMatchType" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::MatchType > *""'"); 
   }
-  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::MatchType > * >(argp1);
   {
     try
     {
@@ -77820,9 +77820,9 @@ SWIGINTERN PyObject *_wrap_delete_ScopedCopyableWeightType(PyObject *SWIGUNUSEDP
 }
 
 
-SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_windowName_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_ScopedCopyabledMatchType_collectorName_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::WeightType > *) 0 ;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::MatchType > *) 0 ;
   std::string *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -77830,27 +77830,27 @@ SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_windowName_set(PyObject *SWI
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:ScopedCopyableWeightType_windowName_set",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:ScopedCopyabledMatchType_collectorName_set",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyableWeightType_windowName_set" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyabledMatchType_collectorName_set" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::MatchType > *""'"); 
   }
-  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::MatchType > * >(argp1);
   {
     std::string *ptr = (std::string *)0;
     res2 = SWIG_AsPtr_std_string(obj1, &ptr);
     if (!SWIG_IsOK(res2)) {
-      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ScopedCopyableWeightType_windowName_set" "', argument " "2"" of type '" "std::string const &""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ScopedCopyabledMatchType_collectorName_set" "', argument " "2"" of type '" "std::string const &""'"); 
     }
     if (!ptr) {
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ScopedCopyableWeightType_windowName_set" "', argument " "2"" of type '" "std::string const &""'"); 
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ScopedCopyabledMatchType_collectorName_set" "', argument " "2"" of type '" "std::string const &""'"); 
     }
     arg2 = ptr;
   }
   {
     try
     {
-      if (arg1) (*arg1)->windowName = *arg2;
+      if (arg1) (*arg1)->collectorName = *arg2;
     } 
     catch (const std::exception& e)
     {
@@ -77887,24 +77887,24 @@ SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_windowName_set(PyObject *SWI
 }
 
 
-SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_windowName_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_ScopedCopyabledMatchType_collectorName_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::WeightType > *) 0 ;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::MatchType > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   std::string *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyableWeightType_windowName_get",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyabledMatchType_collectorName_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyableWeightType_windowName_get" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyabledMatchType_collectorName_get" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::MatchType > *""'"); 
   }
-  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::MatchType > * >(argp1);
   {
     try
     {
-      result = (std::string *) & ((*arg1)->windowName);
+      result = (std::string *) & ((*arg1)->collectorName);
     } 
     catch (const std::exception& e)
     {
@@ -77939,32 +77939,37 @@ SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_windowName_get(PyObject *SWI
 }
 
 
-SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_parameters_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_ScopedCopyabledMatchType_illuminatorName_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::WeightType > *) 0 ;
-  six::ParameterCollection *arg2 = (six::ParameterCollection *) 0 ;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::MatchType > *) 0 ;
+  std::string *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
+  int res2 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OO:ScopedCopyableWeightType_parameters_set",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:ScopedCopyabledMatchType_illuminatorName_set",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyableWeightType_parameters_set" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyabledMatchType_illuminatorName_set" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::MatchType > *""'"); 
   }
-  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_six__ParameterCollection, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ScopedCopyableWeightType_parameters_set" "', argument " "2"" of type '" "six::ParameterCollection *""'"); 
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::MatchType > * >(argp1);
+  {
+    std::string *ptr = (std::string *)0;
+    res2 = SWIG_AsPtr_std_string(obj1, &ptr);
+    if (!SWIG_IsOK(res2)) {
+      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ScopedCopyabledMatchType_illuminatorName_set" "', argument " "2"" of type '" "std::string const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ScopedCopyabledMatchType_illuminatorName_set" "', argument " "2"" of type '" "std::string const &""'"); 
+    }
+    arg2 = ptr;
   }
-  arg2 = reinterpret_cast< six::ParameterCollection * >(argp2);
   {
     try
     {
-      if (arg1) (*arg1)->parameters = *arg2;
+      if (arg1) (*arg1)->illuminatorName = *arg2;
     } 
     catch (const std::exception& e)
     {
@@ -77993,30 +77998,32 @@ SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_parameters_set(PyObject *SWI
     }
   }
   resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res2)) delete arg2;
   return resultobj;
 fail:
+  if (SWIG_IsNewObj(res2)) delete arg2;
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_parameters_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_ScopedCopyabledMatchType_illuminatorName_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::WeightType > *) 0 ;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::MatchType > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
-  six::ParameterCollection *result = 0 ;
+  std::string *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyableWeightType_parameters_get",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyabledMatchType_illuminatorName_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyableWeightType_parameters_get" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyabledMatchType_illuminatorName_get" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::MatchType > *""'"); 
   }
-  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::MatchType > * >(argp1);
   {
     try
     {
-      result = (six::ParameterCollection *)& ((*arg1)->parameters);
+      result = (std::string *) & ((*arg1)->illuminatorName);
     } 
     catch (const std::exception& e)
     {
@@ -78044,40 +78051,39 @@ SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_parameters_get(PyObject *SWI
       SWIG_fail;
     }
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_six__ParameterCollection, 0 |  0 );
+  resultobj = SWIG_From_std_string(static_cast< std::string >(*result));
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *ScopedCopyableWeightType_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
-  SWIG_TypeNewClientData(SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, SWIG_NewClientData(obj));
-  return SWIG_Py_Void();
-}
-
-SWIGINTERN PyObject *_wrap_VectorPolyXYZ_iterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_ScopedCopyabledMatchType_matchType_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector< PolyXYZ > *arg1 = (std::vector< PolyXYZ > *) 0 ;
-  PyObject **arg2 = (PyObject **) 0 ;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::MatchType > *) 0 ;
+  std::vector< std::string,std::allocator< std::string > > *arg2 = (std::vector< std::string,std::allocator< std::string > > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   PyObject * obj0 = 0 ;
-  swig::SwigPyIterator *result = 0 ;
+  PyObject * obj1 = 0 ;
   
-  arg2 = &obj0;
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorPolyXYZ_iterator",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_PolyXYZ_std__allocatorT_PolyXYZ_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:ScopedCopyabledMatchType_matchType_set",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorPolyXYZ_iterator" "', argument " "1"" of type '" "std::vector< PolyXYZ > *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyabledMatchType_matchType_set" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::MatchType > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector< PolyXYZ > * >(argp1);
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::MatchType > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ScopedCopyabledMatchType_matchType_set" "', argument " "2"" of type '" "std::vector< std::string,std::allocator< std::string > > *""'"); 
+  }
+  arg2 = reinterpret_cast< std::vector< std::string,std::allocator< std::string > > * >(argp2);
   {
     try
     {
-      result = (swig::SwigPyIterator *)std_vector_Sl_PolyXYZ_Sg__iterator(arg1,arg2);
+      if (arg1) (*arg1)->matchType = *arg2;
     } 
     catch (const std::exception& e)
     {
@@ -78105,31 +78111,31 @@ SWIGINTERN PyObject *_wrap_VectorPolyXYZ_iterator(PyObject *SWIGUNUSEDPARM(self)
       SWIG_fail;
     }
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorPolyXYZ___nonzero__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_ScopedCopyabledMatchType_matchType_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector< PolyXYZ > *arg1 = (std::vector< PolyXYZ > *) 0 ;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::MatchType > *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
-  bool result;
+  std::vector< std::string,std::allocator< std::string > > *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorPolyXYZ___nonzero__",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_PolyXYZ_std__allocatorT_PolyXYZ_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyabledMatchType_matchType_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorPolyXYZ___nonzero__" "', argument " "1"" of type '" "std::vector< PolyXYZ > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyabledMatchType_matchType_get" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::MatchType > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector< PolyXYZ > * >(argp1);
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::MatchType > * >(argp1);
   {
     try
     {
-      result = (bool)std_vector_Sl_PolyXYZ_Sg____nonzero__((std::vector< PolyXYZ > const *)arg1);
+      result = (std::vector< std::string,std::allocator< std::string > > *)& ((*arg1)->matchType);
     } 
     catch (const std::exception& e)
     {
@@ -78157,83 +78163,1329 @@ SWIGINTERN PyObject *_wrap_VectorPolyXYZ___nonzero__(PyObject *SWIGUNUSEDPARM(se
       SWIG_fail;
     }
   }
-  resultobj = SWIG_From_bool(static_cast< bool >(result));
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0 |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_VectorPolyXYZ___bool__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_ScopedCopyabledMatchType_typeID_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  std::vector< PolyXYZ > *arg1 = (std::vector< PolyXYZ > *) 0 ;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::MatchType > *) 0 ;
+  std::string *arg2 = 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  int res2 = SWIG_OLDOBJ ;
   PyObject * obj0 = 0 ;
-  bool result;
+  PyObject * obj1 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorPolyXYZ___bool__",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_PolyXYZ_std__allocatorT_PolyXYZ_t_t, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"OO:ScopedCopyabledMatchType_typeID_set",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorPolyXYZ___bool__" "', argument " "1"" of type '" "std::vector< PolyXYZ > const *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyabledMatchType_typeID_set" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::MatchType > *""'"); 
   }
-  arg1 = reinterpret_cast< std::vector< PolyXYZ > * >(argp1);
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::MatchType > * >(argp1);
   {
-    try
-    {
-      result = (bool)std_vector_Sl_PolyXYZ_Sg____bool__((std::vector< PolyXYZ > const *)arg1);
-    } 
-    catch (const std::exception& e)
-    {
-      if (!PyErr_Occurred())
-      {
-        PyErr_SetString(PyExc_RuntimeError, e.what());
-      }
-    }
-    catch (const except::Exception& e)
-    {
-      if (!PyErr_Occurred())
-      {
-        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
-      }
-    }
-    catch (...)
-    {
-      if (!PyErr_Occurred())
-      {
-        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
-      }
+    std::string *ptr = (std::string *)0;
+    res2 = SWIG_AsPtr_std_string(obj1, &ptr);
+    if (!SWIG_IsOK(res2)) {
+      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ScopedCopyabledMatchType_typeID_set" "', argument " "2"" of type '" "std::string const &""'"); 
     }
-    if (PyErr_Occurred())
-    {
-      SWIG_fail;
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ScopedCopyabledMatchType_typeID_set" "', argument " "2"" of type '" "std::string const &""'"); 
     }
+    arg2 = ptr;
   }
-  resultobj = SWIG_From_bool(static_cast< bool >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_VectorPolyXYZ___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  std::vector< PolyXYZ > *arg1 = (std::vector< PolyXYZ > *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  std::vector< PolyXYZ >::size_type result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:VectorPolyXYZ___len__",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_PolyXYZ_std__allocatorT_PolyXYZ_t_t, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorPolyXYZ___len__" "', argument " "1"" of type '" "std::vector< PolyXYZ > const *""'"); 
-  }
-  arg1 = reinterpret_cast< std::vector< PolyXYZ > * >(argp1);
   {
     try
     {
-      result = std_vector_Sl_PolyXYZ_Sg____len__((std::vector< PolyXYZ > const *)arg1);
+      if (arg1) (*arg1)->typeID = *arg2;
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res2)) delete arg2;
+  return resultobj;
+fail:
+  if (SWIG_IsNewObj(res2)) delete arg2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ScopedCopyabledMatchType_typeID_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::MatchType > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::string *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyabledMatchType_typeID_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyabledMatchType_typeID_get" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::MatchType > *""'"); 
+  }
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::MatchType > * >(argp1);
+  {
+    try
+    {
+      result = (std::string *) & ((*arg1)->typeID);
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_From_std_string(static_cast< std::string >(*result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ScopedCopyabledMatchType_currentIndex_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::MatchType > *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:ScopedCopyabledMatchType_currentIndex_set",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyabledMatchType_currentIndex_set" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::MatchType > *""'"); 
+  }
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::MatchType > * >(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ScopedCopyabledMatchType_currentIndex_set" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = static_cast< int >(val2);
+  {
+    try
+    {
+      if (arg1) (*arg1)->currentIndex = arg2;
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ScopedCopyabledMatchType_currentIndex_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::MatchType > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyabledMatchType_currentIndex_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyabledMatchType_currentIndex_get" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::MatchType > *""'"); 
+  }
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::MatchType > * >(argp1);
+  {
+    try
+    {
+      result = (int) ((*arg1)->currentIndex);
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_From_int(static_cast< int >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ScopedCopyabledMatchType_matchCollects_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::MatchType > *) 0 ;
+  std::vector< six::sicd::MatchCollect,std::allocator< six::sicd::MatchCollect > > *arg2 = (std::vector< six::sicd::MatchCollect,std::allocator< six::sicd::MatchCollect > > *) 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:ScopedCopyabledMatchType_matchCollects_set",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyabledMatchType_matchCollects_set" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::MatchType > *""'"); 
+  }
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::MatchType > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_std__vectorT_six__sicd__MatchCollect_std__allocatorT_six__sicd__MatchCollect_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ScopedCopyabledMatchType_matchCollects_set" "', argument " "2"" of type '" "std::vector< six::sicd::MatchCollect,std::allocator< six::sicd::MatchCollect > > *""'"); 
+  }
+  arg2 = reinterpret_cast< std::vector< six::sicd::MatchCollect,std::allocator< six::sicd::MatchCollect > > * >(argp2);
+  {
+    try
+    {
+      if (arg1) (*arg1)->matchCollects = *arg2;
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ScopedCopyabledMatchType_matchCollects_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mem::ScopedCopyablePtr< six::sicd::MatchType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::MatchType > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< six::sicd::MatchCollect,std::allocator< six::sicd::MatchCollect > > *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyabledMatchType_matchCollects_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyabledMatchType_matchCollects_get" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::MatchType > *""'"); 
+  }
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::MatchType > * >(argp1);
+  {
+    try
+    {
+      result = (std::vector< six::sicd::MatchCollect,std::allocator< six::sicd::MatchCollect > > *)& ((*arg1)->matchCollects);
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_six__sicd__MatchCollect_std__allocatorT_six__sicd__MatchCollect_t_t, 0 |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *ScopedCopyabledMatchType_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *obj;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
+  SWIG_TypeNewClientData(SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__MatchType_t, SWIG_NewClientData(obj));
+  return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ScopedCopyableWeightType__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  six::sicd::WeightType *arg1 = (six::sicd::WeightType *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  mem::ScopedCopyablePtr< six::sicd::WeightType > *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:new_ScopedCopyableWeightType",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_six__sicd__WeightType, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ScopedCopyableWeightType" "', argument " "1"" of type '" "six::sicd::WeightType *""'"); 
+  }
+  arg1 = reinterpret_cast< six::sicd::WeightType * >(argp1);
+  {
+    try
+    {
+      result = (mem::ScopedCopyablePtr< six::sicd::WeightType > *)new mem::ScopedCopyablePtr< six::sicd::WeightType >(arg1);
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ScopedCopyableWeightType__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mem::ScopedCopyablePtr< six::sicd::WeightType > *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)":new_ScopedCopyableWeightType")) SWIG_fail;
+  {
+    try
+    {
+      result = (mem::ScopedCopyablePtr< six::sicd::WeightType > *)new mem::ScopedCopyablePtr< six::sicd::WeightType >();
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ScopedCopyableWeightType__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  mem::ScopedCopyablePtr< six::sicd::WeightType > *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:new_ScopedCopyableWeightType",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t,  0  | 0);
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_ScopedCopyableWeightType" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > const &""'"); 
+  }
+  if (!argp1) {
+    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_ScopedCopyableWeightType" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > const &""'"); 
+  }
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
+  {
+    try
+    {
+      result = (mem::ScopedCopyablePtr< six::sicd::WeightType > *)new mem::ScopedCopyablePtr< six::sicd::WeightType >((mem::ScopedCopyablePtr< six::sicd::WeightType > const &)*arg1);
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_ScopedCopyableWeightType(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[2];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? (int)PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 1) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 0) {
+    return _wrap_new_ScopedCopyableWeightType__SWIG_1(self, args);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_six__sicd__WeightType, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_new_ScopedCopyableWeightType__SWIG_0(self, args);
+    }
+  }
+  if (argc == 1) {
+    int _v;
+    int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_new_ScopedCopyableWeightType__SWIG_2(self, args);
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_ScopedCopyableWeightType'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    mem::ScopedCopyablePtr< six::sicd::WeightType >::ScopedCopyablePtr(six::sicd::WeightType *)\n"
+    "    mem::ScopedCopyablePtr< six::sicd::WeightType >::ScopedCopyablePtr()\n"
+    "    mem::ScopedCopyablePtr< six::sicd::WeightType >::ScopedCopyablePtr(mem::ScopedCopyablePtr< six::sicd::WeightType > const &)\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::WeightType > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  six::sicd::WeightType *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyableWeightType_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyableWeightType_get" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > const *""'"); 
+  }
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
+  {
+    try
+    {
+      result = (six::sicd::WeightType *)((mem::ScopedCopyablePtr< six::sicd::WeightType > const *)arg1)->get();
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_six__sicd__WeightType, 0 |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType___ref__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::WeightType > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  six::sicd::WeightType *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyableWeightType___ref__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyableWeightType___ref__" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > const *""'"); 
+  }
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
+  {
+    try
+    {
+      result = (six::sicd::WeightType *) &((mem::ScopedCopyablePtr< six::sicd::WeightType > const *)arg1)->operator *();
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_six__sicd__WeightType, 0 |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType___deref__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::WeightType > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  six::sicd::WeightType *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyableWeightType___deref__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyableWeightType___deref__" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > const *""'"); 
+  }
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
+  {
+    try
+    {
+      result = (six::sicd::WeightType *)((mem::ScopedCopyablePtr< six::sicd::WeightType > const *)arg1)->operator ->();
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_six__sicd__WeightType, 0 |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_reset__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::WeightType > *) 0 ;
+  six::sicd::WeightType *arg2 = (six::sicd::WeightType *) 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:ScopedCopyableWeightType_reset",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyableWeightType_reset" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > *""'"); 
+  }
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_six__sicd__WeightType, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ScopedCopyableWeightType_reset" "', argument " "2"" of type '" "six::sicd::WeightType *""'"); 
+  }
+  arg2 = reinterpret_cast< six::sicd::WeightType * >(argp2);
+  {
+    try
+    {
+      (arg1)->reset(arg2);
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_reset__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::WeightType > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyableWeightType_reset",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyableWeightType_reset" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > *""'"); 
+  }
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
+  {
+    try
+    {
+      (arg1)->reset();
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_reset(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[3];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? (int)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_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_ScopedCopyableWeightType_reset__SWIG_1(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      void *vptr = 0;
+      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_six__sicd__WeightType, 0);
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        return _wrap_ScopedCopyableWeightType_reset__SWIG_0(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'ScopedCopyableWeightType_reset'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    mem::ScopedCopyablePtr< six::sicd::WeightType >::reset(six::sicd::WeightType *)\n"
+    "    mem::ScopedCopyablePtr< six::sicd::WeightType >::reset()\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ScopedCopyableWeightType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::WeightType > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:delete_ScopedCopyableWeightType",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ScopedCopyableWeightType" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > *""'"); 
+  }
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
+  {
+    try
+    {
+      delete arg1;
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_windowName_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::WeightType > *) 0 ;
+  std::string *arg2 = 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 = SWIG_OLDOBJ ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:ScopedCopyableWeightType_windowName_set",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyableWeightType_windowName_set" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > *""'"); 
+  }
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
+  {
+    std::string *ptr = (std::string *)0;
+    res2 = SWIG_AsPtr_std_string(obj1, &ptr);
+    if (!SWIG_IsOK(res2)) {
+      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ScopedCopyableWeightType_windowName_set" "', argument " "2"" of type '" "std::string const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ScopedCopyableWeightType_windowName_set" "', argument " "2"" of type '" "std::string const &""'"); 
+    }
+    arg2 = ptr;
+  }
+  {
+    try
+    {
+      if (arg1) (*arg1)->windowName = *arg2;
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res2)) delete arg2;
+  return resultobj;
+fail:
+  if (SWIG_IsNewObj(res2)) delete arg2;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_windowName_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::WeightType > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::string *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyableWeightType_windowName_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyableWeightType_windowName_get" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > *""'"); 
+  }
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
+  {
+    try
+    {
+      result = (std::string *) & ((*arg1)->windowName);
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_From_std_string(static_cast< std::string >(*result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_parameters_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::WeightType > *) 0 ;
+  six::ParameterCollection *arg2 = (six::ParameterCollection *) 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:ScopedCopyableWeightType_parameters_set",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyableWeightType_parameters_set" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > *""'"); 
+  }
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_six__ParameterCollection, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ScopedCopyableWeightType_parameters_set" "', argument " "2"" of type '" "six::ParameterCollection *""'"); 
+  }
+  arg2 = reinterpret_cast< six::ParameterCollection * >(argp2);
+  {
+    try
+    {
+      if (arg1) (*arg1)->parameters = *arg2;
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ScopedCopyableWeightType_parameters_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  mem::ScopedCopyablePtr< six::sicd::WeightType > *arg1 = (mem::ScopedCopyablePtr< six::sicd::WeightType > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  six::ParameterCollection *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:ScopedCopyableWeightType_parameters_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ScopedCopyableWeightType_parameters_get" "', argument " "1"" of type '" "mem::ScopedCopyablePtr< six::sicd::WeightType > *""'"); 
+  }
+  arg1 = reinterpret_cast< mem::ScopedCopyablePtr< six::sicd::WeightType > * >(argp1);
+  {
+    try
+    {
+      result = (six::ParameterCollection *)& ((*arg1)->parameters);
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_six__ParameterCollection, 0 |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *ScopedCopyableWeightType_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *obj;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
+  SWIG_TypeNewClientData(SWIGTYPE_p_mem__ScopedCopyablePtrT_six__sicd__WeightType_t, SWIG_NewClientData(obj));
+  return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_VectorPolyXYZ_iterator(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< PolyXYZ > *arg1 = (std::vector< PolyXYZ > *) 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:VectorPolyXYZ_iterator",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_PolyXYZ_std__allocatorT_PolyXYZ_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorPolyXYZ_iterator" "', argument " "1"" of type '" "std::vector< PolyXYZ > *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< PolyXYZ > * >(argp1);
+  {
+    try
+    {
+      result = (swig::SwigPyIterator *)std_vector_Sl_PolyXYZ_Sg__iterator(arg1,arg2);
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_swig__SwigPyIterator, SWIG_POINTER_OWN |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorPolyXYZ___nonzero__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< PolyXYZ > *arg1 = (std::vector< PolyXYZ > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  bool result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorPolyXYZ___nonzero__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_PolyXYZ_std__allocatorT_PolyXYZ_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorPolyXYZ___nonzero__" "', argument " "1"" of type '" "std::vector< PolyXYZ > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< PolyXYZ > * >(argp1);
+  {
+    try
+    {
+      result = (bool)std_vector_Sl_PolyXYZ_Sg____nonzero__((std::vector< PolyXYZ > const *)arg1);
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorPolyXYZ___bool__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< PolyXYZ > *arg1 = (std::vector< PolyXYZ > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  bool result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorPolyXYZ___bool__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_PolyXYZ_std__allocatorT_PolyXYZ_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorPolyXYZ___bool__" "', argument " "1"" of type '" "std::vector< PolyXYZ > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< PolyXYZ > * >(argp1);
+  {
+    try
+    {
+      result = (bool)std_vector_Sl_PolyXYZ_Sg____bool__((std::vector< PolyXYZ > const *)arg1);
+    } 
+    catch (const std::exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.what());
+      }
+    }
+    catch (const except::Exception& e)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, e.getMessage().c_str());
+      }
+    }
+    catch (...)
+    {
+      if (!PyErr_Occurred())
+      {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown error");
+      }
+    }
+    if (PyErr_Occurred())
+    {
+      SWIG_fail;
+    }
+  }
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_VectorPolyXYZ___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::vector< PolyXYZ > *arg1 = (std::vector< PolyXYZ > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  std::vector< PolyXYZ >::size_type result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:VectorPolyXYZ___len__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_PolyXYZ_std__allocatorT_PolyXYZ_t_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VectorPolyXYZ___len__" "', argument " "1"" of type '" "std::vector< PolyXYZ > const *""'"); 
+  }
+  arg1 = reinterpret_cast< std::vector< PolyXYZ > * >(argp1);
+  {
+    try
+    {
+      result = std_vector_Sl_PolyXYZ_Sg____len__((std::vector< PolyXYZ > const *)arg1);
     } 
     catch (const std::exception& e)
     {
@@ -120840,7 +122092,7 @@ SWIGINTERN PyObject *_wrap_VectorScopedCopyableMatchType_pop(PyObject *SWIGUNUSE
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
-  SwigValueWrapper< mem::ScopedCopyablePtr< six::sicd::MatchType > > result;
+  std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:VectorScopedCopyableMatchType_pop",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_std__vectorT_mem__ScopedCopyablePtrT_six__sicd__MatchType_t_std__allocatorT_mem__ScopedCopyablePtrT_six__sicd__MatchType_t_t_t, 0 |  0 );
@@ -132357,6 +133609,32 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"ScopedCopyableGainAndPhasePolys_phasePoly_set", _wrap_ScopedCopyableGainAndPhasePolys_phasePoly_set, METH_VARARGS, (char *)"ScopedCopyableGainAndPhasePolys_phasePoly_set(ScopedCopyableGainAndPhasePolys self, Poly2D phasePoly)"},
 	 { (char *)"ScopedCopyableGainAndPhasePolys_phasePoly_get", _wrap_ScopedCopyableGainAndPhasePolys_phasePoly_get, METH_VARARGS, (char *)"ScopedCopyableGainAndPhasePolys_phasePoly_get(ScopedCopyableGainAndPhasePolys self) -> Poly2D"},
 	 { (char *)"ScopedCopyableGainAndPhasePolys_swigregister", ScopedCopyableGainAndPhasePolys_swigregister, METH_VARARGS, NULL},
+	 { (char *)"new_ScopedCopyabledMatchType", _wrap_new_ScopedCopyabledMatchType, METH_VARARGS, (char *)"\n"
+		"ScopedCopyabledMatchType(MatchType ptr=None)\n"
+		"ScopedCopyabledMatchType()\n"
+		"new_ScopedCopyabledMatchType(ScopedCopyabledMatchType rhs) -> ScopedCopyabledMatchType\n"
+		""},
+	 { (char *)"ScopedCopyabledMatchType_get", _wrap_ScopedCopyabledMatchType_get, METH_VARARGS, (char *)"ScopedCopyabledMatchType_get(ScopedCopyabledMatchType self) -> MatchType"},
+	 { (char *)"ScopedCopyabledMatchType___ref__", _wrap_ScopedCopyabledMatchType___ref__, METH_VARARGS, (char *)"ScopedCopyabledMatchType___ref__(ScopedCopyabledMatchType self) -> MatchType"},
+	 { (char *)"ScopedCopyabledMatchType___deref__", _wrap_ScopedCopyabledMatchType___deref__, METH_VARARGS, (char *)"ScopedCopyabledMatchType___deref__(ScopedCopyabledMatchType self) -> MatchType"},
+	 { (char *)"ScopedCopyabledMatchType_reset", _wrap_ScopedCopyabledMatchType_reset, METH_VARARGS, (char *)"\n"
+		"reset(MatchType ptr=None)\n"
+		"ScopedCopyabledMatchType_reset(ScopedCopyabledMatchType self)\n"
+		""},
+	 { (char *)"delete_ScopedCopyabledMatchType", _wrap_delete_ScopedCopyabledMatchType, METH_VARARGS, (char *)"delete_ScopedCopyabledMatchType(ScopedCopyabledMatchType self)"},
+	 { (char *)"ScopedCopyabledMatchType_collectorName_set", _wrap_ScopedCopyabledMatchType_collectorName_set, METH_VARARGS, (char *)"ScopedCopyabledMatchType_collectorName_set(ScopedCopyabledMatchType self, std::string const & collectorName)"},
+	 { (char *)"ScopedCopyabledMatchType_collectorName_get", _wrap_ScopedCopyabledMatchType_collectorName_get, METH_VARARGS, (char *)"ScopedCopyabledMatchType_collectorName_get(ScopedCopyabledMatchType self) -> std::string const &"},
+	 { (char *)"ScopedCopyabledMatchType_illuminatorName_set", _wrap_ScopedCopyabledMatchType_illuminatorName_set, METH_VARARGS, (char *)"ScopedCopyabledMatchType_illuminatorName_set(ScopedCopyabledMatchType self, std::string const & illuminatorName)"},
+	 { (char *)"ScopedCopyabledMatchType_illuminatorName_get", _wrap_ScopedCopyabledMatchType_illuminatorName_get, METH_VARARGS, (char *)"ScopedCopyabledMatchType_illuminatorName_get(ScopedCopyabledMatchType self) -> std::string const &"},
+	 { (char *)"ScopedCopyabledMatchType_matchType_set", _wrap_ScopedCopyabledMatchType_matchType_set, METH_VARARGS, (char *)"ScopedCopyabledMatchType_matchType_set(ScopedCopyabledMatchType self, VectorString matchType)"},
+	 { (char *)"ScopedCopyabledMatchType_matchType_get", _wrap_ScopedCopyabledMatchType_matchType_get, METH_VARARGS, (char *)"ScopedCopyabledMatchType_matchType_get(ScopedCopyabledMatchType self) -> VectorString"},
+	 { (char *)"ScopedCopyabledMatchType_typeID_set", _wrap_ScopedCopyabledMatchType_typeID_set, METH_VARARGS, (char *)"ScopedCopyabledMatchType_typeID_set(ScopedCopyabledMatchType self, std::string const & typeID)"},
+	 { (char *)"ScopedCopyabledMatchType_typeID_get", _wrap_ScopedCopyabledMatchType_typeID_get, METH_VARARGS, (char *)"ScopedCopyabledMatchType_typeID_get(ScopedCopyabledMatchType self) -> std::string const &"},
+	 { (char *)"ScopedCopyabledMatchType_currentIndex_set", _wrap_ScopedCopyabledMatchType_currentIndex_set, METH_VARARGS, (char *)"ScopedCopyabledMatchType_currentIndex_set(ScopedCopyabledMatchType self, int currentIndex)"},
+	 { (char *)"ScopedCopyabledMatchType_currentIndex_get", _wrap_ScopedCopyabledMatchType_currentIndex_get, METH_VARARGS, (char *)"ScopedCopyabledMatchType_currentIndex_get(ScopedCopyabledMatchType self) -> int"},
+	 { (char *)"ScopedCopyabledMatchType_matchCollects_set", _wrap_ScopedCopyabledMatchType_matchCollects_set, METH_VARARGS, (char *)"ScopedCopyabledMatchType_matchCollects_set(ScopedCopyabledMatchType self, VectorMatchCollect matchCollects)"},
+	 { (char *)"ScopedCopyabledMatchType_matchCollects_get", _wrap_ScopedCopyabledMatchType_matchCollects_get, METH_VARARGS, (char *)"ScopedCopyabledMatchType_matchCollects_get(ScopedCopyabledMatchType self) -> VectorMatchCollect"},
+	 { (char *)"ScopedCopyabledMatchType_swigregister", ScopedCopyabledMatchType_swigregister, METH_VARARGS, NULL},
 	 { (char *)"new_ScopedCopyableWeightType", _wrap_new_ScopedCopyableWeightType, METH_VARARGS, (char *)"\n"
 		"ScopedCopyableWeightType(WeightType ptr=None)\n"
 		"ScopedCopyableWeightType()\n"
@@ -133228,7 +134506,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"VectorScopedCopyableMatchType___nonzero__", _wrap_VectorScopedCopyableMatchType___nonzero__, METH_VARARGS, (char *)"VectorScopedCopyableMatchType___nonzero__(VectorScopedCopyableMatchType self) -> bool"},
 	 { (char *)"VectorScopedCopyableMatchType___bool__", _wrap_VectorScopedCopyableMatchType___bool__, METH_VARARGS, (char *)"VectorScopedCopyableMatchType___bool__(VectorScopedCopyableMatchType self) -> bool"},
 	 { (char *)"VectorScopedCopyableMatchType___len__", _wrap_VectorScopedCopyableMatchType___len__, METH_VARARGS, (char *)"VectorScopedCopyableMatchType___len__(VectorScopedCopyableMatchType self) -> std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type"},
-	 { (char *)"VectorScopedCopyableMatchType_pop", _wrap_VectorScopedCopyableMatchType_pop, METH_VARARGS, (char *)"VectorScopedCopyableMatchType_pop(VectorScopedCopyableMatchType self) -> std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type"},
+	 { (char *)"VectorScopedCopyableMatchType_pop", _wrap_VectorScopedCopyableMatchType_pop, METH_VARARGS, (char *)"VectorScopedCopyableMatchType_pop(VectorScopedCopyableMatchType self) -> ScopedCopyabledMatchType"},
 	 { (char *)"VectorScopedCopyableMatchType___getslice__", _wrap_VectorScopedCopyableMatchType___getslice__, METH_VARARGS, (char *)"VectorScopedCopyableMatchType___getslice__(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::difference_type i, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::difference_type j) -> VectorScopedCopyableMatchType"},
 	 { (char *)"VectorScopedCopyableMatchType___setslice__", _wrap_VectorScopedCopyableMatchType___setslice__, METH_VARARGS, (char *)"\n"
 		"__setslice__(std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::difference_type i, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::difference_type j, VectorScopedCopyableMatchType v)\n"
@@ -133241,14 +134519,14 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"VectorScopedCopyableMatchType___getitem__", _wrap_VectorScopedCopyableMatchType___getitem__, METH_VARARGS, (char *)"\n"
 		"__getitem__(PySliceObject * slice) -> VectorScopedCopyableMatchType\n"
-		"VectorScopedCopyableMatchType___getitem__(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::difference_type i) -> std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const &\n"
+		"VectorScopedCopyableMatchType___getitem__(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::difference_type i) -> ScopedCopyabledMatchType\n"
 		""},
 	 { (char *)"VectorScopedCopyableMatchType___setitem__", _wrap_VectorScopedCopyableMatchType___setitem__, METH_VARARGS, (char *)"\n"
 		"__setitem__(PySliceObject * slice, VectorScopedCopyableMatchType v)\n"
 		"__setitem__(PySliceObject * slice)\n"
-		"VectorScopedCopyableMatchType___setitem__(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::difference_type i, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const & x)\n"
+		"VectorScopedCopyableMatchType___setitem__(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::difference_type i, ScopedCopyabledMatchType x)\n"
 		""},
-	 { (char *)"VectorScopedCopyableMatchType_append", _wrap_VectorScopedCopyableMatchType_append, METH_VARARGS, (char *)"VectorScopedCopyableMatchType_append(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const & x)"},
+	 { (char *)"VectorScopedCopyableMatchType_append", _wrap_VectorScopedCopyableMatchType_append, METH_VARARGS, (char *)"VectorScopedCopyableMatchType_append(VectorScopedCopyableMatchType self, ScopedCopyabledMatchType x)"},
 	 { (char *)"VectorScopedCopyableMatchType_empty", _wrap_VectorScopedCopyableMatchType_empty, METH_VARARGS, (char *)"VectorScopedCopyableMatchType_empty(VectorScopedCopyableMatchType self) -> bool"},
 	 { (char *)"VectorScopedCopyableMatchType_size", _wrap_VectorScopedCopyableMatchType_size, METH_VARARGS, (char *)"VectorScopedCopyableMatchType_size(VectorScopedCopyableMatchType self) -> std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type"},
 	 { (char *)"VectorScopedCopyableMatchType_clear", _wrap_VectorScopedCopyableMatchType_clear, METH_VARARGS, (char *)"VectorScopedCopyableMatchType_clear(VectorScopedCopyableMatchType self)"},
@@ -133267,19 +134545,19 @@ static PyMethodDef SwigMethods[] = {
 		"VectorScopedCopyableMatchType()\n"
 		"VectorScopedCopyableMatchType(VectorScopedCopyableMatchType arg2)\n"
 		"VectorScopedCopyableMatchType(std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type size)\n"
-		"new_VectorScopedCopyableMatchType(std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type size, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const & value) -> VectorScopedCopyableMatchType\n"
+		"new_VectorScopedCopyableMatchType(std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type size, ScopedCopyabledMatchType value) -> VectorScopedCopyableMatchType\n"
 		""},
-	 { (char *)"VectorScopedCopyableMatchType_push_back", _wrap_VectorScopedCopyableMatchType_push_back, METH_VARARGS, (char *)"VectorScopedCopyableMatchType_push_back(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const & x)"},
-	 { (char *)"VectorScopedCopyableMatchType_front", _wrap_VectorScopedCopyableMatchType_front, METH_VARARGS, (char *)"VectorScopedCopyableMatchType_front(VectorScopedCopyableMatchType self) -> std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const &"},
-	 { (char *)"VectorScopedCopyableMatchType_back", _wrap_VectorScopedCopyableMatchType_back, METH_VARARGS, (char *)"VectorScopedCopyableMatchType_back(VectorScopedCopyableMatchType self) -> std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const &"},
-	 { (char *)"VectorScopedCopyableMatchType_assign", _wrap_VectorScopedCopyableMatchType_assign, METH_VARARGS, (char *)"VectorScopedCopyableMatchType_assign(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type n, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const & x)"},
+	 { (char *)"VectorScopedCopyableMatchType_push_back", _wrap_VectorScopedCopyableMatchType_push_back, METH_VARARGS, (char *)"VectorScopedCopyableMatchType_push_back(VectorScopedCopyableMatchType self, ScopedCopyabledMatchType x)"},
+	 { (char *)"VectorScopedCopyableMatchType_front", _wrap_VectorScopedCopyableMatchType_front, METH_VARARGS, (char *)"VectorScopedCopyableMatchType_front(VectorScopedCopyableMatchType self) -> ScopedCopyabledMatchType"},
+	 { (char *)"VectorScopedCopyableMatchType_back", _wrap_VectorScopedCopyableMatchType_back, METH_VARARGS, (char *)"VectorScopedCopyableMatchType_back(VectorScopedCopyableMatchType self) -> ScopedCopyabledMatchType"},
+	 { (char *)"VectorScopedCopyableMatchType_assign", _wrap_VectorScopedCopyableMatchType_assign, METH_VARARGS, (char *)"VectorScopedCopyableMatchType_assign(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type n, ScopedCopyabledMatchType x)"},
 	 { (char *)"VectorScopedCopyableMatchType_resize", _wrap_VectorScopedCopyableMatchType_resize, METH_VARARGS, (char *)"\n"
 		"resize(std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type new_size)\n"
-		"VectorScopedCopyableMatchType_resize(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type new_size, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const & x)\n"
+		"VectorScopedCopyableMatchType_resize(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type new_size, ScopedCopyabledMatchType x)\n"
 		""},
 	 { (char *)"VectorScopedCopyableMatchType_insert", _wrap_VectorScopedCopyableMatchType_insert, METH_VARARGS, (char *)"\n"
-		"insert(std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::iterator pos, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const & x) -> std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::iterator\n"
-		"VectorScopedCopyableMatchType_insert(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::iterator pos, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type n, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::value_type const & x)\n"
+		"insert(std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::iterator pos, ScopedCopyabledMatchType x) -> std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::iterator\n"
+		"VectorScopedCopyableMatchType_insert(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::iterator pos, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type n, ScopedCopyabledMatchType x)\n"
 		""},
 	 { (char *)"VectorScopedCopyableMatchType_reserve", _wrap_VectorScopedCopyableMatchType_reserve, METH_VARARGS, (char *)"VectorScopedCopyableMatchType_reserve(VectorScopedCopyableMatchType self, std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type n)"},
 	 { (char *)"VectorScopedCopyableMatchType_capacity", _wrap_VectorScopedCopyableMatchType_capacity, METH_VARARGS, (char *)"VectorScopedCopyableMatchType_capacity(VectorScopedCopyableMatchType self) -> std::vector< mem::ScopedCopyablePtr< six::sicd::MatchType > >::size_type"},
diff --git a/modules/python/six.sicd/source/six_sicd.i b/modules/python/six.sicd/source/six_sicd.i
index 11a76b054..ce1027495 100644
--- a/modules/python/six.sicd/source/six_sicd.i
+++ b/modules/python/six.sicd/source/six_sicd.i
@@ -133,6 +133,8 @@ six::sicd::ComplexData * asComplexData(six::Data* data);
 %template(ScopedCopyableHalfPowerBeamwidths)    mem::ScopedCopyablePtr<six::sicd::HalfPowerBeamwidths>;
 %template(ScopedCopyableGainAndPhasePolys)      mem::ScopedCopyablePtr<six::sicd::GainAndPhasePolys>;
 
+%template(ScopedCopyabledMatchType)             mem::ScopedCopyablePtr<six::sicd::MatchType>;
+
 %template(ScopedCopyableWeightType)             mem::ScopedCopyablePtr<six::sicd::WeightType>;
 
 %template(VectorPolyXYZ)                        std::vector<PolyXYZ>;