335 lines
15 KiB
HTML
335 lines
15 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
|
|
<HTML>
|
|
<HEAD>
|
|
<TITLE>class SG_EXPORT osg::Transform</TITLE>
|
|
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
|
|
</HEAD>
|
|
<BODY BGCOLOR="#ffffff">
|
|
|
|
<H2>class SG_EXPORT <A HREF="#DOC.DOCU">osg::Transform</A></H2></H2><BLOCKQUOTE>Transform - is group which all children are transformed by the the Transform's osg::Matrix.</BLOCKQUOTE>
|
|
<HR>
|
|
|
|
<H2>Inheritance:</H2>
|
|
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=155>
|
|
<param name=classes value="CReferenced,MReferenced.html,CObject,MObject.html,CNode,MNode.html,CGroup,MGroup.html,CTransform,MTransform.html">
|
|
<param name=before value="M,M,M,M,M">
|
|
<param name=after value="Md_SPSPSP,Md_SPSP,Md_SP,Md_,M">
|
|
<param name=indent value="0,1,2,3,4">
|
|
<param name=arrowdir value="down">
|
|
</APPLET>
|
|
<HR>
|
|
|
|
<DL>
|
|
<P><DL>
|
|
<DT><H3>Public Methods</H3><DD><DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.106.1">Transform</A></B>()
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.106.2">Transform</A></B>(const <!1><A HREF="Matrix.html">Matrix</A>& matix)
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.106.3">META_Node</A></B>(<!1><A HREF="Transform.html">Transform</A>)
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.106.5">setType</A></B>(<!1><A HREF="Transform.html#DOC.2.106.4">Type</A> type)
|
|
<DD><I>Set the Transform Type, which can be DYNAMIC - the Marix value is updated duing the main loop, or STATIC - the Matrix is constant throughut the life of the main loop.</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Transform.html#DOC.2.106.4">Type</A> <B><A HREF="#DOC.2.106.6">getType</A></B>() const
|
|
<DD><I>Get the Transform Type</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Matrix.html">Matrix</A>& <B><A HREF="#DOC.2.106.7">getMatrix</A></B>() const
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.106.8">setMatrix</A></B>(const <!1><A HREF="Matrix.html">Matrix</A>& mat )
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.106.9">preMult</A></B>( const <!1><A HREF="Matrix.html">Matrix</A>& mat )
|
|
<DD><I>preMult trasforms relative to the childrens coordinate system</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.106.10">postMult</A></B>( const <!1><A HREF="Matrix.html">Matrix</A>& mat )
|
|
<DD><I>postMult trasforms relative to the parents coordinate system</I>
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Public Members</H3><DD><DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>enum <B><A HREF="#DOC.2.106.4">Type</A></B>
|
|
<DD><I>Range of type that the Transform can be</I>
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Protected Fields</H3><DD><DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Transform.html#DOC.2.106.4">Type</A> <B><A HREF="#DOC.2.106.13">_type</A></B>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="ref_ptr.html">ref_ptr</A><<!1><A HREF="Matrix.html">Matrix</A>> <B><A HREF="#DOC.2.106.14">_matrix</A></B>
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Protected Methods</H3><DD><DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.106.11">~Transform</A></B>()
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual const bool <B><A HREF="#DOC.2.106.12">computeBound</A></B>() const
|
|
</DL></P>
|
|
|
|
</DL>
|
|
<HR><H3>Inherited from <A HREF="Group.html">Group</A>:</H3>
|
|
<DL>
|
|
<P><DL>
|
|
<DT><H3>Public Methods</H3><DD><DT>
|
|
<IMG ALT="o" SRC=icon2.gif>virtual void <B>traverse</B>(<!1><A HREF="NodeVisitor.html">NodeVisitor</A>& nv)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>addChild</B>( <!1><A HREF="Node.html">Node</A>* child )
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>removeChild</B>( <!1><A HREF="Node.html">Node</A>* child )
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>replaceChild</B>( <!1><A HREF="Node.html">Node</A>* origChild, <!1><A HREF="Node.html">Node</A>* newChild )
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const int <B>getNumChildren</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Node.html">Node</A>* <B>getChild</B>( const int i )
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="Node.html">Node</A>* <B>getChild</B>( const int i ) const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline bool <B>containsNode</B>( const <!1><A HREF="Node.html">Node</A>* node ) const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline ChildList::iterator <B>findNode</B>( const <!1><A HREF="Node.html">Node</A>* node )
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline ChildList::const_iterator <B>findNode</B>( const <!1><A HREF="Node.html">Node</A>* node ) const
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Protected Fields</H3><DD><DT>
|
|
<IMG ALT="o" SRC=icon2.gif>ChildList <B>_children</B>
|
|
</DL></P>
|
|
|
|
</DL>
|
|
<HR><H3>Inherited from <A HREF="Node.html">Node</A>:</H3>
|
|
<DL>
|
|
<P><DL>
|
|
<DT><H3>Public Methods</H3><DD><DT>
|
|
<IMG ALT="o" SRC=icon2.gif>virtual <!1><A HREF="Object.html">Object</A>* <B>clone</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>isSameKindAs</B>(const <!1><A HREF="Object.html">Object</A>* obj) const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>virtual const char* <B>className</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>virtual void <B>accept</B>(<!1><A HREF="NodeVisitor.html">NodeVisitor</A>& nv)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>virtual void <B>ascend</B>(<!1><A HREF="NodeVisitor.html">NodeVisitor</A>& nv)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline void <B>setName</B>( const std::string& name )
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline void <B>setName</B>( const char* name )
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const std::string& <B>getName</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="Node.html#DOC.2.67.11">ParentList</A>& <B>getParents</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Group.html">Group</A>* <B>getParent</B>(const int i)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="Group.html">Group</A>* <B>getParent</B>(const int i) const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const int <B>getNumParents</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>void <B>setAppCallback</B>(<!1><A HREF="NodeCallback.html">NodeCallback</A>* nc)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="NodeCallback.html">NodeCallback</A>* <B>getAppCallback</B>()
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="NodeCallback.html">NodeCallback</A>* <B>getAppCallback</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const int <B>getNumChildrenRequiringAppTraversal</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>void <B>setCullingActive</B>(const bool active)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const bool <B>getCullingActive</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const int <B>getNumChildrenWithCullingDisabled</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline void <B>setUserData</B>(<!1><A HREF="Referenced.html">osg::Referenced</A>* obj)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Referenced.html">Referenced</A>* <B>getUserData</B>()
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="Referenced.html">Referenced</A>* <B>getUserData</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline void <B>setNodeMask</B>(const NodeMask nm)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const NodeMask <B>getNodeMask</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="Node.html#DOC.2.67.28">DescriptionList</A>& <B>getDescriptions</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Node.html#DOC.2.67.28">DescriptionList</A>& <B>getDescriptions</B>()
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const std::string& <B>getDescription</B>(const int i) const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline std::string& <B>getDescription</B>(const int i)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const int <B>getNumDescriptions</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>void <B>addDescription</B>(const std::string& desc)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline void <B>setStateSet</B>(<!1><A HREF="StateSet.html">osg::StateSet</A>* dstate)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="StateSet.html">osg::StateSet</A>* <B>getStateSet</B>()
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="StateSet.html">osg::StateSet</A>* <B>getStateSet</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="BoundingSphere.html">BoundingSphere</A>& <B>getBound</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>void <B>dirtyBound</B>()
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Public Members</H3><DD><DT>
|
|
<IMG ALT="o" SRC=icon2.gif>typedef std::vector<<!1><A HREF="Group.html">Group</A>*> <B>ParentList</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>typedef std::vector<std::string> <B>DescriptionList</B>
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Protected Fields</H3><DD><DT>
|
|
<IMG ALT="o" SRC=icon2.gif>mutable <!1><A HREF="BoundingSphere.html">BoundingSphere</A> <B>_bsphere</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>mutable bool <B>_bsphere_computed</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>std::string <B>_name</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Node.html#DOC.2.67.11">ParentList</A> <B>_parents</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="ref_ptr.html">ref_ptr</A><<!1><A HREF="NodeCallback.html">NodeCallback</A>> <B>_appCallback</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>int <B>_numChildrenRequiringAppTraversal</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>bool <B>_cullingActive</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>int <B>_numChildrenWithCullingDisabled</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="ref_ptr.html">osg::ref_ptr</A><<!1><A HREF="Referenced.html">Referenced</A>> <B>_userData</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>NodeMask <B>_nodeMask</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Node.html#DOC.2.67.28">DescriptionList</A> <B>_descriptions</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="ref_ptr.html">ref_ptr</A><<!1><A HREF="StateSet.html">StateSet</A>> <B>_dstate</B>
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Protected Methods</H3><DD><DT>
|
|
<IMG ALT="o" SRC=icon2.gif>void <B>setNumChildrenRequiringAppTraversal</B>(const int num)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>void <B>setNumChildrenWithCullingDisabled</B>(const int num)
|
|
</DL></P>
|
|
|
|
</DL>
|
|
<HR><H3>Inherited from <A HREF="Object.html">Object</A>:</H3>
|
|
<DL>
|
|
</DL>
|
|
<HR><H3>Inherited from <A HREF="Referenced.html">Referenced</A>:</H3>
|
|
<DL>
|
|
<P><DL>
|
|
<DT><H3>Public Methods</H3><DD><DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Referenced.html">Referenced</A>& <B>operator = </B>(<!1><A HREF="Referenced.html">Referenced</A>&)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline void <B>ref</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline void <B>unref</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const int <B>referenceCount</B>() const
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Protected Fields</H3><DD><DT>
|
|
<IMG ALT="o" SRC=icon2.gif>mutable int <B>_refCount</B>
|
|
</DL></P>
|
|
|
|
</DL>
|
|
|
|
<A NAME="DOC.DOCU"></A>
|
|
<HR>
|
|
<H2>Documentation</H2>
|
|
<BLOCKQUOTE>Transform - is group which all children
|
|
are transformed by the the Transform's osg::Matrix. Typical uses
|
|
of the Transform is for positioning objects within a scene or
|
|
producing trakerball functionality or for animation.</BLOCKQUOTE>
|
|
<DL>
|
|
|
|
<A NAME="Transform"></A>
|
|
<A NAME="DOC.2.106.1"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Transform()</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="Transform"></A>
|
|
<A NAME="DOC.2.106.2"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Transform(const <!1><A HREF="Matrix.html">Matrix</A>& matix)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="META_Node"></A>
|
|
<A NAME="DOC.2.106.3"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> META_Node(<!1><A HREF="Transform.html">Transform</A>)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="Type"></A>
|
|
<A NAME="DOC.2.106.4"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>enum Type</B></TT>
|
|
<DD>Range of type that the Transform can be
|
|
<DL><DT><DD></DL><P><DL>
|
|
|
|
<A NAME="DYNAMIC"></A>
|
|
<A NAME="DOC.2.106.4.1"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> DYNAMIC</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="STATIC"></A>
|
|
<A NAME="DOC.2.106.4.2"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> STATIC</B></TT>
|
|
<DL><DT><DD></DL><P></DL>
|
|
|
|
<A NAME="setType"></A>
|
|
<A NAME="DOC.2.106.5"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setType(<!1><A HREF="Transform.html#DOC.2.106.4">Type</A> type)</B></TT>
|
|
<DD>Set the Transform Type, which can be DYNAMIC - the Marix
|
|
value is updated duing the main loop, or STATIC - the Matrix
|
|
is constant throughut the life of the main loop. STATIC
|
|
Transforms can be optimized away is some instances, which
|
|
can improve performanc so unless you plan to modify the
|
|
Matrix explicity set the Matrix to STATIC. The default
|
|
value is DYNAMIC.
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getType"></A>
|
|
<A NAME="DOC.2.106.6"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="Transform.html#DOC.2.106.4">Type</A> getType() const </B></TT>
|
|
<DD>Get the Transform Type
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getMatrix"></A>
|
|
<A NAME="DOC.2.106.7"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="Matrix.html">Matrix</A>& getMatrix() const </B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="setMatrix"></A>
|
|
<A NAME="DOC.2.106.8"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setMatrix(const <!1><A HREF="Matrix.html">Matrix</A>& mat )</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="preMult"></A>
|
|
<A NAME="DOC.2.106.9"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void preMult( const <!1><A HREF="Matrix.html">Matrix</A>& mat )</B></TT>
|
|
<DD>preMult trasforms relative to the childrens coordinate system
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="postMult"></A>
|
|
<A NAME="DOC.2.106.10"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void postMult( const <!1><A HREF="Matrix.html">Matrix</A>& mat )</B></TT>
|
|
<DD>postMult trasforms relative to the parents coordinate system
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="~Transform"></A>
|
|
<A NAME="DOC.2.106.11"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~Transform()</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="computeBound"></A>
|
|
<A NAME="DOC.2.106.12"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual const bool computeBound() const </B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="_type"></A>
|
|
<A NAME="DOC.2.106.13"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Transform.html#DOC.2.106.4">Type</A> _type</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="_matrix"></A>
|
|
<A NAME="DOC.2.106.14"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="ref_ptr.html">ref_ptr</A><<!1><A HREF="Matrix.html">Matrix</A>> _matrix</B></TT>
|
|
<DL><DT><DD></DL><P></DL>
|
|
|
|
<HR><DL><DT><B>This class has no child classes.</B></DL>
|
|
|
|
<DL><DT><DD></DL><P><P><I><A HREF="index.html">Alphabetic index</A></I> <I><A HREF="HIER.html">HTML hierarchy of classes</A> or <A HREF="HIERjava.html">Java</A></I></P><HR>
|
|
<BR>
|
|
This page was generated with the help of <A HREF="http://docpp.sourceforge.net">DOC++</A>.
|
|
</BODY>
|
|
</HTML>
|