⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 active_objects_listener_helper.h

📁 很多二维 三维几何计算算法 C++ 类库
💻 H
字号:
// Copyright (c) 2005  Stanford University (USA).// All rights reserved.//// This file is part of CGAL (www.cgal.org); you can redistribute it and/or// modify it under the terms of the GNU Lesser General Public License as// published by the Free Software Foundation; version 2.1 of the License.// See the file LICENSE.LGPL distributed with CGAL.//// Licensees holding a valid commercial license may use this file in// accordance with the commercial license agreement provided with the software.//// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.//// $URL: svn+ssh://scm.gforge.inria.fr/svn/cgal/branches/CGAL-3.3-branch/Kinetic_data_structures/include/CGAL/Kinetic/Active_objects_listener_helper.h $// $Id: Active_objects_listener_helper.h 31436 2006-06-05 12:44:12Z drussel $// //// Author(s)     : Daniel Russel <drussel@alumni.princeton.edu>#ifndef CGAL_KINETIC_NOTIFICATION_LH2_HELPERS_H#define CGAL_KINETIC_NOTIFICATION_LH2_HELPERS_H#include <CGAL/Kinetic/basic.h>CGAL_KINETIC_BEGIN_NAMESPACE//! A helper for KDSs interested in events from MovingObjectTables./*!  The lister helper listens for EDITING notifications and calls the functions  -new_object  -change_object  -delete_object  with the appropriate object keys from the moving object table.  This helper should be stored as a member variable in the KDS since  its pointer to the KDS is not protected.  See CGAL::Listener for a description of what the  Moving_object_table_listener template paramenter should provide.*/template <class Moving_object_table_listener, class KDS>class Active_objects_listener_helper: public Moving_object_table_listener{  typedef typename Moving_object_table_listener::Notifier_handle::element_type MOT;  typedef Moving_object_table_listener P;public:  //! The constructor  Active_objects_listener_helper(typename Moving_object_table_listener::Notifier_handle h,				 KDS *kds):    Moving_object_table_listener(h), t_(kds) {    for (typename Moving_object_table_listener::Notifier::Key_iterator it= P::notifier()->keys_begin();	 it != P::notifier()->keys_end(); ++it) {      t_->insert(*it);    }  }  Active_objects_listener_helper(){}  //! Pass EDITING notifications  /*!  When editing changes to false, call new_object, changed_object,    deleted_object for each new, changed or deleted object in the    MovingObjectTable.  */  virtual void new_notification(typename Moving_object_table_listener::Notification_type et) {    if (et== P::IS_EDITING) {      if (P::notifier()->is_editing()==false) {	//! Note, this order is important	for (typename MOT::Inserted_iterator it= P::notifier()->inserted_begin();	     it != P::notifier()->inserted_end(); ++it) {	  t_->insert(*it);	}	for (typename MOT::Changed_iterator it= P::notifier()->changed_begin();	     it != P::notifier()->changed_end(); ++it) {	  t_->set(*it);	}	for (typename MOT::Erased_iterator it= P::notifier()->erased_begin();	     it != P::notifier()->erased_end(); ++it) {	  t_->erase(*it);	}      }    }  }protected:  KDS *t_;};CGAL_KINETIC_END_NAMESPACE#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -