489 lines
24 KiB
HTML
489 lines
24 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
|
|
<HTML>
|
|
<HEAD>
|
|
<TITLE>class SG_EXPORT osg::Impostor</TITLE>
|
|
<META NAME="GENERATOR" CONTENT="DOC++ 3.4.10">
|
|
</HEAD>
|
|
<BODY BGCOLOR="#ffffff">
|
|
|
|
<H2>class SG_EXPORT <A HREF="#DOC.DOCU">osg::Impostor</A></H2></H2><BLOCKQUOTE>Impostor - is a form of Level Of Detail group node which allows both switching between children depending on distance from eye point and image caching.</BLOCKQUOTE>
|
|
<HR>
|
|
|
|
<H2>Inheritance:</H2>
|
|
<APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=185>
|
|
<param name=classes value="CReferenced,MReferenced.html,CObject,MObject.html,CNode,MNode.html,CGroup,MGroup.html,CLOD,MLOD.html,CImpostor,MImpostor.html">
|
|
<param name=before value="M,M,M,M,M,M">
|
|
<param name=after value="Md_SPSPSPSP,Md_SPSPSP,Md_SPSP,Md_SP,Md_,M">
|
|
<param name=indent value="0,1,2,3,4,5">
|
|
<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.82.1">Impostor</A></B>()
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.82.2">Impostor</A></B>(const <!1><A HREF="Impostor.html#DOC.2.82.2">Impostor</A>& es, 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.82.3">META_Node</A></B>(<!1><A HREF="osg.html">osg</A>, <!1><A HREF="Impostor.html">Impostor</A>)
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.82.5">setImpostorThreshold</A></B>(float <!1><A HREF="Plane.html#DOC.2.119.28">distance</A>)
|
|
<DD><I>Set the Impostor threshold distance.</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline void <B><A HREF="#DOC.2.82.6">setImpostorThresholdToBound</A></B>(float ratio=1.0f)
|
|
<DD><I>Set the Impostor threshold distance relative to the node's bounding sphere's radius</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline float <B><A HREF="#DOC.2.82.7">getImpostorThreshold</A></B>() const
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline float <B><A HREF="#DOC.2.82.8">getImpostorThreshold2</A></B>() const
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="ImpostorSprite.html">ImpostorSprite</A>* <B><A HREF="#DOC.2.82.9">findBestImpostorSprite</A></B>(unsigned int contextID, const <!1><A HREF="Vec3.html">osg::Vec3</A>& currLocalEyePoint) const
|
|
<DD><I>Find the ImposterSprite which fits the current eye point best</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>void <B><A HREF="#DOC.2.82.10">addImpostorSprite</A></B>(unsigned int contextID, <!1><A HREF="ImpostorSprite.html">ImpostorSprite</A>* is)
|
|
<DD><I>Add an ImpostorSprite to the Impostor</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline <!1><A HREF="Impostor.html#DOC.2.82.4">ImpostorSpriteList</A>& <B><A HREF="#DOC.2.82.11">getImpostorSpriteList</A></B>(unsigned int contexID)
|
|
<DD><I>Get the list of ImpostorSprites attached to this Impostor</I>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline const <!1><A HREF="Impostor.html#DOC.2.82.4">ImpostorSpriteList</A>& <B><A HREF="#DOC.2.82.12">getImpostorSpriteList</A></B>(unsigned int contexID) const
|
|
<DD><I>Get a const list of ImpostorSprites attached to this const Impostor</I>
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Public Members</H3><DD><DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>typedef std::vector< <!1><A HREF="ref_ptr.html">ref_ptr</A><<!1><A HREF="ImpostorSprite.html">ImpostorSprite</A>> > <B><A HREF="#DOC.2.82.4">ImpostorSpriteList</A></B>
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Protected Fields</H3><DD><DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>mutable <!1><A HREF="buffered_object.html">buffered_object</A><<!1><A HREF="Impostor.html#DOC.2.82.4">ImpostorSpriteList</A>> <B><A HREF="#DOC.2.82.15">_impostorSpriteListBuffer</A></B>
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>float <B><A HREF="#DOC.2.82.16">_impostorThreshold</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.82.13">~Impostor</A></B>()
|
|
<DT>
|
|
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>virtual bool <B><A HREF="#DOC.2.82.14">computeBound</A></B>() const
|
|
</DL></P>
|
|
|
|
</DL>
|
|
<HR><H3>Inherited from <A HREF="LOD.html">LOD</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>addChild</B>(<!1><A HREF="Node.html">Node</A>* child, float min, float max)
|
|
<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>void <B>setCenterMode</B>(<!1><A HREF="LOD.html#DOC.2.85.10">CenterMode</A> mode)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="LOD.html#DOC.2.85.10">CenterMode</A> <B>getCenterMode</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline void <B>setCenter</B>(const <!1><A HREF="Vec3.html">Vec3</A>& <!1><A HREF="BoundingSphere.html#DOC.2.29.8">center</A>)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="Vec3.html">Vec3</A>& <B>getCenter</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>void <B>setRange</B>(unsigned int childNo, float min, float max)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline float <B>getMinRange</B>(unsigned int childNo) const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline float <B>getMaxRange</B>(unsigned int childNo) const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline unsigned int <B>getNumRanges</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="LOD.html#DOC.2.85.9">RangeList</A>& <B>getRangeList</B>()
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="LOD.html#DOC.2.85.9">RangeList</A>& <B>getRangeList</B>() const
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Public Members</H3><DD><DT>
|
|
<IMG ALT="o" SRC=icon2.gif>typedef std::pair<float,float> <B>MinMaxPair</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>typedef std::vector<<!1><A HREF="LOD.html#DOC.2.85.8">MinMaxPair</A>> <B>RangeList</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>enum <B>CenterMode</B>
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Protected Fields</H3><DD><DT>
|
|
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="LOD.html#DOC.2.85.10">CenterMode</A> <B>_centerMode</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Vec3.html">Vec3</A> <B>_userDefinedCenter</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="LOD.html#DOC.2.85.9">RangeList</A> <B>_rangeList</B>
|
|
</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 <!1><A HREF="Group.html">Group</A>* <B>asGroup</B>()
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>virtual const <!1><A HREF="Group.html">Group</A>* <B>asGroup</B>() const
|
|
<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 unsigned int <B>getNumChildren</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>virtual bool <B>setChild</B>( unsigned int i, <!1><A HREF="Node.html">Node</A>* node )
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Node.html">Node</A>* <B>getChild</B>( unsigned int i )
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="Node.html">Node</A>* <B>getChild</B>( unsigned 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 unsigned int <B>getChildIndex</B>( const <!1><A HREF="Node.html">Node</A>* node ) const
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Public Members</H3><DD><DT>
|
|
<IMG ALT="o" SRC=icon2.gif>typedef std::vector<<!1><A HREF="ref_ptr.html">ref_ptr</A><<!1><A HREF="Node.html">Node</A>> > <B>ChildList</B>
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Protected Fields</H3><DD><DT>
|
|
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Group.html#DOC.2.78.1">ChildList</A> <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>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>& copyop) 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>libraryName</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>virtual const char* <B>className</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>virtual <!1><A HREF="Transform.html">Transform</A>* <B>asTransform</B>()
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>virtual const <!1><A HREF="Transform.html">Transform</A>* <B>asTransform</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& <!1><A HREF="Test.html#DOC.164.1.3">name</A> )
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline void <B>setName</B>( const char* <!1><A HREF="Test.html#DOC.164.1.3">name</A> )
|
|
<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.100.18">ParentList</A>& <B>getParents</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Node.html#DOC.2.100.18">ParentList</A> <B>getParents</B>()
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Group.html">Group</A>* <B>getParent</B>(unsigned int i)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="Group.html">Group</A>* <B>getParent</B>(unsigned int i) const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline unsigned int <B>getNumParents</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>void <B>setUpdateCallback</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>getUpdateCallback</B>()
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="NodeCallback.html">NodeCallback</A>* <B>getUpdateCallback</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 unsigned int <B>getNumChildrenRequiringUpdateTraversal</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>void <B>setCullCallback</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>getCullCallback</B>()
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="NodeCallback.html">NodeCallback</A>* <B>getCullCallback</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>void <B>setCullingActive</B>(bool active)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline bool <B>getCullingActive</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline unsigned int <B>getNumChildrenWithCullingDisabled</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline bool <B>isCullingActive</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline unsigned int <B>getNumChildrenWithOccluderNodes</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>bool <B>containsOccluderNodes</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline void <B>setNodeMask</B>(<!1><A HREF="Node.html#DOC.2.100.40">NodeMask</A> nm)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Node.html#DOC.2.100.40">NodeMask</A> <B>getNodeMask</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const <!1><A HREF="Node.html#DOC.2.100.43">DescriptionList</A>& <B>getDescriptions</B>() const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Node.html#DOC.2.100.43">DescriptionList</A>& <B>getDescriptions</B>()
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline const std::string& <B>getDescription</B>(unsigned int i) const
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline std::string& <B>getDescription</B>(unsigned int i)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline unsigned 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><!1><A HREF="StateSet.html">osg::StateSet</A>* <B>getOrCreateStateSet</B>()
|
|
<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 unsigned int <B>NodeMask</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.100.18">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>_updateCallback</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>unsigned int <B>_numChildrenRequiringUpdateTraversal</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>_cullCallback</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>bool <B>_cullingActive</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>unsigned int <B>_numChildrenWithCullingDisabled</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>unsigned int <B>_numChildrenWithOccluderNodes</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Node.html#DOC.2.100.40">NodeMask</A> <B>_nodeMask</B>
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif><!1><A HREF="Node.html#DOC.2.100.43">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>_stateset</B>
|
|
</DL></P>
|
|
|
|
<P><DL>
|
|
<DT><H3>Protected Methods</H3><DD><DT>
|
|
<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>
|
|
<IMG ALT="o" SRC=icon2.gif>void <B>setNumChildrenRequiringUpdateTraversal</B>(unsigned int num)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>void <B>setNumChildrenWithCullingDisabled</B>(unsigned int num)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>void <B>setNumChildrenWithOccluderNodes</B>(unsigned int num)
|
|
</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>inline void <B>setDataVariance</B>(<!1><A HREF="Object.html#DOC.2.117.8">DataVariance</A> dv)
|
|
<DT>
|
|
<IMG ALT="o" SRC=icon2.gif>inline <!1><A HREF="Object.html#DOC.2.117.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.117.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>Impostor - is a form of Level Of Detail group node which allows both switching
|
|
between children depending on distance from eye point and image caching.
|
|
|
|
<P>The principle behind Imposters is that they cache an image of real geometry and then the image is drawn
|
|
in subsequent frames instead of the real geometry. Its a bit like a
|
|
Billboard *but* is updated at runtime and w.r.t view point. By drawing
|
|
just the texture mapped quad you can cut down scene complexity and
|
|
improve performance.
|
|
|
|
<P>For more details have a look at:
|
|
|
|
<P>http://grail.cs.washington.edu/projects/hic/
|
|
|
|
<P>The OSG doesn't implement exactly the same technique as above, but its
|
|
should be a good starting place. The OSG's impostors are much less
|
|
intrusive since you don't need to restructure your whole scene to use
|
|
them.
|
|
|
|
<P>All you need to do to use Impostors is to set up the visible
|
|
range values for each LOD child of the Impostor, as per osg::LOD,
|
|
and set an Impostor threshold to tell the renderer at what distance
|
|
the Impostor's image caching should cut in. The osg::CullVisitor
|
|
automatically handles all the setting of pre-rendering stages to
|
|
calculate the required ImpostorSprites (which encapsulates the image
|
|
cache and quad), and updates them as the view point changes. If you
|
|
use osg::SceneView/CullVisitor all the complexity of supporting
|
|
Impostor will be nicely hidden away.
|
|
|
|
<P>TODO:
|
|
Various improvements are planned for the Impostor-
|
|
1) Estimation of how many frames an ImpostorSprite will be reused, if
|
|
it won't be used more often than a minimum threshold then do not create
|
|
ImpostorSprite - use the real geometry.
|
|
2) Sharing of texture memory between ImpostorSprites.
|
|
3) Simple 3D geometry for ImpostorSprite's rather than Billboarding.
|
|
4) Shrinking of the ImpostorSprite size to more closely fit the underlying
|
|
geometry.</BLOCKQUOTE>
|
|
<DL>
|
|
|
|
<A NAME="Impostor"></A>
|
|
<A NAME="DOC.2.82.1"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Impostor()</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="Impostor"></A>
|
|
<A NAME="DOC.2.82.2"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Impostor(const <!1><A HREF="Impostor.html#DOC.2.82.2">Impostor</A>& es, const <!1><A HREF="CopyOp.html">CopyOp</A>& copyop=CopyOp::SHALLOW_COPY)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="META_Node"></A>
|
|
<A NAME="DOC.2.82.3"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> META_Node(<!1><A HREF="osg.html">osg</A>, <!1><A HREF="Impostor.html">Impostor</A>)</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="ImpostorSpriteList"></A>
|
|
<A NAME="DOC.2.82.4"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef std::vector< <!1><A HREF="ref_ptr.html">ref_ptr</A><<!1><A HREF="ImpostorSprite.html">ImpostorSprite</A>> > ImpostorSpriteList</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="setImpostorThreshold"></A>
|
|
<A NAME="DOC.2.82.5"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setImpostorThreshold(float <!1><A HREF="Plane.html#DOC.2.119.28">distance</A>)</B></TT>
|
|
<DD>Set the Impostor threshold distance.
|
|
For eye points further than this threshold the Imposter is used if appropriate,
|
|
otherwise the LOD children as chosen as per a standard LOD node.
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="setImpostorThresholdToBound"></A>
|
|
<A NAME="DOC.2.82.6"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline void setImpostorThresholdToBound(float ratio=1.0f)</B></TT>
|
|
<DD>Set the Impostor threshold distance relative to the node's bounding
|
|
sphere's radius
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getImpostorThreshold"></A>
|
|
<A NAME="DOC.2.82.7"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline float getImpostorThreshold() const </B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getImpostorThreshold2"></A>
|
|
<A NAME="DOC.2.82.8"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline float getImpostorThreshold2() const </B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="findBestImpostorSprite"></A>
|
|
<A NAME="DOC.2.82.9"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="ImpostorSprite.html">ImpostorSprite</A>* findBestImpostorSprite(unsigned int contextID, const <!1><A HREF="Vec3.html">osg::Vec3</A>& currLocalEyePoint) const </B></TT>
|
|
<DD>Find the ImposterSprite which fits the current eye point best
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="addImpostorSprite"></A>
|
|
<A NAME="DOC.2.82.10"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void addImpostorSprite(unsigned int contextID, <!1><A HREF="ImpostorSprite.html">ImpostorSprite</A>* is)</B></TT>
|
|
<DD>Add an ImpostorSprite to the Impostor
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getImpostorSpriteList"></A>
|
|
<A NAME="DOC.2.82.11"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline <!1><A HREF="Impostor.html#DOC.2.82.4">ImpostorSpriteList</A>& getImpostorSpriteList(unsigned int contexID)</B></TT>
|
|
<DD>Get the list of ImpostorSprites attached to this Impostor
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="getImpostorSpriteList"></A>
|
|
<A NAME="DOC.2.82.12"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline const <!1><A HREF="Impostor.html#DOC.2.82.4">ImpostorSpriteList</A>& getImpostorSpriteList(unsigned int contexID) const </B></TT>
|
|
<DD>Get a const list of ImpostorSprites attached to this const Impostor
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="~Impostor"></A>
|
|
<A NAME="DOC.2.82.13"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual ~Impostor()</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="computeBound"></A>
|
|
<A NAME="DOC.2.82.14"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>virtual bool computeBound() const </B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="_impostorSpriteListBuffer"></A>
|
|
<A NAME="DOC.2.82.15"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>mutable <!1><A HREF="buffered_object.html">buffered_object</A><<!1><A HREF="Impostor.html#DOC.2.82.4">ImpostorSpriteList</A>> _impostorSpriteListBuffer</B></TT>
|
|
<DL><DT><DD></DL><P>
|
|
<A NAME="_impostorThreshold"></A>
|
|
<A NAME="DOC.2.82.16"></A>
|
|
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>float _impostorThreshold</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>
|