/********************************************************************/ /* Copyright (c) 2017 System fugen G.K. and Yuzi Mizuno */ /* All rights reserved. */ /********************************************************************/ #ifndef _MGPositions_HH_ #define _MGPositions_HH_ #include #include #include #include "mg/Position.h" #include "mg/PickObjects.h" #include "mgGL/VBO.h" // //Define MGSnapPositions Class. class MGCurve; class MGGroup; class MGGel; class MGFace; class MGShell; ///MGSnapPositions is a class to store array(vector) of MGPosition's. class MG_DLL_DECLR MGSnapPositions: public mgVBO{ public: enum snap_kind{ DELETE_POINT=-1, nopos=0, endpos, knotpos, vertexpos, nearpos, centerpos, ON_SURFACE }; ////////////Constructor//////////// ///Void constructor. MGSnapPositions(snap_kind kind=nopos); ///Copy constructor. MGSnapPositions(const MGSnapPositions& sp); ///Virtual Destructor virtual ~MGSnapPositions(); ////////////Member Function//////////// typedef std::vector::const_iterator const_iterator; typedef std::vector::iterator iterator; typedef std::pair obj_num; ///append this positions in m_positions into points. void append_position_data(std::vector& points)const; ///Assignment MGSnapPositions& operator=(const MGSnapPositions& sp); ///Extract position data. void extract( const MGCurve& crv ///& gel_list ///& selected,///,& points()const{return m_positions;}; std::vector& points(){return m_positions;}; private: std::vector m_obj_nums;/// m_positions;///