Main Page | Modules | Namespace List | Class Hierarchy | Class List | Namespace Members | Class Members | Related Pages

openvrml::vrml97_node::spot_light_node Class Reference

Inheritance diagram for openvrml::vrml97_node::spot_light_node:

Inheritance graph
[legend]
List of all members.

Detailed Description

SpotLight node instances.


Public Member Functions

 spot_light_node (const node_type &type, const boost::shared_ptr< openvrml::scope > &scope)
 Construct.
virtual ~spot_light_node () throw ()
 Destroy.
virtual spot_light_nodeto_spot_light () const
 Cast to a spot_light_node.
virtual void renderScoped (openvrml::viewer &viewer)
 Render the scoped light.

Private Member Functions

virtual void do_initialize (double timestamp) throw (std::bad_alloc)
 Initialize.
virtual void do_shutdown (double timestamp) throw ()
 Shut down.

Private Attributes

exposedfield< sfvec3fattenuation_
 attenuation exposedField.
exposedfield< sffloatbeam_width_
 beamWidth exposedField.
exposedfield< sffloatcut_off_angle_
 cutOffAngle exposedField.
exposedfield< sfvec3fdirection_
 direction exposedField.
exposedfield< sfvec3flocation_
 location exposedField.
exposedfield< sffloatradius_
 radius exposedField.

Friends

class spot_light_class
 Class object for SpotLight instances.

Constructor & Destructor Documentation

openvrml::vrml97_node::spot_light_node::spot_light_node const node_type type,
const boost::shared_ptr< openvrml::scope > &  scope
 

Construct.

Parameters:
type the node_type associated with the node instance.
scope the scope to which the node belongs.

openvrml::vrml97_node::spot_light_node::~spot_light_node  )  throw () [virtual]
 

Destroy.


Member Function Documentation

spot_light_node * openvrml::vrml97_node::spot_light_node::to_spot_light  )  const [virtual]
 

Cast to a spot_light_node.

Returns:
a pointer to the node.

Reimplemented from openvrml::node.

void openvrml::vrml97_node::spot_light_node::renderScoped openvrml::viewer viewer  )  [virtual]
 

Render the scoped light.

Parameters:
viewer a Viewer.
Todo:
This should be called before rendering any geometry in the scene. Since this is called from Scene::render before traversing the scene graph, the proper transformation matrix hasn't been set up. Somehow it needs to figure out the accumulated xforms of its parents and apply them before rendering. This is not easy with DEF/USEd nodes...

Reimplemented from openvrml::vrml97_node::abstract_light_node.

void openvrml::vrml97_node::spot_light_node::do_initialize double  timestamp  )  throw (std::bad_alloc) [private, virtual]
 

Initialize.

Parameters:
timestamp the current time.
Exceptions:
std::bad_alloc if memory allocation fails.

Reimplemented from openvrml::node.

void openvrml::vrml97_node::spot_light_node::do_shutdown double  timestamp  )  throw () [private, virtual]
 

Shut down.

Parameters:
timestamp the current time.

Reimplemented from openvrml::node.


Friends And Related Function Documentation

openvrml::vrml97_node::spot_light_node::spot_light_class [friend]
 

Class object for SpotLight instances.


Member Data Documentation

exposedfield< sfvec3f > openvrml::vrml97_node::spot_light_node::attenuation_ [private]
 

attenuation exposedField.

expoosedfield< sffloat > openvrml::vrml97_node::spot_light_node::beam_width_ [private]
 

beamWidth exposedField.

exposedfield< sffloat > openvrml::vrml97_node::spot_light_node::cut_off_angle_ [private]
 

cutOffAngle exposedField.

exposedfield< sfvec3f > openvrml::vrml97_node::spot_light_node::direction_ [private]
 

direction exposedField.

exposedfield< sfvec3f > openvrml::vrml97_node::spot_light_node::location_ [private]
 

location exposedField.

exposedfield< sffloat > openvrml::vrml97_node::spot_light_node::radius_ [private]
 

radius exposedField.