#ifndef ADreaptaCPP
#define ADreaptaCPP
/*---------------------------------------------------------------------------------*/
#include "ANotiune.cpp"
/*---------------------------------------------------------------------------------*/
class ADreapta: public ANotiune
{
   public:
      ADreapta(){}
      virtual ADreapta(APunct& p1, APunct& p2)
      {
         coef(0, p2.coord(2)-p2.coord(1));
         coef(1, p1.coord(1)-p1.coord(2));
         coef(2, p1.coord(2)*p2.coord(1)-p1.coord(1)*p2.coord(2));
         // ??? coef(3)
      }

      virtual ~ADreapta(){}

      virtual double __fastcall coef(unsigned idx) = 0;
      virtual double __fastcall coef(unsigned idx, const double& v) = 0;

      virtual double A(double v){ return coef(0, v); };
      virtual double B(double v){ return coef(1, v); };
      virtual double C(double v){ return coef(2, v); };
      virtual double D(double v){ return coef(3, v); };

      virtual double A() const { return coef(0); };
      virtual double B() const { return coef(1); };
      virtual double C() const { return coef(2); };
      virtual double D() const { return coef(3); };
};
/*---------------------------------------------------------------------------------*/
#endif
