// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _HLRAlgo_PolyData_HeaderFile
#define _HLRAlgo_PolyData_HeaderFile

#include <Standard.hxx>
#include <Standard_DefineHandle.hxx>
#include <Handle_HLRAlgo_PolyData.hxx>

#include <Standard_Integer.hxx>
#include <Handle_TColgp_HArray1OfXYZ.hxx>
#include <Handle_HLRAlgo_HArray1OfTData.hxx>
#include <Handle_HLRAlgo_HArray1OfPHDat.hxx>
#include <MMgt_TShared.hxx>
#include <Standard_Address.hxx>
#include <Standard_Boolean.hxx>
class TColgp_HArray1OfXYZ;
class HLRAlgo_HArray1OfTData;
class HLRAlgo_HArray1OfPHDat;
class TColgp_Array1OfXYZ;
class HLRAlgo_Array1OfTData;
class HLRAlgo_Array1OfPHDat;
class HLRAlgo_EdgeStatus;


//! Data structure of a set of Triangles.
class HLRAlgo_PolyData : public MMgt_TShared
{

public:

  
  Standard_EXPORT HLRAlgo_PolyData();
  
  Standard_EXPORT   void HNodes (const Handle(TColgp_HArray1OfXYZ)& HNodes) ;
  
  Standard_EXPORT   void HTData (const Handle(HLRAlgo_HArray1OfTData)& HTData) ;
  
  Standard_EXPORT   void HPHDat (const Handle(HLRAlgo_HArray1OfPHDat)& HPHDat) ;
  
      void FaceIndex (const Standard_Integer I) ;
  
      Standard_Integer FaceIndex()  const;
  
      TColgp_Array1OfXYZ& Nodes()  const;
  
      HLRAlgo_Array1OfTData& TData()  const;
  
      HLRAlgo_Array1OfPHDat& PHDat()  const;
  
  Standard_EXPORT   void UpdateGlobalMinMax (const Standard_Address ToTMinMax) ;
  
      Standard_Boolean Hiding()  const;
  
  //! process hiding between <Pt1> and <Pt2>.
  Standard_EXPORT   void HideByPolyData (const Standard_Address Coordinates, const Standard_Address RealPtr, const Standard_Address Indices, const Standard_Boolean HidingShell, HLRAlgo_EdgeStatus& status) ;
  
      Standard_Address Indices() ;




  DEFINE_STANDARD_RTTI(HLRAlgo_PolyData)

protected:




private: 

  
  //! evident.
  Standard_EXPORT   void HideByOneTriangle (const Standard_Address Coordinates, const Standard_Address RealPtr, const Standard_Boolean Crossing, const Standard_Boolean HideBefore, const Standard_Integer TrFlags, HLRAlgo_EdgeStatus& status) ;

  Standard_Integer myIndices[3];
  Handle(TColgp_HArray1OfXYZ) myHNodes;
  Handle(HLRAlgo_HArray1OfTData) myHTData;
  Handle(HLRAlgo_HArray1OfPHDat) myHPHDat;


};


#include <HLRAlgo_PolyData.lxx>





#endif // _HLRAlgo_PolyData_HeaderFile
