File indexing completed on 2026-08-13 09:17:51
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #ifndef _BOPDS_PaveBlock_HeaderFile
0016 #define _BOPDS_PaveBlock_HeaderFile
0017
0018 #include <Standard.hxx>
0019
0020 #include <Bnd_Box.hxx>
0021 #include <BOPDS_ListOfPave.hxx>
0022 #include <BOPDS_ListOfPaveBlock.hxx>
0023 #include <BOPDS_Pave.hxx>
0024 #include <NCollection_BaseAllocator.hxx>
0025 #include <Standard_Integer.hxx>
0026 #include <Standard_Transient.hxx>
0027 #include <TColStd_MapOfInteger.hxx>
0028
0029 class BOPDS_PaveBlock;
0030 DEFINE_STANDARD_HANDLE(BOPDS_PaveBlock, Standard_Transient)
0031
0032
0033
0034
0035 class BOPDS_PaveBlock : public Standard_Transient
0036 {
0037
0038 public:
0039
0040 Standard_EXPORT BOPDS_PaveBlock();
0041
0042
0043
0044 Standard_EXPORT BOPDS_PaveBlock(const Handle(NCollection_BaseAllocator)& theAllocator);
0045
0046
0047
0048 Standard_EXPORT void SetPave1(const BOPDS_Pave& thePave);
0049
0050
0051
0052 Standard_EXPORT const BOPDS_Pave& Pave1() const;
0053
0054
0055
0056 Standard_EXPORT void SetPave2(const BOPDS_Pave& thePave);
0057
0058
0059
0060 Standard_EXPORT const BOPDS_Pave& Pave2() const;
0061
0062
0063
0064 Standard_EXPORT void SetEdge(const Standard_Integer theEdge);
0065
0066
0067
0068 Standard_EXPORT Standard_Integer Edge() const;
0069
0070
0071
0072 Standard_EXPORT Standard_Boolean HasEdge() const;
0073
0074
0075
0076
0077 Standard_EXPORT Standard_Boolean HasEdge(Standard_Integer& theEdge) const;
0078
0079
0080
0081
0082 Standard_EXPORT void SetOriginalEdge(const Standard_Integer theEdge);
0083
0084
0085
0086 Standard_EXPORT Standard_Integer OriginalEdge() const;
0087
0088
0089
0090
0091 Standard_EXPORT Standard_Boolean IsSplitEdge() const;
0092
0093
0094
0095
0096 Standard_EXPORT void Range(Standard_Real& theT1, Standard_Real& theT2) const;
0097
0098
0099
0100
0101
0102 Standard_EXPORT Standard_Boolean HasSameBounds(const Handle(BOPDS_PaveBlock)& theOther) const;
0103
0104
0105
0106
0107 Standard_EXPORT void Indices(Standard_Integer& theIndex1, Standard_Integer& theIndex2) const;
0108
0109
0110
0111 Standard_EXPORT Standard_Boolean IsToUpdate() const;
0112
0113
0114
0115 Standard_EXPORT void AppendExtPave(const BOPDS_Pave& thePave);
0116
0117
0118
0119 Standard_EXPORT void AppendExtPave1(const BOPDS_Pave& thePave);
0120
0121
0122
0123 Standard_EXPORT void RemoveExtPave(const Standard_Integer theVertNum);
0124
0125
0126
0127 Standard_EXPORT const BOPDS_ListOfPave& ExtPaves() const;
0128
0129
0130
0131 Standard_EXPORT BOPDS_ListOfPave& ChangeExtPaves();
0132
0133
0134
0135
0136
0137
0138 Standard_EXPORT void Update(BOPDS_ListOfPaveBlock& theLPB,
0139 const Standard_Boolean theFlag = Standard_True);
0140
0141
0142
0143
0144
0145
0146 Standard_EXPORT Standard_Boolean ContainsParameter(const Standard_Real thePrm,
0147 const Standard_Real theTol,
0148 Standard_Integer& theInd) const;
0149
0150
0151
0152
0153
0154
0155 Standard_EXPORT void SetShrunkData(const Standard_Real theTS1,
0156 const Standard_Real theTS2,
0157 const Bnd_Box& theBox,
0158 const Standard_Boolean theIsSplittable);
0159
0160
0161
0162
0163
0164
0165 Standard_EXPORT void ShrunkData(Standard_Real& theTS1,
0166 Standard_Real& theTS2,
0167 Bnd_Box& theBox,
0168 Standard_Boolean& theIsSplittable) const;
0169
0170
0171
0172
0173 Standard_EXPORT Standard_Boolean HasShrunkData() const;
0174
0175 Standard_EXPORT void Dump() const;
0176
0177
0178
0179
0180 Standard_Boolean IsSplittable() const { return myIsSplittable; }
0181
0182 DEFINE_STANDARD_RTTIEXT(BOPDS_PaveBlock, Standard_Transient)
0183
0184 protected:
0185 Handle(NCollection_BaseAllocator) myAllocator;
0186 Standard_Integer myEdge;
0187 Standard_Integer myOriginalEdge;
0188 BOPDS_Pave myPave1;
0189 BOPDS_Pave myPave2;
0190 BOPDS_ListOfPave myExtPaves;
0191 Standard_Real myTS1;
0192 Standard_Real myTS2;
0193 Bnd_Box myShrunkBox;
0194 TColStd_MapOfInteger myMFence;
0195 Standard_Boolean myIsSplittable;
0196
0197 private:
0198 };
0199
0200 #endif