Home | Download | Screen shots | Discussion | Documentation
--- | --- | --- | --- | ---

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:

[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_node * | to_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< sfvec3f > | attenuation_
| attenuation exposedField.
exposedfield< sffloat > | beam_width_
| beamWidth exposedField.
exposedfield< sffloat > | cut_off_angle_
| cutOffAngle exposedField.
exposedfield< sfvec3f > | direction_
| direction exposedField.
exposedfield< sfvec3f > | location_
| location exposedField.
exposedfield< sffloat > | radius_
| 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.