/********************************************************************/ /* Copyright (c) 2017 System fugen G.K. and Yuzi Mizuno */ /* All rights reserved. */ /********************************************************************/ #ifndef _MGLSPoint_HH_ #define _MGLSPoint_HH_ /** @file */ /** @addtogroup IsectContainer * @{ */ #include "mg/Vector.h" // //Define MGLSPoint Class. class MGEdge; class MGPosition; ///MGLSPoint is to express a loop and a surface intersection point. ///The expression is {MGEdge* binder, double tb,(u,v)}, where binder is ///binder edge of the loop, tb is parameter value of the binder, and (u,v) is ///the surface parameter value. class MG_DLL_DECLR MGLSPoint{ public: ///String stream Function MG_DLL_DECLR friend std::ostream& operator<< (std::ostream&, const MGLSPoint& ); /////////Constructor///////// MGLSPoint():m_pedge(0){;}; ///Construct from all the necessary data. MGLSPoint( const MGEdge* pedge,/// (const MGLSPoint& ls2)const{return ls2<(*this);}; bool operator<= (const MGLSPoint& ls2)const{return !(ls2<(*this));}; bool operator>= (const MGLSPoint& ls2)const{return !((*this)binder_edge(). double m_u, m_v; ///