299 lines
14 KiB
HTML
299 lines
14 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
|
|
<HTML>
|
|
<HEAD>
|
|
<TITLE>class SG_EXPORT osg::AnimationPath</TITLE>
|
|
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.10">
|
|
</HEAD>
|
|
<BODY BGCOLOR="#ffffff">
|
|
|
|
<H2>class SG_EXPORT <A HREF="#DOC.DOCU">osg::AnimationPath</A></H2></H2><BLOCKQUOTE>AnimationPath for specify the time varying transformation pathway to use when update camera and model objects.</BLOCKQUOTE>
|
|
<HR>
|
|
|
|
<H2>Inheritance:</H2>
|
|
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=95>
|
|
<param name=classes value="CReferenced,MReferenced.html,CObject,MObject.html,CAnimationPath,MAnimationPath.html">
|
|
<param name=before value="M,M,M">
|
|
<param name=after value="Md_SP,Md_,M">
|
|
<param name=indent value="0,1,2">
|
|
<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.2.1">AnimationPath</A></B>()
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.2.2">AnimationPath</A></B>(const <!1><A HREF="AnimationPath.html#DOC.2.2.2">AnimationPath</A>& ap, const <!1><A HREF="CopyOp.html">CopyOp</A>& copyop=CopyOp::SHALLOW_COPY)
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.2.3">META_Object</A></B>(<!1><A HREF="osg.html">osg</A>, <!1><A HREF="AnimationPath.html">AnimationPath</A>)
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.2.5">getMatrix</A></B>(double time, <!1><A HREF="Matrix.html">Matrix</A>& matrix) const
|
|
<DD><I>get the transformation matrix for a point in time</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.2.6">getInverse</A></B>(double time, <!1><A HREF="Matrix.html">Matrix</A>& matrix) const
|
|
<DD><I>get the inverse transformation matrix for a point in time</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual bool <B><A HREF="#DOC.2.2.7">getInterpolatedControlPoint</A></B>(double time, <!1><A HREF="AnimationPath.html#DOC.2.2.4">ControlPoint</A>& controlPoint) const
|
|
<DD><I>get the local ControlPoint frame for a point in time</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.2.8">insert</A></B>(double time, const <!1><A HREF="AnimationPath.html#DOC.2.2.4">ControlPoint</A>& controlPoint)
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.2.9">getFirstTime</A></B>() const
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.2.10">getLastTime</A></B>() const
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>double <B><A HREF="#DOC.2.2.11">getPeriod</A></B>() const
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.2.13">setLoopMode</A></B>(<!1><A HREF="AnimationPath.html#DOC.2.2.12">LoopMode</A> lm)
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="AnimationPath.html#DOC.2.2.12">LoopMode</A> <B><A HREF="#DOC.2.2.14">getLoopMode</A></B>() const
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="AnimationPath.html#DOC.2.2.15">TimeControlPointMap</A>& <B><A HREF="#DOC.2.2.16">getTimeControlPointMap</A></B>()
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const <!1><A HREF="AnimationPath.html#DOC.2.2.15">TimeControlPointMap</A>& <B><A HREF="#DOC.2.2.17">getTimeControlPointMap</A></B>() const
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Public Members</H3><DD><DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>struct <B><A HREF="#DOC.2.2.4">ControlPoint</A></B>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>enum <B><A HREF="#DOC.2.2.12">LoopMode</A></B>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>typedef std::map<double,<!1><A HREF="AnimationPath.html#DOC.2.2.4">ControlPoint</A>> <B><A HREF="#DOC.2.2.15">TimeControlPointMap</A></B>
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Protected Fields</H3><DD><DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="AnimationPath.html#DOC.2.2.15">TimeControlPointMap</A> <B><A HREF="#DOC.2.2.19">_timeControlPointMap</A></B>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="AnimationPath.html#DOC.2.2.12">LoopMode</A> <B><A HREF="#DOC.2.2.20">_loopMode</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.2.18">~AnimationPath</A></B>()
|
|
</DL></P>
|
|
|
|
</DL>
|
|
<HR><H3>Inherited from <A HREF="Object.html">Object</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>cloneType</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>virtual <!1><A HREF="Object.html">Object</A>* <B>clone</B>(const <!1><A HREF="CopyOp.html">CopyOp</A>&) const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>isSameKindAs</B>(const <!1><A HREF="Object.html">Object</A>*) const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>virtual const char* <B>libraryName</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>virtual const char* <B>className</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline void <B>setDataVariance</B>(<!1><A HREF="Object.html#DOC.2.124.8">DataVariance</A> dv)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Object.html#DOC.2.124.8">DataVariance</A> <B>getDataVariance</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline void <B>setUserData</B>(<!1><A HREF="Referenced.html">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
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Public Members</H3><DD><DT>
|
|
<IMG ALT="o" SRC=icon2.gif>enum <B>DataVariance</B>
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Protected Fields</H3><DD><DT>
|
|
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Object.html#DOC.2.124.8">DataVariance</A> <B>_dataVariance</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="ref_ptr.html">ref_ptr</A><<!1><A HREF="Referenced.html">Referenced</A>> <B>_userData</B>
|
|
</DL></P>
|
|
|
|
</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>static void <B>setDeleteHandler</B>(<!1><A HREF="DeleteHandler.html">DeleteHandler</A>* handler)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>static <!1><A HREF="DeleteHandler.html">DeleteHandler</A>* <B>getDeleteHandler</B>()
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline void <B>ref</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline void <B>unref_nodelete</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline int <B>referenceCount</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline void <B>unref</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>AnimationPath for specify the time varying transformation pathway to use when update camera and model objects.
|
|
Subclassed from Transform::ComputeTransformCallback allows AnimationPath to
|
|
be attached directly to Transform nodes to move subgraphs around the scene.</BLOCKQUOTE>
|
|
<DL>
|
|
|
|
<A NAME="AnimationPath"></A>
|
|
<A NAME="DOC.2.2.1"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> AnimationPath()</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="AnimationPath"></A>
|
|
<A NAME="DOC.2.2.2"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> AnimationPath(const <!1><A HREF="AnimationPath.html#DOC.2.2.2">AnimationPath</A>& ap, const <!1><A HREF="CopyOp.html">CopyOp</A>& copyop=CopyOp::SHALLOW_COPY)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="META_Object"></A>
|
|
<A NAME="DOC.2.2.3"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> META_Object(<!1><A HREF="osg.html">osg</A>, <!1><A HREF="AnimationPath.html">AnimationPath</A>)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="ControlPoint"></A>
|
|
<A NAME="DOC.2.2.4"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>struct ControlPoint</B></TT>
|
|
<DL><DT><DD></DL><P><DL>
|
|
|
|
<A NAME="ControlPoint"></A>
|
|
<A NAME="DOC.2.2.4.1"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ControlPoint()</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="ControlPoint"></A>
|
|
<A NAME="DOC.2.2.4.2"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ControlPoint(const <!1><A HREF="Vec3.html">osg::Vec3</A>& position)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="ControlPoint"></A>
|
|
<A NAME="DOC.2.2.4.3"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ControlPoint(const <!1><A HREF="Vec3.html">osg::Vec3</A>& position, const <!1><A HREF="Quat.html">osg::Quat</A>& rotation)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="ControlPoint"></A>
|
|
<A NAME="DOC.2.2.4.4"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ControlPoint(const <!1><A HREF="Vec3.html">osg::Vec3</A>& position, const <!1><A HREF="Quat.html">osg::Quat</A>& rotation, const <!1><A HREF="Vec3.html">osg::Vec3</A>& <!1><A HREF="Matrix.html#DOC.2.100.39">scale</A>)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="_position"></A>
|
|
<A NAME="DOC.2.2.4.5"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Vec3.html">osg::Vec3</A> _position</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="_rotation"></A>
|
|
<A NAME="DOC.2.2.4.6"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Quat.html">osg::Quat</A> _rotation</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="_scale"></A>
|
|
<A NAME="DOC.2.2.4.7"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Vec3.html">osg::Vec3</A> _scale</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="interpolate"></A>
|
|
<A NAME="DOC.2.2.4.8"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void interpolate(float ratio, const <!1><A HREF="AnimationPath.html#DOC.2.2.4">ControlPoint</A>& <!1><A HREF="ImpostorSpriteManager.html#DOC.2.91.3">first</A>, const <!1><A HREF="AnimationPath.html#DOC.2.2.4">ControlPoint</A>& <!1><A HREF="Geometry.html#DOC.2.82.50.5">second</A>)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getMatrix"></A>
|
|
<A NAME="DOC.2.2.4.9"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void getMatrix(<!1><A HREF="Matrix.html">Matrix</A>& matrix) const </B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getInverse"></A>
|
|
<A NAME="DOC.2.2.4.10"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void getInverse(<!1><A HREF="Matrix.html">Matrix</A>& matrix) const </B></TT>
|
|
<DL><DT><DD></DL><P></DL>
|
|
|
|
<A NAME="getMatrix"></A>
|
|
<A NAME="DOC.2.2.5"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool getMatrix(double time, <!1><A HREF="Matrix.html">Matrix</A>& matrix) const </B></TT>
|
|
<DD>get the transformation matrix for a point in time
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getInverse"></A>
|
|
<A NAME="DOC.2.2.6"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool getInverse(double time, <!1><A HREF="Matrix.html">Matrix</A>& matrix) const </B></TT>
|
|
<DD>get the inverse transformation matrix for a point in time
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getInterpolatedControlPoint"></A>
|
|
<A NAME="DOC.2.2.7"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool getInterpolatedControlPoint(double time, <!1><A HREF="AnimationPath.html#DOC.2.2.4">ControlPoint</A>& controlPoint) const </B></TT>
|
|
<DD>get the local ControlPoint frame for a point in time
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="insert"></A>
|
|
<A NAME="DOC.2.2.8"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void insert(double time, const <!1><A HREF="AnimationPath.html#DOC.2.2.4">ControlPoint</A>& controlPoint)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getFirstTime"></A>
|
|
<A NAME="DOC.2.2.9"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>double getFirstTime() const </B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getLastTime"></A>
|
|
<A NAME="DOC.2.2.10"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>double getLastTime() const </B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getPeriod"></A>
|
|
<A NAME="DOC.2.2.11"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>double getPeriod() const </B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="LoopMode"></A>
|
|
<A NAME="DOC.2.2.12"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>enum LoopMode</B></TT>
|
|
<DL><DT><DD></DL><P><DL>
|
|
|
|
<A NAME="SWING"></A>
|
|
<A NAME="DOC.2.2.12.1"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> SWING</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="LOOP"></A>
|
|
<A NAME="DOC.2.2.12.2"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> LOOP</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="NO_LOOPING"></A>
|
|
<A NAME="DOC.2.2.12.3"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> NO_LOOPING</B></TT>
|
|
<DL><DT><DD></DL><P></DL>
|
|
|
|
<A NAME="setLoopMode"></A>
|
|
<A NAME="DOC.2.2.13"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setLoopMode(<!1><A HREF="AnimationPath.html#DOC.2.2.12">LoopMode</A> lm)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getLoopMode"></A>
|
|
<A NAME="DOC.2.2.14"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="AnimationPath.html#DOC.2.2.12">LoopMode</A> getLoopMode() const </B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="TimeControlPointMap"></A>
|
|
<A NAME="DOC.2.2.15"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef std::map<double,<!1><A HREF="AnimationPath.html#DOC.2.2.4">ControlPoint</A>> TimeControlPointMap</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getTimeControlPointMap"></A>
|
|
<A NAME="DOC.2.2.16"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="AnimationPath.html#DOC.2.2.15">TimeControlPointMap</A>& getTimeControlPointMap()</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getTimeControlPointMap"></A>
|
|
<A NAME="DOC.2.2.17"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const <!1><A HREF="AnimationPath.html#DOC.2.2.15">TimeControlPointMap</A>& getTimeControlPointMap() const </B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="~AnimationPath"></A>
|
|
<A NAME="DOC.2.2.18"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~AnimationPath()</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="_timeControlPointMap"></A>
|
|
<A NAME="DOC.2.2.19"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="AnimationPath.html#DOC.2.2.15">TimeControlPointMap</A> _timeControlPointMap</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="_loopMode"></A>
|
|
<A NAME="DOC.2.2.20"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="AnimationPath.html#DOC.2.2.12">LoopMode</A> _loopMode</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>
|