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

  @EXTRA_TYPESYSTEMS@

  <!-- Ignore Shiboken notice that Exodus lives inside SMTK namespace -->
  <suppress-warning text="Duplicate type entry: 'smtk'"/>
  <suppress-warning text="namespace 'detail' does not have a type entry"/>

  <!-- Ignore methods that refer directly to internal storage -->
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::SMTK_GROUP_TYPE', unmatched return type 'vtkInformationIntegerKey*'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::SMTK_VISIBILITY', unmatched return type 'vtkInformationIntegerKey*'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::parentIndex', unmatched parameter type 'vtkDataObject*'"/>
  <suppress-warning text="skipping field 'Session::m_cpMap' with unmatched type 'std::map&lt;vtkDataObject*,smtk::bridge::exodus::Session::ParentAndIndex_t&gt;'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::EntityHandle::childrenAs', unmatched return type 'T'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::EntityHandle::EntityHandle', unmatched parameter type 'vtkDataObject*'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::SMTK_PEDIGREE', unmatched return type 'vtkInformationIntegerKey*'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::EntityHandle::object', unmatched return type 'T*'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::createIODelegate', unmatched return type 'smtk::model::SessionIOPtr'"/>
  <suppress-warning text="skipping field 'EntityHandle::m_object' with unmatched type 'vtkSmartPointer&lt;vtkDataObject&gt;'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::modelOfHandle', unmatched return type 'vtkMultiBlockDataSet*'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::parent', unmatched return type 'vtkMultiBlockDataSet*'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::uuidOfHandleObject', unmatched parameter type 'vtkDataObject*'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::EntityHandle::appendChildrenTo', unmatched parameter type 'T&amp;'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::SMTK_DIMENSION', unmatched return type 'vtkInformationIntegerKey*'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::numberOfModels', unmatched return type 'size_t'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::ensureChildParentMapEntry', unmatched parameter type 'vtkDataObject*'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::parentAs', unmatched return type 'T*'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::modelOfHandleAs', unmatched return type 'T*'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::modelOfHandle', unmatched return type 'vtkDataObject*'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::SMTK_CHILDREN', unmatched return type 'vtkInformationObjectBaseVectorKey*'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::SMTK_LABEL_VALUE', unmatched return type 'vtkInformationDoubleKey*'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::SMTK_OUTER_LABEL', unmatched return type 'vtkInformationIntegerKey*'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::parent', unmatched return type 'vtkDataObject*'"/>

  <!-- Ignore Exodus-specific enums -->

  <!-- Ignore Exodus-specific enums -->
  <suppress-warning text="skipping function 'smtk::bridge::exodus::EntityHandle::EntityHandle', unmatched parameter type 'vtkIdType'"/>
  <suppress-warning text="skipping field 'EntityHandle::entityId' with unmatched type 'vtkIdType'"/>
  <suppress-warning text="skipping field 'Session::m_models' with unmatched type 'std::vector&lt;vtkSmartPointer&lt;vtkMultiBlockDataSet&gt;&gt;'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::create', unmatched return type 'smtk::shared_ptr&lt;smtk::bridge::exodus::Session::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::toBlock', unmatched return type 'T*'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::shared_from_this', unmatched return type 'smtk::shared_ptr&lt;const smtk::bridge::exodus::Session::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::shared_from_this', unmatched return type 'smtk::shared_ptr&lt;smtk::bridge::exodus::Session::SelfType&gt;'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::addModel', unmatched parameter type 'vtkSmartPointer&lt;vtkMultiBlockDataSet&gt;&amp;'"/>
  <suppress-warning text="skipping function 'smtk::bridge::exodus::Session::SMTK_UUID_KEY', unmatched return type 'vtkInformationStringKey*'"/>


  <!-- Additional objects to be wrapped when building with Exodus -->
  <namespace-type name="smtk" generate = "no">
    <namespace-type name="bridge" generate = "no">
      <namespace-type name="exodus" generate = "yes">
        <enum-type name="EntityType">
          <include file-name="smtk/bridge/exodus/Session.h" location="local"/>
        </enum-type>

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

        <value-type name="EntityHandle">
          <include file-name="smtk/bridge/exodus/Session.h" location="local"/>
        </value-type>

      </namespace-type>
    </namespace-type>
  </namespace-type>

  <value-type template="smtk::shared_ptr" args="smtk::bridge::exodus::Session">
  </value-type>

  <!-- Don't wrap methods that take pointers to Exodus classes.
       Shiboken improperly scopes classnames in argument
       lists (e.g., it assumes smtk::model::Shell when ::Shell is
       specified), making it not only undesirable but impossible
       to wrap Exodus pointers.
  <rejection class="smtk::bridge::exodus::Session" function-name="addBodyToManager"/>
    -->

  @EXTRA_OBJECTS@

</typesystem>
