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

openvrml::vrml97_node::point_light_node Class Reference

PointLight node instances. More...

Inheritance diagram for openvrml::vrml97_node::point_light_node:

Inheritance graph
[legend]
Collaboration diagram for openvrml::vrml97_node::point_light_node:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 point_light_node (const node_type &type, const scope_ptr &scope)
 Construct.

virtual ~point_light_node () throw ()
 Destroy.

virtual point_light_nodeto_point_light () const
 Cast to a point_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.

void process_set_attenuation (const field_value &value, double timestamp) throw (std::bad_cast)
 set_attenuation eventIn handler.

void process_set_location (const field_value &value, double timestamp) throw (std::bad_cast)
 set_location eventIn handler.

void process_set_radius (const field_value &value, double timestamp) throw (std::bad_cast)
 set_radius eventIn handler.


Private Attributes

sfvec3f attenuation
 attenuation exposedField.

sfvec3f location
 location exposedField.

sffloat radius
 radius exposedField.


Friends

class point_light_class
 Class object for PointLight instances.


Detailed Description

PointLight node instances.


Constructor & Destructor Documentation

openvrml::vrml97_node::point_light_node::point_light_node const node_type type,
const scope_ptr scope
 

Construct.

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

Member Function Documentation

void openvrml::vrml97_node::point_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::point_light_node::do_shutdown double  timestamp  )  throw () [private, virtual]
 

Shut down.

Parameters:
timestamp the current time.

Reimplemented from openvrml::node.

void openvrml::vrml97_node::point_light_node::process_set_attenuation const field_value value,
double  timestamp
throw (std::bad_cast) [private]
 

set_attenuation eventIn handler.

Parameters:
value an sfvec3f.
timestamp the current time.
Exceptions:
std::bad_cast if value is not an sfvec3f.

void openvrml::vrml97_node::point_light_node::process_set_location const field_value value,
double  timestamp
throw (std::bad_cast) [private]
 

set_location eventIn handler.

Parameters:
value an sfvec3f.
timestamp the current time.
Exceptions:
std::bad_cast if value is not an sfvec3f.

void openvrml::vrml97_node::point_light_node::process_set_radius const field_value value,
double  timestamp
throw (std::bad_cast) [private]
 

set_radius eventIn handler.

Parameters:
value an sffloat.
timestamp the current time.
Exceptions:
std::bad_cast if value is not an sffloat.

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

Render the scoped light.

This should be called before rendering any geometry nodes 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...

Parameters:
viewer a viewer.

Reimplemented from openvrml::vrml97_node::abstract_light_node.

point_light_node * openvrml::vrml97_node::point_light_node::to_point_light  )  const [virtual]
 

Cast to a point_light_node.

Returns:
a pointer to the point_light_node.

Reimplemented from openvrml::node.