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

openvrml::vrml97_node::point_light_node Class Reference

Inheritance diagram for openvrml::vrml97_node::point_light_node:

Inheritance graph
[legend]
List of all members.

Detailed Description

PointLight node instances.


Public Member Functions

 point_light_node (const node_type &type, const boost::shared_ptr< openvrml::scope > &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.

Private Attributes

exposedfield< sfvec3fattenuation_
 attenuation exposedField.
exposedfield< sfvec3flocation_
 location exposedField.
exposedfield< sffloatradius_
 radius exposedField.

Friends

class point_light_class
 Class object for PointLight instances.

Constructor & Destructor Documentation

openvrml::vrml97_node::point_light_node::point_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::point_light_node::~point_light_node  )  throw () [virtual]
 

Destroy.


Member Function Documentation

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.

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.

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.


Friends And Related Function Documentation

openvrml::vrml97_node::point_light_node::point_light_class [friend]
 

Class object for PointLight instances.


Member Data Documentation

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

attenuation exposedField.

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

location exposedField.

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

radius exposedField.