/********************************************************************/ /* Copyright (c) 2017 System fugen G.K. and Yuzi Mizuno */ /* All rights reserved. */ /********************************************************************/ #ifndef _MGCoons_HH_ #define _MGCoons_HH_ #include #include "mg/Pvector.h" // MGCoons.h // Forward Declaration class MGCurve; class MGLBRep; class MGSPointSeq; /** @file */ /** @addtogroup GEORelated * @{ */ /// Defines Coons Patch surface. class MG_DLL_DECLR MGCoons { public: ///String stream Function MG_DLL_DECLR friend std::ostream& operator<< (std::ostream&, const MGCoons& ); //////////// Constructor //////////// //Default constructor. //MGCoons(){;}; MGCoons( MGPvector& perimeters, MGPvector& derivatives ); MGCoons( MGPvector& perimeters, MGPvector& derivatives ); //Copy constructor. //MGCoons(const MGCoons& rhs); ////////////Destructor///////// //~MGCoons(); //////////// Operator Overload //////////// //MGCoons& operator=(const MGCoons&); ///Assignment //////////// Member Function //////////// ///get the derivative data d2f/((dv)(du)) at corner i. const MGVector& d2fdvu(int i)const; ///Return perimeter i's derivative data. const MGCurve& derivative(int i)const{return *(m_derivatives[i]);}; ///Evaluate surface data. ///Currently ndu=ndv=0 is assumed. MGVector eval( double u,///< Parameter value (u,v) of the surface, double v///< must be 0<=u,v<=1. , int ndu=0 ///< Order of derivative along u. , int ndv=0 ///< Order of derivative along v. ) const; void eval( const MGNDDArray& utau, /// m_perimeters;/// m_derivatives;///