/********************************************************************/ /* Copyright (c) 2017 System fugen G.K. and Yuzi Mizuno */ /* All rights reserved. */ /********************************************************************/ #ifndef _MGLLisect_vector_HH_ #define _MGLLisect_vector_HH_ /** @file */ /** @addtogroup IsectContainer * @{ */ #include #include "topo/LLisect.h" //Forward class declaration. class MGCurve; class MGLoop; class MGInterval; /// MGLLisect_vector defines a vector of MGLLisect. /// Used to represent Intersection points of two loops. class MG_DLL_DECLR MGLLisect_vector{ public: typedef std::vector::iterator LLiterator; typedef std::vector::const_iterator const_LLiterator; 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 MGLLisect_vector& ); ////////////Constructor///////////// MGLLisect_vector(); MGLLisect_vector(const MGLoop& loop); ///Loop /// Member Function. const MGLLisect& operator[](size_t i)const{return m_llisects[i];}; MGLLisect& operator[](size_t i){return m_llisects[i];}; /// 交点の全てのコンポーネントを指定して,交点リストに追加 ///Add one intersection point to the list. void append(const MGLLisect& lli); void append( const MGPosition& uv, /// m_llisects;///Vector of MGLLisect. double m_error_square; ///