// Created on: 1997-04-17
// Created by: Christophe MARION
// Copyright (c) 1997-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.

//=======================================================================
//function : EDataArray
//purpose  : 
//=======================================================================

inline HLRBRep_Array1OfEData & HLRBRep_Data::EDataArray ()
{ return myEData; }

//=======================================================================
//function : FDataArray
//purpose  : 
//=======================================================================

inline HLRBRep_Array1OfFData & HLRBRep_Data::FDataArray ()
{ return myFData; }

//=======================================================================
//function : Tolerance
//purpose  : 
//=======================================================================

inline void HLRBRep_Data::Tolerance (const Standard_ShortReal tol)
{ myToler = tol; }

//=======================================================================
//function : Tolerance
//purpose  : 
//=======================================================================

inline Standard_ShortReal HLRBRep_Data::Tolerance () const
{ return myToler; }

//=======================================================================
//function : Projector
//purpose  : 
//=======================================================================

inline HLRAlgo_Projector & HLRBRep_Data::Projector ()
{ return myProj; }

//=======================================================================
//function : NbVertices
//purpose  : 
//=======================================================================

inline Standard_Integer HLRBRep_Data::NbVertices () const
{ return myNbVertices; }

//=======================================================================
//function : NbEdges
//purpose  : 
//=======================================================================

inline Standard_Integer HLRBRep_Data::NbEdges () const
{ return myNbEdges; }

//=======================================================================
//function : NbFaces
//purpose  : 
//=======================================================================

inline Standard_Integer HLRBRep_Data::NbFaces () const
{ return myNbFaces; }

//=======================================================================
//function : EdgeMap
//purpose  : 
//=======================================================================

inline TopTools_IndexedMapOfShape & HLRBRep_Data::EdgeMap ()
{ return myEMap; }

//=======================================================================
//function : FaceMap
//purpose  : 
//=======================================================================

inline TopTools_IndexedMapOfShape & HLRBRep_Data::FaceMap ()
{ return myFMap; }

//=======================================================================
//function : SimpleHidingFace
//purpose  : 
//=======================================================================
       
inline Standard_Boolean HLRBRep_Data::SimpleHidingFace () const
{ return iFaceSimp; }

//=======================================================================
//function : HidingTheFace
//purpose  : 
//=======================================================================
       
inline Standard_Boolean HLRBRep_Data::HidingTheFace () const
{ return iFaceTest; }

//=======================================================================
//function : MoreInterference
//purpose  : 
//=======================================================================
       
inline Standard_Boolean HLRBRep_Data::MoreInterference () const
{ return (iInterf <= myNbPoints + 2*myNbSegments); }

//=======================================================================
//function : Interference
//purpose  : 
//=======================================================================

inline HLRAlgo_Interference & HLRBRep_Data::Interference ()
{ return myIntf; }

//=======================================================================
//function :EdgeOfTheHidingFace
//purpose  : 
//=======================================================================

inline Standard_Boolean 
HLRBRep_Data::EdgeOfTheHidingFace (const Standard_Integer,
				   const HLRBRep_EdgeData& ED) const
{ return ED.HideCount() == myHideCount-1; }
