// Created on: 1995-02-07
// Created by: Christophe MARION
// 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 "HLRTopoBRep_FaceData.hxx"
#include "TopoDS.hxx"
#include "TopoDS_Shape.hxx"
#include "TopoDS_Face.hxx"
#include "TopoDS_Edge.hxx"
#include "TopoDS_Vertex.hxx"

//=================================================================================================

inline const NCollection_List<TopoDS_Shape>& HLRTopoBRep_Data::EdgeSplE(const TopoDS_Edge& E) const
{
  return mySplE(E);
}

//=================================================================================================

inline const NCollection_List<TopoDS_Shape>& HLRTopoBRep_Data::FaceIntL(const TopoDS_Face& F) const
{
  return myData(F).FaceIntL();
}

//=================================================================================================

inline const NCollection_List<TopoDS_Shape>& HLRTopoBRep_Data::FaceOutL(const TopoDS_Face& F) const
{
  return myData(F).FaceOutL();
}

//=================================================================================================

inline const NCollection_List<TopoDS_Shape>& HLRTopoBRep_Data::FaceIsoL(const TopoDS_Face& F) const
{
  return myData(F).FaceIsoL();
}

//=================================================================================================

inline bool HLRTopoBRep_Data::IsOutV(const TopoDS_Vertex& V) const
{
  return myOutV.Contains(V);
}

//=================================================================================================

inline bool HLRTopoBRep_Data::IsIntV(const TopoDS_Vertex& V) const
{
  return myIntV.Contains(V);
}

//=================================================================================================

inline void HLRTopoBRep_Data::AddOutV(const TopoDS_Vertex& V)
{
  myOutV.Add(V);
}

//=================================================================================================

inline void HLRTopoBRep_Data::AddIntV(const TopoDS_Vertex& V)
{
  myIntV.Add(V);
}

//=================================================================================================

inline bool HLRTopoBRep_Data::MoreEdge() const
{
  return myEIterator.More();
}

//=================================================================================================

inline const TopoDS_Edge& HLRTopoBRep_Data::Edge() const
{
  return TopoDS::Edge(myEIterator.Key());
}

//=================================================================================================

inline bool HLRTopoBRep_Data::MoreVertex() const
{
  return myVIterator.More();
}

//=================================================================================================

inline void HLRTopoBRep_Data::NextVertex()
{
  myVIterator.Next();
}
