Visualization Library

A lightweight C++ OpenGL middleware for 2D/3D graphics
[Home] [Tutorials] [All Classes] [Grouped Classes]

vl::ActorTreeAbstract Class Reference

The ActorTreeAbstract class implements the interface of a generic tree containing Actor[s] in its nodes. More...

#include <ActorTreeAbstract.hpp>

Inheritance diagram for vl::ActorTreeAbstract:

vl::Object vl::ActorKdTree vl::ActorTree

List of all members.

Public Member Functions

virtual const char * className ()
 Returns the name of the class.
 ActorTreeAbstract ()
virtual int childrenCount () const =0
 Returns the number of child nodes of an ActorTreeAbstract node.
virtual ActorTreeAbstractchild (int i)=0
 Returns the i-th child node of an ActorTreeAbstract node.
virtual const ActorTreeAbstractchild (int i) const =0
 Returns the i-th child node of an ActorTreeAbstract node.
const ActorTreeAbstractparent () const
 Returns the parent of a node.
ActorTreeAbstractparent ()
 Returns the parent of a node.
const ActorCollectionactors () const
 Returns the actors contained in a ActorTree node.
ActorCollectionactors ()
 Returns the actors contained in a ActorTree node.
const AABBaabb () const
 Returns the bounding box of a node. Such bounding box contains both the bounding boxes of the node's Actor[s] and of the child nodes.
void computeAABB ()
 Recursively computes the bounding box of a node so that it includes the bounding boxes of the node's Actor[s] and of the child nodes.
void appendActors (ActorCollection &list)
 Extracts all the Actor[s] contained in th ActorTree hierarchy and appends them to the given ActorCollection.
void appendVisibleActors (ActorCollection &list, const Camera *camera, unsigned enable_mask=0xFFFFFFFF)
 Extracts the enabled and visible Actor[s] contained in th ActorTree hierarchy and appends them to the given ActorCollection.
ActorTreeAbstracteraseActor (Actor *actor)
 Removes the given Actor from the ActorTreeAbstract.
ActoraddActor (Renderable *renderable, Effect *eff, Transform *tr=NULL)
 Utility function that adds an Actor and binds it to the given Renderable, Effect and Transform.
ActoraddActor (Actor *actor)
 Utility function equivalent to 'actors()->push_back(actor)'.
void setParent (ActorTreeAbstract *p)
 For internal use only.

Static Public Member Functions

static void prepareActors (ActorCollection &actors)
 Updates the Transform and the bounds of the given Actor[s].

Protected Attributes

ActorTreeAbstractmParent
ActorCollection mActors
AABB mAABB


Detailed Description

The ActorTreeAbstract class implements the interface of a generic tree containing Actor[s] in its nodes.

The interface of ActorTreeAbstract allows you to:

Does not allow you to:

See also:

Constructor & Destructor Documentation

ActorTreeAbstract::ActorTreeAbstract (  ) 


Member Function Documentation

virtual const char* vl::ActorTreeAbstract::className (  )  [inline, virtual]

Returns the name of the class.

Reimplemented from vl::Object.

Reimplemented in vl::ActorKdTree, and vl::ActorTree.

virtual int vl::ActorTreeAbstract::childrenCount (  )  const [pure virtual]

Returns the number of child nodes of an ActorTreeAbstract node.

Implemented in vl::ActorKdTree, and vl::ActorTree.

virtual ActorTreeAbstract* vl::ActorTreeAbstract::child ( int  i  )  [pure virtual]

Returns the i-th child node of an ActorTreeAbstract node.

Implemented in vl::ActorKdTree, and vl::ActorTree.

virtual const ActorTreeAbstract* vl::ActorTreeAbstract::child ( int  i  )  const [pure virtual]

Returns the i-th child node of an ActorTreeAbstract node.

Implemented in vl::ActorKdTree, and vl::ActorTree.

const ActorTreeAbstract* vl::ActorTreeAbstract::parent (  )  const [inline]

Returns the parent of a node.

ActorTreeAbstract* vl::ActorTreeAbstract::parent (  )  [inline]

Returns the parent of a node.

const ActorCollection* vl::ActorTreeAbstract::actors (  )  const [inline]

Returns the actors contained in a ActorTree node.

ActorCollection* vl::ActorTreeAbstract::actors (  )  [inline]

Returns the actors contained in a ActorTree node.

const AABB& vl::ActorTreeAbstract::aabb (  )  const [inline]

Returns the bounding box of a node. Such bounding box contains both the bounding boxes of the node's Actor[s] and of the child nodes.

void ActorTreeAbstract::computeAABB (  ) 

Recursively computes the bounding box of a node so that it includes the bounding boxes of the node's Actor[s] and of the child nodes.

void ActorTreeAbstract::appendActors ( ActorCollection list  ) 

Extracts all the Actor[s] contained in th ActorTree hierarchy and appends them to the given ActorCollection.

void ActorTreeAbstract::appendVisibleActors ( ActorCollection list,
const Camera camera,
unsigned  enable_mask = 0xFFFFFFFF 
)

Extracts the enabled and visible Actor[s] contained in th ActorTree hierarchy and appends them to the given ActorCollection.

This function implements a hierarchycal frustum culling algorithm that culls the nodes of the bounding box tree first and then the single Actor[s] contained in the nodes that could not be culled. See also Actor::enableMask()

ActorTreeAbstract * ActorTreeAbstract::eraseActor ( Actor actor  ) 

Removes the given Actor from the ActorTreeAbstract.

Actor * ActorTreeAbstract::addActor ( Renderable renderable,
Effect eff,
Transform tr = NULL 
)

Utility function that adds an Actor and binds it to the given Renderable, Effect and Transform.

Actor * ActorTreeAbstract::addActor ( Actor actor  ) 

Utility function equivalent to 'actors()->push_back(actor)'.

void ActorTreeAbstract::prepareActors ( ActorCollection actors  )  [static]

Updates the Transform and the bounds of the given Actor[s].

Before you create a bounding box tree or a kd-tree of Actor[s] you have to make sure that their Transform and bounding volumes are up-to-date. This is an utility function that lets you do that in a simple an quick way.

void vl::ActorTreeAbstract::setParent ( ActorTreeAbstract p  )  [inline]

For internal use only.


Member Data Documentation


The documentation for this class was generated from the following files:

Visualization Library v2010.06 Reference Documentation
Copyright 2005-2009 Michele Bosi. All rights reserved.
Updated on Tue Jun 1 00:57:12 2010.
Permission is granted to use this page to write and publish articles regarding Visualization Library.