/********************************************************************/ /* Copyright (c) 2017 System fugen G.K. and Yuzi Mizuno */ /* All rights reserved. */ /********************************************************************/ #ifndef _MGCSisect_list_HH_ #define _MGCSisect_list_HH_ /** @addtogroup IsectContainer * @{ */ #include #include "mg/CSisect.h" //Forward class declaration. class MGCurve; class MGFSurface; /// MGCSisect_list defines linked list of MGCSisect. /// Used to represent Intersection points of a curve and a surface. class MG_DLL_DECLR MGCSisect_list{ public: typedef std::list container_type; typedef container_type::iterator CSiterator; typedef container_type::const_iterator const_CSiterator; typedef container_type::iterator iterator; typedef container_type::const_iterator const_iterator; ///String stream Function MG_DLL_DECLR friend std::ostream& operator<< (std::ostream&, const MGCSisect_list& ); ////////////// Constructor//////////// explicit MGCSisect_list(const MGCurve *crv=NULL, const MGFSurface *srf=NULL); /// Destructor. ~MGCSisect_list(){;}; ////////////// Member Function. //////////// void append(const MGCSisect& isect); void push_back(const MGCSisect& isect){m_CSilist.push_back(isect);}; /// 全てのコンポーネントを指定して交点を生成する void append( const MGPosition& point, ///