/********************************************************************/ /* Copyright (c) 2017 System fugen G.K. and Yuzi Mizuno */ /* All rights reserved. */ /********************************************************************/ #ifndef _MGLCisect_vector_HH_ #define _MGLCisect_vector_HH_ /** @file */ /** @addtogroup IsectContainer * @{ */ #include #include "topo/LCisect.h" //Forward class declaration. class MGCurve; class MGLoop; class MGInterval; /// MGLCisect_vector defines linked list of MGLCisect. /// Used to represent Intersection points of a loop and a curve. class MG_DLL_DECLR MGLCisect_vector{ public: typedef std::vector::iterator LCiterator; typedef std::vector::const_iterator const_LCiterator; typedef std::vector::iterator iterator; typedef std::vector::const_iterator const_iterator; public: ///String stream Function MG_DLL_DECLR friend std::ostream& operator<< (std::ostream&, const MGLCisect_vector& ); /// Constructor MGLCisect_vector(); MGLCisect_vector(const MGLoop& loop); ///Loop // Operator overload. const MGLCisect& operator[](int i)const{return m_lcisects[i];}; MGLCisect& operator[](int i){return m_lcisects[i];}; /// Member Function. iterator begin(){return m_lcisects.begin();}; const_iterator begin()const{return m_lcisects.begin();}; iterator end(){return m_lcisects.end();}; const_iterator end()const{return m_lcisects.end();}; /// Adds the MGLCisect to the end of the list. void append(const MGLCisect& lcisect); void append( const MGLEPoint& lp, /// m_lcisects;///