<?xml version="1.0"?>
<typesystem package="@TYPESYSTEM_NAME@">

  <suppress-warning text="template baseclass 'std::shared_ptr&lt;*&gt;' of 'ptr' is not known"/>

  <!-- Ignore some namespaces -->
  <suppress-warning text="namespace 'boost' does not have a type entry"/>
  <suppress-warning text="namespace 'cgm' does not have a type entry"/>
  <suppress-warning text="namespace 'google' does not have a type entry"/>
  <suppress-warning text="namespace 'moab' does not have a type entry"/>
  <suppress-warning text="namespace 'mpl_' does not have a type entry"/>
  <suppress-warning text="namespace 'pugi' does not have a type entry"/>
  <suppress-warning text="namespace 'remote' does not have a type entry"/>
  <suppress-warning text="namespace 'smtk::bridge' does not have a type entry"/>
  <suppress-warning text="namespace 'smtk::bridge::remote' does not have a type entry"/>
  <suppress-warning text="namespace 'smtk::extension' does not have a type entry"/>
  <suppress-warning text="namespace 'smtk::internal' does not have a type entry"/>
  <suppress-warning text="namespace 'smtk::placeholders' does not have a type entry"/>
  <suppress-warning text="namespace 'smtk::mesh::json' does not have a type entry"/>
  <suppress-warning text="namespace 'smtk::mesh::moab' does not have a type entry"/>
  <suppress-warning text="namespace 'vtk' does not have a type entry"/>
  <suppress-warning text="namespace 'vtk_detail' does not have a type entry"/>
  <suppress-warning text="namespace 'std' does not have a type entry"/>


  <!-- Suppressed because they are memory variables-->
  <suppress-warning text="skipping field 'System::m_refModelMgr' with unmatched type 'smtk::weak_ptr&lt;smtk::model::Manager&gt;'"/>
  <suppress-warning text="skipping field 'Item::m_definition' with unmatched type 'smtk::shared_ptr&lt;const smtk::attribute::ItemDefinition&gt;'"/>
  <suppress-warning text="skipping field 'System::m_derivedDefInfo' with unmatched type 'std::map&lt;smtk::attribute::DefinitionPtr,smtk::attribute::WeakDefinitionPtrSet&gt;'"/>
  <suppress-warning text="skipping field 'RefItem::m_values' with unmatched type 'std::vector&lt;attribute::WeakAttributePtr&gt;'"/>
  <suppress-warning text="skipping field 'RefItemDefinition::m_definition' with unmatched type 'smtk::weak_ptr&lt;smtk::attribute::Definition&gt;'"/>
  <suppress-warning text="skipping field 'EntityRef::m_manager' with unmatched type 'smtk::weak_ptr&lt;smtk::model::Manager&gt;'"/>
  <suppress-warning text="skipping field 'Manager::m_analysisMesh' with unmatched type 'smtk::shared_ptr&lt;UUIDsToTessellations&gt;'"/>

  <!-- Suppressed because they are templated methods -->
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::modelEntitiesAs', unmatched return type 'T'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::associatedModelEntities', unmatched return type 'T'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::findAs', unmatched return type 'T::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::findAs', unmatched return type 'T::ConstPtr'"/>
  <suppress-warning text="skipping function 'smtk::attribute::GroupItem::findAs', unmatched return type 'T::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::attribute::GroupItem::findAs', unmatched return type 'T::ConstPtr'"/>
  <suppress-warning text="skipping function 'smtk::attribute::GroupItemDefinition::addItemDefinition', unmatched return type 'smtk::internal::shared_ptr_type&lt;T&gt;::SharedPointerType'"/>
  <suppress-warning text="skipping function 'smtk::dynamicCastPointer', unmatched return type 'smtk::shared_ptr&lt;T&gt;'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Definition::addItemDefinition', unmatched return type 'smtk::internal::shared_ptr_type&lt;T&gt;::SharedPointerType'"/>
  <suppress-warning text="skipping function 'smtk::model::SessionRef::models', unmatched return type 'T'"/>
  <suppress-warning text="skipping function 'smtk::model::SessionRef::operatorsForAssociation', unmatched parameter type 'T const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::EntityRef::EntityRefsFromUUIDs', unmatched parameter type 'S&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::EntityRef::EntityRefsToUUIDs', unmatched parameter type 'S&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::EntityRef::disassociateAttributes', unmatched parameter type 'T const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::Model::addCells', unmatched parameter type 'T const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::Model::addGroups', unmatched parameter type 'T const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::Group::members', unmatched return type 'T'"/>
  <suppress-warning text="skipping function 'smtk::model::EntityRef::embedEntities', unmatched parameter type 'T const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::EntityRef::embeddedEntities', unmatched return type 'T'"/>
  <suppress-warning text="skipping function 'smtk::model::EntityRef::instances', unmatched return type 'T'"/>
  <suppress-warning text="skipping function 'smtk::model::EntityRef::removeMemberEntities', unmatched parameter type 'T'"/>
  <suppress-warning text="skipping function 'smtk::model::EntityRef::addMemberEntities', unmatched parameter type 'T'"/>
  <suppress-warning text="skipping function 'smtk::model::EntityRef::relationsAs', unmatched return type 'T'"/>
  <suppress-warning text="skipping function 'smtk::model::Group::addEntities', unmatched parameter type 'T const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::insertModelFaceOrientedInnerLoop', unmatched parameter type 'T const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::insertModelFaceWithOrientedOuterLoop', unmatched parameter type 'T const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::deleteEntities', unmatched parameter type 'T&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::Model::addSubmodels', unmatched parameter type 'T const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::Model::appendCells', unmatched parameter type 'T&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::Model::removeSubmodels', unmatched parameter type 'T const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::Model::removeGroups', unmatched parameter type 'T const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::Model::removeCells', unmatched parameter type 'T const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::Model::addAuxiliaryGeometries', unmatched parameter type 'T const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::Model::removeAuxiliaryGeometries', unmatched parameter type 'T const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::EntityRef::unembedEntities', unmatched parameter type 'T const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::ShellEntity::addUses', unmatched parameter type 'T const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::ShellEntity::cellsOfUses', unmatched return type 'T'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::entitiesMatchingFlagsAs', unmatched return type 'Collection'"/>
  <suppress-warning text="skipping function 'smtk::model::Operator::findAs', unmatched return type 'T::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::attribute::ValueItemTemplate::setValues', unmatched parameter type 'I'"/>
  <suppress-warning text="skipping function 'smtk::attribute::ValueItemTemplate::end', unmatched return type 'std::vector&lt;DataT&gt;::const_iterator'"/>
  <suppress-warning text="skipping function 'smtk::attribute::ValueItemTemplate::begin', unmatched return type 'std::vector&lt;DataT&gt;::const_iterator'"/>
  <suppress-warning text="skipping function 'smtk::attribute::ModelEntityItem::setValues', unmatched parameter type 'I'"/>
  <suppress-warning text="skipping function 'smtk::attribute::ModelEntityItem::appendValues', unmatched parameter type 'I'"/>
  <suppress-warning text="skipping function 'smtk::attribute::ModelEntityItem::end', unmatched return type 'smtk::attribute::ModelEntityItem::const_iterator'"/>
  <suppress-warning text="skipping function 'smtk::attribute::ModelEntityItem::begin', unmatched return type 'smtk::attribute::ModelEntityItem::const_iterator'"/>
  <suppress-warning text="skipping function 'smtk::attribute::FileSystemItem::setValues', unmatched parameter type 'I'"/>
  <suppress-warning text="skipping function 'smtk::attribute::FileSystemItem::begin', unmatched return type 'smtk::attribute::FileSystemItem::const_iterator'"/>
  <suppress-warning text="skipping function 'smtk::attribute::FileSystemItem::appendValues', unmatched parameter type 'I'"/>
  <suppress-warning text="skipping function 'smtk::attribute::FileSystemItem::end', unmatched return type 'smtk::attribute::FileSystemItem::const_iterator'"/>
  <suppress-warning text="skipping function 'smtk::attribute::GroupItem::begin', unmatched return type 'smtk::attribute::GroupItem::const_iterator'"/>
  <suppress-warning text="skipping function 'smtk::attribute::RefItem::begin', unmatched return type 'smtk::attribute::RefItem::const_iterator'"/>
  <suppress-warning text="skipping function 'smtk::attribute::DirectoryItem::begin', unmatched return type 'smtk::attribute::DirectoryItem::const_iterator'"/>
  <suppress-warning text="skipping function 'smtk::attribute::RefItem::end', unmatched return type 'smtk::attribute::RefItem::const_iterator'"/>
  <suppress-warning text="skipping function 'smtk::attribute::RefItem::setValues', unmatched parameter type 'I'"/>
  <suppress-warning text="skipping function 'smtk::attribute::DirectoryItem::end', unmatched return type 'smtk::attribute::DirectoryItem::const_iterator'"/>
  <suppress-warning text="skipping function 'smtk::attribute::DirectoryItem::appendValues', unmatched parameter type 'I'"/>
  <suppress-warning text="skipping function 'smtk::attribute::GroupItem::end', unmatched return type 'smtk::attribute::GroupItem::const_iterator'"/>
  <suppress-warning text="skipping function 'smtk::attribute::RefItem::appendValues', unmatched parameter type 'I'"/>
  <suppress-warning text="skipping function 'smtk::attribute::DirectoryItem::setValues', unmatched parameter type 'I'"/>
  <suppress-warning text="skipping function 'smtk::model::Operator::addEntitiesToResult', unmatched parameter type 'T const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::CellEntity::boundingCellsAs', unmatched return type 'T'"/>
  <suppress-warning text="skipping function 'smtk::model::Model::submodelsAs', unmatched return type 'T'"/>
  <suppress-warning text="skipping function 'smtk::model::Model::groupsAs', unmatched return type 'T'"/>
  <suppress-warning text="skipping function 'smtk::model::Model::cellsAs', unmatched return type 'T'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::filterItems', unmatched parameter type 'T&amp;'"/>
  <suppress-warning text="skipping function 'smtk::attribute::ValueItem::visitChildren', unmatched parameter type 'std::function&lt;void&gt;'"/>
  <suppress-warning text="skipping function 'smtk::attribute::RefItem::visitChildren', unmatched parameter type 'std::function&lt;void&gt;'"/>
  <suppress-warning text="skipping function 'smtk::attribute::GroupItem::visitChildren', unmatched parameter type 'std::function&lt;void&gt;'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Item::visitChildren', unmatched parameter type 'std::function&lt;void&gt;'"/>

  <!-- Return a list.  For now we will ignore the iterators-->
  <suppress-warning text="skipping function 'smtk::model::Item::beginAssociatedAttributes', unmatched return type 'smtk::model::Item::const_iterator'"/>
  <suppress-warning text="skipping function 'smtk::model::Item::endAssociatedAttributes', unmatched return type 'smtk::model::Item::const_iterator'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::associatedEntities', unmatched return type 'std::set&lt;smtk::model::ItemPtr&gt;::const_iterator'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::setTessellation', unmatched return type 'smtk::model::Manager::tess_iter_type'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::setTessellationAndBoundingBox', unmatched return type 'smtk::model::Manager::tess_iter_type'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::insertEntity', unmatched return type 'smtk::model::Manager::iter_type'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::insertEntityOfTypeAndDimension', unmatched return type 'smtk::model::Manager::iter_type'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::setEntity', unmatched return type 'smtk::model::Manager::iter_type'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::setEntityOfTypeAndDimension', unmatched return type 'smtk::model::Manager::iter_type'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::setCellOfDimension', unmatched return type 'smtk::model::Manager::iter_type'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::insertCellOfDimension', unmatched return type 'smtk::model::Manager::iter_type'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::insertEntity', unmatched return type 'Manager::iter_type'"/>
	<suppress-warning text="skipping function 'smtk::model::Manager::insertEntityOfTypeAndDimension', unmatched return type 'Manager::iter_type'"/>
	<suppress-warning text="skipping function 'smtk::model::Manager::setEntity', unmatched return type 'Manager::iter_type'"/>
	<suppress-warning text="skipping function 'smtk::model::Manager::setEntityOfTypeAndDimension', unmatched return type 'Manager::iter_type'"/>
  <suppress-warning text="skipping function 'smtk::attribute::ModelEntityItem::begin', unmatched return type 'smtk::model::EntityRefArray::const_iterator'"/>
  <suppress-warning text="skipping function 'smtk::attribute::ModelEntityItem::end', unmatched return type 'smtk::model::EntityRefArray::const_iterator'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::itemAtPathAs', unmatched return type 'T::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::itemAtPathAs', unmatched return type 'T::ConstPtr'"/>

  <!-- Use cJSON objects. For now we will ignore these-->
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::saveACopy', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::save', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::saveAs', unmatched parameter type 'cJSON*'"/>

  <suppress-warning text="skipping function 'smtk::io::LoadJSON::ofDanglingEntities', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::ofManager', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::ofManagerEntityData', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::ofManagerArrangement', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::ofManagerEntity', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::ofManagerFloatProperties', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::ofManagerIntegerProperties', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::ofManagerStringProperties', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::ofManagerTessellation', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::ofLocalSession', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::ofLog', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::ofMeshesOfModel', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::ofRemoteSession', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::ofOperator', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::ofOperatorResult', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::getStringArrayFromJSON', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::getUUIDArrayFromJSON', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::getRealArrayFromJSON', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::getIntegerArrayFromJSON', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::ofManagerAnalysis', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::forManagerMeshes', unmatched parameter type 'cJSON*'"/>

  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forManager', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forDanglingEntities', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forManagerMeshes', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forSingleCollection', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forLog', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forManagerAnalysis', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forManagerArrangement', unmatched parameter type 'smtk::model::UUIDWithArrangementDictionary const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forManagerSession', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forManagerSessionPartial', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forManagerEntity', unmatched parameter type 'smtk::model::UUIDWithEntity&amp;'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forManagerFloatProperties', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forManagerIntegerProperties', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forManagerStringProperties', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forManagerTessellation', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forModelOperators', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forModelWorker', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forMeshesOfModel', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forOperatorResult', unmatched parameter type 'smtk::model::OperatorResult const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::fromUUIDs', unmatched return type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::fromModelManager', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::fromResourceSet', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::sessionNameFromTagData', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::sessionFileTypesFromTagData', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::createIntegerArray', unmatched return type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::createUUIDArray', unmatched return type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::createRPCRequest', unmatched return type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::createStringArray', unmatched return type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forOperatorResult', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forOperatorDefinitions', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forOperator', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forEntities', unmatched parameter type 'T const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forEntities', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forMeshCollections', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forModelMeshes', unmatched parameter type 'cJSON*'"/>

  <suppress-warning text="skipping function 'smtk::io::ImportMesh::entireJSON', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::ImportMesh::entireJSONToCollection', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::mesh::from_json', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::mesh::to_json', unmatched return type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::addModelsRecord', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::addMeshesRecord', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::addModelsRecord', unmatched parameter type 'smtk::model::Models const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::addMeshesRecord', unmatched parameter type 'smtk::model::Models const&amp;'"/>

  <suppress-warning text="skipping function 'smtk::mesh::applyScalarCellField', unmatched parameter type 'std::function&lt;double&gt; const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::mesh::applyVectorPointField', unmatched parameter type 'std::function&lt;std::array&lt;double&gt;&gt; const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::mesh::applyScalarPointField', unmatched parameter type 'std::function&lt;double&gt; const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::mesh::applyVectorCellField', unmatched parameter type 'std::function&lt;std::array&lt;double&gt;&gt; const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::mesh::applyWarp', unmatched parameter type 'std::function&lt;std::array&lt;double&gt;&gt; const&amp;'"/>

  <!-- Ignore warnings from protected functions and members -->
  <suppress-warning text="skipping function 'smtk::model::Manager::insertEntityReferences', unmatched parameter type 'smtk::model::UUIDWithEntity const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::removeEntityReferences', unmatched parameter type 'smtk::model::UUIDWithEntity const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::elideEntityReferences', unmatched parameter type 'smtk::model::UUIDWithEntity const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::elideOneEntityReference', unmatched parameter type 'smtk::model::UUIDWithEntity const&amp;'"/>
  <suppress-warning text="skipping field 'Manager::m_topology' with unmatched type 'smtk::shared_ptr&lt;UUIDsToEntities&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::Manager', unmatched parameter type 'shared_ptr&lt;UUIDsToEntities&gt;'"/>
  <suppress-warning text="skipping field 'Manager::m_tessellations' with unmatched type 'smtk::shared_ptr&lt;UUIDsToTessellations&gt;'"/>
  <suppress-warning text="skipping field 'Manager::m_sessions' with unmatched type 'smtk::shared_ptr&lt;UUIDsToSessions&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::Manager', unmatched parameter type 'shared_ptr&lt;smtk::model::Manager::storage_type&gt;'"/>
  <suppress-warning text="skipping field 'Manager::m_arrangements' with unmatched type 'smtk::shared_ptr&lt;UUIDsToArrangements&gt;'"/>
  <suppress-warning text="skipping field 'Manager::m_attributeSystems' with unmatched type 'std::set&lt;smtk::attribute::WeakSystemPtr,std::owner_less&lt;smtk::attribute::WeakSystemPtr&gt;&gt;'"/>
  <suppress-warning text="skipping field 'Manager::m_attributeSystems' with unmatched type 'std::set&lt;smtk::attribute::WeakSystemPtr,smtk::model::Manager::SystemLessThan&gt;'"/>
  <suppress-warning text="skipping field 'UUIDGenerator::P' with unmatched type 'Internal'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::assignDefaultNamesWithOwner', unmatched parameter type 'smtk::model::UUIDWithEntity const&amp;'"/>
  <suppress-warning text="skipping field 'ResourceSet::m_resourceMap' with unmatched type 'std::map&lt;std::string,ResourceWrapper*&gt;'"/>
  <suppress-warning text="skipping field 'OperatorLog::m_watching' with unmatched type 'std::vector&lt;smtk::model::WeakOperatorPtr&gt;'"/>
  <suppress-warning text="skipping field 'OperatorLog::m_manager' with unmatched type 'smtk::weak_ptr&lt;smtk::model::Manager&gt;'"/>
  <suppress-warning text="skipping function 'smtk::io::OperatorLog::hintSystem', unmatched return type 'smtk::attribute::SystemPtr'"/>
  <suppress-warning text="skipping field 'OperatorLog::m_hintSys' with unmatched type 'smtk::shared_ptr&lt;smtk::attribute::System&gt;'"/>
  <suppress-warning text="skipping function 'smtk::attribute::ModelEntityItem::definition', unmatched return type 'smtk::attribute::ConstModelEntityItemDefinitionPtr'"/>

  <!-- do not support input or output streams-->
  <suppress-warning text="skipping function 'smtk::common::operator&lt;&lt;', unmatched return type 'std::ostream&amp;'"/>
  <suppress-warning text="skipping function 'smtk::common::operator&gt;&gt;', unmatched return type 'std::istream&amp;'"/>
  <suppress-warning text="skipping function 'smtk::io::Logger::setFlushToStream', unmatched parameter type 'std::ostream*'"/>
  <suppress-warning text="skipping function 'smtk::io::Logger::setCallback', unmatched parameter type 'std::function&lt;void&gt;'"/>
  <suppress-warning text="skipping field 'Logger::m_stream' with unmatched type 'std::ostream'"/>
  <suppress-warning text="skipping field 'Logger::m_callback' with unmatched type 'std::function&lt;void&gt;'"/>

  <!-- do not support model property data (yet)-->
  <suppress-warning text="skipping field 'Manager::m_stringData' with unmatched type 'smtk::shared_ptr&lt;UUIDsToStringData&gt;'"/>
  <suppress-warning text="skipping field 'Manager::m_floatData' with unmatched type 'smtk::shared_ptr&lt;UUIDsToFloatData&gt;'"/>
  <suppress-warning text="skipping field 'Manager::m_integerData' with unmatched type 'smtk::shared_ptr&lt;UUIDsToIntegerData&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::floatPropertiesForEntity', unmatched return type 'smtk::model::UUIDWithFloatProperties const'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::floatPropertiesForEntity', unmatched return type 'smtk::model::UUIDWithFloatProperties'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::stringPropertiesForEntity', unmatched return type 'smtk::model::UUIDWithStringProperties const'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::stringPropertiesForEntity', unmatched return type 'smtk::model::UUIDWithStringProperties'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::integerPropertiesForEntity', unmatched return type 'smtk::model::UUIDWithIntegerProperties const'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::integerPropertiesForEntity', unmatched return type 'smtk::model::UUIDWithIntegerProperties'"/>

  <suppress-warning text="skipping field 'Manager::m_attributeAssignments' with unmatched type 'smtk::shared_ptr&lt;UUIDsToAttributeAssignments&gt;'"/>

  <!-- ignore shadowing/hiding of EntityRef::isValid() as it is intentional -->
  <suppress-warning text="hiding of function 'isValid' in class 'AuxiliaryGeometry'"/>
  <suppress-warning text="hiding of function 'isValid' in class 'SessionRef'"/>
  <suppress-warning text="hiding of function 'isValid' in class 'CellEntity'"/>
  <suppress-warning text="hiding of function 'isValid' in class 'Chain'"/>
  <suppress-warning text="hiding of function 'isValid' in class 'EntityRef'"/>
  <suppress-warning text="hiding of function 'isValid' in class 'Edge'"/>
  <suppress-warning text="hiding of function 'isValid' in class 'EdgeUse'"/>
  <suppress-warning text="hiding of function 'isValid' in class 'Face'"/>
  <suppress-warning text="hiding of function 'isValid' in class 'FaceUse'"/>
  <suppress-warning text="hiding of function 'isValid' in class 'Group'"/>
  <suppress-warning text="hiding of function 'isValid' in class 'Instance'"/>
  <suppress-warning text="hiding of function 'isValid' in class 'Loop'"/>
  <suppress-warning text="hiding of function 'isValid' in class 'Model'"/>
  <suppress-warning text="hiding of function 'isValid' in class 'Shell'"/>
  <suppress-warning text="hiding of function 'isValid' in class 'ShellEntity'"/>
  <suppress-warning text="hiding of function 'isValid' in class 'UseEntity'"/>
  <suppress-warning text="hiding of function 'isValid' in class 'Vertex'"/>
  <suppress-warning text="hiding of function 'isValid' in class 'VertexUse'"/>
  <suppress-warning text="hiding of function 'isValid' in class 'Volume'"/>
  <suppress-warning text="hiding of function 'isValid' in class 'VolumeUse'"/>
  <suppress-warning text="Shadowing: EntityRef::isValid() const and AuxiliaryGeometry::isValid() const"/>
  <suppress-warning text="Shadowing: EntityRef::isValid() const and SessionRef::isValid() const"/>
  <suppress-warning text="Shadowing: EntityRef::isValid() const and CellEntity::isValid() const"/>
  <suppress-warning text="Shadowing: EntityRef::isValid() const and Chain::isValid() const"/>
  <suppress-warning text="Shadowing: EntityRef::isValid() const and Edge::isValid() const"/>
  <suppress-warning text="Shadowing: EntityRef::isValid() const and EdgeUse::isValid() const"/>
  <suppress-warning text="Shadowing: EntityRef::isValid() const and Face::isValid() const"/>
  <suppress-warning text="Shadowing: EntityRef::isValid() const and FaceUse::isValid() const"/>
  <suppress-warning text="Shadowing: EntityRef::isValid() const and Group::isValid() const"/>
  <suppress-warning text="Shadowing: EntityRef::isValid() const and Instance::isValid() const"/>
  <suppress-warning text="Shadowing: EntityRef::isValid() const and Loop::isValid() const"/>
  <suppress-warning text="Shadowing: EntityRef::isValid() const and Model::isValid() const"/>
  <suppress-warning text="Shadowing: EntityRef::isValid() const and Shell::isValid() const"/>
  <suppress-warning text="Shadowing: EntityRef::isValid() const and ShellEntity::isValid() const"/>
  <suppress-warning text="Shadowing: EntityRef::isValid() const and UseEntity::isValid() const"/>
  <suppress-warning text="Shadowing: EntityRef::isValid() const and Vertex::isValid() const"/>
  <suppress-warning text="Shadowing: EntityRef::isValid() const and VertexUse::isValid() const"/>
  <suppress-warning text="Shadowing: EntityRef::isValid() const and Volume::isValid() const"/>
  <suppress-warning text="Shadowing: EntityRef::isValid() const and VolumeUse::isValid() const"/>
  <suppress-warning text="Shadowing: ShellEntity::isValid() const and Chain::isValid() const"/>
  <suppress-warning text="Shadowing: ShellEntity::isValid() const and Loop::isValid() const"/>
  <suppress-warning text="Shadowing: ShellEntity::isValid() const and Shell::isValid() const"/>
  <suppress-warning text="Shadowing: CellEntity::isValid() const and Edge::isValid() const"/>
  <suppress-warning text="Shadowing: CellEntity::isValid() const and Face::isValid() const"/>
  <suppress-warning text="Shadowing: CellEntity::isValid() const and Vertex::isValid() const"/>
  <suppress-warning text="Shadowing: CellEntity::isValid() const and Volume::isValid() const"/>
  <suppress-warning text="Shadowing: UseEntity::isValid() const and EdgeUse::isValid() const"/>
  <suppress-warning text="Shadowing: UseEntity::isValid() const and FaceUse::isValid() const"/>
  <suppress-warning text="Shadowing: UseEntity::isValid() const and VertexUse::isValid() const"/>
  <suppress-warning text="Shadowing: UseEntity::isValid() const and VolumeUse::isValid() const"/>
  <suppress-warning text="Shadowing: EntityRef::operator!=(const smtk::model::EntityRef &amp; other) const and AuxiliaryGeometry::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator==(const smtk::model::EntityRef &amp; other) const and AuxiliaryGeometry::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: CellEntity::operator==(const smtk::model::EntityRef &amp; other) const and Face::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: CellEntity::operator==(const smtk::model::EntityRef &amp; other) const and Vertex::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator==(const smtk::model::EntityRef &amp; other) const and Chain::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: UseEntity::operator==(const smtk::model::EntityRef &amp; other) const and VertexUse::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator==(const smtk::model::EntityRef &amp; other) const and Instance::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator==(const smtk::model::EntityRef &amp; other) const and ShellEntity::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: UseEntity::operator==(const smtk::model::EntityRef &amp; other) const and FaceUse::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator==(const smtk::model::EntityRef &amp; other) const and Volume::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator==(const smtk::model::EntityRef &amp; other) const and EdgeUse::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator==(const smtk::model::EntityRef &amp; other) const and Edge::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: UseEntity::operator==(const smtk::model::EntityRef &amp; other) const and EdgeUse::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator==(const smtk::model::EntityRef &amp; other) const and Vertex::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator==(const smtk::model::EntityRef &amp; other) const and VolumeUse::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: CellEntity::operator==(const smtk::model::EntityRef &amp; other) const and Edge::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator==(const smtk::model::EntityRef &amp; other) const and UseEntity::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator==(const smtk::model::EntityRef &amp; other) const and Face::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator==(const smtk::model::EntityRef &amp; other) const and Loop::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: ShellEntity::operator==(const smtk::model::EntityRef &amp; other) const and Shell::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator==(const smtk::model::EntityRef &amp; other) const and Shell::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator==(const smtk::model::EntityRef &amp; other) const and CellEntity::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: ShellEntity::operator==(const smtk::model::EntityRef &amp; other) const and Loop::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator==(const smtk::model::EntityRef &amp; other) const and Group::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator==(const smtk::model::EntityRef &amp; other) const and FaceUse::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: UseEntity::operator==(const smtk::model::EntityRef &amp; other) const and VolumeUse::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator==(const smtk::model::EntityRef &amp; other) const and Model::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: CellEntity::operator==(const smtk::model::EntityRef &amp; other) const and Volume::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator==(const smtk::model::EntityRef &amp; other) const and VertexUse::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: ShellEntity::operator==(const smtk::model::EntityRef &amp; other) const and Chain::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator==(const smtk::model::EntityRef &amp; other) const and SessionRef::operator==(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator!=(const smtk::model::EntityRef &amp; other) const and Edge::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator!=(const smtk::model::EntityRef &amp; other) const and Model::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator!=(const smtk::model::EntityRef &amp; other) const and UseEntity::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator!=(const smtk::model::EntityRef &amp; other) const and Face::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator!=(const smtk::model::EntityRef &amp; other) const and VolumeUse::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: CellEntity::operator!=(const smtk::model::EntityRef &amp; other) const and Face::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator!=(const smtk::model::EntityRef &amp; other) const and FaceUse::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: UseEntity::operator!=(const smtk::model::EntityRef &amp; other) const and EdgeUse::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: ShellEntity::operator!=(const smtk::model::EntityRef &amp; other) const and Loop::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator!=(const smtk::model::EntityRef &amp; other) const and Chain::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: ShellEntity::operator!=(const smtk::model::EntityRef &amp; other) const and Chain::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator!=(const smtk::model::EntityRef &amp; other) const and Vertex::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: CellEntity::operator!=(const smtk::model::EntityRef &amp; other) const and Edge::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator!=(const smtk::model::EntityRef &amp; other) const and Group::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: CellEntity::operator!=(const smtk::model::EntityRef &amp; other) const and Vertex::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: UseEntity::operator!=(const smtk::model::EntityRef &amp; other) const and VolumeUse::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator!=(const smtk::model::EntityRef &amp; other) const and Instance::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator!=(const smtk::model::EntityRef &amp; other) const and Shell::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator!=(const smtk::model::EntityRef &amp; other) const and CellEntity::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: UseEntity::operator!=(const smtk::model::EntityRef &amp; other) const and FaceUse::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator!=(const smtk::model::EntityRef &amp; other) const and VertexUse::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator!=(const smtk::model::EntityRef &amp; other) const and Volume::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator!=(const smtk::model::EntityRef &amp; other) const and Loop::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: ShellEntity::operator!=(const smtk::model::EntityRef &amp; other) const and Shell::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator!=(const smtk::model::EntityRef &amp; other) const and EdgeUse::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator!=(const smtk::model::EntityRef &amp; other) const and ShellEntity::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: CellEntity::operator!=(const smtk::model::EntityRef &amp; other) const and Volume::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: UseEntity::operator!=(const smtk::model::EntityRef &amp; other) const and VertexUse::operator!=(const smtk::model::EntityRef &amp; other) const"/>
  <suppress-warning text="Shadowing: EntityRef::operator!=(const smtk::model::EntityRef &amp; other) const and SessionRef::operator!=(const smtk::model::EntityRef &amp; other) const"/>

  <!-- ignore sundry warnings associated with attribute/definition copy methods -->
  <suppress-warning text="skipping field 'CopyInfo::UnresolvedRefItems' with unmatched type 'std::queue&lt;std::pair&lt;std::string,smtk::attribute::ItemDefinitionPtr&gt;&gt;'" />
  <suppress-warning text="skipping field 'CopyInfo::UnresolvedExpItems' with unmatched type 'std::queue&lt;std::pair&lt;std::string,smtk::attribute::ItemDefinitionPtr&gt;&gt;'" />
  <suppress-warning text="Shadowing: ValueItemDefinition::copyTo(smtk::shared_ptr&lt; smtk::attribute::ValueItemDefinition &gt; def, smtk::attribute::ItemDefinition::CopyInfo &amp; info) const and DoubleItemDefinition::copyTo(smtk::shared_ptr&lt; smtk::attribute::ValueItemDefinition &gt; def, smtk::attribute::ItemDefinition::CopyInfo &amp; info) const" />
  <suppress-warning text="Shadowing: ValueItemDefinition::copyTo(smtk::shared_ptr&lt; smtk::attribute::ValueItemDefinition &gt; def, smtk::attribute::ItemDefinition::CopyInfo &amp; info) const and StringItemDefinition::copyTo(smtk::shared_ptr&lt; smtk::attribute::ValueItemDefinition &gt; def, smtk::attribute::ItemDefinition::CopyInfo &amp; info) const" />
  <suppress-warning text="Shadowing: ValueItemDefinition::copyTo(smtk::shared_ptr&lt; smtk::attribute::ValueItemDefinition &gt; def, smtk::attribute::ItemDefinition::CopyInfo &amp; info) const and ValueItemDefinitionTemplate::copyTo(smtk::shared_ptr&lt; smtk::attribute::ValueItemDefinition &gt; def, smtk::attribute::ItemDefinition::CopyInfo &amp; info) const" />
  <suppress-warning text="Shadowing: ValueItemDefinition::copyTo(smtk::shared_ptr&lt; smtk::attribute::ValueItemDefinition &gt; def, smtk::attribute::ItemDefinition::CopyInfo &amp; info) const and IntItemDefinition::copyTo(smtk::shared_ptr&lt; smtk::attribute::ValueItemDefinition &gt; def, smtk::attribute::ItemDefinition::CopyInfo &amp; info) const" />

  <!-- ignore templated cast for now. -->
  <suppress-warning text="skipping function 'smtk::model::CellEntity::inclusions', unmatched return type 'T'"/>
  <suppress-warning text="skipping function 'smtk::model::CellEntity::uses', unmatched return type 'T'"/>
  <suppress-warning text="skipping function 'smtk::model::EntityRef::as', unmatched return type 'T'"/>
  <suppress-warning text="skipping function 'smtk::model::ShellEntity::uses', unmatched return type 'T'"/>
  <suppress-warning text="skipping function 'smtk::model::ShellEntity::containedShellEntities', unmatched return type 'T'"/>
  <suppress-warning text="skipping function 'smtk::model::UseEntity::shellEntities', unmatched return type 'T'"/>
  <suppress-warning text="skipping function 'smtk::model::UseEntity::boundingShellEntities', unmatched return type 'T'"/>
  <suppress-warning text="skipping function 'smtk::model::UseEntity::addShellEntities', unmatched parameter type 'T const&amp;'"/>

  <!-- we are not going to wrap std::[io]stream, so ignore -->
  <suppress-warning text="skipping function 'smtk::model::operator&lt;&lt;', unmatched return type 'std::ostream&amp;'"/>

  <!-- ignore some methods that pass arrays by pointer -->
  <suppress-warning text="There's no user provided way (conversion rule, argument removal, custom code, etc) to handle the primitive argument type 'const int *' in function 'smtk::model::Tessellation::insertCell(int offset, int connLen, const int * cellConn)'."/>
  <suppress-warning text="There's no user provided way (conversion rule, argument removal, custom code, etc) to handle the primitive argument type 'const int *' in function 'smtk::model::Tessellation::insertNextCell(int connLen, const int * cellConn)'."/>
  <suppress-warning text="There's no user provided way (conversion rule, argument removal, custom code, etc) to handle the primitive argument type 'int *' in function 'smtk::model::Tessellation::numberOfCellVertices(int offset, int * cellTypeOut) const'."/>
  <suppress-warning text="There's no user provided way (conversion rule, argument removal, custom code, etc) to handle the primitive argument type 'double *' in function 'smtk::model::Tessellation::addQuad(double * a, double * b, double * c, double * d)'."/>
  <suppress-warning text="There's no user provided way (conversion rule, argument removal, custom code, etc) to handle the primitive argument type 'const smtk::mesh::Handle *' in function 'smtk::mesh::CellForEach::pointIds(const smtk::mesh::Handle * ptIds)'"/>
  <suppress-warning text="There's no user provided way (conversion rule, argument removal, custom code, etc) to handle the primitive argument type 'const double *' in function 'smtk::model::Tessellation::setPoint(std::size_t id, const double * points)'"/>
  <suppress-warning text="skipping function 'smtk::common::distance2', unmatched parameter type 'T const*'"/>
  <suppress-warning text="There's no user provided way (conversion rule, argument removal, custom code, etc) to handle the primitive argument type 'const double *' in function 'smtk::mesh::MeshSet::createCellField(const std::string &amp; name, int dimension, const double * field)'"/>
  <suppress-warning text="There's no user provided way (conversion rule, argument removal, custom code, etc) to handle the primitive argument type 'const double *' in function 'smtk::mesh::MeshSet::createPointField(const std::string &amp; name, int dimension, const double * field)'"/>

  <!-- ignore shared_from_this base class-->
  <suppress-warning text="template baseclass 'smtk::enable_shared_from_this&lt;Attribute&gt;' of 'Attribute' is not known"/>
  <suppress-warning text="template baseclass 'smtk::enable_shared_from_this&lt;Definition&gt;' of 'Definition' is not known"/>
  <suppress-warning text="template baseclass 'smtk::enable_shared_from_this&lt;Item&gt;' of 'Item' is not known"/>
  <suppress-warning text="template baseclass 'smtk::enable_shared_from_this&lt;__VA_ARGS__&gt;' of 'Resource' is not known"/>
  <suppress-warning text="template baseclass 'smtk::enable_shared_from_this&lt;__VA_ARGS__&gt;' of 'Manager' is not known"/>
  <suppress-warning text="template baseclass 'smtk::enable_shared_from_this&lt;__VA_ARGS__&gt;' of 'Session' is not known"/>
  <suppress-warning text="template baseclass 'smtk::enable_shared_from_this&lt;__VA_ARGS__&gt;' of 'DescriptivePhrase' is not known"/>
  <suppress-warning text="template baseclass 'smtk::enable_shared_from_this&lt;__VA_ARGS__&gt;' of 'Operator' is not known"/>
  <suppress-warning text="skipping function 'smtk::attribute::System::create', unmatched return type 'smtk::shared_ptr&lt;smtk::attribute::System::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::create', unmatched return type 'smtk::shared_ptr&lt;smtk::model::Manager::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::create', unmatched return type 'smtk::shared_ptr&lt;smtk::model::Manager::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::shared_from_this', unmatched return type 'smtk::shared_ptr&lt;smtk::model::Manager::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::attribute::System::shared_from_this', unmatched return type 'smtk::shared_ptr&lt;smtk::attribute::System::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::attribute::System::shared_from_this', unmatched return type 'smtk::shared_ptr&lt;const smtk::attribute::System::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::Session::operatorSystem', unmatched return type 'smtk::attribute::ConstSystemPtr'"/>

  <!-- TODO: Fix or categorize these warnings -->
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::canSaveModels', unmatched parameter type 'smtk::model::Models const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::prepareToSave', unmatched parameter type 'smtk::model::Models const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::addEntityProperties', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::shouldOmitProperty', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::EntityListPhrase::setup', unmatched return type 'smtk::model::EntityListPhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::prototypeOfInstance', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::attributesOfEntity', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::subphrases', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::stringPropertiesOfEntity', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::EntityPhrase::setup', unmatched return type 'smtk::model::EntityPhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SimpleModelSubphrases::create', unmatched return type 'smtk::shared_ptr&lt;smtk::model::SimpleModelSubphrases::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::entitiesOfEntityList', unmatched parameter type 'smtk::model::EntityListPhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SimpleModelSubphrases::childrenOfPropertyList', unmatched parameter type 'smtk::model::PropertyListPhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::attribute::ValueItemDefinition::addItemDefinition', unmatched return type 'smtk::internal::shared_ptr_type&lt;T&gt;::SharedPointerType'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::freeSubmodelsOfModel', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::boundingCellsOfCell', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::freeAuxiliaryGeometriesOfModel', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::EntityListPhrase::create', unmatched return type 'smtk::shared_ptr&lt;smtk::model::EntityListPhrase::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::EntityListPhrase::shared_from_this', unmatched return type 'smtk::shared_ptr&lt;smtk::model::EntityListPhrase::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::MeshPhrase::setup', unmatched return type 'smtk::model::MeshPhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::MeshPhrase::shared_from_this', unmatched return type 'smtk::shared_ptr&lt;smtk::model::MeshPhrase::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::MeshPhrase::shared_from_this', unmatched return type 'smtk::shared_ptr&lt;const smtk::model::MeshPhrase::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::MeshPhrase::create', unmatched return type 'smtk::shared_ptr&lt;smtk::model::MeshPhrase::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::MeshListPhrase::setup', unmatched return type 'smtk::model::MeshListPhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::MeshListPhrase::create', unmatched return type 'smtk::shared_ptr&lt;smtk::model::MeshListPhrase::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::MeshListPhrase::shared_from_this', unmatched return type 'smtk::shared_ptr&lt;smtk::model::MeshListPhrase::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::MeshListPhrase::shared_from_this', unmatched return type 'smtk::shared_ptr&lt;const smtk::model::MeshListPhrase::SelfType&gt;'"/>

  <suppress-warning text="skipping field 'DescriptivePhrase::m_delegate' with unmatched type 'smtk::shared_ptr&lt;SubphraseGenerator&gt;'"/>
  <suppress-warning text="skipping function 'smtk::attribute::ValueItemTemplate::setValue', unmatched parameter type 'size_t'"/>
  <suppress-warning text="skipping function 'smtk::attribute::ValueItemTemplate::concreteDefinition', unmatched return type 'shared_ptr&lt;const smtk::attribute::ValueItemTemplate&lt;DataT&gt;::DefType&gt;"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::propertiesOfPropertyList', unmatched parameter type 'smtk::model::PropertyListPhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::cellOfUse', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SimpleModelSubphrases::shared_from_this', unmatched return type 'smtk::shared_ptr&lt;smtk::model::SimpleModelSubphrases::SelfType&gt;'"/>
  <suppress-warning text="template baseclass 'smtk::enable_shared_from_this&lt;__VA_ARGS__&gt;' of 'SubphraseGenerator' is not known"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::freeGroupsInModel', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::modelsOfSession', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::membersOfGroup', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::EntityPhrase::shared_from_this', unmatched return type 'smtk::shared_ptr&lt;smtk::model::EntityPhrase::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::DescriptivePhrase::setDelegate', unmatched return type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::freeCellsOfModel', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::EntityPhrase::create', unmatched return type 'smtk::shared_ptr&lt;smtk::model::EntityPhrase::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::propertiesOfEntity', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::DescriptivePhrase::findDelegate', unmatched return type 'smtk::model::SubphraseGeneratorPtr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::inclusionsOfCell', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::floatPropertiesOfEntity', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::toplevelShellsOfUse', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SimpleModelSubphrases::childrenOfEntity', unmatched parameter type 'smtk::model::EntityPhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SimpleModelSubphrases::subphrases', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::usesOfCell', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::instancesOfEntity', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::addEntityPhrases', unmatched parameter type 'T const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::integerPropertiesOfEntity', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::toplevelShellsOfCell', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SimpleModelSubphrases::shouldOmitProperty', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::DescriptivePhrase::setup', unmatched return type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::usesOfShell', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::boundingShellsOfUse', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SimpleModelSubphrases::childrenOfEntityList', unmatched parameter type 'smtk::model::EntityListPhrase::Ptr'"/>

  <suppress-warning text="skipping function 'smtk::model::SimpleModelSubphrases::childrenOfMesh', unmatched parameter type 'smtk::model::MeshPhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SimpleModelSubphrases::childrenOfMeshList', unmatched parameter type 'smtk::model::MeshListPhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::addMeshPhrases', unmatched parameter type 'T const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::meshsetsOfCollectionByDim', unmatched parameter type 'smtk::model::MeshPhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::meshesOfModel', unmatched parameter type 'smtk::model::DescriptivePhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::meshesOfMeshList', unmatched parameter type 'smtk::model::MeshListPhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::SubphraseGenerator::meshsetsOfMesh', unmatched parameter type 'smtk::model::MeshPhrase::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::io::LoadJSON::ofMeshProperties', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forStringData', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forFloatData', unmatched parameter type 'cJSON*'"/>
  <suppress-warning text="skipping function 'smtk::io::SaveJSON::forIntegerData', unmatched parameter type 'cJSON*'"/>

  <suppress-warning text="skipping field 'Format::Read' with unmatched type 'std::bitset&gt;'"/>
  <suppress-warning text="skipping function 'smtk::io::mesh::Format::Format', unmatched parameter type 'smtk::io::mesh::Format::IOFlags'"/>
  <suppress-warning text="skipping field 'Format::Write' with unmatched type 'std::bitset&gt;'"/>
  <suppress-warning text="skipping field 'Format::Flags' with unmatched type 'std::bitset&gt;'"/>
  <suppress-warning text="skipping function 'smtk::io::mesh::MeshIOXMS::exportMesh', unmatched parameter type 'std::ostream&amp;'"/>
  <suppress-warning text="skipping field 'Format::Export' with unmatched type 'std::bitset&gt;'"/>
  <suppress-warning text="skipping field 'Format::Import' with unmatched type 'std::bitset&gt;'"/>
  <suppress-warning text="skipping function 'smtk::io::mesh::MeshIO::write', unmatched parameter type 'Subset'"/>
  <suppress-warning text="skipping function 'smtk::io::WriteMesh::operator()', unmatched parameter type 'mesh::Subset'"/>
  <suppress-warning text="skipping function 'smtk::io::ReadMesh::operator()', unmatched parameter type 'mesh::Subset'"/>
  <suppress-warning text="skipping function 'smtk::io::mesh::MeshIO::read', unmatched parameter type 'Subset'"/>
  <suppress-warning text="skipping field 'ExportMesh::IO' with unmatched type 'std::vector&lt;smtk::io::mesh::MeshIOPtr&gt;'"/>
  <suppress-warning text="skipping field 'ImportMesh::IO' with unmatched type 'std::vector&lt;smtk::io::mesh::MeshIOPtr&gt;'"/>
  <suppress-warning text="skipping field 'ReadMesh::IO' with unmatched type 'std::vector&lt;smtk::io::mesh::MeshIOPtr&gt;'"/>
  <suppress-warning text="skipping field 'WriteMesh::IO' with unmatched type 'std::vector&lt;smtk::io::mesh::MeshIOPtr&gt;'"/>
  <suppress-warning text="skipping function 'smtk::io::writeMesh', unmatched parameter type 'mesh::Subset'"/>
  <suppress-warning text="skipping function 'smtk::io::readMesh', unmatched parameter type 'mesh::Subset'"/>

  <suppress-warning text="skipping function 'smtk::mesh::Manager::collectionBegin', unmatched return type 'smtk::mesh::Manager::const_iterator'"/>
  <suppress-warning text="skipping function 'smtk::model::Operator::setMeshManager', unmatched return type 'smtk::model::Operator::Ptr'"/>
  <suppress-warning text="template baseclass 'smtk::enable_shared_from_this&lt;Collection&gt;' of 'Collection' is not known"/>
  <suppress-warning text="skipping function 'smtk::mesh::Manager::findCollection', unmatched return type 'smtk::mesh::Manager::const_iterator'"/>
  <suppress-warning text="skipping function 'smtk::mesh::Manager::collectionEnd', unmatched return type 'smtk::mesh::Manager::const_iterator'"/>
  <suppress-warning text="template baseclass 'std::bitset&lt;CellType_MAX&gt;' of 'CellTypes' is not known"/>
  <suppress-warning text="skipping function 'smtk::mesh::Collection::interface', unmatched return type 'smtk::mesh::InterfacePtr const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::mesh::Collection::readLocation', unmatched return type 'smtk::common::FileLocation const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::mesh::Collection::readLocation', unmatched parameter type 'smtk::common::FileLocation const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::mesh::Collection::writeLocation', unmatched parameter type 'smtk::common::FileLocation const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::mesh::Collection::writeLocation', unmatched return type 'smtk::common::FileLocation const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::mesh::Collection::findAssociatedMeshes', unmatched parameter type 'smtk::model::EntityIterator&amp;'"/>
  <suppress-warning text="skipping function 'smtk::mesh::Collection::findAssociatedTypes', unmatched parameter type 'smtk::model::EntityIterator&amp;'"/>
  <suppress-warning text="skipping function 'smtk::mesh::Collection::findAssociatedCells', unmatched parameter type 'smtk::model::EntityIterator&amp;'"/>
  <suppress-warning text="skipping function 'smtk::mesh::PointSet::PointSet', unmatched parameter type 'smtk::mesh::ConstCollectionPtr const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::mesh::CellSet::CellSet', unmatched parameter type 'smtk::mesh::ConstCollectionPtr const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::resources', unmatched return type 'smtk::common::ConstResourceSetPtr'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::resources', unmatched return type 'smtk::common::ResourceSetPtr'"/>
  <suppress-warning text="skipping field 'Manager::m_resources' with unmatched type 'smtk::shared_ptr&lt;common::ResourceSet&gt;'"/>
  <suppress-warning text="skipping field 'Manager::m_conditionTriggers' with unmatched type 'std::set&lt;ConditionTrigger&gt;'"/>
  <suppress-warning text="skipping field 'Manager::m_oneToOneTriggers' with unmatched type 'std::set&lt;OneToOneTrigger&gt;'"/>
  <suppress-warning text="skipping field 'Manager::m_oneToManyTriggers' with unmatched type 'std::set&lt;OneToManyTrigger&gt;'"/>
  <suppress-warning text="skipping field 'Manager::m_operatorTriggers' with unmatched type 'std::set&lt;BareOperatorTrigger&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::unobserve', unmatched parameter type 'smtk::model::OneToOneCallback'"/>
  <suppress-warning text="skipping field 'DescriptivePhrase::m_parent' with unmatched type 'smtk::weak_ptr&lt;smtk::model::DescriptivePhrase&gt;'"/>
  <suppress-warning text="skipping function 'smtk::io::AttributeReader::readContents', unmatched parameter type 'pugi::xml_node&amp;'" />
  <suppress-warning text="skipping function 'smtk::io::ResourceSetReader::readIncludedManager', unmatched parameter type 'pugi::xml_node const&amp;'"/>
  <suppress-warning text="skipping function 'smtk::io::ResourceSetReader::readEmbeddedAttSystem', unmatched parameter type 'pugi::xml_node&amp;'"/>
  <suppress-warning text="skipping function 'smtk::model::Session::createIODelegate', unmatched return type 'smtk::model::SessionIOPtr'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::findEntitiesByPropertyAs', unmatched return type 'Collection'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::associations', unmatched return type 'smtk::attribute::ConstModelEntityItemPtr'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::findVoid', unmatched return type 'smtk::attribute::ConstVoidItemPtr'"/>
  <suppress-warning text="skipping function 'smtk::common::ResourceSet::getWrapper', unmatched return type 'smtk::common::ResourceWrapper*'"/>
  <suppress-warning text="skipping function 'smtk::bridge::polygon::Session::findStorageIterator', unmatched return type 'internal::EntityIdToPtr::iterator'"/>
  <suppress-warning text="skipping function 'smtk::bridge::polygon::Session::beginStorage', unmatched return type 'internal::EntityIdToPtr::iterator'"/>
  <suppress-warning text="skipping function 'smtk::bridge::polygon::Session::endStorage', unmatched return type 'internal::EntityIdToPtr::iterator'"/>

  <!-- Platform-specific warnings induced by system headers -->
  <suppress-warning text="enum '__codecvt_result' does not have a type entry or is not an enum"/>
  <suppress-warning text="enum 'smtk::model::ModificationResolution' does not have a type entry or is not an enum"/>
  <suppress-warning text="enum 'FP_NORMAL' does not have a type entry or is not an enum"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_::int8_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_::int8_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_::uint8_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_::uint8_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_::int16_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_::int16_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_::uint16_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_::uint16_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_::int32_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_::int32_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_::uint32_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_::uint32_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_::int64_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_::int64_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_::uint64_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_::uint64_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_::intptr_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_::intptr_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_::uintptr_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_::uintptr_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_SIGN_::int8_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_SIGN_::int8_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_SIGN_::uint8_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_SIGN_::uint8_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_SIGN_::int16_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_SIGN_::int16_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_SIGN_::uint16_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_SIGN_::uint16_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_SIGN_::int32_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_SIGN_::int32_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_SIGN_::uint32_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_SIGN_::uint32_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_SIGN_::int64_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_SIGN_::int64_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_SIGN_::uint64_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_SIGN_::uint64_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_SIGN_::intptr_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_SIGN_::intptr_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_SIGN_::uintptr_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for symbol:KWIML_INT_detail_VERIFY_SIGN_::uintptr_t_v1"/>
  <suppress-warning text="\*\* WARNING scope not found for function definition:vtkBuffer&lt;ScalarT&gt;::New definition \*ignored\*"/>
  <suppress-warning text="\*\* WARNING scope not found for function definition:vtkBuffer&lt;ScalarT&gt;::SetBuffer definition \*ignored\*"/>
  <suppress-warning text="\*\* WARNING scope not found for function definition:vtkBuffer&lt;ScalarT&gt;::Allocate definition \*ignored\*"/>
  <suppress-warning text="\*\* WARNING scope not found for function definition:vtkBuffer&lt;ScalarT&gt;::Reallocate definition \*ignored\*"/>

  <!-- Ignore until we have time to support Operators -->
  <suppress-warning text="skipping field 'Manager::m_defaultSession' with unmatched type 'smtk::shared_ptr&lt;Session&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::shared_from_this', unmatched return type 'smtk::shared_ptr&lt;const smtk::model::Manager::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::Session::findOperatorXMLInternal', unmatched parameter type 'smtk::model::OperatorConstructors const*'"/>
  <suppress-warning text="skipping function 'smtk::model::Model::operators', unmatched return type 'smtk::model::Operators'"/>
  <suppress-warning text="skipping function 'smtk::model::EntityListPhrase::shared_from_this', unmatched return type 'smtk::shared_ptr&lt;const smtk::model::EntityListPhrase::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::EntityPhrase::shared_from_this', unmatched return type 'smtk::shared_ptr&lt;const smtk::model::EntityPhrase::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::SimpleModelSubphrases::shared_from_this', unmatched return type 'smtk::shared_ptr&lt;const smtk::model::SimpleModelSubphrases::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::Operator::setManager', unmatched return type 'smtk::model::Operator::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::Operator::setSession', unmatched return type 'smtk::model::Operator::Ptr'"/>
  <suppress-warning text="skipping function 'smtk::model::Operator::associatedEntitiesAs', unmatched return type 'T'"/>

  <!-- Ignore until we have time to support moab interfaces -->
  <suppress-warning text="skipping function 'smtk::mesh::moab::make_interface', unmatched return type 'smtk::mesh::moab::InterfacePtr'"/>
  <suppress-warning text="skipping function 'smtk::mesh::moab::extract_interface', unmatched return type 'smtk::mesh::moab::InterfacePtr'"/>
  <suppress-warning text="skipping function 'smtk::mesh::moab::extract_moab_interface', unmatched return type 'moab::Interface*'"/>
  <suppress-warning text="skipping function 'smtk::mesh::Interface::allocator', unmatched return type 'smtk::mesh::AllocatorPtr'"/>
  <suppress-warning text="skipping function 'smtk::mesh::Interface::connectivityStorage', unmatched return type 'smtk::mesh::ConnectivityStoragePtr'"/>
  <suppress-warning text="skipping function 'smtk::mesh::Interface::connectivityStorage', unmatched return type 'smtk::mesh::ConnectivityStoragePtr'"/>
  <suppress-warning text="skipping function 'smtk::mesh::Manager::create', unmatched return type 'smtk::shared_ptr&lt;smtk::mesh::Manager::SelfType&gt;'" />
  <suppress-warning text="skipping function 'smtk::mesh::Collection::create', unmatched return type 'smtk::shared_ptr&lt;smtk::mesh::Collection::SelfType&gt;'" />
  <suppress-warning text="class not found for setup inheritance 'smtk::mesh::UUIDTag'"/>
  <suppress-warning text="class 'Model' inherits from unknown base class 'smtk::mesh::UUIDTag'" />
  <suppress-warning text="class 'HandleRange' inherits from unknown base class 'smtk::mesh::moab::HandleRange'"/>
  <suppress-warning text="class not found for setup inheritance 'smtk::mesh::moab::HandleRange'"/>
  <suppress-warning text="template baseclass 'smtk::enable_shared_from_this&lt;Manager&gt;' of 'Manager' is not known"/>


  <suppress-warning text="skipping field 'Manager::s_sessions' with unmatched type 'std::map&lt;std::string,smtk::model::StaticSessionInfo&gt;'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::registerSession', unmatched parameter type 'smtk::model::SessionConstructor'"/>
  <suppress-warning text="skipping function 'smtk::model::Manager::sessionConstructor', unmatched return type 'smtk::model::SessionConstructor'"/>
  <suppress-warning text="skipping field 'Manager::m_sessions' with unmatched type 'std::map&lt;smtk::common::UUID,smtk::shared_ptr&lt;Session&gt;&gt;'"/>


  <suppress-warning text="template argument 'smtk::attribute::UUIDItemDefinition' of 'shared_ptr&lt; smtk::attribute::UUIDItemDefinition &gt;' is not known; not adding redirections"/>
  <suppress-warning text="template argument 'smtk::attribute::UUIDItem' of 'shared_ptr&lt; smtk::attribute::UUIDItem &gt;' is not known; not adding redirections"/>
  <suppress-warning text="type 'smtk::attribute::UUIDItem' is specified in typesystem, but not defined. This could potentially lead to compilation errors."/>
  <suppress-warning text="type 'smtk::attribute::UUIDItemDefinition' is specified in typesystem, but not defined. This could potentially lead to compilation errors."/>

  <suppress-warning text="skipping function 'smtk::attribute::Attribute::findInt', unmatched return type 'smtk::attribute::ConstIntItemPtr'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::findRef', unmatched return type 'smtk::attribute::ConstRefItemPtr'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::findFile', unmatched return type 'smtk::attribute::ConstFileItemPtr'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::findFile', unmatched return type 'smtk::attribute::ConstFileSystemItemPtr'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::findDirectory', unmatched return type 'smtk::attribute::ConstDirectoryItemPtr'"/>
  <suppress-warning text="skipping function 'smtk::model::Session::findOperatorConstructor', unmatched return type 'smtk::model::OperatorConstructor'"/>
  <suppress-warning text="skipping function 'smtk::model::Session::findOperatorConstructorInternal', unmatched return type 'smtk::model::OperatorConstructor'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::findDouble', unmatched return type 'smtk::attribute::ConstDoubleItemPtr'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::findString', unmatched return type 'smtk::attribute::ConstStringItemPtr'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::findModelEntity', unmatched return type 'smtk::attribute::ConstModelEntityItemPtr'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::findMeshSelection', unmatched return type 'smtk::attribute::ConstMeshSelectionItemPtr'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::findMeshSelection', unmatched return type 'smtk::attribute::MeshSelectionItemPtr'"/>
  <suppress-warning text="skipping function 'smtk::model::Operator::findMeshSelection', unmatched return type 'smtk::attribute::MeshSelectionItemPtr'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::findGroup', unmatched return type 'smtk::attribute::ConstGroupItemPtr'"/>
  <suppress-warning text="skipping function 'smtk::attribute::MeshSelectionItem::end', unmatched return type 'smtk::attribute::MeshSelectionItem::const_sel_map_it'"/>
  <suppress-warning text="skipping function 'smtk::attribute::MeshSelectionItem::begin', unmatched return type 'smtk::attribute::MeshSelectionItem::const_sel_map_it'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::findMesh', unmatched return type 'smtk::attribute::ConstMeshItemPtr'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::findMesh', unmatched return type 'smtk::attribute::MeshItemPtr'"/>
  <suppress-warning text="skipping function 'smtk::model::Operator::findMesh', unmatched return type 'smtk::attribute::MeshItemPtr'"/>
  <suppress-warning text="skipping function 'smtk::attribute::MeshItem::end', unmatched return type 'smtk::attribute::MeshItem::const_mesh_it'"/>
  <suppress-warning text="skipping function 'smtk::attribute::MeshItem::begin', unmatched return type 'smtk::attribute::MeshItem::const_mesh_it'"/>
  <suppress-warning text="skipping function 'smtk::attribute::Attribute::findDateTime', unmatched return type 'smtk::attribute::ConstDateTimeItemPtr'" />

  @EXTRA_TYPESYSTEMS@

  <primitive-type name="bool"/>
  <primitive-type name="double"/>
  <primitive-type name="real"/>
  <primitive-type name="int"/>
  <primitive-type name="short"/>
  <primitive-type name="unsigned short"/>
  <primitive-type name="ushort"/>
  <primitive-type name="unsigned int" />
  <primitive-type name="signed int" />
  <primitive-type name="char"/>
  <primitive-type name="unsigned char"/>
  <primitive-type name="long"/>
  <primitive-type name="unsigned long"/>
  <primitive-type name="long long"/>
  <primitive-type name="unsigned long long"/>

  <primitive-type name="std::size_t"/>
  <primitive-type name="std::ptrdiff_t"/>
  <primitive-type name="std::string"/>
  <primitive-type name="std::int64_t"/>
  <primitive-type name="smtk::common::UUID" target-lang-api-name="PyObject">
    <include file-name="smtk/common/UUID.h" location="global"/>

    <conversion-rule>
      <native-to-target>
        // Get the uuid module object
        PyObject* module = PyImport_ImportModule("uuid");
        // Call the class inside the module to create an instance
        unsigned char* data = %in.begin();
        PyObject* byteStr =
          Py_BuildValue("s#", data, %in.size());
        PyObject* none = Py_None;
        char v_uuid[]="UUID";
        char v_00[]="OO";
        PyObject* %out = PyObject_CallMethod(module, v_uuid, v_00, none, byteStr);
        // FIXME: This hardly seems wise, but http://docs.python.org/2/c-api/none.html
        //        says Py_None is reference-counted:
        Py_DECREF(none);
        Py_DECREF(byteStr);
        return %out;
      </native-to-target>
      <target-to-native>
        <add-conversion check="checkForUUID(%in)" type="PyObject">
          PyObject* uuidBytes = PyObject_GetAttrString(%in, "bytes");
          char* ustr = uuidBytes ? PyString_AsString(uuidBytes) : NULL;
          if (ustr) {
            for (int i = 0; i &lt; 16; ++i)
              *((%out).begin() + i) = ustr[i];
          }
        </add-conversion>
      </target-to-native>
    </conversion-rule>
  </primitive-type>
  <inject-code class="native" position="beginning">
    static bool checkForUUID(PyObject* pyObj)
    {
      std::string tmp(PyString_AsString(PyObject_Str(pyObj)));
      return tmp.find("SMTK") == std::string::npos &amp;&amp; tmp.find("-")==8 &amp;&amp;
             tmp.find("-", 9) == 13 &amp;&amp; tmp.find("-", 14) == 18 &amp;&amp;
             tmp.find("-", 19) == 23 &amp;&amp; tmp.find("-", 24) == std::string::npos;
    }
  </inject-code>

  <container-type name="std::pair" type="pair">
    <include file-name="utility" location="global"/>
    <conversion-rule>
      <native-to-target>
        PyObject* %out = PyTuple_New(2);
        PyTuple_SET_ITEM(%out, 0, %CONVERTTOPYTHON[%INTYPE_0](%in.first));
        PyTuple_SET_ITEM(%out, 1, %CONVERTTOPYTHON[%INTYPE_1](%in.second));
        return %out;
      </native-to-target>
      <target-to-native>
        <add-conversion type="PySequence">
          %out.first = %CONVERTTOCPP[%OUTTYPE_0](PySequence_Fast_GET_ITEM(%in, 0));
          %out.second = %CONVERTTOCPP[%OUTTYPE_1](PySequence_Fast_GET_ITEM(%in, 1));
        </add-conversion>
      </target-to-native>
    </conversion-rule>
  </container-type>

  <template name="cpplist_to_pylist_convertion">
    PyObject* %out = PyList_New((int) %in.size());
    %INTYPE::const_iterator it = %in.begin();
    for (int idx = 0; it != %in.end(); ++it, ++idx) {
    %INTYPE_0 cppItem(*it);
    PyList_SET_ITEM(%out, idx, %CONVERTTOPYTHON[%INTYPE_0](cppItem));
    }
    return %out;
  </template>

  <template name="pyseq_to_cpplist_convertion">
    Shiboken::AutoDecRef seq(PySequence_Fast(%in, 0));
    for (int i = 0; i != PySequence_Fast_GET_SIZE(seq.object()); i++) {
    PyObject* pyItem = PySequence_Fast_GET_ITEM(seq.object(), i);
    %OUTTYPE_0 cppItem = %CONVERTTOCPP[%OUTTYPE_0](pyItem);
    %out.push_back(cppItem);
    }
  </template>

  <!-- Code to allow us to wrap std::lists -->
  <container-type name="std::list" type="list">
    <include file-name="list" location="global"/>
    <conversion-rule>
      <native-to-target>
        PyObject* %out = PyList_New((int) %in.size());
        %INTYPE::const_iterator it = %in.begin();
        for (int idx = 0; it != %in.end(); ++it, ++idx) {
        %INTYPE_0 cppItem(*it);
        PyList_SET_ITEM(%out, idx, %CONVERTTOPYTHON[%INTYPE_0](cppItem));
        }
        return %out;
      </native-to-target>
      <target-to-native>
        <add-conversion type="PySequence">
          Shiboken::AutoDecRef seq(PySequence_Fast(%in, 0));
          for (int i = 0; i != PySequence_Fast_GET_SIZE(seq.object()); i++) {
          PyObject* pyItem = PySequence_Fast_GET_ITEM(seq.object(), i);
          %OUTTYPE_0 cppItem = %CONVERTTOCPP[%OUTTYPE_0](pyItem);
          %out.push_back(cppItem);
          }
        </add-conversion>
      </target-to-native>
    </conversion-rule>
  </container-type>

  <!-- Code to allow us to wrap std::vectors -->
  <container-type name="std::vector" type="vector">
    <include file-name="vector" location="global"/>
    <conversion-rule>
      <native-to-target>
        %INTYPE::size_type vectorSize = %in.size();
        PyObject* %out = PyList_New((int) vectorSize);
        for (%INTYPE::size_type idx = 0; idx != vectorSize; ++idx) {
        %INTYPE_0 cppItem(%in[idx]);
        PyList_SET_ITEM(%out, idx, %CONVERTTOPYTHON[%INTYPE_0](cppItem));
        }
        return %out;
      </native-to-target>
      <target-to-native>
        <add-conversion type="PySequence">
          Shiboken::AutoDecRef seq(PySequence_Fast(%in, 0));
          int vectorSize = PySequence_Fast_GET_SIZE(seq.object());
          %out.reserve(vectorSize);
          for (int idx = 0; idx != vectorSize; ++idx ) {
          PyObject* pyItem = PySequence_Fast_GET_ITEM(seq.object(), idx);
          %OUTTYPE_0 cppItem = %CONVERTTOCPP[%OUTTYPE_0](pyItem);
          %out.push_back(cppItem);
          }
        </add-conversion>
      </target-to-native>
    </conversion-rule>
  </container-type>

  <!-- Code to allow us to wrap std::maps -->
  <container-type name="std::map" type="map">
    <include file-name="map" location="global"/>
    <conversion-rule>
      <native-to-target>
        PyObject* %out = PyDict_New();
        %INTYPE::const_iterator it = %in.begin();
        for (; it != %in.end(); ++it) {
        %INTYPE_0 key = it->first;
        %INTYPE_1 value = it->second;
        PyDict_SetItem(%out,
        %CONVERTTOPYTHON[%INTYPE_0](key),
        %CONVERTTOPYTHON[%INTYPE_1](value));
        }
        return %out;
      </native-to-target>
      <target-to-native>
        <add-conversion type="PyDict">
          PyObject* key;
          PyObject* value;
          Py_ssize_t pos = 0;
          while (PyDict_Next(%in, &amp;pos, &amp;key, &amp;value)) {
          %OUTTYPE_0 cppKey = %CONVERTTOCPP[%OUTTYPE_0](key);
          %OUTTYPE_1 cppValue = %CONVERTTOCPP[%OUTTYPE_1](value);
          %out.insert(%OUTTYPE::value_type(cppKey, cppValue));
          }
        </add-conversion>
      </target-to-native>
    </conversion-rule>
  </container-type>

  <!-- Code to allow us to wrap google::sparse_hash_maps -->
  <container-type name="google::sparse_hash_map" type="hash">
    <include file-name="sparsehash/sparse_hash_map" location="global"/>
    <conversion-rule>
      <native-to-target>
        PyObject* %out = PyDict_New();
        %INTYPE::const_iterator it = %in.begin();
        for (; it != %in.end(); ++it) {
        %INTYPE_0 key = it->first;
        %INTYPE_1 value = it->second;
        PyDict_SetItem(%out,
        %CONVERTTOPYTHON[%INTYPE_0](key),
        %CONVERTTOPYTHON[%INTYPE_1](value));
        }
        return %out;
      </native-to-target>
      <target-to-native>
        <add-conversion type="PyDict">
          PyObject* key;
          PyObject* value;
          Py_ssize_t pos = 0;
          while (PyDict_Next(%in, &amp;pos, &amp;key, &amp;value)) {
          %OUTTYPE_0 cppKey = %CONVERTTOCPP[%OUTTYPE_0](key);
          %OUTTYPE_1 cppValue = %CONVERTTOCPP[%OUTTYPE_1](value);
          %out.insert(%OUTTYPE::value_type(cppKey, cppValue));
          }
        </add-conversion>
      </target-to-native>
    </conversion-rule>
  </container-type>

 <container-type name="std::set" type="set">
    <include file-name="set" location="global"/>

    <conversion-rule>

      <native-to-target>
      PyObject* %out = PySet_New(0);
      %INTYPE::const_iterator it;
      for (it = %in.begin(); it != %in.end(); ++it) {
        %INTYPE_0 value = *it;
        PyObject* pyValue = %CONVERTTOPYTHON[%INTYPE_0](value);
        PySet_Add(%out, pyValue);
      }
      return %out;
      </native-to-target>

      <target-to-native>

        <add-conversion type="PySet">
        Shiboken::AutoDecRef iter(PyObject_GetIter(%in));
        if (iter.object()) {
          PyObject* item;
          while ((item = PyIter_Next(iter))) {
            %OUTTYPE_0 cppItem = %CONVERTTOCPP[%OUTTYPE_0](item);
            %out.insert(cppItem);
            Py_DECREF(item);
          }
        }
        </add-conversion>

        <add-conversion type="PySequence">
        Shiboken::AutoDecRef seq(PySequence_Fast(%in, 0));
        Py_ssize_t vectorSize = PySequence_Fast_GET_SIZE(seq.object());
        for (Py_ssize_t idx = 0; idx &lt; vectorSize; ++idx) {
          PyObject* pyItem = PySequence_Fast_GET_ITEM(seq.object(), idx);
          %OUTTYPE_0 cppItem = %CONVERTTOCPP[%OUTTYPE_0](pyItem);
          %out.insert(cppItem);
        }
        </add-conversion>

      </target-to-native>

    </conversion-rule>
  </container-type>


  <!-- setup the shared pointer type outside the namespaces -->
  <type-template name="smtk::shared_ptr">
    <include file-name="memory" location="global"/>
    <arg wraps-pointer-as="%CPPSELF-&gt;get()"/>
  </type-template>

  <value-type template="smtk::shared_ptr" args="const smtk::attribute::Definition">
    <modify-function signature="addItemDefinition(smtk::shared_ptr&lt; smtk::attribute::ItemDefinition &gt; )" remove="all"/>
    <modify-function signature="removeItemDefinition(smtk::shared_ptr&lt; smtk::attribute::ItemDefinition &gt; )" remove="all"/>
    <modify-function signature="setAdvanceLevel(int)" remove="all"/>
    <modify-function signature="setAssociationRule(smtk::shared_ptr&lt;smtk::attribute::ModelEntityItemDefinition&gt;)" remove="all"/>
    <modify-function signature="setAssociationMask(unsigned int)" remove="all"/>
    <modify-function signature="setDefaultColor(const double *)" remove="all"/>
    <modify-function signature="setDefaultColor(double, double, double, double)" remove="all"/>
    <modify-function signature="unsetNotApplicableColor()" remove="all"/>
    <modify-function signature="unsetDefaultColor()" remove="all"/>
    <modify-function signature="resetItemOffset()" remove="all"/>
    <modify-function signature="setVersion(int)" remove="all"/>
    <modify-function signature="setNotApplicableColor(const double *)" remove="all"/>
    <modify-function signature="setNotApplicableColor(double, double, double, double)" remove="all"/>
    <modify-function signature="setIsUnique(bool)" remove="all"/>
    <modify-function signature="setIsNodal(bool)" remove="all"/>
    <modify-function signature="setIsAbstract(bool)" remove="all"/>
    <modify-function signature="setBriefDescription(const std::string &amp;)" remove="all"/>
    <modify-function signature="setDetailedDescription(const std::string &amp;)" remove="all"/>
    <modify-function signature="setLabel(const std::string &amp;)" remove="all"/>
    <modify-function signature="setRootName(const std::string &amp;)" remove="all"/>
  </value-type>

  <value-type template="smtk::shared_ptr" args="const smtk::attribute::Item">
    <modify-function signature="assign(smtk::shared_ptr&lt; const  smtk::attribute::Item &gt; &amp;,unsigned int)" remove="all"/>
    <modify-function signature="setAdvanceLevel(int,int)" remove="all"/>
    <modify-function signature="unsetAdvanceLevel(int)" remove="all"/>
    <modify-function signature="setUserData(const std::string &amp;, smtk::shared_ptr&lt; smtk::simulation::UserData &gt; )"  remove="all"/>
    <modify-function signature="reset()" remove="all"/>
    <modify-function signature="detachOwningItem()" remove="all"/>
    <modify-function signature="detachOwningAttribute()" remove="all"/>
    <modify-function signature="clearUserData(const std::string &amp;)" remove="all"/>
    <modify-function signature="clearAllUserData()" remove="all"/>
    <modify-function signature="setIsEnabled(bool)" remove="all"/>
  </value-type>

  <value-type template="smtk::shared_ptr" args="const smtk::attribute::ItemDefinition" >
    <modify-function signature="setAdvanceLevel(int)" remove="all"/>
    <modify-function signature="setAdvanceLevel(int,int)" remove="all"/>
    <modify-function signature="setVersion(int)" remove="all"/>
    <modify-function signature="setBriefDescription(const std::string &amp;)" remove="all"/>
    <modify-function signature="setDetailedDescription(const std::string &amp;)" remove="all"/>
    <modify-function signature="setLabel(const std::string &amp;)" remove="all"/>
    <modify-function signature="setVersion(int)" remove="all"/>
    <modify-function signature="setIsOptional(bool)" remove="all"/>
    <modify-function signature="setIsEnabledByDefault(bool)" remove="all"/>
    <modify-function signature="addCategory(const std::string &amp;)" remove="all"/>
    <modify-function signature="removeCategory(const std::string &amp;)" remove="all"/>
  </value-type>

  <value-type template="smtk::shared_ptr" args="smtk::model::Session"/>
  <value-type template="smtk::shared_ptr" args="smtk::model::DescriptivePhrase"/>
  <value-type template="smtk::shared_ptr" args="smtk::model::EntityPhrase"/>
  <value-type template="smtk::shared_ptr" args="smtk::model::EntityListPhrase"/>
  <value-type template="smtk::shared_ptr" args="smtk::model::MeshPhrase"/>
  <value-type template="smtk::shared_ptr" args="smtk::model::MeshListPhrase"/>
  <value-type template="smtk::shared_ptr" args="smtk::model::SubphraseGenerator"/>
  <value-type template="smtk::shared_ptr" args="smtk::model::SimpleModelSubphrases"/>
  <value-type template="smtk::shared_ptr" args="smtk::model::Operator">
    <add-function
      signature="findAsInt(const std::string &amp;)" static="no"
      return-type="smtk::shared_ptr&lt; smtk::attribute::IntItem &gt;">
      <inject-code>
        smtk::shared_ptr&lt; smtk::attribute::IntItem &gt; result =
          %CPPSELF->get()->specification()->findAs&lt;smtk::attribute::IntItem&gt;(%1, smtk::attribute::ALL_CHILDREN);
        return %CONVERTTOPYTHON[ smtk::shared_ptr&lt; smtk::attribute::IntItem &gt; ](result);
      </inject-code>
    </add-function>
    <add-function
      signature="findAsDouble(const std::string &amp;)" static="no"
      return-type="smtk::shared_ptr&lt; smtk::attribute::DoubleItem &gt;">
      <inject-code>
        smtk::shared_ptr&lt; smtk::attribute::DoubleItem &gt; result =
          %CPPSELF->get()->specification()->findAs&lt;smtk::attribute::DoubleItem&gt;(%1, smtk::attribute::ALL_CHILDREN);
        return %CONVERTTOPYTHON[ smtk::shared_ptr&lt; smtk::attribute::DoubleItem &gt; ](result);
      </inject-code>
    </add-function>
    <add-function
      signature="findAsString(const std::string &amp;)" static="no"
      return-type="smtk::shared_ptr&lt; smtk::attribute::StringItem &gt;">
      <inject-code>
        smtk::shared_ptr&lt; smtk::attribute::StringItem &gt; result =
          %CPPSELF->get()->specification()->findAs&lt;smtk::attribute::StringItem&gt;(%1, smtk::attribute::ALL_CHILDREN);
        return %CONVERTTOPYTHON[ smtk::shared_ptr&lt; smtk::attribute::StringItem &gt; ](result);
      </inject-code>
    </add-function>
    <add-function
      signature="findAsFile(const std::string &amp;)" static="no"
      return-type="smtk::shared_ptr&lt; smtk::attribute::FileItem &gt;">
      <inject-code>
        smtk::shared_ptr&lt; smtk::attribute::FileItem &gt; result =
          %CPPSELF->get()->specification()->findAs&lt;smtk::attribute::FileItem&gt;(%1, smtk::attribute::ALL_CHILDREN);
        return %CONVERTTOPYTHON[ smtk::shared_ptr&lt; smtk::attribute::FileItem &gt; ](result);
      </inject-code>
    </add-function>
    <add-function
      signature="findAsDirectory(const std::string &amp;)" static="no"
      return-type="smtk::shared_ptr&lt; smtk::attribute::DirectoryItem &gt;">
      <inject-code>
        smtk::shared_ptr&lt; smtk::attribute::DirectoryItem &gt; result =
          %CPPSELF->get()->specification()->findAs&lt;smtk::attribute::DirectoryItem&gt;(%1, smtk::attribute::ALL_CHILDREN);
        return %CONVERTTOPYTHON[ smtk::shared_ptr&lt; smtk::attribute::DirectoryItem &gt; ](result);
      </inject-code>
    </add-function>
    <add-function
      signature="findAsGroup(const std::string &amp;)" static="no"
      return-type="smtk::shared_ptr&lt; smtk::attribute::GroupItem &gt;">
      <inject-code>
        smtk::shared_ptr&lt; smtk::attribute::GroupItem &gt; result =
          %CPPSELF->get()->specification()->findAs&lt;smtk::attribute::GroupItem&gt;(%1, smtk::attribute::ALL_CHILDREN);
        return %CONVERTTOPYTHON[ smtk::shared_ptr&lt; smtk::attribute::GroupItem &gt; ](result);
      </inject-code>
    </add-function>
    <add-function
      signature="findAsRef(const std::string &amp;)" static="no"
      return-type="smtk::shared_ptr&lt; smtk::attribute::RefItem &gt;">
      <inject-code>
        smtk::shared_ptr&lt; smtk::attribute::RefItem &gt; result =
          %CPPSELF->get()->specification()->findAs&lt;smtk::attribute::RefItem&gt;(%1, smtk::attribute::ALL_CHILDREN);
        return %CONVERTTOPYTHON[ smtk::shared_ptr&lt; smtk::attribute::RefItem &gt; ](result);
      </inject-code>
    </add-function>
    <add-function
      signature="findAsModelEntity(const std::string &amp;)" static="no"
      return-type="smtk::shared_ptr&lt; smtk::attribute::ModelEntityItem &gt;">
      <inject-code>
        smtk::shared_ptr&lt; smtk::attribute::ModelEntityItem &gt; result =
          %CPPSELF->get()->specification()->findAs&lt;smtk::attribute::ModelEntityItem&gt;(%1, smtk::attribute::ALL_CHILDREN);
        return %CONVERTTOPYTHON[ smtk::shared_ptr&lt; smtk::attribute::ModelEntityItem &gt; ](result);
      </inject-code>
    </add-function>
  </value-type>
  <value-type template="smtk::shared_ptr" args="smtk::model::Manager">
    <modify-function signature="arrangeEntity(smtk::common::UUID,smtk::model::ArrangementKind,smtk::model::Arrangement,int)">
      <inject-code class="target" position="beginning">
        %RETURN_TYPE result = %CPPSELF->get()->arrangeEntity(%1,%2,*%3,%4);
        %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](result);
      </inject-code>
    </modify-function>
    <add-function signature="setTessellation(smtk::common::UUID&amp;,smtk::model::Tessellation&amp;)"
      static="NO"
      return-type="std::pair&lt;smtk::common::UUID,smtk::model::Tessellation&gt;">
      <inject-code>
        smtk::model::Manager::tess_iter_type i = %CPPSELF-&gt;get()-&gt;setTessellation(%1, %2);
        %RETURN_TYPE %0 = *i;
        %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
      </inject-code>
    </add-function>
    <add-function signature="setTessellationAndBoundingBox(smtk::common::UUID&amp;,smtk::model::Tessellation&amp;)"
      static="NO"
      return-type="std::pair&lt;smtk::common::UUID,smtk::model::Tessellation&gt;">
      <inject-code>
        smtk::model::Manager::tess_iter_type i = %CPPSELF-&gt;get()-&gt;setTessellationAndBoundingBox(%1, %2);
        %RETURN_TYPE %0 = *i;
        %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
      </inject-code>
    </add-function>
    <!--
    <add-function signature="topology()"
      return-type="google::sparse_hash_map&lt;smtk::common::UUID,smtk::model::Entity&gt;">
      <inject-code class="target" position="beginning">
        %RETURN_TYPE %0 = %CPPSELF-&gt;get()-&gt;topology();
        %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
      </inject-code>
    </add-function>
    -->
    <add-function signature="insertEntityOfTypeAndDimension(int, int)"
      static="NO"
      return-type="std::pair&lt;smtk::common::UUID,smtk::model::Entity&gt;">
      <inject-code class="target" position="beginning">
        %RETURN_TYPE %0 = *(%CPPSELF-&gt;get()-&gt;insertEntityOfTypeAndDimension(%1,%2));
        %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
      </inject-code>
    </add-function>
    <add-function signature="insertEntity(smtk::model::Entity&amp;)"
      static="NO"
      return-type="std::pair&lt;smtk::common::UUID,smtk::model::Entity&gt;">
      <inject-code class="target" position="beginning">
        %RETURN_TYPE %0 = *(%CPPSELF-&gt;get()-&gt;insertEntity(%1));
        %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
      </inject-code>
    </add-function>
    <add-function signature="setEntityOfTypeAndDimension(const smtk::common::UUID&amp;, int, int)"
      static="NO"
      return-type="std::pair&lt;smtk::common::UUID,smtk::model::Entity&gt;">
      <inject-code class="target" position="beginning">
        %RETURN_TYPE %0 = *(%CPPSELF-&gt;get()-&gt;setEntityOfTypeAndDimension(%1,%2,%3));
        %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
      </inject-code>
    </add-function>
    <add-function signature="setEntity(const smtk::common::UUID&amp;, smtk::model::Entity&amp;)"
      static="NO"
      return-type="std::pair&lt;smtk::common::UUID,smtk::model::Entity&gt;">
      <inject-code class="target" position="beginning">
        %RETURN_TYPE %0 = *(%CPPSELF-&gt;get()-&gt;setEntity(%1,%2));
        %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
      </inject-code>
    </add-function>
    <add-function signature="insertCellOfDimension(int)"
      static="NO"
      return-type="std::pair&lt;smtk::common::UUID,smtk::model::Entity&gt;">
      <inject-code class="target" position="beginning">
        %RETURN_TYPE %0 = *(%CPPSELF-&gt;get()-&gt;insertCellOfDimension(%1));
        %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
      </inject-code>
    </add-function>
    <add-function signature="setCellOfDimension(const smtk::common::UUID&amp;, int)"
      static="NO"
      return-type="std::pair&lt;smtk::common::UUID,smtk::model::Entity&gt;">
      <inject-code class="target" position="beginning">
        %RETURN_TYPE %0 = *(%CPPSELF-&gt;get()-&gt;setCellOfDimension(%1,%2));
        %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
      </inject-code>
    </add-function>
    <add-function signature="pointerAsString()"
      static="NO"
      return-type="std::string">
      <inject-code class="target" position="beginning">
        std::ostringstream result;
        result &lt;&lt; %CPPSELF-&gt;get();
        %RETURN_TYPE %0 = result.str();
        %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
      </inject-code>
    </add-function>

    <!-- Fix improper dereferencing and/or Python conversion of entityref methods -->
    <!--
         Methods that take an argument of the form "const EntityRef&" (or some EntityRef
         subclass) do not properly dereference the pointer to the entityref which is
         what the Python wrapper actually holds.
           Example: "addChain(%1))" becomes "addChain(*%1))"

         Methods that return a EntityRef instance (or subclass instance) by value
         do not properly create a pointer to the instance instead of the
         value itself. The Python converter must have a pointer to wrap, not a
         value. We use the copy constructor to create a pointer that can be
         wrapped properly.
           Example:
             "%RETURN_TYPE result = %CPPSELF-&gt;get()-&gt;addVertex()"
             becomes
             "%RETURN_TYPE* result = new %RETURN_TYPE(%CPPSELF-&gt;get()-&gt;addVertex())"
         -->

  </value-type>
  <value-type template="smtk::shared_ptr" args="smtk::model::GridInfo"/>

  <value-type template="smtk::shared_ptr" args="smtk::attribute::Attribute">
    <add-function
      signature="find(const std::string &amp;)" static="no"
      return-type="smtk::shared_ptr&lt; smtk::attribute::Item &gt;">
      <inject-code>
        smtk::shared_ptr&lt; smtk::attribute::Item &gt; result =
          %CPPSELF->get()->find(%1, smtk::attribute::ACTIVE_CHILDREN);
        %PYARG_0 = %CONVERTTOPYTHON[ smtk::shared_ptr&lt; smtk::attribute::Item &gt; ](result);
      </inject-code>
    </add-function>
    <modify-function signature="find(const std::string &amp;, smtk::attribute::SearchStyle)">
      <modify-argument index="return">
        <replace-type modified-type="smtk::shared_ptr&lt; smtk::attribute::Item &gt;" />
      </modify-argument>
      <inject-code class="target" position="beginning">
        smtk::shared_ptr&lt; smtk::attribute::Item &gt; result = %CPPSELF->get()->find(%1, %2);
        %PYARG_0 = %CONVERTTOPYTHON[ smtk::shared_ptr&lt; smtk::attribute::Item &gt; ](result);
      </inject-code>
    </modify-function>
    <modify-function signature="references(std::vector&lt;smtk::shared_ptr&lt;smtk::attribute::Item &gt; &gt;&amp;)">
      <modify-argument index="1">
        <remove-argument />
      </modify-argument>
      <modify-argument index="return">
        <replace-type modified-type="std::vector&lt;smtk::shared_ptr&lt;smtk::attribute::Item &gt; &gt;" />
      </modify-argument>
      <inject-code class="target" position="beginning">
        std::vector&lt;smtk::shared_ptr&lt;smtk::attribute::Item &gt; &gt; _out;
        %CPPSELF->get()->references(_out);
        %PYARG_0 = %CONVERTTOPYTHON[std::vector&lt;smtk::shared_ptr&lt;smtk::attribute::Item &gt; &gt;](_out);
      </inject-code>
    </modify-function>
        <add-function signature="associatedEntities()"
                      return-type="std::vector&lt;smtk::model::EntityRef*&gt;" static="no">
          <inject-code>
            smtk::model::EntityRefArray tmp =
              (*%CPPSELF)-&gt;associatedModelEntities&lt;smtk::model::EntityRefArray&gt;();
            %RETURN_TYPE %0;
            for (smtk::model::EntityRefArray::iterator it = tmp.begin(); it != tmp.end(); ++it)
              %0.push_back(new smtk::model::EntityRef(*it));
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
  </value-type>

  <value-type template="smtk::shared_ptr" args="smtk::attribute::Definition" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::RefItem" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::RefItemDefinition" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::Item" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::ItemDefinition" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::ValueItem" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::DateTimeItem" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::DateTimeItemDefinition" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::ValueItemDefinition" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::DirectoryItem" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::DirectoryItemDefinition" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::DoubleItem" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::DoubleItemDefinition" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::FileItem" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::FileItemDefinition" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::FileSystemItem" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::FileSystemItemDefinition" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::GroupItem">
    <modify-function signature="find(const std::string &amp;)">
      <modify-argument index="return">
        <replace-type modified-type="smtk::shared_ptr&lt; smtk::attribute::Item &gt;" />
      </modify-argument>
      <inject-code class="target" position="beginning">
        smtk::shared_ptr&lt; smtk::attribute::Item &gt; result = %CPPSELF-&gt;get()->find(%1);
        %PYARG_0 = %CONVERTTOPYTHON[ smtk::shared_ptr&lt; smtk::attribute::Item &gt; ](result);
      </inject-code>
    </modify-function>
    <modify-function signature="find(std::size_t, const std::string &amp;)">
      <modify-argument index="return">
        <replace-type modified-type="smtk::shared_ptr&lt; smtk::attribute::Item &gt;" />
      </modify-argument>
      <inject-code class="target" position="beginning">
        smtk::shared_ptr&lt; smtk::attribute::Item &gt; result = %CPPSELF-&gt;get()->find(%1, %2);
        %PYARG_0 = %CONVERTTOPYTHON[ smtk::shared_ptr&lt; smtk::attribute::Item &gt; ](result);
      </inject-code>
    </modify-function>
  </value-type>
  <value-type template="smtk::shared_ptr" args="smtk::attribute::GroupItemDefinition" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::IntItem" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::IntItemDefinition" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::StringItem" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::StringItemDefinition" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::ModelEntityItem" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::ModelEntityItemDefinition" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::MeshSelectionItem" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::MeshSelectionItemDefinition" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::MeshItem" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::MeshItemDefinition" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::System">
    <add-function
      signature="createDefinition(const std::string &amp;)"
      return-type="smtk::shared_ptr&lt;smtk::attribute::Definition&gt;">
      <inject-code class="target" position="beginning">
        %RETURN_TYPE %0 = %CPPSELF->get()->createDefinition(%1);
        %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
      </inject-code>
    </add-function>
    <add-function
      signature="attributes()"
      return-type="std::vector&lt;smtk::shared_ptr&lt;smtk::attribute::Attribute&gt; &gt;">
      <inject-code class="target" position="beginning">
        %RETURN_TYPE %0;
        %CPPSELF->get()->attributes(%0);
        %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
      </inject-code>
    </add-function>
    <modify-function signature="findAttributes(const std::string &amp;, std::vector&lt;smtk::shared_ptr&lt;smtk::attribute::Attribute&gt; &gt; &amp;)">
      <modify-argument index="2">
        <remove-argument />
      </modify-argument>
      <modify-argument index="return">
        <replace-type modified-type="std::vector&lt;smtk::shared_ptr&lt;smtk::attribute::Attribute&gt; &gt;" />
      </modify-argument>
      <inject-code class="target" position="beginning">
        std::vector&lt;smtk::shared_ptr&lt;smtk::attribute::Attribute&gt; &gt; _out;
        %CPPSELF->get()->findAttributes(%1, _out);
        %PYARG_0 = %CONVERTTOPYTHON[std::vector&lt;smtk::shared_ptr&lt;smtk::attribute::Attribute&gt; &gt;](_out);
      </inject-code>
    </modify-function>
    <modify-function signature="definitions(std::vector&lt;smtk::shared_ptr&lt;smtk::attribute::Definition&gt;&gt; &amp;)">
      <modify-argument index="1">
        <remove-argument />
      </modify-argument>
      <modify-argument index="return">
        <replace-type modified-type="std::vector&lt;smtk::shared_ptr&lt;smtk::attribute::Definition &gt; &gt;" />
      </modify-argument>
      <inject-code class="target" position="beginning">
        std::vector&lt;smtk::shared_ptr&lt;smtk::attribute::Definition &gt; &gt; _out;
        %CPPSELF->get()->definitions(_out);
        %PYARG_0 = %CONVERTTOPYTHON[std::vector&lt;smtk::shared_ptr&lt;smtk::attribute::Definition &gt; &gt;](_out);
      </inject-code>
    </modify-function>
  </value-type>
  <value-type template="smtk::shared_ptr" args="smtk::attribute::VoidItem" />
  <value-type template="smtk::shared_ptr" args="smtk::attribute::VoidItemDefinition" />

  <value-type template="smtk::shared_ptr" args="smtk::common::Resource" />
  <value-type template="smtk::shared_ptr" args="smtk::common::View" />
  <value-type template="smtk::shared_ptr" args="smtk::simulation::UserData" />

  <value-type template="smtk::shared_ptr" args="smtk::mesh::Manager" />
  <value-type template="smtk::shared_ptr" args="smtk::mesh::Collection" />

  <namespace-type name="smtk">
    <namespace-type name="common">
      <value-type name="Version">
        <include file-name="smtk/common/Version.h" location="local" />
      </value-type>

      <object-type name="View">
        <include file-name="smtk/common/View.h" location="local" />
        <object-type name="Component"/>
    </object-type>

      <object-type name="Resource">
        <include file-name="smtk/common/Resource.h" location="local" />
        <enum-type name="Type" />
      </object-type>

      <object-type name="ResourceSet">
        <include file-name="smtk/common/ResourceSet.h" location="local" />
        <enum-type name="ResourceState" />
        <enum-type name="ResourceRole" />
        <modify-function signature="resourceInfo(std::string,smtk::common::Resource::Type&amp;,smtk::common::ResourceSet::ResourceRole&amp;,smtk::common::ResourceSet::ResourceState&amp;,std::string&amp;) const" remove="all" >
        </modify-function>
        <modify-function signature="get(std::string,smtk::shared_ptr&lt;smtk::common::Resource&gt;&amp;) const">
          <modify-argument index="2">
            <remove-argument />
          </modify-argument>
          <modify-argument index="return">
            <replace-type modified-type="smtk::common::Resource&amp;" />
          </modify-argument>
          <inject-code class="target" position="beginning">
            smtk::shared_ptr&lt; smtk::common::Resource &gt; _out;
            bool result = %CPPSELF->get(%1, _out);
            if (result)
              %PYARG_0 = %CONVERTTOPYTHON[smtk::shared_ptr&lt; smtk::common::Resource &gt;](_out);
            else
            {
              smtk::shared_ptr&lt; smtk::common::Resource &gt; _ret;
              %PYARG_0 = %CONVERTTOPYTHON[smtk::shared_ptr&lt; smtk::common::Resource &gt;](_ret);
            }
          </inject-code>
        </modify-function>
      </object-type>

      <value-type name="DateTime">
        <include file-name="smtk/common/DateTime.h" location="local" />
        <!-- Add pythonic versions of components() methods -->
        <add-function
          signature="components(smtk::common::TimeZone)"
          static="no">
          return-type="PyTuple">
          <inject-code>
            int year, month, day, hour, minute, second, millisecond;
            bool result = %CPPSELF->components(%1, year, month, day, hour, minute, second, millisecond);
            if (result)
              {
              PyObject* out = PyTuple_New(7);
              PyTuple_SET_ITEM(out, 0, %CONVERTTOPYTHON[int](year));
              PyTuple_SET_ITEM(out, 1, %CONVERTTOPYTHON[int](month));
              PyTuple_SET_ITEM(out, 2, %CONVERTTOPYTHON[int](day));
              PyTuple_SET_ITEM(out, 3, %CONVERTTOPYTHON[int](hour));
              PyTuple_SET_ITEM(out, 4, %CONVERTTOPYTHON[int](minute));
              PyTuple_SET_ITEM(out, 5, %CONVERTTOPYTHON[int](second));
              PyTuple_SET_ITEM(out, 6, %CONVERTTOPYTHON[int](millisecond));
              return out;
              }
              // (else)
              return Py_None;
          </inject-code>
        </add-function>
        <add-function
          signature="components()"
          static="no">
          return-type="PyTuple">
          <inject-code>
            int year, month, day, hour, minute, second, millisecond;
            bool result = %CPPSELF->components(year, month, day, hour, minute, second, millisecond);
            if (result)
              {
              PyObject* out = PyTuple_New(7);
              PyTuple_SET_ITEM(out, 0, %CONVERTTOPYTHON[int](year));
              PyTuple_SET_ITEM(out, 1, %CONVERTTOPYTHON[int](month));
              PyTuple_SET_ITEM(out, 2, %CONVERTTOPYTHON[int](day));
              PyTuple_SET_ITEM(out, 3, %CONVERTTOPYTHON[int](hour));
              PyTuple_SET_ITEM(out, 4, %CONVERTTOPYTHON[int](minute));
              PyTuple_SET_ITEM(out, 5, %CONVERTTOPYTHON[int](second));
              PyTuple_SET_ITEM(out, 6, %CONVERTTOPYTHON[int](millisecond));
              return out;
              }
              // (else)
              return Py_None;
          </inject-code>
        </add-function>
<!--         <add-function
          signature="setComponents(int,int,int,int,int,int,int,smtk::common::TimeZone)"
          static="no"
          return-type="bool">
          <inject-code>
            bool result = %CPPSELF->setComponents(%1,%2,%3,%4,%5,%6,%7,&amp;%8);
            %PYARG_0 = %CONVERTTOPYTHON[bool](result);
          </inject-code>
        </add-function> -->
      </value-type>

      <value-type name="TimeZone">
        <include file-name="smtk/common/TimeZone.h" location="local" />
      </value-type>
      <value-type name="DateTimeZonePair">
        <include file-name="smtk/common/DateTimeZonePair.h" location="local" />
      </value-type>

      <object-type name="UUIDGenerator">
        <include file-name="smtk/common/UUIDGenerator.h" location="local"/>
      </object-type>
    </namespace-type>

    <namespace-type name="model">
      <!-- setup the model classes -->
      <object-type name="ArrangementHelper">
        <include file-name="smtk/model/ArrangementHelper.h" location="local"/>
      </object-type>

      <value-type name="ArrangementReference">
        <include file-name="smtk/model/ArrangementKind.h" location="local"/>
      </value-type>

      <enum-type name="ArrangementKind">
        <include file-name="smtk/model/ArrangementKind.h" location="local"/>
      </enum-type>

      <value-type name="AuxiliaryGeometry">
        <include file-name="smtk/model/AuxiliaryGeometry.h" location="local"/>
        <modify-function signature="isValid(smtk::model::Entity**) const" remove="all"/>
      </value-type>

      <enum-type name="ModelGeometryStyle">
        <include file-name="smtk/model/Manager.h" location="local"/>
      </enum-type>

      <enum-type name="IteratorStyle">
        <include file-name="smtk/model/EntityIterator.h" location="local"/>
      </enum-type>

      <enum-type name="OperatorEventType">
        <include file-name="smtk/model/Events.h" location="local"/>
      </enum-type>

      <enum-type name="OperatorOutcome">
        <include file-name="smtk/model/Operator.h" location="local"/>
      </enum-type>

      <object-type name="Operator">
        <include file-name="smtk/model/Operator.h" location="local"/>
        <enum-type name="ResultEntityOrigin" />
      </object-type>

      <object-type name="AttributeAssignments">
        <include file-name="smtk/model/AttributeAssignments.h" location="local"/>
      </object-type>

      <object-type name="Session">
        <include file-name="smtk/model/Session.h" location="local"/>
      </object-type>

      <enum-type name="SessionInformation">
        <include file-name="smtk/model/Session.h" location="local"/>
      </enum-type>

      <value-type name="SessionRef" hash-function="smtk::model::entityrefHash">
        <include file-name="smtk/model/SessionRef.h" location="local"/>
        <modify-function signature="isValid(smtk::model::Entity**) const" remove="all"/>
        <!-- We can add, rather than modify, signatures by not making the methods const.
             This allows us to change the return type to an array of pointers-to-entityrefs,
             which shiboken properly converts. -->
        <add-function signature="models()" static="no"
          return-type="std::vector&lt;smtk::model::Model*&gt;">
          <inject-code>
            smtk::model::Models tmp =
              %CPPSELF-&gt;models&lt;smtk::model::Models&gt;();
            %RETURN_TYPE %0;
            for (smtk::model::Models::iterator it = tmp.begin(); it != tmp.end(); ++it)
              %0.push_back(new smtk::model::Model(*it));
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </value-type>


      <enum-type name="Orientation">
        <include file-name="smtk/model/ArrangementKind.h" location="local"/>
      </enum-type>

      <value-type name="CellEntity" hash-function="smtk::model::entityrefHash">
        <include file-name="smtk/model/CellEntity.h" location="local"/>
        <modify-function signature="isValid(smtk::model::Entity**) const" remove="all"/>
        <add-function
          signature="uses()" static="no"
          return-type="std::vector&lt; smtk::model::UseEntity &gt;">
          <inject-code>
            std::vector&lt; smtk::model::UseEntity &gt; result =
              %CPPSELF->uses &lt; smtk::model::UseEntities &gt; ();
            return %CONVERTTOPYTHON[ std::vector&lt; smtk::model::UseEntity &gt; ](result);
          </inject-code>
        </add-function>
      </value-type>

      <value-type name="Chain" hash-function="smtk::model::entityrefHash">
        <include file-name="smtk/model/Chain.h" location="local"/>
        <modify-function signature="isValid(smtk::model::Entity**) const" remove="all"/>
      </value-type>

      <value-type name="EntityRef" hash-function="smtk::model::entityrefHash">
        <include file-name="smtk/model/EntityRef.h" location="local"/>
        <modify-function signature="isValid(smtk::model::Entity**) const" remove="all"/>
      </value-type>

      <enum-type name="DescriptivePhraseType">
        <include file-name="smtk/model/DescriptivePhrase.h" location="local"/>
      </enum-type>

      <object-type name="DescriptivePhrase">
        <include file-name="smtk/model/DescriptivePhrase.h" location="local"/>
        <modify-function signature="subphrases()" remove="all"/>
        <add-function signature="setDelegate(smtk::shared_ptr&lt;smtk::model::SubphraseGenerator&gt;)"
          return-type="smtk::shared_ptr&lt;smtk::model::DescriptivePhrase&gt;">
          <inject-code>
            %RETURN_TYPE %0 = %CPPSELF-&gt;setDelegate(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <value-type name="Edge" hash-function="smtk::model::entityrefHash">
        <include file-name="smtk/model/Edge.h" location="local"/>
        <modify-function signature="isValid(smtk::model::Entity**) const" remove="all"/>
      </value-type>

      <value-type name="EdgeUse" hash-function="smtk::model::entityrefHash">
        <include file-name="smtk/model/EdgeUse.h" location="local"/>
        <modify-function signature="isValid(smtk::model::Entity**) const" remove="all"/>
      </value-type>

      <object-type name="EntityPhrase">
        <include file-name="smtk/model/EntityPhrase.h" location="local"/>
        <add-function signature="create()"
          static="yes"
          return-type="smtk::shared_ptr&lt;smtk::model::EntityPhrase&gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::model::EntityPhrase::create();
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="EntityListPhrase">
        <include file-name="smtk/model/EntityListPhrase.h" location="local"/>
        <add-function signature="create()"
          static="yes"
          return-type="smtk::shared_ptr&lt;smtk::model::EntityListPhrase&gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::model::EntityListPhrase::create();
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="setup(const std::vector&lt;smtk::model::EntityRef&gt;&amp;)"
          return-type="smtk::shared_ptr&lt;smtk::model::EntityListPhrase&gt;">
          <inject-code>
            smtk::model::DescriptivePhrasePtr invalid;
            %RETURN_TYPE %0 = %CPPSELF-&gt;setup(%1, invalid);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="MeshPhrase">
        <include file-name="smtk/model/MeshPhrase.h" location="local"/>
        <add-function signature="create()"
          static="yes"
          return-type="smtk::shared_ptr&lt;smtk::model::MeshPhrase&gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::model::MeshPhrase::create();
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="MeshListPhrase">
        <include file-name="smtk/model/MeshListPhrase.h" location="local"/>
        <add-function signature="create()"
          static="yes"
          return-type="smtk::shared_ptr&lt;smtk::model::MeshListPhrase&gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::model::MeshListPhrase::create();
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="setup(const std::vector&lt;smtk::mesh::MeshSet&gt;&amp;)"
          return-type="smtk::shared_ptr&lt;smtk::model::MeshListPhrase&gt;">
          <inject-code>
            smtk::model::DescriptivePhrasePtr invalid;
            %RETURN_TYPE %0 = %CPPSELF-&gt;setup(%1, invalid);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <value-type name="Face" hash-function="smtk::model::entityrefHash">
        <include file-name="smtk/model/Face.h" location="local"/>
        <modify-function signature="isValid(smtk::model::Entity**) const" remove="all"/>
      </value-type>

      <value-type name="FaceUse" hash-function="smtk::model::entityrefHash">
        <include file-name="smtk/model/FaceUse.h" location="local"/>
        <modify-function signature="isValid(smtk::model::Entity**) const" remove="all"/>
      </value-type>

      <value-type name="Group" hash-function="smtk::model::entityrefHash">
        <include file-name="smtk/model/Group.h" location="local"/>
        <modify-function signature="isValid(smtk::model::Entity**) const" remove="all"/>
        <add-function signature="members()" static="no"
          return-type="std::vector&lt;smtk::model::EntityRef*&gt;">
          <inject-code>
            smtk::model::EntityRefArray tmp = %CPPSELF-&gt;members&lt;smtk::model::EntityRefArray&gt;();
            %RETURN_TYPE %0;
            for (smtk::model::EntityRefArray::iterator it = tmp.begin(); it != tmp.end(); ++it)
              %0.push_back(new smtk::model::EntityRef(*it));
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </value-type>

      <value-type name="Instance" hash-function="smtk::model::entityrefHash">
        <include file-name="smtk/model/Instance.h" location="local"/>
        <modify-function signature="isValid(smtk::model::Entity**) const" remove="all"/>
      </value-type>

      <value-type name="Loop" hash-function="smtk::model::entityrefHash">
        <include file-name="smtk/model/Loop.h" location="local"/>
        <modify-function signature="isValid(smtk::model::Entity**) const" remove="all"/>
      </value-type>

      <value-type name="Model" hash-function="smtk::model::entityrefHash">
        <include file-name="smtk/model/Model.h" location="local"/>
        <modify-function signature="isValid(smtk::model::Entity**) const" remove="all"/>
        <!-- We can add, rather than modify, signatures by not making the methods const.
             This allows us to change the return type to an array of pointers-to-entityrefs,
             which shiboken properly converts. -->
        <add-function signature="cells()" static="no"
          return-type="std::vector&lt;smtk::model::CellEntity*&gt;">
          <inject-code>
            smtk::model::CellEntities tmp = %CPPSELF-&gt;cells();
            %RETURN_TYPE %0;
            for (smtk::model::CellEntities::iterator it = tmp.begin(); it != tmp.end(); ++it)
              %0.push_back(new smtk::model::CellEntity(*it));
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="groups()" static="no"
          return-type="std::vector&lt;smtk::model::Group*&gt;">
          <inject-code>
            smtk::model::Groups tmp = %CPPSELF-&gt;groups();
            %RETURN_TYPE %0;
            for (smtk::model::Groups::iterator it = tmp.begin(); it != tmp.end(); ++it)
              %0.push_back(new smtk::model::Group(*it));
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="submodels()" static="no"
          return-type="std::vector&lt;smtk::model::Model*&gt;">
          <inject-code>
            smtk::model::Models tmp = %CPPSELF-&gt;submodels();
            %RETURN_TYPE %0;
            for (smtk::model::Models::iterator it = tmp.begin(); it != tmp.end(); ++it)
              %0.push_back(new smtk::model::Model(*it));
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="auxiliaryGeometry()" static="no"
          return-type="std::vector&lt;smtk::model::AuxiliaryGeometry*&gt;">
          <inject-code>
            smtk::model::AuxiliaryGeometries tmp = %CPPSELF-&gt;auxiliaryGeometry();
            %RETURN_TYPE %0;
            for (smtk::model::AuxiliaryGeometries::iterator it = tmp.begin(); it != tmp.end(); ++it)
              %0.push_back(new smtk::model::AuxiliaryGeometry(*it));
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </value-type>

      <enum-type name="PropertyType">
        <include file-name="smtk/model/Manager.h" location="local"/>
      </enum-type>

      <enum-type name="EntityTypeBits">
        <include file-name="smtk/model/EntityTypeBits.h" location="local"/>
      </enum-type>

      <object-type name="Entity">
        <include file-name="smtk/model/Entity.h" location="local"/>
      </object-type>

      <object-type name="Arrangement">
        <include file-name="smtk/model/Arrangement.h" location="local"/>
        <modify-function signature="IndexSenseAndOrientationFromCellHasUse(int&amp;, int&amp;, smtk::model::Orientation&amp;) const">
          <inject-code class="target" position="beginning">
            %RETURN_TYPE result = %CPPSELF-&gt;IndexSenseAndOrientationFromCellHasUse(%1, %2, *%3);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](result);
          </inject-code>
        </modify-function>
      </object-type>

      <object-type name="SimpleModelSubphrases">
        <include file-name="smtk/model/SimpleModelSubphrases.h" location="local"/>
        <add-function signature="create()"
          static="yes"
          return-type="smtk::shared_ptr&lt;smtk::model::SimpleModelSubphrases&gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::model::SimpleModelSubphrases::create();
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="SubphraseGenerator">
        <include file-name="smtk/model/SubphraseGenerator.h" location="local"/>
      </object-type>

      <object-type name="Tessellation">
        <include file-name="smtk/model/Tessellation.h" location="local"/>
        <modify-function signature="addCoords(double*)" remove="all"/>
        <modify-function signature="addPoint(double*)" remove="all"/>
        <modify-function signature="addLine(double *, double *)" remove="all"/>
        <modify-function signature="addTriangle(double*, double*, double*)" remove="all"/>
      </object-type>

      <enum-type name="TessellationCellType">
        <include file-name="smtk/model/Tessellation.h" location="local"/>
      </enum-type>

      <object-type name="Manager">
        <include file-name="smtk/model/Manager.h" location="local"/>

        <add-function signature="create()"
          static="yes"
          return-type="smtk::shared_ptr&lt;smtk::model::Manager&gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::model::Manager::create();
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="setTessellation(smtk::common::UUID&amp;,smtk::model::Tessellation&amp;)"
          static="NO"
          return-type="std::pair&lt;smtk::common::UUID,smtk::model::Tessellation&gt;">
          <inject-code>
            smtk::model::Manager::tess_iter_type i = %CPPSELF-&gt;setTessellation(%1, %2);
            %RETURN_TYPE %0 = *i;
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="setTessellationAndBoundingBox(smtk::common::UUID&amp;,smtk::model::Tessellation&amp;)"
          static="NO"
          return-type="std::pair&lt;smtk::common::UUID,smtk::model::Tessellation&gt;">
          <inject-code>
            smtk::model::Manager::tess_iter_type i = %CPPSELF-&gt;setTessellationAndBoundingBox(%1, %2);
            %RETURN_TYPE %0 = *i;
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="insertEntityOfTypeAndDimension(int, int)"
          static="NO"
          return-type="std::pair&lt;smtk::common::UUID,smtk::model::Entity&gt;">
          <inject-code class="target" position="beginning">
            %RETURN_TYPE %0 = *(%CPPSELF-&gt;insertEntityOfTypeAndDimension(%1,%2));
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="insertEntity(smtk::model::Entity&amp;)"
          static="NO"
          return-type="std::pair&lt;smtk::common::UUID,smtk::model::Entity&gt;">
          <inject-code class="target" position="beginning">
            %RETURN_TYPE %0 = *(%CPPSELF-&gt;insertEntity(%1));
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="setEntityOfTypeAndDimension(const smtk::common::UUID&amp;, int, int)"
          static="NO"
          return-type="std::pair&lt;smtk::common::UUID,smtk::model::Entity&gt;">
          <inject-code class="target" position="beginning">
            %RETURN_TYPE %0 = *(%CPPSELF-&gt;setEntityOfTypeAndDimension(%1,%2,%3));
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="setEntity(const smtk::common::UUID&amp;, smtk::model::Entity&amp;)"
          static="NO"
          return-type="std::pair&lt;smtk::common::UUID,smtk::model::Entity&gt;">
          <inject-code class="target" position="beginning">
            %RETURN_TYPE %0 = *(%CPPSELF-&gt;setEntity(%1,%2));
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="insertCellOfDimension(int)"
          static="NO"
          return-type="std::pair&lt;smtk::common::UUID,smtk::model::Entity&gt;">
          <inject-code class="target" position="beginning">
            %RETURN_TYPE %0 = *(%CPPSELF-&gt;insertCellOfDimension(%1));
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="setCellOfDimension(const smtk::common::UUID&amp;, int)"
          static="NO"
          return-type="std::pair&lt;smtk::common::UUID,smtk::model::Entity&gt;">
          <inject-code class="target" position="beginning">
            %RETURN_TYPE %0 = *(%CPPSELF-&gt;setCellOfDimension(%1,%2));
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <enum-type name="ManagerEventChangeType">
        <include file-name="smtk/model/Events.h" location="local"/>
      </enum-type>

      <enum-type name="ManagerEventRelationType">
        <include file-name="smtk/model/Events.h" location="local"/>
      </enum-type>

      <value-type name="Shell" hash-function="smtk::model::entityrefHash">
        <include file-name="smtk/model/Shell.h" location="local"/>
        <modify-function signature="isValid(smtk::model::Entity**) const" remove="all"/>
      </value-type>

      <value-type name="ShellEntity" hash-function="smtk::model::entityrefHash">
        <include file-name="smtk/model/ShellEntity.h" location="local"/>
        <modify-function signature="isValid(smtk::model::Entity**) const" remove="all"/>
      </value-type>

      <value-type name="UseEntity" hash-function="smtk::model::entityrefHash">
        <include file-name="smtk/model/UseEntity.h" location="local"/>
        <modify-function signature="isValid(smtk::model::Entity**) const" remove="all"/>
        <add-function
          signature="boundingShellEntities()" static="no"
          return-type="std::vector&lt; smtk::model::ShellEntity &gt;">
          <inject-code>
            std::vector&lt; smtk::model::ShellEntity &gt; result =
              %CPPSELF->boundingShellEntities &lt; smtk::model::ShellEntities &gt; ();
            return %CONVERTTOPYTHON[ std::vector&lt; smtk::model::ShellEntity &gt; ](result);
          </inject-code>
        </add-function>
        <add-function
          signature="shellEntities()" static="no"
          return-type="std::vector&lt; smtk::model::ShellEntity &gt;">
          <inject-code>
            std::vector&lt; smtk::model::ShellEntity &gt; result =
              %CPPSELF->shellEntities &lt; smtk::model::ShellEntities &gt; ();
            return %CONVERTTOPYTHON[ std::vector&lt; smtk::model::ShellEntity &gt; ](result);
          </inject-code>
        </add-function>
      </value-type>

      <value-type name="Vertex" hash-function="smtk::model::entityrefHash">
        <include file-name="smtk/model/Vertex.h" location="local"/>
        <modify-function signature="isValid(smtk::model::Entity**) const" remove="all"/>
        <add-function
          signature="coordinates()" static="no"
          return-type="std::vector&lt; double &gt;">
          <inject-code>
            const double* x = %CPPSELF->coordinates();
            std::vector&lt; double &gt; result(x, x + 3);
            return %CONVERTTOPYTHON[ std::vector&lt; double &gt; ](result);
          </inject-code>
        </add-function>
      </value-type>

      <value-type name="VertexUse" hash-function="smtk::model::entityrefHash">
        <include file-name="smtk/model/VertexUse.h" location="local"/>
        <modify-function signature="isValid(smtk::model::Entity**) const" remove="all"/>
      </value-type>

      <value-type name="Volume" hash-function="smtk::model::entityrefHash">
        <include file-name="smtk/model/Volume.h" location="local"/>
        <modify-function signature="isValid(smtk::model::Entity**) const" remove="all"/>
      </value-type>

      <value-type name="VolumeUse" hash-function="smtk::model::entityrefHash">
        <include file-name="smtk/model/VolumeUse.h" location="local"/>
        <modify-function signature="isValid(smtk::model::Entity**) const" remove="all"/>
      </value-type>

      <object-type name="GridInfo">
        <include file-name="smtk/model/GridInfo.h" location="local" />
        <value-type name="ApiStatus" />
        <enum-type name="ApiReturnType" />
        <enum-type name="PointClosure" />
      </object-type>

      <!--
      <object-type name="GridInfo2D">
        <include file-name="smtk/model/GridInfo2D.h" location="local"/>
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::model::GridInfo &gt;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::model::GridInfo2D &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::model::GridInfo2D &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="GridInfo3D">
        <include file-name="smtk/model/GridInfo3D.h" location="local"/>
      </object-type>
      -->

    </namespace-type>

    <namespace-type name="attribute">

      <enum-type name="SearchStyle">
        <include file-name="smtk/attribute/SearchStyle.h" location="local"/>
      </enum-type>

      <!-- setup the attribute classes -->
      <object-type name="Attribute">
        <include file-name="smtk/attribute/Attribute.h" location="local"/>
        <modify-function signature="references(std::vector&lt;smtk::shared_ptr&lt;smtk::attribute::Item &gt; &gt;&amp;) const">
          <modify-argument index="1">
            <remove-argument />
          </modify-argument>
          <modify-argument index="return">
            <replace-type modified-type="std::vector&lt;smtk::shared_ptr&lt;smtk::attribute::Item &gt; &gt;" />
          </modify-argument>
          <inject-code class="target" position="beginning">
            std::vector&lt;smtk::shared_ptr&lt;smtk::attribute::Item &gt; &gt; _out;
            %CPPSELF->references(_out);
            %PYARG_0 = %CONVERTTOPYTHON[std::vector&lt;smtk::shared_ptr&lt;smtk::attribute::Item &gt; &gt;](_out);
          </inject-code>
        </modify-function>
        <modify-function signature="setColor(const double *)" remove="all"/>
      </object-type>

      <object-type name="RefItem">
        <include file-name="smtk/attribute/RefItem.h" location="local"/>
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::Item &gt; &amp;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::RefItem &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::RefItem &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="RefItemDefinition">
        <include file-name="smtk/attribute/RefItemDefinition.h" location="local"/>
        <modify-function signature="RefItemDefinition(const std::string &amp;)" access="private" />
        <add-function signature="ToItemDefinition(const smtk::shared_ptr&lt;smtk::attribute::RefItemDefinition &gt;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::ItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt; &amp;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::RefItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::RefItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="DateTimeItem">
        <include file-name="smtk/attribute/DateTimeItem.h" location="local" />
      </object-type>
      <object-type name="DateTimeItemDefinition">
        <include file-name="smtk/attribute/DateTimeItemDefinition.h" location="local" />
      </object-type>

      <object-type name="Definition">
        <include file-name="smtk/attribute/Definition.h" location="local"/>
        <modify-function signature="setDefaultColor(const double *)" remove="all"/>
        <modify-function signature="setNotApplicableColor(const double *)" remove="all"/>
      </object-type>

      <object-type name="DirectoryItem">
        <include file-name="smtk/attribute/DirectoryItem.h" location="local"/>
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::Item &gt; &amp;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::DirectoryItem &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::DirectoryItem &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="DirectoryItemDefinition">
        <include file-name="smtk/attribute/DirectoryItemDefinition.h" location="local"/>
        <modify-function signature="DirectoryItemDefinition(const std::string &amp;)" access="private" />
        <add-function signature="ToItemDefinition(const smtk::shared_ptr&lt;smtk::attribute::DirectoryItemDefinition &gt;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::ItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt; &amp;)"
          static="yes"
          return-type="smtk::shared_ptr&lt;smtk::attribute::DirectoryItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::DirectoryItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="DoubleItem">
        <include file-name="smtk/attribute/DoubleItem.h" location="local"/>
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::Item &gt; &amp;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::DoubleItem &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::DoubleItem &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="DoubleItemDefinition">
        <include file-name="smtk/attribute/DoubleItemDefinition.h" location="local"/>
        <modify-function signature="DoubleItemDefinition(std::string const &amp;)" access="private" />
        <add-function signature="ToItemDefinition(const smtk::shared_ptr&lt;smtk::attribute::DoubleItemDefinition &gt;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::ItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt; &amp;)"
          static="yes"
          return-type="smtk::shared_ptr&lt;smtk::attribute::DoubleItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::DoubleItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="FileItem">
        <include file-name="smtk/attribute/FileItem.h" location="local"/>
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::Item &gt; &amp;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::FileItem &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::FileItem &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="FileItemDefinition">
        <include file-name="smtk/attribute/FileItemDefinition.h" location="local"/>
        <modify-function signature="FileItemDefinition(const std::string &amp;)" access="private" />
        <add-function signature="ToItemDefinition(const smtk::shared_ptr&lt;smtk::attribute::FileItemDefinition &gt;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::ItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt; &amp;)"
          static="yes"
          return-type="smtk::shared_ptr&lt;smtk::attribute::FileItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::FileItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="FileSystemItem">
        <include file-name="smtk/attribute/FileSystemItem.h" location="local"/>
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::Item &gt; &amp;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::FileSystemItem &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::FileSystemItem &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="FileSystemItemDefinition">
        <include file-name="smtk/attribute/FileSystemItemDefinition.h" location="local"/>
        <modify-function signature="FileSystemItemDefinition(const std::string &amp;)" access="private" />
        <add-function signature="ToItemDefinition(const smtk::shared_ptr&lt;smtk::attribute::FileSystemItemDefinition &gt;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::ItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt; &amp;)"
          static="yes"
          return-type="smtk::shared_ptr&lt;smtk::attribute::FileSystemItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::FileSystemItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="GroupItem">
        <include file-name="smtk/attribute/GroupItem.h" location="local"/>
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::Item &gt; &amp;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::GroupItem &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::GroupItem &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="GroupItemDefinition">
        <include file-name="smtk/attribute/GroupItemDefinition.h" location="local"/>
        <modify-function signature="GroupItemDefinition(const std::string &amp;)" access="private" />
        <add-function signature="ToItemDefinition(const smtk::shared_ptr&lt;smtk::attribute::GroupItemDefinition &gt;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::ItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
         </add-function>
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt; &amp;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::GroupItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::GroupItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="IntItem">
        <include file-name="smtk/attribute/IntItem.h" location="local"/>
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::Item &gt; &amp;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::IntItem &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::IntItem &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="IntItemDefinition">
        <include file-name="smtk/attribute/IntItemDefinition.h" location="local"/>
        <modify-function signature="IntItemDefinition(const std::string &amp;)" access="private" />
        <add-function signature="ToItemDefinition(const smtk::shared_ptr&lt;smtk::attribute::IntItemDefinition &gt;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::ItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt; &amp;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::IntItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::IntItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="Item">
        <include file-name="smtk/attribute/Item.h" location="local"/>
        <enum-type name="AssignmentOptions"/>
        <enum-type name="Type"/>
      </object-type>

      <object-type name="ItemDefinition">
        <include file-name="smtk/attribute/ItemDefinition.h" location="local" />
        <object-type name="CopyInfo" />
        <modify-function signature="ItemDefinition(const std::string &amp;)" >
          <inject-code>
            PyErr_Format(PyExc_RuntimeError, "Do not call XItemDefinitions Constructor.  Please use XItemDefinitions.New(STRING).");
          </inject-code>
        </modify-function>
      </object-type>

      <object-type name="System">
        <include file-name="smtk/attribute/System.h" location="local" />
        <enum-type name="CopyOptions" />
        <add-function signature="create()"
          static="yes"
          return-type="smtk::shared_ptr&lt;smtk::attribute::System&gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::attribute::System::create();
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="_ExporterGeneratedFunStringConverterDoNotUse_(std::string const &amp;)"
          static="yes"
          return-type="smtk::attribute::System *">
          <inject-code>
            uintptr_t tadd;
            std::stringstream ss;
            ss &lt;&lt; std::hex &lt;&lt; %1;
            ss &gt;&gt; tadd;
            %RETURN_TYPE %0 = reinterpret_cast&lt; smtk::attribute::System * &gt;(tadd);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <modify-function signature="findAttributes(std::string, std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Attribute &gt; &gt;&amp;) const">
          <modify-argument index="2">
            <remove-argument />
          </modify-argument>
          <modify-argument index="return">
            <replace-type modified-type="std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Attribute &gt; &gt;" />
          </modify-argument>
          <inject-code class="target" position="beginning">
            std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Attribute &gt; &gt; _out;
            %CPPSELF->findAttributes(%1, _out);
            %PYARG_0 = %CONVERTTOPYTHON[std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Attribute &gt; &gt;](_out);
          </inject-code>
        </modify-function>

        <modify-function signature="findAttributes(smtk::shared_ptr&lt; smtk::attribute::Definition &gt;, std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Attribute &gt; &gt;&amp;) const">
          <modify-argument index="2">
            <remove-argument />
          </modify-argument>
          <modify-argument index="return">
            <replace-type modified-type="std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Attribute &gt; &gt;" />
          </modify-argument>
          <inject-code class="target" position="beginning">
            std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Attribute &gt; &gt; _out;
            %CPPSELF->findAttributes(%1, _out);
            %PYARG_0 = %CONVERTTOPYTHON[std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Attribute &gt; &gt;](_out);
          </inject-code>
        </modify-function>

        <modify-function signature="findBaseDefinitions(std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Definition &gt; &gt;&amp;) const">
          <modify-argument index="1">
            <remove-argument />
          </modify-argument>
          <modify-argument index="return">
            <replace-type modified-type="std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Definition &gt; &gt;" />
          </modify-argument>
          <inject-code class="target" position="beginning">
            std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Definition &gt; &gt; _out;
            %CPPSELF->findBaseDefinitions(_out);
            %PYARG_0 = %CONVERTTOPYTHON[std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Definition &gt; &gt;](_out);
          </inject-code>
        </modify-function>

        <modify-function signature="findAllDerivedDefinitions(smtk::shared_ptr&lt; smtk::attribute::Definition &gt;, bool, std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Definition &gt; &gt;&amp;) const">
          <modify-argument index="3">
            <remove-argument />
          </modify-argument>
          <modify-argument index="return">
            <replace-type modified-type="std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Definition &gt; &gt;" />
          </modify-argument>
          <inject-code class="target" position="beginning">
            std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Definition &gt; &gt; _out;
            %CPPSELF->findAllDerivedDefinitions(%1, %2, _out);
            %PYARG_0 = %CONVERTTOPYTHON[std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Definition &gt; &gt;](_out);
          </inject-code>
        </modify-function>

        <modify-function signature="definitions(std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Definition &gt; &gt;&amp;) const">
          <modify-argument index="1">
            <remove-argument />
          </modify-argument>
          <modify-argument index="return">
            <replace-type modified-type="std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Definition &gt; &gt;" />
          </modify-argument>
          <inject-code class="target" position="beginning">
            std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Definition &gt; &gt; _out;
            %CPPSELF->definitions(_out);
            %PYARG_0 = %CONVERTTOPYTHON[std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Definition &gt; &gt;](_out);
          </inject-code>
        </modify-function>

        <modify-function signature="attributes(std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Attribute &gt; &gt;&amp;) const">
          <modify-argument index="1">
            <remove-argument />
          </modify-argument>
          <modify-argument index="return">
            <replace-type modified-type="std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Attribute &gt; &gt;" />
          </modify-argument>
          <inject-code class="target" position="beginning">
            std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Attribute &gt; &gt; _out;
            %CPPSELF->attributes(_out);
            %PYARG_0 = %CONVERTTOPYTHON[std::vector&lt; smtk::shared_ptr&lt; smtk::attribute::Attribute &gt; &gt;](_out);
          </inject-code>
        </modify-function>

        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::common::Resource &gt; &amp;)"
          static="yes"
          return-type="smtk::shared_ptr&lt;smtk::attribute::System &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::System &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>

        <add-function signature="New()"
          static="yes"
          return-type="smtk::shared_ptr&lt;smtk::attribute::System &gt;">
          <inject-code>
            %RETURN_TYPE %0(smtk::attribute::System::create());
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>

     </object-type>

      <object-type name="StringItem">
        <include file-name="smtk/attribute/StringItem.h" location="local" />
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::Item &gt; &amp;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::StringItem &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::StringItem &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="StringItemDefinition">
        <include file-name="smtk/attribute/StringItemDefinition.h" location="local" />
        <modify-function signature="StringItemDefinition(const std::string &amp;)" access="private" />
        <add-function signature="ToItemDefinition(const smtk::shared_ptr&lt;smtk::attribute::StringItemDefinition &gt;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::ItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt; &amp;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::StringItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::StringItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="ModelEntityItem">
        <include file-name="smtk/attribute/ModelEntityItem.h" location="local" />
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::Item &gt; &amp;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::ModelEntityItem &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::ModelEntityItem &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="ModelEntityItemDefinition">
        <include file-name="smtk/attribute/ModelEntityItemDefinition.h" location="local" />
        <modify-function signature="ModelEntityItemDefinition(const std::string &amp;)" access="private" />
        <add-function signature="ToItemDefinition(const smtk::shared_ptr&lt;smtk::attribute::ModelEntityItemDefinition &gt;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::ItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt; &amp;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::ModelEntityItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::ModelEntityItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="MeshItem">
        <include file-name="smtk/attribute/MeshItem.h" location="local" />
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::Item &gt; &amp;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::MeshItem &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::MeshItem &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="MeshItemDefinition">
        <include file-name="smtk/attribute/MeshItemDefinition.h" location="local" />
        <modify-function signature="MeshItemDefinition(const std::string &amp;)" access="private" />
        <add-function signature="ToItemDefinition(const smtk::shared_ptr&lt;smtk::attribute::MeshItemDefinition &gt;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::ItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt; &amp;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::MeshItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::MeshItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="MeshSelectionItem">
        <include file-name="smtk/attribute/MeshSelectionItem.h" location="local" />
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::Item &gt; &amp;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::MeshSelectionItem &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::MeshSelectionItem &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="MeshSelectionItemDefinition">
        <include file-name="smtk/attribute/MeshSelectionItemDefinition.h" location="local" />
        <modify-function signature="MeshSelectionItemDefinition(const std::string &amp;)" access="private" />
        <add-function signature="ToItemDefinition(const smtk::shared_ptr&lt;smtk::attribute::MeshSelectionItemDefinition &gt;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::ItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt; &amp;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::MeshSelectionItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::MeshSelectionItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <enum-type name="MeshModifyMode">
        <include file-name="smtk/attribute/MeshSelectionItem.h" location="local"/>
      </enum-type>

      <object-type name="ValueItem">
        <include file-name="smtk/attribute/ValueItem.h" location="local" />
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::Item &gt; &amp;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::ValueItem &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::ValueItem &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="ValueItemDefinition">
        <include file-name="smtk/attribute/ValueItemDefinition.h" location="local" />
        <modify-function signature="ValueItemDefinition(const std::string &amp;)" access="private" />
        <add-function signature="ToItemDefinition(const smtk::shared_ptr&lt;smtk::attribute::ValueItemDefinition &gt;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::ItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt; &amp;)"
          static="yes"
          return-type="smtk::shared_ptr&lt;smtk::attribute::ValueItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::ValueItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="VoidItem">
        <include file-name="smtk/attribute/VoidItem.h" location="local" />
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::Item &gt; &amp;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::VoidItem &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::VoidItem &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="VoidItemDefinition">
        <include file-name="smtk/attribute/VoidItemDefinition.h" location="local" />
        <modify-function signature="VoidItemDefinition(const std::string &amp;)" access="private" />
        <add-function signature="ToItemDefinition(const smtk::shared_ptr&lt;smtk::attribute::VoidItemDefinition &gt;)"
                      static="yes"
                      return-type="smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::ItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
        <add-function signature="CastTo(smtk::shared_ptr&lt;smtk::attribute::ItemDefinition &gt; &amp;)"
          static="yes"
          return-type="smtk::shared_ptr&lt;smtk::attribute::VoidItemDefinition &gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::dynamic_pointer_cast&lt;smtk::attribute::VoidItemDefinition &gt;(%1);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <value-type name="ValueItemTemplate" generate="no" />
      <value-type name="ValueItemDefinitionTemplate" generate="no" />

    </namespace-type>

    <namespace-type name="io">
      <!-- setup the io classes -->
      <object-type name="AttributeReader">
        <include file-name="smtk/io/AttributeReader.h" location="local"/>
      </object-type>

      <object-type name="AttributeWriter">
        <include file-name="smtk/io/AttributeWriter.h" location="local"/>
        <modify-function
          signature="writeContents(smtk::shared_ptr&lt;smtk::attribute::System&gt;, std::string &amp;, smtk::io::Logger &amp;, bool)">
          <modify-argument index="return">
            <replace-type modified-type="std::string">
            </replace-type>
          </modify-argument>
          <modify-argument index="2">
            <remove-argument />
          </modify-argument>
          <inject-code class="target" position="beginning">
            std::string result;
            %CPPSELF->writeContents(%1, result, %3, %4);
            %PYARG_0 = %CONVERTTOPYTHON[std::string](result);
          </inject-code>
        </modify-function>
      </object-type>

      <object-type name="SaveJSON">
        <include file-name="smtk/io/SaveJSON.h" location="local"/>
      </object-type>

      <object-type name="LoadJSON">
        <include file-name="smtk/io/LoadJSON.h" location="local"/>
      </object-type>

      <object-type name="ImportMesh">
        <include file-name="smtk/io/ImportMesh.h" location="local"/>
      </object-type>

      <object-type name="ExportMesh">
        <include file-name="smtk/io/ExportMesh.h" location="local"/>
      </object-type>

      <object-type name="ReadMesh">
        <include file-name="smtk/io/ReadMesh.h" location="local"/>
      </object-type>

      <object-type name="WriteMesh">
        <include file-name="smtk/io/WriteMesh.h" location="local"/>
      </object-type>

      <enum-type name="JSONFlags">
        <include file-name="smtk/io/SaveJSON.h" location="local"/>
      </enum-type>

      <object-type name="Logger">
        <include file-name="smtk/io/Logger.h" location="local"/>
        <enum-type name="Severity"/>
        <object-type name="Record" />
      </object-type>

      <object-type name="ModelToMesh">
        <include file-name="smtk/io/ModelToMesh.h" location="local"/>
      </object-type>

      <object-type name="OperatorLog">
        <include file-name="smtk/io/OperatorLog.h" location="local"/>
      </object-type>

      <object-type name="ResourceSetReader">
        <include file-name="smtk/io/ResourceSetReader.h" location="local"/>
      </object-type>
      <object-type name="ResourceSetWriter">
        <include file-name="smtk/io/ResourceSetWriter.h" location="local"/>
        <enum-type name="LinkedFilesOption" />
      </object-type>

      <namespace-type name="mesh">
	<object-type name="Format">
          <include file-name="smtk/io/mesh/Format.h" location="local"/>
	</object-type>
	<object-type name="MeshIO">
          <include file-name="smtk/io/mesh/MeshIO.h" location="local"/>
	</object-type>
	<object-type name="MeshIOMoab">
          <include file-name="smtk/io/mesh/MeshIOMoab.h" location="local"/>
	</object-type>
	<object-type name="MeshIOXMS">
          <include file-name="smtk/io/mesh/MeshIOXMS.h" location="local"/>
	</object-type>
      </namespace-type>

    </namespace-type>

    <namespace-type name="simulation">
      <object-type name="ExportSpec">
        <include file-name="smtk/simulation/ExportSpec.h" location="local"/>
        <modify-function signature="clear()" access="private" />
        <modify-function signature="setAnalysisGridInfo(smtk::shared_ptr&lt;smtk::model::GridInfo&gt;)" access="private" />
        <add-function signature="_InternalConverterDoNotUse_(std::string const &amp;)"
          static="yes"
          return-type="smtk::simulation::ExportSpec *">
          <inject-code>
            uintptr_t tadd;
            std::stringstream ss;
            ss &lt;&lt; std::hex &lt;&lt; %1;
            ss &gt;&gt; tadd;
            %RETURN_TYPE %0 = reinterpret_cast&lt; smtk::simulation::ExportSpec * &gt;(tadd);
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>
      </object-type>

      <object-type name="UserData">
        <include file-name="smtk/simulation/UserData.h" location="local" />
      </object-type>
    </namespace-type>

    <namespace-type name="mesh">
      <!-- setup the mesh classes -->
      <value-type name="CellSet">
        <include file-name="smtk/mesh/CellSet.h" location="local"/>
      </value-type>

      <enum-type name="CellType">
        <include file-name="smtk/mesh/CellTypes.h" location="local"/>
      </enum-type>

      <interface-type name="CellForEach">
        <include file-name="smtk/mesh/ForEachTypes.h" location="local"/>
      </interface-type>

      <interface-type name="MeshForEach">
        <include file-name="smtk/mesh/ForEachTypes.h" location="local"/>
      </interface-type>

      <interface-type name="PointForEach">
        <include file-name="smtk/mesh/ForEachTypes.h" location="local"/>
      </interface-type>

      <value-type name="CellTypes">
        <include file-name="smtk/mesh/CellTypes.h" location="local"/>
      </value-type>

      <object-type name="Collection">
        <include file-name="smtk/mesh/Collection.h" location="local"/>
      </object-type>

      <enum-type name="ContainmentType">
        <include file-name="smtk/mesh/QueryTypes.h" location="local"/>
      </enum-type>

      <enum-type name="DimensionType">
        <include file-name="smtk/mesh/DimensionTypes.h" location="local"/>
      </enum-type>

      <value-type name="Domain">
        <include file-name="smtk/mesh/QueryTypes.h" location="local"/>
      </value-type>

      <value-type name="Dirichlet">
        <include file-name="smtk/mesh/QueryTypes.h" location="local"/>
      </value-type>

      <value-type name="IntegerTag">
        <include file-name="smtk/mesh/QueryTypes.h" location="local"/>
      </value-type>

      <primitive-type name="Handle"/>

      <value-type name="HandleRange">
        <include file-name="smtk/mesh/Handle.h" location="local"/>
      </value-type>

      <object-type name="Manager">
        <include file-name="smtk/mesh/Manager.h" location="local"/>
        <add-function signature="create()"
          static="yes"
          return-type="smtk::shared_ptr&lt;smtk::mesh::Manager&gt;">
          <inject-code>
            %RETURN_TYPE %0 = smtk::mesh::Manager::create();
            %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
          </inject-code>
        </add-function>

      </object-type>

      <value-type name="Model">
        <include file-name="smtk/mesh/QueryTypes.h" location="local"/>
      </value-type>

      <value-type name="MeshSet">
        <include file-name="smtk/mesh/MeshSet.h" location="local"/>
      </value-type>

      <value-type name="CellField">
        <include file-name="smtk/mesh/CellField.h" location="local"/>
      </value-type>

      <value-type name="PointField">
        <include file-name="smtk/mesh/PointField.h" location="local"/>
      </value-type>

      <value-type name="Neumann">
        <include file-name="smtk/mesh/QueryTypes.h" location="local"/>
      </value-type>

      <value-type name="PointConnectivity">
        <include file-name="smtk/mesh/PointConnectivity.h" location="local"/>
        <modify-function signature="fetchNextCell(int&amp;, const smtk::mesh::Handle* &amp;)"
          remove="all"/>
        <modify-function signature="fetchNextCell(smtk::mesh::CellType&amp;,int&amp;, const smtk::mesh::Handle* &amp;)"
          remove="all"/>
      </value-type>

      <value-type name="Tessellation">
        <include file-name="smtk/mesh/ExtractTessellation.h" location="local"/>
      </value-type>

      <value-type name="PointSet">
        <include file-name="smtk/mesh/PointSet.h" location="local"/>
      </value-type>

      <value-type name="TypeSet">
        <include file-name="smtk/mesh/TypeSet.h" location="local"/>
      </value-type>

      <!-- Needed so we can wrap merge/split functions  -->
      <include file-name="smtk/mesh/Reclassify.h" location="local"/>

    </namespace-type>

    </namespace-type>

  <rejection class="smtk::model::Manager" function-name="trigger"/>
  <rejection class="smtk::model::Manager" function-name="observe"/>
  <rejection class="smtk::model::Manager" function-name="unobserve"/>

  @EXTRA_OBJECTS@

</typesystem>
