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

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

# Todo List

Class openvrml::axis_aligned_bounding_box
  This class is currently just a placeholder.

Member openvrml::axis_aligned_bounding_box::intersect_frustum (const openvrml::frustum &frustum) const
  Implement me!

Member openvrml::axis_aligned_bounding_box::extend (const vec3f &p)
  Implement me!

Member openvrml::axis_aligned_bounding_box::extend (const axis_aligned_bounding_box &b)
  Implement me!

Member openvrml::axis_aligned_bounding_box::extend (const bounding_sphere &b)
  Implement me!

Member openvrml::axis_aligned_bounding_box::enclose (const std::vector< vec3f > &points)
  Implement me!

Member openvrml::bounding_sphere::extend (const axis_aligned_bounding_box &b)
  Implement me!

Member openvrml::browser::replace_world (const std::vector< node_ptr > &nodes)
  Implement me!

Member openvrml::browser::load_url (const std::vector< std::string > &url, const std::vector< std::string > &parameter)
  Make this asynchronous.

Member openvrml::browser::create_vrml_from_url (const std::vector< std::string > &url, const node_ptr &node, const std::string &event)
  Implement me!

Member openvrml::browser::event_mem [max_events]
  The event queue ought to be sorted by timestamp.

Member openvrml::geometry_node::~geometry_node ()=0
  Proper resource deallocation in the `viewer` depends on the `viewer` not having been decoupled from the browser. We need to handle this better via some refcounting scheme.

Member openvrml::geometry_node::color () const
  Reevaluate the way the renderer visits geometry nodes; potentially eliminate this method.

Member openvrml::gl::viewer::insert_point_light (float ambientIntensity, const vec3f &attenuation, const color &color, float intensity, const vec3f &location, float radius)
  Only objects within radius should be lit by each PointLight. Test each object drawn against each point light and enable the lights accordingly? Get light and geometry into consistent coordinates first.

Member openvrml::gl::viewer::insert_spot_light (float ambientIntensity, const vec3f &attenuation, float beamWidth, const color &color, float cutOffAngle, const vec3f &direction, float intensity, const vec3f &location, float radius)
  Same comments as for PointLight apply here.

Member openvrml::node::bounding_volume (const openvrml::bounding_volume &v)
  Implement me!

Member openvrml::scene::load_url (const std::vector< std::string > &url, const std::vector< std::string > &parameter)
  This method currently fails silently if any of the URIs in `url` is invalid. Should this throw invalid_url?

Member openvrml::texture_node::~texture_node ()=0
  Proper resource deallocation in the `viewer` depends on the `viewer` not having been decoupled from the browser. We need to handle this better via some refcounting scheme.

Member openvrml::texture_node::frames () const =0
  This needs to go away. Time-dependent textures might not be frame-based. For instance, consider an SVG animation.

Member openvrml::viewer::frustum () const
  We're forcing everybody to carry around a frustum whether they want it or not. It shouldn't be used except for debugging and stuff since it might not be valid in some implementations

Class openvrml::vrml97_node::audio_clip_node
  Implement sound support.

Member openvrml::vrml97_node::audio_clip_node::update (double time)
  Implement me!

Member openvrml::vrml97_node::indexed_face_set_node::do_render_geometry (openvrml::viewer &viewer, rendering_context context)
  stripify, crease angle, generate normals ...

Member openvrml::vrml97_node::indexed_line_set_node::do_render_geometry (openvrml::viewer &viewer, rendering_context context)
  colors

Member openvrml::vrml97_node::plane_sensor_node::activate (double timeStamp, bool isActive, double *p)
  The local coords are computed for one instance; do we need to convert `p` to local coords for each instance (USE) of the sensor?

Member openvrml::vrml97_node::spot_light_node::renderScoped (openvrml::viewer &viewer)
  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...

Member openvrml::vrml97_node::touch_sensor_node::activate (double timeStamp, bool isOver, bool isActive, double *p)
  Doesn't compute the xxx_changed eventOuts yet...

Member openvrml::vrml97_node::visibility_sensor_node::do_render_child (openvrml::viewer &viewer, rendering_context context)
  This is in a render() method since the it needs to be computed with respect to the accumulated transformations above it in the scene graph. Move to update() when xforms are accumulated in Groups...