// Created on: 1995-05-31
// Created by: Xavier BENVENISTE
// Copyright (c) 1995-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.

#include <Standard_ConstructionError.hxx>
#include <TColStd_HArray1OfReal.hxx>
#include <TColStd_HArray1OfInteger.hxx>
//=======================================================================
//function : IsDone
//purpose  : 
//=======================================================================

inline Standard_Boolean AdvApprox_ApproxAFunction::HasResult() const 
{ return myHasResult ; } 
//=======================================================================
//function : IsDone
//purpose  : 
//=======================================================================

inline Standard_Boolean AdvApprox_ApproxAFunction::IsDone() const 
{ return myDone ; } 
//=======================================================================
//function : Poles1d
//purpose  : 
//=======================================================================
inline Handle(TColStd_HArray2OfReal) AdvApprox_ApproxAFunction::Poles1d() 
  const 
{ return my1DPoles ; } 
//=======================================================================
//function : Poles2d
//purpose  : 
//=======================================================================
inline Handle(TColgp_HArray2OfPnt2d) AdvApprox_ApproxAFunction::Poles2d()
  const 
{ return my2DPoles ; } 
//=======================================================================
//function : Poles
//purpose  : 
//=======================================================================
inline Handle(TColgp_HArray2OfPnt) AdvApprox_ApproxAFunction::Poles()
  const 
{ return  my3DPoles ; } 
//=======================================================================
//function : Degree
//purpose  : 
//=======================================================================

inline Standard_Integer AdvApprox_ApproxAFunction::Degree() const
{ return myDegree ; }
//=======================================================================
//function : NbKnots
//purpose  : 
//=======================================================================

inline Standard_Integer AdvApprox_ApproxAFunction::NbKnots() const
{ return myKnots->Length()  ; }
//=======================================================================
//function : Knots
//purpose  : 
//=======================================================================

inline Handle(TColStd_HArray1OfReal) AdvApprox_ApproxAFunction::Knots() const 
               
{ return myKnots ; } 
//=======================================================================
//function : Multiplicities
//purpose  : 
//=======================================================================

inline Handle(TColStd_HArray1OfInteger) 
AdvApprox_ApproxAFunction::Multiplicities() const 

{ return myMults ;} 

//=======================================================================
//function : NumSubSpaces
//purpose  : 
//=======================================================================

inline Standard_Integer AdvApprox_ApproxAFunction::NumSubSpaces(const Standard_Integer Dimension)  const 
{ if (Dimension < 1 || Dimension > 3) throw Standard_ConstructionError()  ;
  return myNumSubSpaces[Dimension-1] ; }
