// Gnurbs - A curve and surface library
// Copyright (C) 2008-2026 Eric Bechet
//
// See the LICENSE file for contributions and license information.
// Please report all bugs and problems to <bechet@cadxfem.org>.
//

#ifndef __NCOONS_H
#define __NCOONS_H

#include "nsurface.h"
#include "ncurve.h"

class ncoons : public nparametricsurface
{
protected:
  nparametriccurve &u1,&u2,&v1,&v2;
  //npoint A,B,C,D;
public:
  ncoons(nparametriccurve &u1_,nparametriccurve &u2_,nparametriccurve &v1_,nparametriccurve &v2_) : u1(u1_),u2(u2_),v1(v1_),v2(v2_) {}
  virtual int degree(void) const; 
  virtual int degree_u(void) const;
  virtual int degree_v(void) const; 
  virtual double min_u() const ; 
  virtual double max_u() const ;
  virtual double min_v() const ;
  virtual double max_v() const ;
  virtual void P(double u,double v, npoint& ret) const ;
  virtual nsurface* clone() const
  {
    return new ncoons(*this);
  }
};

#endif //__NCOONS_H
