File indexing completed on 2026-10-28 09:16:49
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _HLRAlgo_PolyInternalData_HeaderFile
0018 #define _HLRAlgo_PolyInternalData_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_Integer.hxx>
0022 #include <HLRAlgo_TriangleData.hxx>
0023 #include <NCollection_Array1.hxx>
0024 #include <NCollection_HArray1.hxx>
0025 #include <HLRAlgo_PolyInternalSegment.hxx>
0026 #include <HLRAlgo_PolyInternalNode.hxx>
0027 #include <Standard_Transient.hxx>
0028 #include <Standard_Type.hxx>
0029
0030
0031 class HLRAlgo_PolyInternalData : public Standard_Transient
0032 {
0033
0034 public:
0035 Standard_EXPORT HLRAlgo_PolyInternalData(const int nbNod, const int nbTri);
0036
0037 Standard_EXPORT void UpdateLinks(
0038 NCollection_Array1<HLRAlgo_TriangleData>& theTData,
0039 NCollection_Array1<HLRAlgo_PolyInternalSegment>& thePISeg,
0040 NCollection_Array1<occ::handle<HLRAlgo_PolyInternalNode>>& thePINod);
0041
0042 Standard_EXPORT int AddNode(HLRAlgo_PolyInternalNode::NodeData& theNod1RValues,
0043 HLRAlgo_PolyInternalNode::NodeData& theNod2RValues,
0044 NCollection_Array1<occ::handle<HLRAlgo_PolyInternalNode>>*& thePINod1,
0045 NCollection_Array1<occ::handle<HLRAlgo_PolyInternalNode>>*& thePINod2,
0046 const double theCoef1,
0047 const double theX3,
0048 const double theY3,
0049 const double theZ3);
0050
0051 Standard_EXPORT void UpdateLinks(
0052 const int theIp1,
0053 const int theIp2,
0054 const int theIp3,
0055 NCollection_Array1<HLRAlgo_TriangleData>*& theTData1,
0056 NCollection_Array1<HLRAlgo_TriangleData>*& theTData2,
0057 NCollection_Array1<HLRAlgo_PolyInternalSegment>*& thePISeg1,
0058 NCollection_Array1<HLRAlgo_PolyInternalSegment>*& thePISeg2,
0059 NCollection_Array1<occ::handle<HLRAlgo_PolyInternalNode>>*& thePINod1,
0060 NCollection_Array1<occ::handle<HLRAlgo_PolyInternalNode>>*& thePINod2);
0061
0062 Standard_EXPORT void Dump() const;
0063
0064 Standard_EXPORT void IncTData(NCollection_Array1<HLRAlgo_TriangleData>*& TData1,
0065 NCollection_Array1<HLRAlgo_TriangleData>*& TData2);
0066
0067 Standard_EXPORT void IncPISeg(NCollection_Array1<HLRAlgo_PolyInternalSegment>*& PISeg1,
0068 NCollection_Array1<HLRAlgo_PolyInternalSegment>*& PISeg2);
0069
0070 Standard_EXPORT void IncPINod(
0071 NCollection_Array1<occ::handle<HLRAlgo_PolyInternalNode>>*& thePINod1,
0072 NCollection_Array1<occ::handle<HLRAlgo_PolyInternalNode>>*& thePINod2);
0073
0074 void DecTData();
0075
0076 void DecPISeg();
0077
0078 void DecPINod();
0079
0080 int NbTData() const;
0081
0082 int NbPISeg() const;
0083
0084 int NbPINod() const;
0085
0086 bool Planar() const;
0087
0088 void Planar(const bool B);
0089
0090 bool IntOutL() const;
0091
0092 void IntOutL(const bool B);
0093
0094 NCollection_Array1<HLRAlgo_TriangleData>& TData() const;
0095
0096 NCollection_Array1<HLRAlgo_PolyInternalSegment>& PISeg() const;
0097
0098 NCollection_Array1<occ::handle<HLRAlgo_PolyInternalNode>>& PINod() const;
0099
0100 DEFINE_STANDARD_RTTIEXT(HLRAlgo_PolyInternalData, Standard_Transient)
0101
0102 private:
0103 int myNbTData;
0104 int myNbPISeg;
0105 int myNbPINod;
0106 int myMxTData;
0107 int myMxPISeg;
0108 int myMxPINod;
0109 bool myIntOutL;
0110 bool myPlanar;
0111 occ::handle<NCollection_HArray1<HLRAlgo_TriangleData>> myTData;
0112 occ::handle<NCollection_HArray1<HLRAlgo_PolyInternalSegment>> myPISeg;
0113 occ::handle<NCollection_HArray1<occ::handle<HLRAlgo_PolyInternalNode>>> myPINod;
0114 };
0115
0116 #include <HLRAlgo_PolyInternalData.lxx>
0117
0118 #endif