<swigxml:swig name="namespaces" xmlns:swigxml="http://jniplusplus.sourceforge.net" xmlns:swig="http://swig.sourceforge.net" xmlns:c="http://www.ansi.org" >
  <swig:top >
    <swigxml:child >
      <swig:file name="../../Lib/swig.swg" >
        <swigxml:type string="include"  />
      </swig:file>
      <swig:file name="example_title_add.i" >
        <swigxml:child >
          <swig:module name="example"  />
          <swig:insert >
            <swigxml:code >

#include "example.h"
            </swigxml:code>
          </swig:insert>
          <c:class name="Vector" >
            <swigxml:child >
              <c:access name="public"  />
              <c:function name="Vector" >
                <swigxml:parms >
                  <swigxml:parm name="x" >
                    <swigxml:type string="double"  />
                  </swigxml:parm>
                  <swigxml:parm name="y" >
                    <swigxml:type string="double"  />
                  </swigxml:parm>
                  <swigxml:parm name="z" >
                    <swigxml:type string="double"  />
                  </swigxml:parm>
                </swigxml:parms>
                <swigxml:type string="int"  />
              </c:function>
              <c:destructor name="Vector"  />
              <c:function name="print" >
                <swigxml:type string="p.char"  />
              </c:function>
            </swigxml:child>
            <swigxml:classtype string="class"  />
            <swigxml:namespace string="Vector"  />
          </c:class>
          <swig:insert >
            <swigxml:code >

Vector addv(Vector &amp;a, Vector &amp;b) {
  return a+b;
}
            </swigxml:code>
          </swig:insert>
          <c:function name="addv" >
            <swigxml:parms >
              <swigxml:parm name="a" >
                <swigxml:type string="r.Vector"  />
              </swigxml:parm>
              <swigxml:parm name="b" >
                <swigxml:type string="r.Vector"  />
              </swigxml:parm>
            </swigxml:parms>
            <swigxml:code >
{
  return a+b;
}            </swigxml:code>
            <swigxml:type string="Vector"  />
          </c:function>
          <c:class name="VectorArray" >
            <swigxml:child >
              <c:access name="public"  />
              <c:function name="VectorArray" >
                <swigxml:parms >
                  <swigxml:parm name="maxsize" >
                    <swigxml:type string="int"  />
                  </swigxml:parm>
                </swigxml:parms>
                <swigxml:type string="int"  />
              </c:function>
              <c:destructor name="VectorArray"  />
              <c:function name="size" >
                <swigxml:type string="int"  />
              </c:function>
              <swig:extend >
                <swigxml:child >
                  <c:function name="get" >
                    <swigxml:parms >
                      <swigxml:parm name="index" >
                        <swigxml:type string="int"  />
                      </swigxml:parm>
                    </swigxml:parms>
                    <swigxml:code >
{
      return (*self)[index];
    }                    </swigxml:code>
                    <swigxml:type string="r.Vector"  />
                  </c:function>
                  <c:function name="set" >
                    <swigxml:parms >
                      <swigxml:parm name="index" >
                        <swigxml:type string="int"  />
                      </swigxml:parm>
                      <swigxml:parm name="a" >
                        <swigxml:type string="r.Vector"  />
                      </swigxml:parm>
                    </swigxml:parms>
                    <swigxml:code >
{
      (*self)[index] = a;
    }                    </swigxml:code>
                    <swigxml:type string="void"  />
                  </c:function>
                </swigxml:child>
              </swig:extend>
            </swigxml:child>
            <swigxml:classtype string="class"  />
            <swigxml:namespace string="VectorArray"  />
          </c:class>
        </swigxml:child>
        <swigxml:type string="include"  />
      </swig:file>
    </swigxml:child>
  </swig:top>
</swigxml:swig>
