From: Braden M. <br...@us...> - 2007-04-01 19:29:04
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv7624/src/libopenvrml/openvrml Modified Files: Tag: OpenVRML-0_16-BRANCH vrml97node.cpp Log Message: Replaced *Url exposedField implementations with a class template. This incurs some runtime expense in terms of bloating background_node instances a bit; but since there shouldn't be too many of those, this is probably worth the code savings. Index: vrml97node.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/vrml97node.cpp,v retrieving revision 1.108.2.12 retrieving revision 1.108.2.13 diff -C2 -d -r1.108.2.12 -r1.108.2.13 *** vrml97node.cpp 12 Mar 2007 14:43:39 -0000 1.108.2.12 --- vrml97node.cpp 1 Apr 2007 19:29:02 -0000 1.108.2.13 *************** *** 2469,2559 **** }; ! class back_url_exposedfield : public exposedfield<mfstring> { ! public: ! explicit back_url_exposedfield(background_node & node) ! OPENVRML_NOTHROW; ! back_url_exposedfield(const back_url_exposedfield & obj) ! OPENVRML_NOTHROW; ! virtual ~back_url_exposedfield() OPENVRML_NOTHROW; ! ! private: ! virtual std::auto_ptr<field_value> do_clone() const ! OPENVRML_THROW1(std::bad_alloc); ! virtual void event_side_effect(const mfstring & value, ! double timestamp) ! OPENVRML_THROW1(std::bad_alloc); ! }; ! ! class bottom_url_exposedfield : public exposedfield<mfstring> { ! public: ! explicit bottom_url_exposedfield(background_node & node) ! OPENVRML_NOTHROW; ! bottom_url_exposedfield(const bottom_url_exposedfield & obj) ! OPENVRML_NOTHROW; ! virtual ~bottom_url_exposedfield() OPENVRML_NOTHROW; ! ! private: ! virtual std::auto_ptr<field_value> do_clone() const ! OPENVRML_THROW1(std::bad_alloc); ! virtual void event_side_effect(const mfstring & value, ! double timestamp) ! OPENVRML_THROW1(std::bad_alloc); ! }; ! ! class front_url_exposedfield : public exposedfield<mfstring> { ! public: ! explicit front_url_exposedfield(background_node & node) ! OPENVRML_NOTHROW; ! front_url_exposedfield(const front_url_exposedfield & obj) ! OPENVRML_NOTHROW; ! virtual ~front_url_exposedfield() OPENVRML_NOTHROW; ! ! private: ! virtual std::auto_ptr<field_value> do_clone() const ! OPENVRML_THROW1(std::bad_alloc); ! virtual void event_side_effect(const mfstring & value, ! double timestamp) ! OPENVRML_THROW1(std::bad_alloc); ! }; ! ! class left_url_exposedfield : public exposedfield<mfstring> { ! public: ! explicit left_url_exposedfield(background_node & node) ! OPENVRML_NOTHROW; ! left_url_exposedfield(const left_url_exposedfield & obj) ! OPENVRML_NOTHROW; ! virtual ~left_url_exposedfield() OPENVRML_NOTHROW; ! ! private: ! virtual std::auto_ptr<field_value> do_clone() const ! OPENVRML_THROW1(std::bad_alloc); ! virtual void event_side_effect(const mfstring & value, ! double timestamp) ! OPENVRML_THROW1(std::bad_alloc); ! }; ! ! class right_url_exposedfield : public exposedfield<mfstring> { ! public: ! explicit right_url_exposedfield(background_node & node) ! OPENVRML_NOTHROW; ! right_url_exposedfield(const right_url_exposedfield & obj) ! OPENVRML_NOTHROW; ! virtual ~right_url_exposedfield() OPENVRML_NOTHROW; ! ! private: ! virtual std::auto_ptr<field_value> do_clone() const ! OPENVRML_THROW1(std::bad_alloc); ! virtual void event_side_effect(const mfstring & value, ! double timestamp) ! OPENVRML_THROW1(std::bad_alloc); ! }; - class top_url_exposedfield : public exposedfield<mfstring> { public: ! explicit top_url_exposedfield(background_node & node) OPENVRML_NOTHROW; ! top_url_exposedfield(const top_url_exposedfield & obj) OPENVRML_NOTHROW; ! virtual ~top_url_exposedfield() OPENVRML_NOTHROW; private: --- 2469,2483 ---- }; ! class texture_url_exposedfield : public exposedfield<mfstring> { ! bool background_node::* needs_update_; public: ! explicit texture_url_exposedfield( ! background_node & node, ! bool background_node::* needs_update) OPENVRML_NOTHROW; ! texture_url_exposedfield(const texture_url_exposedfield & obj) OPENVRML_NOTHROW; ! virtual ~texture_url_exposedfield() OPENVRML_NOTHROW; private: *************** *** 2568,2577 **** exposedfield<mffloat> ground_angle_; exposedfield<mfcolor> ground_color_; ! back_url_exposedfield back_url_; ! bottom_url_exposedfield bottom_url_; ! front_url_exposedfield front_url_; ! left_url_exposedfield left_url_; ! right_url_exposedfield right_url_; ! top_url_exposedfield top_url_; exposedfield<mffloat> sky_angle_; exposedfield<mfcolor> sky_color_; --- 2492,2497 ---- exposedfield<mffloat> ground_angle_; exposedfield<mfcolor> ground_color_; ! texture_url_exposedfield back_url_, bottom_url_, front_url_, left_url_, ! right_url_, top_url_; exposedfield<mffloat> sky_angle_; exposedfield<mfcolor> sky_color_; *************** *** 5784,5796 **** node_type_t::event_listener_ptr_ptr( new node_type_t::event_listener_ptr< ! background_node::back_url_exposedfield>( &background_node::back_url_)), node_type_t::field_ptr_ptr( new node_type_t::field_ptr< ! background_node::back_url_exposedfield>( &background_node::back_url_)), node_type_t::event_emitter_ptr_ptr( new node_type_t::event_emitter_ptr< ! background_node::back_url_exposedfield>( &background_node::back_url_))); } else if (*interface == *++supported_interface) { --- 5704,5716 ---- node_type_t::event_listener_ptr_ptr( new node_type_t::event_listener_ptr< ! background_node::texture_url_exposedfield>( &background_node::back_url_)), node_type_t::field_ptr_ptr( new node_type_t::field_ptr< ! background_node::texture_url_exposedfield>( &background_node::back_url_)), node_type_t::event_emitter_ptr_ptr( new node_type_t::event_emitter_ptr< ! background_node::texture_url_exposedfield>( &background_node::back_url_))); } else if (*interface == *++supported_interface) { *************** *** 5800,5812 **** node_type_t::event_listener_ptr_ptr( new node_type_t::event_listener_ptr< ! background_node::bottom_url_exposedfield>( &background_node::bottom_url_)), node_type_t::field_ptr_ptr( new node_type_t::field_ptr< ! background_node::bottom_url_exposedfield>( &background_node::bottom_url_)), node_type_t::event_emitter_ptr_ptr( new node_type_t::event_emitter_ptr< ! background_node::bottom_url_exposedfield>( &background_node::bottom_url_))); } else if (*interface == *++supported_interface) { --- 5720,5732 ---- node_type_t::event_listener_ptr_ptr( new node_type_t::event_listener_ptr< ! background_node::texture_url_exposedfield>( &background_node::bottom_url_)), node_type_t::field_ptr_ptr( new node_type_t::field_ptr< ! background_node::texture_url_exposedfield>( &background_node::bottom_url_)), node_type_t::event_emitter_ptr_ptr( new node_type_t::event_emitter_ptr< ! background_node::texture_url_exposedfield>( &background_node::bottom_url_))); } else if (*interface == *++supported_interface) { *************** *** 5816,5828 **** node_type_t::event_listener_ptr_ptr( new node_type_t::event_listener_ptr< ! background_node::front_url_exposedfield>( &background_node::front_url_)), node_type_t::field_ptr_ptr( new node_type_t::field_ptr< ! background_node::front_url_exposedfield>( &background_node::front_url_)), node_type_t::event_emitter_ptr_ptr( new node_type_t::event_emitter_ptr< ! background_node::front_url_exposedfield>( &background_node::front_url_))); } else if (*interface == *++supported_interface) { --- 5736,5748 ---- node_type_t::event_listener_ptr_ptr( new node_type_t::event_listener_ptr< ! background_node::texture_url_exposedfield>( &background_node::front_url_)), node_type_t::field_ptr_ptr( new node_type_t::field_ptr< ! background_node::texture_url_exposedfield>( &background_node::front_url_)), node_type_t::event_emitter_ptr_ptr( new node_type_t::event_emitter_ptr< ! background_node::texture_url_exposedfield>( &background_node::front_url_))); } else if (*interface == *++supported_interface) { *************** *** 5832,5844 **** node_type_t::event_listener_ptr_ptr( new node_type_t::event_listener_ptr< ! background_node::left_url_exposedfield>( &background_node::left_url_)), node_type_t::field_ptr_ptr( new node_type_t::field_ptr< ! background_node::left_url_exposedfield>( &background_node::left_url_)), node_type_t::event_emitter_ptr_ptr( new node_type_t::event_emitter_ptr< ! background_node::left_url_exposedfield>( &background_node::left_url_))); } else if (*interface == *++supported_interface) { --- 5752,5764 ---- node_type_t::event_listener_ptr_ptr( new node_type_t::event_listener_ptr< ! background_node::texture_url_exposedfield>( &background_node::left_url_)), node_type_t::field_ptr_ptr( new node_type_t::field_ptr< ! background_node::texture_url_exposedfield>( &background_node::left_url_)), node_type_t::event_emitter_ptr_ptr( new node_type_t::event_emitter_ptr< ! background_node::texture_url_exposedfield>( &background_node::left_url_))); } else if (*interface == *++supported_interface) { *************** *** 5848,5860 **** node_type_t::event_listener_ptr_ptr( new node_type_t::event_listener_ptr< ! background_node::right_url_exposedfield>( &background_node::right_url_)), node_type_t::field_ptr_ptr( new node_type_t::field_ptr< ! background_node::right_url_exposedfield>( &background_node::right_url_)), node_type_t::event_emitter_ptr_ptr( new node_type_t::event_emitter_ptr< ! background_node::right_url_exposedfield>( &background_node::right_url_))); } else if (*interface == *++supported_interface) { --- 5768,5780 ---- node_type_t::event_listener_ptr_ptr( new node_type_t::event_listener_ptr< ! background_node::texture_url_exposedfield>( &background_node::right_url_)), node_type_t::field_ptr_ptr( new node_type_t::field_ptr< ! background_node::texture_url_exposedfield>( &background_node::right_url_)), node_type_t::event_emitter_ptr_ptr( new node_type_t::event_emitter_ptr< ! background_node::texture_url_exposedfield>( &background_node::right_url_))); } else if (*interface == *++supported_interface) { *************** *** 5864,5876 **** node_type_t::event_listener_ptr_ptr( new node_type_t::event_listener_ptr< ! background_node::top_url_exposedfield>( &background_node::top_url_)), node_type_t::field_ptr_ptr( new node_type_t::field_ptr< ! background_node::top_url_exposedfield>( &background_node::top_url_)), node_type_t::event_emitter_ptr_ptr( new node_type_t::event_emitter_ptr< ! background_node::top_url_exposedfield>( &background_node::top_url_))); } else if (*interface == *++supported_interface) { --- 5784,5796 ---- node_type_t::event_listener_ptr_ptr( new node_type_t::event_listener_ptr< ! background_node::texture_url_exposedfield>( &background_node::top_url_)), node_type_t::field_ptr_ptr( new node_type_t::field_ptr< ! background_node::texture_url_exposedfield>( &background_node::top_url_)), node_type_t::event_emitter_ptr_ptr( new node_type_t::event_emitter_ptr< ! background_node::texture_url_exposedfield>( &background_node::top_url_))); } else if (*interface == *++supported_interface) { *************** *** 6017,6413 **** * @internal * ! * @class background_node::back_url_exposedfield ! * ! * @brief backUrl exposedField implementation. ! */ ! ! /** ! * @brief Construct. ! * ! * @param node background_node. ! */ ! background_node::back_url_exposedfield:: ! back_url_exposedfield(background_node & node) OPENVRML_NOTHROW: ! node_event_listener(node), ! event_emitter(static_cast<const field_value &>(*this)), ! mfstring_listener(node), ! exposedfield<openvrml::mfstring>(node) ! {} ! ! /** ! * @brief Construct a copy. ! * ! * @param obj instance to copy. ! */ ! background_node::back_url_exposedfield:: ! back_url_exposedfield(const back_url_exposedfield & obj) OPENVRML_NOTHROW: ! openvrml::event_listener(), ! node_event_listener(obj.node_event_listener::node()), ! openvrml::event_emitter(static_cast<const field_value &>(*this)), ! mfstring_listener(obj.node_event_listener::node()), ! exposedfield<openvrml::mfstring>(obj) ! {} ! ! /** ! * @brief Destroy. ! */ ! background_node::back_url_exposedfield:: ! ~back_url_exposedfield() OPENVRML_NOTHROW ! {} ! ! /** ! * @brief Polymorphically construct a copy. ! * ! * @return a copy of the instance. ! * ! * @exception std::bad_alloc if memory allocation fails. ! */ ! std::auto_ptr<openvrml::field_value> ! background_node::back_url_exposedfield::do_clone() const ! OPENVRML_THROW1(std::bad_alloc) ! { ! return std::auto_ptr<openvrml::field_value>( ! new back_url_exposedfield(*this)); ! } ! ! /** ! * @brief Process event. ! * ! * @param value new backUrl value. ! * @param timestamp the current time. ! * ! * @exception std::bad_alloc if memory allocation fails. ! */ ! void ! background_node::back_url_exposedfield:: ! event_side_effect(const mfstring &, double) ! OPENVRML_THROW1(std::bad_alloc) ! { ! try { ! dynamic_cast<background_node &>(this->node_event_listener::node()) ! .back_needs_update = true; ! } catch (std::bad_cast & ex) { ! OPENVRML_PRINT_EXCEPTION_(ex); ! } ! } ! ! /** ! * @internal ! * ! * @class background_node::bottom_url_exposedfield ! * ! * @brief bottomUrl exposedField implementation. ! */ ! ! /** ! * @brief Construct. ! * ! * @param node background_node. ! */ ! background_node::bottom_url_exposedfield:: ! bottom_url_exposedfield(background_node & node) OPENVRML_NOTHROW: ! node_event_listener(node), ! event_emitter(static_cast<const field_value &>(*this)), ! mfstring_listener(node), ! exposedfield<mfstring>(node) ! {} ! ! /** ! * @brief Construct a copy. ! * ! * @param obj instance to copy. ! */ ! background_node::bottom_url_exposedfield:: ! bottom_url_exposedfield(const bottom_url_exposedfield & obj) OPENVRML_NOTHROW: ! openvrml::event_listener(), ! node_event_listener(obj.node_event_listener::node()), ! openvrml::event_emitter(static_cast<const field_value &>(*this)), ! mfstring_listener(obj.node_event_listener::node()), ! exposedfield<openvrml::mfstring>(obj) ! {} ! ! /** ! * @brief Destroy. ! */ ! background_node::bottom_url_exposedfield:: ! ~bottom_url_exposedfield() OPENVRML_NOTHROW ! {} ! ! /** ! * @brief Polymorphically construct a copy. ! * ! * @return a copy of the instance. ! * ! * @exception std::bad_alloc if memory allocation fails. ! */ ! std::auto_ptr<openvrml::field_value> ! background_node::bottom_url_exposedfield::do_clone() const ! OPENVRML_THROW1(std::bad_alloc) ! { ! return std::auto_ptr<openvrml::field_value>( ! new bottom_url_exposedfield(*this)); ! } ! ! /** ! * @brief Process event. ! * ! * @param value new bottomUrl value. ! * @param timestamp the current time. ! * ! * @exception std::bad_alloc if memory allocation fails. ! */ ! void ! background_node::bottom_url_exposedfield:: ! event_side_effect(const mfstring &, double) ! OPENVRML_THROW1(std::bad_alloc) ! { ! try { ! dynamic_cast<background_node &>(this->node_event_listener::node()) ! .bottom_needs_update = true; ! } catch (std::bad_cast & ex) { ! OPENVRML_PRINT_EXCEPTION_(ex); ! } ! } ! ! /** ! * @internal ! * ! * @class background_node::front_url_exposedfield ! * ! * @brief frontUrl exposedField implementation. ! */ ! ! /** ! * @brief Construct. ! * ! * @param node background_node. ! */ ! background_node::front_url_exposedfield:: ! front_url_exposedfield(background_node & node) OPENVRML_NOTHROW: ! node_event_listener(node), ! event_emitter(static_cast<const field_value &>(*this)), ! mfstring_listener(node), ! exposedfield<mfstring>(node) ! {} ! ! /** ! * @brief Construct a copy. ! * ! * @param obj instance to copy. ! */ ! background_node::front_url_exposedfield:: ! front_url_exposedfield(const front_url_exposedfield & obj) OPENVRML_NOTHROW: ! openvrml::event_listener(), ! node_event_listener(obj.node_event_listener::node()), ! openvrml::event_emitter(static_cast<const field_value &>(*this)), ! mfstring_listener(obj.node_event_listener::node()), ! exposedfield<openvrml::mfstring>(obj) ! {} ! ! /** ! * @brief Destroy. ! */ ! background_node::front_url_exposedfield:: ! ~front_url_exposedfield() OPENVRML_NOTHROW ! {} ! ! /** ! * @brief Polymorphically construct a copy. ! * ! * @return a copy of the instance. ! * ! * @exception std::bad_alloc if memory allocation fails. ! */ ! std::auto_ptr<openvrml::field_value> ! background_node::front_url_exposedfield::do_clone() const ! OPENVRML_THROW1(std::bad_alloc) ! { ! return std::auto_ptr<openvrml::field_value>( ! new front_url_exposedfield(*this)); ! } ! ! /** ! * @brief Process event. ! * ! * @param value new frontUrl value. ! * @param timestamp the current time. ! * ! * @exception std::bad_alloc if memory allocation fails. ! */ ! void ! background_node::front_url_exposedfield:: ! event_side_effect(const mfstring &, double) ! OPENVRML_THROW1(std::bad_alloc) ! { ! try { ! dynamic_cast<background_node &>(this->node_event_listener::node()) ! .front_needs_update = true; ! } catch (std::bad_cast & ex) { ! OPENVRML_PRINT_EXCEPTION_(ex); ! } ! } ! ! /** ! * @internal ! * ! * @class background_node::left_url_exposedfield ! * ! * @brief leftUrl exposedField implementation. ! */ ! ! /** ! * @brief Construct. ! * ! * @param node background_node. ! */ ! background_node::left_url_exposedfield:: ! left_url_exposedfield(background_node & node) OPENVRML_NOTHROW: ! node_event_listener(node), ! event_emitter(static_cast<const field_value &>(*this)), ! mfstring_listener(node), ! exposedfield<mfstring>(node) ! {} ! ! /** ! * @brief Construct a copy. ! * ! * @param obj instance to copy. ! */ ! background_node::left_url_exposedfield:: ! left_url_exposedfield(const left_url_exposedfield & obj) OPENVRML_NOTHROW: ! openvrml::event_listener(), ! node_event_listener(obj.node_event_listener::node()), ! openvrml::event_emitter(static_cast<const field_value &>(*this)), ! mfstring_listener(obj.node_event_listener::node()), ! exposedfield<openvrml::mfstring>(obj) ! {} ! ! /** ! * @brief Destroy. ! */ ! background_node::left_url_exposedfield:: ! ~left_url_exposedfield() OPENVRML_NOTHROW ! {} ! ! /** ! * @brief Polymorphically construct a copy. ! * ! * @return a copy of the instance. ! * ! * @exception std::bad_alloc if memory allocation fails. ! */ ! std::auto_ptr<openvrml::field_value> ! background_node::left_url_exposedfield::do_clone() const ! OPENVRML_THROW1(std::bad_alloc) ! { ! return std::auto_ptr<openvrml::field_value>( ! new left_url_exposedfield(*this)); ! } ! ! /** ! * @brief Process event. ! * ! * @param value new leftUrl value. ! * @param timestamp the current time. ! * ! * @exception std::bad_alloc if memory allocation fails. ! */ ! void ! background_node::left_url_exposedfield:: ! event_side_effect(const mfstring &, double) ! OPENVRML_THROW1(std::bad_alloc) ! { ! try { ! dynamic_cast<background_node &>(this->node_event_listener::node()) ! .left_needs_update = true; ! } catch (std::bad_cast & ex) { ! OPENVRML_PRINT_EXCEPTION_(ex); ! } ! } ! ! /** ! * @internal ! * ! * @class background_node::right_url_exposedfield ! * ! * @brief rightUrl exposedField implementation. ! */ ! ! /** ! * @brief Construct. ! * ! * @param node background_node. ! */ ! background_node::right_url_exposedfield:: ! right_url_exposedfield(background_node & node) OPENVRML_NOTHROW: ! node_event_listener(node), ! event_emitter(static_cast<const field_value &>(*this)), ! mfstring_listener(node), ! exposedfield<mfstring>(node) ! {} ! ! /** ! * @brief Construct a copy. ! * ! * @param obj instance to copy. ! */ ! background_node::right_url_exposedfield:: ! right_url_exposedfield(const right_url_exposedfield & obj) OPENVRML_NOTHROW: ! openvrml::event_listener(), ! node_event_listener(obj.node_event_listener::node()), ! openvrml::event_emitter(static_cast<const field_value &>(*this)), ! mfstring_listener(obj.node_event_listener::node()), ! exposedfield<openvrml::mfstring>(obj) ! {} ! ! /** ! * @brief Destroy. ! */ ! background_node::right_url_exposedfield:: ! ~right_url_exposedfield() OPENVRML_NOTHROW ! {} ! ! /** ! * @brief Polymorphically construct a copy. ! * ! * @return a copy of the instance. * ! * @exception std::bad_alloc if memory allocation fails. */ - std::auto_ptr<openvrml::field_value> - background_node::right_url_exposedfield::do_clone() const - OPENVRML_THROW1(std::bad_alloc) - { - return std::auto_ptr<openvrml::field_value>( - new right_url_exposedfield(*this)); - } /** ! * @brief Process event. ! * ! * @param value new rightUrl value. ! * @param timestamp the current time. ! * ! * @exception std::bad_alloc if memory allocation fails. ! */ ! void ! background_node::right_url_exposedfield:: ! event_side_effect(const mfstring &, double) ! OPENVRML_THROW1(std::bad_alloc) ! { ! try { ! dynamic_cast<background_node &>(this->node_event_listener::node()) ! .right_needs_update = true; ! } catch (std::bad_cast & ex) { ! OPENVRML_PRINT_EXCEPTION_(ex); ! } ! } ! ! /** ! * @internal ! * ! * @class background_node::top_url_exposedfield * ! * @brief topUrl exposedField implementation. */ --- 5937,5950 ---- * @internal * ! * @class background_node::texture_url_exposedfield * ! * @brief Texture URL @c exposedField implementation. */ /** ! * @var bool background_node::* texture_url_exposedfield::needs_update_ * ! * @brief Pointer to a @c bool member that serves as a flag to indicate ! * whether a texture needs to be updated. */ *************** *** 6417,6426 **** * @param node background_node. */ ! background_node::top_url_exposedfield:: ! top_url_exposedfield(background_node & node) OPENVRML_NOTHROW: node_event_listener(node), event_emitter(static_cast<const field_value &>(*this)), mfstring_listener(node), ! exposedfield<mfstring>(node) {} --- 5954,5966 ---- * @param node background_node. */ ! background_node::texture_url_exposedfield:: ! texture_url_exposedfield(background_node & node, ! bool background_node::* const needs_update) ! OPENVRML_NOTHROW: node_event_listener(node), event_emitter(static_cast<const field_value &>(*this)), mfstring_listener(node), ! exposedfield<openvrml::mfstring>(node), ! needs_update_(needs_update) {} *************** *** 6430,6440 **** * @param obj instance to copy. */ ! background_node::top_url_exposedfield:: ! top_url_exposedfield(const top_url_exposedfield & obj) OPENVRML_NOTHROW: openvrml::event_listener(), node_event_listener(obj.node_event_listener::node()), openvrml::event_emitter(static_cast<const field_value &>(*this)), mfstring_listener(obj.node_event_listener::node()), ! exposedfield<openvrml::mfstring>(obj) {} --- 5970,5981 ---- * @param obj instance to copy. */ ! background_node::texture_url_exposedfield:: ! texture_url_exposedfield(const texture_url_exposedfield & obj) OPENVRML_NOTHROW: openvrml::event_listener(), node_event_listener(obj.node_event_listener::node()), openvrml::event_emitter(static_cast<const field_value &>(*this)), mfstring_listener(obj.node_event_listener::node()), ! exposedfield<openvrml::mfstring>(obj), ! needs_update_(obj.needs_update_) {} *************** *** 6442,6447 **** * @brief Destroy. */ ! background_node::top_url_exposedfield:: ! ~top_url_exposedfield() OPENVRML_NOTHROW {} --- 5983,5988 ---- * @brief Destroy. */ ! background_node::texture_url_exposedfield:: ! ~texture_url_exposedfield() OPENVRML_NOTHROW {} *************** *** 6454,6462 **** */ std::auto_ptr<openvrml::field_value> ! background_node::top_url_exposedfield::do_clone() const OPENVRML_THROW1(std::bad_alloc) { return std::auto_ptr<openvrml::field_value>( ! new top_url_exposedfield(*this)); } --- 5995,6003 ---- */ std::auto_ptr<openvrml::field_value> ! background_node::texture_url_exposedfield::do_clone() const OPENVRML_THROW1(std::bad_alloc) { return std::auto_ptr<openvrml::field_value>( ! new texture_url_exposedfield(*this)); } *************** *** 6464,6468 **** * @brief Process event. * ! * @param value new topUrl value. * @param timestamp the current time. * --- 6005,6009 ---- * @brief Process event. * ! * @param value new value. * @param timestamp the current time. * *************** *** 6470,6474 **** */ void ! background_node::top_url_exposedfield:: event_side_effect(const mfstring &, double) OPENVRML_THROW1(std::bad_alloc) --- 6011,6015 ---- */ void ! background_node::texture_url_exposedfield:: event_side_effect(const mfstring &, double) OPENVRML_THROW1(std::bad_alloc) *************** *** 6476,6480 **** try { dynamic_cast<background_node &>(this->node_event_listener::node()) ! .top_needs_update = true; } catch (std::bad_cast & ex) { OPENVRML_PRINT_EXCEPTION_(ex); --- 6017,6021 ---- try { dynamic_cast<background_node &>(this->node_event_listener::node()) ! .*this->needs_update_ = true; } catch (std::bad_cast & ex) { OPENVRML_PRINT_EXCEPTION_(ex); *************** *** 6501,6505 **** /** ! * @var background_node::back_url_exposedfield background_node::back_url_ * * @brief backUrl exposedField. --- 6042,6046 ---- /** ! * @var background_node::texture_url_exposedfield background_node::back_url_ * * @brief backUrl exposedField. *************** *** 6507,6511 **** /** ! * @var background_node::bottom_url_exposedfield background_node::bottom_url_ * * @brief bottomUrl exposedField. --- 6048,6052 ---- /** ! * @var background_node::texture_url_exposedfield background_node::bottom_url_ * * @brief bottomUrl exposedField. *************** *** 6513,6517 **** /** ! * @var background_node::front_url_exposedfield background_node::front_url_ * * @brief frontUrl exposedField. --- 6054,6058 ---- /** ! * @var background_node::texture_url_exposedfield background_node::front_url_ * * @brief frontUrl exposedField. *************** *** 6519,6523 **** /** ! * @var background_node::left_url_exposedfield background_node::left_url_ * * @brief leftUrl exposedField. --- 6060,6064 ---- /** ! * @var background_node::texture_url_exposedfield background_node::left_url_ * * @brief leftUrl exposedField. *************** *** 6525,6529 **** /** ! * @var background_node::right_url_exposedfield background_node::right_url_ * * @brief rightUrl exposedField. --- 6066,6070 ---- /** ! * @var background_node::texture_url_exposedfield background_node::right_url_ * * @brief rightUrl exposedField. *************** *** 6531,6535 **** /** ! * @var background_node::top_url_exposedfield background_node::top_url_ * * @brief topUrl exposedField. --- 6072,6076 ---- /** ! * @var background_node::texture_url_exposedfield background_node::top_url_ * * @brief topUrl exposedField. *************** *** 6654,6663 **** ground_angle_(*this), ground_color_(*this), ! back_url_(*this), ! bottom_url_(*this), ! front_url_(*this), ! left_url_(*this), ! right_url_(*this), ! top_url_(*this), sky_angle_(*this), sky_color_(*this, std::vector<color>(1, color(0.0, 0.0, 0.0))), --- 6195,6204 ---- ground_angle_(*this), ground_color_(*this), ! back_url_(*this, &background_node::back_needs_update), ! bottom_url_(*this, &background_node::bottom_needs_update), ! front_url_(*this, &background_node::front_needs_update), ! left_url_(*this, &background_node::left_needs_update), ! right_url_(*this, &background_node::right_needs_update), ! top_url_(*this, &background_node::top_needs_update), sky_angle_(*this), sky_color_(*this, std::vector<color>(1, color(0.0, 0.0, 0.0))), |