OpenSceneGraph/doc/doc++/osg/Billboard.html

499 lines
26 KiB
HTML
Raw Normal View History

2001-09-20 05:19:47 +08:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>class SG_EXPORT osg::Billboard</TITLE>
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>class SG_EXPORT <A HREF="#DOC.DOCU">osg::Billboard</A></H2></H2><BLOCKQUOTE>Billboard - a Geode which orientates its child osg::Drawable's to face the eye point.</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,CGeode,MGeode.html,CBillboard,MBillboard.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.2.2">Billboard</A></B>()
<DT>
2002-02-09 18:54:18 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.2.3">Billboard</A></B>(const <!1><A HREF="Billboard.html#DOC.2.2.3">Billboard</A>&amp;, const <!1><A HREF="CopyOp.html">CopyOp</A>&amp; copyop=CopyOp::SHALLOW_COPY)
<DD><I>Copy constructor using CopyOp to manage deep vs shallow copy</I>
2001-09-20 05:19:47 +08:00
<DT>
2002-02-09 18:54:18 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.2.4">META_Node</A></B>(<!1><A HREF="Billboard.html">Billboard</A>)
2001-09-20 05:19:47 +08:00
<DT>
2002-02-09 18:54:18 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.2.5">setMode</A></B>(const <!1><A HREF="Billboard.html#DOC.2.2.1">Mode</A> mode)
2001-09-20 05:19:47 +08:00
<DD><I>Set the billboard rotation mode.</I>
<DT>
2002-02-09 18:54:18 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Billboard.html#DOC.2.2.1">Mode</A> <B><A HREF="#DOC.2.2.6">getMode</A></B>() const
2001-09-20 05:19:47 +08:00
<DD><I>Get the billboard rotation mode.</I>
<DT>
2002-02-09 18:54:18 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.2.7">setAxis</A></B>(const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis)
<DD><I>Set the axis about which all the billboard's drawable rotate.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Vec3.html">Vec3</A>&amp; <B><A HREF="#DOC.2.2.8">getAxis</A></B>() const
<DD><I>Get the axis about which all the billboard's drawable rotate.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.2.9">setPos</A></B>(int i, const <!1><A HREF="Vec3.html">Vec3</A>&amp; pos)
2001-09-20 05:19:47 +08:00
<DD><I>Set the position of specified drawable.</I>
<DT>
2002-02-09 18:54:18 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Vec3.html">Vec3</A>&amp; <B><A HREF="#DOC.2.2.10">getPos</A></B>(int i) const
2001-09-20 05:19:47 +08:00
<DD><I>Get the position of specified drawable.</I>
<DT>
2002-02-09 18:54:18 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Billboard.html#DOC.2.2.11">PositionList</A>&amp; <B><A HREF="#DOC.2.2.12">getPositionList</A></B>()
2001-12-25 05:56:22 +08:00
<DD><I>Get the PositionList from the billboard</I>
2001-09-20 05:19:47 +08:00
<DT>
2002-02-09 18:54:18 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Billboard.html#DOC.2.2.11">PositionList</A>&amp; <B><A HREF="#DOC.2.2.13">getPositionList</A></B>() const
2001-12-25 05:56:22 +08:00
<DD><I>Get a const PositionList from the billboard</I>
2001-09-20 05:19:47 +08:00
<DT>
2002-02-09 18:54:18 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual const bool <B><A HREF="#DOC.2.2.14">addDrawable</A></B>( <!1><A HREF="Drawable.html">Drawable</A>* gset )
2001-09-20 05:19:47 +08:00
<DD><I>Add Drawable to Billboard with default position(0,0,0); If gset not NULL and is not contained in Billboard then increment its reference count, and dirty the bounding box to cause it to recompute on next getBound() and return true for success.</I>
<DT>
2002-02-09 18:54:18 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual const bool <B><A HREF="#DOC.2.2.15">addDrawable</A></B>(<!1><A HREF="Drawable.html">Drawable</A>* gset, const <!1><A HREF="Vec3.html">Vec3</A>&amp; pos)
2001-09-20 05:19:47 +08:00
<DD><I>Add Drawable to Geode at position pos.</I>
<DT>
2002-02-09 18:54:18 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual const bool <B><A HREF="#DOC.2.2.16">removeDrawable</A></B>( <!1><A HREF="Drawable.html">Drawable</A>* gset )
2001-09-20 05:19:47 +08:00
<DD><I>Remove Drawable and associated position from Billboard.</I>
<DT>
2002-02-09 18:54:18 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.2.18">setComputeBillboardCallback</A></B>(<!1><A HREF="Billboard.html#DOC.2.2.17">ComputeBillboardCallback</A>* ctc)
<DD><I>Set the ComputeBillboardCallback which allows users to attach custom computation of the local transformation as seen by cull traversers and alike</I>
2001-09-20 05:19:47 +08:00
<DT>
2002-02-09 18:54:18 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Billboard.html#DOC.2.2.17">ComputeBillboardCallback</A>* <B><A HREF="#DOC.2.2.19">getComputeBillboardCallback</A></B>()
<DD><I>Get the non const ComputeBillboardCallback</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const <!1><A HREF="Billboard.html#DOC.2.2.17">ComputeBillboardCallback</A>* <B><A HREF="#DOC.2.2.20">getComputeBillboardCallback</A></B>() const
<DD><I>Get the const ComputeBillboardCallback</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const bool <B><A HREF="#DOC.2.2.21">getMatrix</A></B>(<!1><A HREF="Matrix.html">Matrix</A>&amp; matrix, const <!1><A HREF="Vec3.html">Vec3</A>&amp; eye_local, const <!1><A HREF="Vec3.html">Vec3</A>&amp; up_local, const <!1><A HREF="Vec3.html">Vec3</A>&amp; pos_local) const
2001-09-20 05:19:47 +08:00
</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.2.1">Mode</A></B>
<DT>
2002-02-09 18:54:18 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>typedef std::vector&lt;<!1><A HREF="Vec3.html">Vec3</A>&gt; <B><A HREF="#DOC.2.2.11">PositionList</A></B>
2001-09-20 05:19:47 +08:00
<DD><I>PositionList represents a list of pivot points for each drawable</I>
2002-02-09 18:54:18 +08:00
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>struct <B><A HREF="#DOC.2.2.17">ComputeBillboardCallback</A></B>: public <!1><A HREF="Referenced.html">osg::Referenced</A>
<DD><I>Callback attached to an Billboard which allows the users to customize the billboard orientation calculation during cull traversal</I>
2001-09-20 05:19:47 +08:00
</DL></P>
<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
2002-02-09 18:54:18 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Billboard.html#DOC.2.2.1">Mode</A> <B><A HREF="#DOC.2.2.26">_mode</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2002-02-09 18:54:18 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Vec3.html">Vec3</A> <B><A HREF="#DOC.2.2.27">_axis</A></B>
2001-09-20 05:19:47 +08:00
<DT>
2002-02-09 18:54:18 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Billboard.html#DOC.2.2.11">PositionList</A> <B><A HREF="#DOC.2.2.28">_positionList</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="Billboard.html#DOC.2.2.17">ComputeBillboardCallback</A>&gt; <B><A HREF="#DOC.2.2.29">_computeBillboardCallback</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>int <B><A HREF="#DOC.2.2.30">_cachedMode</A></B>
2001-09-20 05:19:47 +08:00
</DL></P>
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
2002-02-09 18:54:18 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual <B><A HREF="#DOC.2.2.22">~Billboard</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual const bool <B><A HREF="#DOC.2.2.23">computeBound</A></B>() const
2001-09-20 05:19:47 +08:00
<DT>
2002-02-09 18:54:18 +08:00
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual const bool <B><A HREF="#DOC.2.2.24">computeMatrix</A></B>(<!1><A HREF="Matrix.html">Matrix</A>&amp; matrix, const <!1><A HREF="Vec3.html">Vec3</A>&amp; eye_local, const <!1><A HREF="Vec3.html">Vec3</A>&amp; up_local, const <!1><A HREF="Vec3.html">Vec3</A>&amp; pos_local) const
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.2.31">setCachedMode</A></B>()
</DL></P>
<P><DL>
<DT><H3>Protected Members</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>enum <B><A HREF="#DOC.2.2.25">AxisAligned</A></B>
2001-09-20 05:19:47 +08:00
</DL></P>
</DL>
<HR><H3>Inherited from <A HREF="Geode.html">Geode</A>:</H3>
<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>virtual const bool <B>replaceDrawable</B>( <!1><A HREF="Drawable.html">Drawable</A>* origDraw, <!1><A HREF="Drawable.html">Drawable</A>* newDraw )
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const int <B>getNumDrawables</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Drawable.html">Drawable</A>* <B>getDrawable</B>( const int i )
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="Drawable.html">Drawable</A>* <B>getDrawable</B>( const int i ) const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const bool <B>containsDrawable</B>(const <!1><A HREF="Drawable.html">Drawable</A>* gset) const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline DrawableList::iterator <B>findDrawable</B>(const <!1><A HREF="Drawable.html">Drawable</A>* gset)
<DT>
<IMG ALT="o" SRC=icon2.gif>inline DrawableList::const_iterator <B>findDrawable</B>(const <!1><A HREF="Drawable.html">Drawable</A>* gset) const
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>compileDrawables</B>(<!1><A HREF="State.html">State</A>&amp; state)
</DL></P>
<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
<IMG ALT="o" SRC=icon2.gif>DrawableList <B>_drawables</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>
2002-02-09 18:54:18 +08:00
<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>&amp; copyop) const
2001-09-22 10:42:08 +08:00
<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>&amp; nv)
<DT>
2001-09-20 05:19:47 +08:00
<IMG ALT="o" SRC=icon2.gif>virtual void <B>ascend</B>(<!1><A HREF="NodeVisitor.html">NodeVisitor</A>&amp; nv)
<DT>
<IMG ALT="o" SRC=icon2.gif>virtual void <B>traverse</B>(<!1><A HREF="NodeVisitor.html">NodeVisitor</A>&amp; )
<DT>
<IMG ALT="o" SRC=icon2.gif>inline void <B>setName</B>( const std::string&amp; 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&amp; <B>getName</B>() const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="Node.html#DOC.2.71.13">ParentList</A>&amp; <B>getParents</B>() const
2002-02-09 18:54:18 +08:00
<DT>
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Node.html#DOC.2.71.13">ParentList</A> <B>getParents</B>()
2001-09-20 05:19:47 +08:00
<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>
2001-09-22 10:42:08 +08:00
<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>
2001-12-25 05:56:22 +08:00
<IMG ALT="o" SRC=icon2.gif>void <B>setCullingActive</B>(const bool active)
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="o" SRC=icon2.gif>inline const bool <B>getCullingActive</B>() const
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="o" SRC=icon2.gif>inline const int <B>getNumChildrenWithCullingDisabled</B>() const
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="o" SRC=icon2.gif>inline void <B>setUserData</B>(<!1><A HREF="Referenced.html">osg::Referenced</A>* obj)
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<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
2001-09-20 05:19:47 +08:00
<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.71.31">DescriptionList</A>&amp; <B>getDescriptions</B>() const
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Node.html#DOC.2.71.31">DescriptionList</A>&amp; <B>getDescriptions</B>()
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="o" SRC=icon2.gif>inline const std::string&amp; <B>getDescription</B>(const int i) const
<DT>
<IMG ALT="o" SRC=icon2.gif>inline std::string&amp; <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&amp; 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>&amp; <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&lt;<!1><A HREF="Group.html">Group</A>*&gt; <B>ParentList</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>typedef std::vector&lt;std::string&gt; <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.71.13">ParentList</A> <B>_parents</B>
2001-09-22 10:42:08 +08:00
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="NodeCallback.html">NodeCallback</A>&gt; <B>_appCallback</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>int <B>_numChildrenRequiringAppTraversal</B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="o" SRC=icon2.gif>bool <B>_cullingActive</B>
<DT>
<IMG ALT="o" SRC=icon2.gif>int <B>_numChildrenWithCullingDisabled</B>
2001-09-20 05:19:47 +08:00
<DT>
2001-12-25 05:56:22 +08:00
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="ref_ptr.html">osg::ref_ptr</A>&lt;<!1><A HREF="Referenced.html">Referenced</A>&gt; <B>_userData</B>
2001-09-20 05:19:47 +08:00
<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.71.31">DescriptionList</A> <B>_descriptions</B>
2001-09-20 05:19:47 +08:00
<DT>
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="StateSet.html">StateSet</A>&gt; <B>_dstate</B>
</DL></P>
2001-09-22 10:42:08 +08:00
<P><DL>
<DT><H3>Protected Methods</H3><DD><DT>
2002-02-09 18:54:18 +08:00
<IMG ALT="o" SRC=icon2.gif>void <B>addParent</B>(<!1><A HREF="Group.html">osg::Group</A>* node)
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>removeParent</B>(<!1><A HREF="Group.html">osg::Group</A>* node)
<DT>
2001-09-22 10:42:08 +08:00
<IMG ALT="o" SRC=icon2.gif>void <B>setNumChildrenRequiringAppTraversal</B>(const int num)
2001-12-25 05:56:22 +08:00
<DT>
<IMG ALT="o" SRC=icon2.gif>void <B>setNumChildrenWithCullingDisabled</B>(const int num)
2001-09-22 10:42:08 +08:00
</DL></P>
2001-09-20 05:19:47 +08:00
</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>&amp; <B>operator = </B>(<!1><A HREF="Referenced.html">Referenced</A>&amp;)
<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>Billboard - a Geode which orientates its child osg::Drawable's to face
2001-12-25 05:56:22 +08:00
the eye point. Typical uses are for trees, or particle explosions.</BLOCKQUOTE>
2001-09-20 05:19:47 +08:00
<DL>
<A NAME="Mode"></A>
<A NAME="DOC.2.2.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>enum Mode</B></TT>
<DL><DT><DD></DL><P><DL>
<A NAME="POINT_ROT_EYE"></A>
2002-02-09 18:54:18 +08:00
<A NAME="DOC.2.2.1.1"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> POINT_ROT_EYE</B></TT>
<DL><DT><DD></DL><P>
<A NAME="POINT_ROT_WORLD"></A>
2002-02-09 18:54:18 +08:00
<A NAME="DOC.2.2.1.2"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> POINT_ROT_WORLD</B></TT>
2002-02-09 18:54:18 +08:00
<DL><DT><DD></DL><P>
<A NAME="AXIAL_ROT"></A>
<A NAME="DOC.2.2.1.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> AXIAL_ROT</B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P></DL>
<A NAME="Billboard"></A>
<A NAME="DOC.2.2.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Billboard()</B></TT>
<DL><DT><DD></DL><P>
2002-02-09 18:54:18 +08:00
<A NAME="Billboard"></A>
2001-09-20 05:19:47 +08:00
<A NAME="DOC.2.2.3"></A>
2002-02-09 18:54:18 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Billboard(const <!1><A HREF="Billboard.html#DOC.2.2.3">Billboard</A>&amp;, const <!1><A HREF="CopyOp.html">CopyOp</A>&amp; copyop=CopyOp::SHALLOW_COPY)</B></TT>
<DD>Copy constructor using CopyOp to manage deep vs shallow copy
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
2002-02-09 18:54:18 +08:00
<A NAME="META_Node"></A>
2001-09-22 10:42:08 +08:00
<A NAME="DOC.2.2.4"></A>
2002-02-09 18:54:18 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> META_Node(<!1><A HREF="Billboard.html">Billboard</A>)</B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="setMode"></A>
2002-02-09 18:54:18 +08:00
<A NAME="DOC.2.2.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setMode(const <!1><A HREF="Billboard.html#DOC.2.2.1">Mode</A> mode)</B></TT>
2001-09-20 05:19:47 +08:00
<DD>Set the billboard rotation mode.
<DL><DT><DD></DL><P>
<A NAME="getMode"></A>
2002-02-09 18:54:18 +08:00
<A NAME="DOC.2.2.6"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="Billboard.html#DOC.2.2.1">Mode</A> getMode() const </B></TT>
<DD>Get the billboard rotation mode.
<DL><DT><DD></DL><P>
2002-02-09 18:54:18 +08:00
<A NAME="setAxis"></A>
<A NAME="DOC.2.2.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setAxis(const <!1><A HREF="Vec3.html">Vec3</A>&amp; axis)</B></TT>
<DD>Set the axis about which all the billboard's drawable rotate.
<DL><DT><DD></DL><P>
<A NAME="getAxis"></A>
2001-09-22 10:42:08 +08:00
<A NAME="DOC.2.2.8"></A>
2002-02-09 18:54:18 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="Vec3.html">Vec3</A>&amp; getAxis() const </B></TT>
<DD>Get the axis about which all the billboard's drawable rotate.
<DL><DT><DD></DL><P>
<A NAME="setPos"></A>
<A NAME="DOC.2.2.9"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setPos(int i, const <!1><A HREF="Vec3.html">Vec3</A>&amp; pos)</B></TT>
<DD>Set the position of specified drawable.
<DL><DT><DD></DL><P>
<A NAME="getPos"></A>
2002-02-09 18:54:18 +08:00
<A NAME="DOC.2.2.10"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="Vec3.html">Vec3</A>&amp; getPos(int i) const </B></TT>
<DD>Get the position of specified drawable.
<DL><DT><DD></DL><P>
<A NAME="PositionList"></A>
2002-02-09 18:54:18 +08:00
<A NAME="DOC.2.2.11"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef std::vector&lt;<!1><A HREF="Vec3.html">Vec3</A>&gt; PositionList</B></TT>
<DD>PositionList represents a list of pivot points for each drawable
<DL><DT><DD></DL><P>
<A NAME="getPositionList"></A>
2002-02-09 18:54:18 +08:00
<A NAME="DOC.2.2.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Billboard.html#DOC.2.2.11">PositionList</A>&amp; getPositionList()</B></TT>
2001-12-25 05:56:22 +08:00
<DD>Get the PositionList from the billboard
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="getPositionList"></A>
2002-02-09 18:54:18 +08:00
<A NAME="DOC.2.2.13"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="Billboard.html#DOC.2.2.11">PositionList</A>&amp; getPositionList() const </B></TT>
2001-12-25 05:56:22 +08:00
<DD>Get a const PositionList from the billboard
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="addDrawable"></A>
2002-02-09 18:54:18 +08:00
<A NAME="DOC.2.2.14"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual const bool addDrawable( <!1><A HREF="Drawable.html">Drawable</A>* gset )</B></TT>
<DD>Add Drawable to Billboard with default position(0,0,0);
If gset not NULL and is not contained in Billboard then increment its
reference count, and dirty the bounding box to cause it to recompute on
next getBound() and return true for success. Otherwise return false.
<DL><DT><DD></DL><P>
<A NAME="addDrawable"></A>
2002-02-09 18:54:18 +08:00
<A NAME="DOC.2.2.15"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual const bool addDrawable(<!1><A HREF="Drawable.html">Drawable</A>* gset, const <!1><A HREF="Vec3.html">Vec3</A>&amp; pos)</B></TT>
<DD>Add Drawable to Geode at position pos.
If gset not NULL and is not contained in Billboard then increment its
reference count, and dirty the bounding box to cause it to recompute on
next getBound() and return true for success. Otherwise return false.
<DL><DT><DD></DL><P>
<A NAME="removeDrawable"></A>
2002-02-09 18:54:18 +08:00
<A NAME="DOC.2.2.16"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual const bool removeDrawable( <!1><A HREF="Drawable.html">Drawable</A>* gset )</B></TT>
<DD>Remove Drawable and associated position from Billboard.
If gset is contained in Billboard then remove it from the geoset
list and decrement its reference count, and dirty the
bounding box to cause it to recompute on next getBound() and
return true for success. If gset is not found then return false
and do not the reference count of gset is left unchanged.
<DL><DT><DD></DL><P>
2002-02-09 18:54:18 +08:00
<A NAME="ComputeBillboardCallback"></A>
2001-09-22 10:42:08 +08:00
<A NAME="DOC.2.2.17"></A>
2002-02-09 18:54:18 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>struct ComputeBillboardCallback: public <!1><A HREF="Referenced.html">osg::Referenced</A></B></TT>
<DD>Callback attached to an Billboard which allows the users to customize the billboard orientation calculation during cull traversal
<DL><DT><DD></DL><P><DL>
<A NAME="computeMatrix"></A>
<A NAME="DOC.2.2.17.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual const bool computeMatrix(const <!1><A HREF="Matrix.html">Matrix</A>&amp; matrix, const <!1><A HREF="Billboard.html">Billboard</A>* billboard, const <!1><A HREF="Vec3.html">Vec3</A>&amp; eye_local, const <!1><A HREF="Vec3.html">Vec3</A>&amp; up_local, const <!1><A HREF="Vec3.html">Vec3</A>&amp; pos_local) const </B></TT>
<DD>Get the transformation matrix which moves from local coords to world coords
<DL><DT><DD></DL><P></DL>
<A NAME="setComputeBillboardCallback"></A>
<A NAME="DOC.2.2.18"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setComputeBillboardCallback(<!1><A HREF="Billboard.html#DOC.2.2.17">ComputeBillboardCallback</A>* ctc)</B></TT>
<DD>Set the ComputeBillboardCallback which allows users to attach custom computation of the local transformation as
seen by cull traversers and alike
<DL><DT><DD></DL><P>
<A NAME="getComputeBillboardCallback"></A>
<A NAME="DOC.2.2.19"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Billboard.html#DOC.2.2.17">ComputeBillboardCallback</A>* getComputeBillboardCallback()</B></TT>
<DD>Get the non const ComputeBillboardCallback
<DL><DT><DD></DL><P>
<A NAME="getComputeBillboardCallback"></A>
<A NAME="DOC.2.2.20"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const <!1><A HREF="Billboard.html#DOC.2.2.17">ComputeBillboardCallback</A>* getComputeBillboardCallback() const </B></TT>
<DD>Get the const ComputeBillboardCallback
<DL><DT><DD></DL><P>
<A NAME="getMatrix"></A>
<A NAME="DOC.2.2.21"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const bool getMatrix(<!1><A HREF="Matrix.html">Matrix</A>&amp; matrix, const <!1><A HREF="Vec3.html">Vec3</A>&amp; eye_local, const <!1><A HREF="Vec3.html">Vec3</A>&amp; up_local, const <!1><A HREF="Vec3.html">Vec3</A>&amp; pos_local) const </B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P>
<A NAME="~Billboard"></A>
2002-02-09 18:54:18 +08:00
<A NAME="DOC.2.2.22"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~Billboard()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="computeBound"></A>
2002-02-09 18:54:18 +08:00
<A NAME="DOC.2.2.23"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual const bool computeBound() const </B></TT>
<DL><DT><DD></DL><P>
2002-02-09 18:54:18 +08:00
<A NAME="computeMatrix"></A>
<A NAME="DOC.2.2.24"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual const bool computeMatrix(<!1><A HREF="Matrix.html">Matrix</A>&amp; matrix, const <!1><A HREF="Vec3.html">Vec3</A>&amp; eye_local, const <!1><A HREF="Vec3.html">Vec3</A>&amp; up_local, const <!1><A HREF="Vec3.html">Vec3</A>&amp; pos_local) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="AxisAligned"></A>
<A NAME="DOC.2.2.25"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>enum AxisAligned</B></TT>
<DL><DT><DD></DL><P><DL>
<A NAME="AXIAL_ROT_X_AXIS"></A>
<A NAME="DOC.2.2.25.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> AXIAL_ROT_X_AXIS</B></TT>
<DL><DT><DD></DL><P>
<A NAME="AXIAL_ROT_Y_AXIS"></A>
<A NAME="DOC.2.2.25.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> AXIAL_ROT_Y_AXIS</B></TT>
<DL><DT><DD></DL><P>
<A NAME="AXIAL_ROT_Z_AXIS"></A>
<A NAME="DOC.2.2.25.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> AXIAL_ROT_Z_AXIS</B></TT>
<DL><DT><DD></DL><P></DL>
2001-09-20 05:19:47 +08:00
<A NAME="_mode"></A>
2002-02-09 18:54:18 +08:00
<A NAME="DOC.2.2.26"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Billboard.html#DOC.2.2.1">Mode</A> _mode</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_axis"></A>
2002-02-09 18:54:18 +08:00
<A NAME="DOC.2.2.27"></A>
2001-09-20 05:19:47 +08:00
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Vec3.html">Vec3</A> _axis</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_positionList"></A>
2002-02-09 18:54:18 +08:00
<A NAME="DOC.2.2.28"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Billboard.html#DOC.2.2.11">PositionList</A> _positionList</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_computeBillboardCallback"></A>
<A NAME="DOC.2.2.29"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;<!1><A HREF="Billboard.html#DOC.2.2.17">ComputeBillboardCallback</A>&gt; _computeBillboardCallback</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_cachedMode"></A>
<A NAME="DOC.2.2.30"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>int _cachedMode</B></TT>
<DL><DT><DD></DL><P>
<A NAME="setCachedMode"></A>
<A NAME="DOC.2.2.31"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void setCachedMode()</B></TT>
2001-09-20 05:19:47 +08:00
<DL><DT><DD></DL><P></DL>
<HR><DL><DT><B>This class has no child classes.</B></DL>
2002-02-09 18:54:18 +08:00
<DL><DT><DT><B>Friends:</B><DD> struct <!1><A HREF="Billboard.html#DOC.2.2.17">osg::Billboard::ComputeBillboardCallback</A><BR><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>
2001-09-20 05:19:47 +08:00
<BR>
This page was generated with the help of <A HREF="http://docpp.sourceforge.net">DOC++</A>.
</BODY>
</HTML>