<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:addmethods >
                <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:addmethods>
            </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>
