0027772: Foundation Classes - define Standard_Boolean using C++ type "bool" instead...
[occt.git] / src / HLRAlgo / HLRAlgo_PolyData.hxx
1 // Created on: 1993-10-29
2 // Created by: Christophe MARION
3 // Copyright (c) 1993-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
5 //
6 // This file is part of Open CASCADE Technology software library.
7 //
8 // This library is free software; you can redistribute it and/or modify it under
9 // the terms of the GNU Lesser General Public License version 2.1 as published
10 // by the Free Software Foundation, with special exception defined in the file
11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 // distribution for complete text of the license and disclaimer of any warranty.
13 //
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
16
17 #ifndef _HLRAlgo_PolyData_HeaderFile
18 #define _HLRAlgo_PolyData_HeaderFile
19
20 #include <Standard.hxx>
21 #include <Standard_Type.hxx>
22
23 #include <Standard_Integer.hxx>
24 #include <TColgp_HArray1OfXYZ.hxx>
25 #include <HLRAlgo_HArray1OfTData.hxx>
26 #include <HLRAlgo_HArray1OfPHDat.hxx>
27 #include <MMgt_TShared.hxx>
28 #include <TColgp_Array1OfXYZ.hxx>
29 #include <HLRAlgo_Array1OfTData.hxx>
30 #include <HLRAlgo_Array1OfPHDat.hxx>
31 #include <Standard_Address.hxx>
32 #include <Standard_Boolean.hxx>
33 class HLRAlgo_EdgeStatus;
34
35
36 class HLRAlgo_PolyData;
37 DEFINE_STANDARD_HANDLE(HLRAlgo_PolyData, MMgt_TShared)
38
39 //! Data structure of a set of Triangles.
40 class HLRAlgo_PolyData : public MMgt_TShared
41 {
42
43 public:
44
45   
46   Standard_EXPORT HLRAlgo_PolyData();
47   
48   Standard_EXPORT void HNodes (const Handle(TColgp_HArray1OfXYZ)& HNodes);
49   
50   Standard_EXPORT void HTData (const Handle(HLRAlgo_HArray1OfTData)& HTData);
51   
52   Standard_EXPORT void HPHDat (const Handle(HLRAlgo_HArray1OfPHDat)& HPHDat);
53   
54     void FaceIndex (const Standard_Integer I);
55   
56     Standard_Integer FaceIndex() const;
57   
58     TColgp_Array1OfXYZ& Nodes() const;
59   
60     HLRAlgo_Array1OfTData& TData() const;
61   
62     HLRAlgo_Array1OfPHDat& PHDat() const;
63   
64   Standard_EXPORT void UpdateGlobalMinMax (const Standard_Address ToTMinMax);
65   
66     Standard_Boolean Hiding() const;
67   
68   //! process hiding between <Pt1> and <Pt2>.
69   Standard_EXPORT void HideByPolyData (const Standard_Address Coordinates, const Standard_Address RealPtr, const Standard_Address Indices, const Standard_Boolean HidingShell, HLRAlgo_EdgeStatus& status);
70   
71     Standard_Address Indices();
72
73   DEFINE_STANDARD_RTTIEXT(HLRAlgo_PolyData,MMgt_TShared)
74
75 private:
76
77   //! evident.
78   void hideByOneTriangle (const Standard_Address Coordinates,
79                           const Standard_Address RealPtr,
80                           const Standard_Boolean Crossing,
81                           const Standard_Boolean HideBefore,
82                           const Standard_Integer TrFlags,
83                           HLRAlgo_EdgeStatus& status);
84
85   Standard_Integer myIndices[3];
86   Handle(TColgp_HArray1OfXYZ) myHNodes;
87   Handle(HLRAlgo_HArray1OfTData) myHTData;
88   Handle(HLRAlgo_HArray1OfPHDat) myHPHDat;
89
90 };
91
92 #include <HLRAlgo_PolyData.lxx>
93
94 #endif // _HLRAlgo_PolyData_HeaderFile