// Created on: 2005-10-14
// Created by: Mikhail KLOKOV
// Copyright (c) 2005-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 "NCollection_Array1.hxx"
#include "NCollection_HArray1.hxx"
#include "gp_Pnt.hxx"
#include "NCollection_Array2.hxx"
#include "NCollection_HArray2.hxx"

inline int IntTools_SurfaceRangeLocalizeData::GetNbSampleU() const
{
  return myNbSampleU;
}

inline int IntTools_SurfaceRangeLocalizeData::GetNbSampleV() const
{
  return myNbSampleV;
}

inline double IntTools_SurfaceRangeLocalizeData::GetMinRangeU() const
{
  return myMinRangeU;
}

inline double IntTools_SurfaceRangeLocalizeData::GetMinRangeV() const
{
  return myMinRangeV;
}

//  Modified by skv - Thu Nov  3 09:59:43 2005 Optimization Begin
inline void IntTools_SurfaceRangeLocalizeData::SetGridDeflection(const double theDeflection)
{
  myDeflection = theDeflection;
}

inline double IntTools_SurfaceRangeLocalizeData::GetGridDeflection() const
{
  return myDeflection;
}

inline int IntTools_SurfaceRangeLocalizeData::GetRangeUGrid() const
{
  return (myUParams.IsNull()) ? 0 : myUParams->Length();
}

inline void IntTools_SurfaceRangeLocalizeData::SetUParam(const int theIndex, const double theUParam)
{
  myUParams->SetValue(theIndex, theUParam);
}

inline double IntTools_SurfaceRangeLocalizeData::GetUParam(const int theIndex) const
{
  return myUParams->Value(theIndex);
}

inline int IntTools_SurfaceRangeLocalizeData::GetRangeVGrid() const
{
  return (myVParams.IsNull()) ? 0 : myVParams->Length();
}

inline void IntTools_SurfaceRangeLocalizeData::SetVParam(const int theIndex, const double theVParam)
{
  myVParams->SetValue(theIndex, theVParam);
}

inline double IntTools_SurfaceRangeLocalizeData::GetVParam(const int theIndex) const
{
  return myVParams->Value(theIndex);
}

inline void IntTools_SurfaceRangeLocalizeData::SetGridPoint(const int     theUIndex,
                                                            const int     theVIndex,
                                                            const gp_Pnt& thePoint)
{
  myGridPoints->SetValue(theUIndex, theVIndex, thePoint);
}

inline const gp_Pnt& IntTools_SurfaceRangeLocalizeData::GetGridPoint(const int theUIndex,
                                                                     const int theVIndex) const
{
  return myGridPoints->Value(theUIndex, theVIndex);
}

inline int IntTools_SurfaceRangeLocalizeData::GetNBUPointsInFrame() const
{
  return myUIndMax - myUIndMin + 1;
}

inline int IntTools_SurfaceRangeLocalizeData::GetNBVPointsInFrame() const
{
  return myVIndMax - myVIndMin + 1;
}

//  Modified by skv - Thu Nov  3 09:59:43 2005 Optimization End
