File indexing completed on 2025-01-18 10:03:04
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
0030 class BOPDS_PaveBlock;
0031 DEFINE_STANDARD_HANDLE(BOPDS_PaveBlock, Standard_Transient)
0032
0033
0034
0035
0036
0037 class BOPDS_PaveBlock : public Standard_Transient
0038 {
0039
0040 public:
0041
0042
0043 Standard_EXPORT BOPDS_PaveBlock();
0044
0045
0046
0047 Standard_EXPORT BOPDS_PaveBlock(const Handle(NCollection_BaseAllocator)& theAllocator);
0048
0049
0050
0051 Standard_EXPORT void SetPave1 (const BOPDS_Pave& thePave);
0052
0053
0054
0055
0056 Standard_EXPORT const BOPDS_Pave& Pave1() const;
0057
0058
0059
0060
0061 Standard_EXPORT void SetPave2 (const BOPDS_Pave& thePave);
0062
0063
0064
0065
0066 Standard_EXPORT const BOPDS_Pave& Pave2() const;
0067
0068
0069
0070
0071 Standard_EXPORT void SetEdge (const Standard_Integer theEdge);
0072
0073
0074
0075
0076 Standard_EXPORT Standard_Integer Edge() const;
0077
0078
0079
0080
0081 Standard_EXPORT Standard_Boolean HasEdge() const;
0082
0083
0084
0085
0086
0087 Standard_EXPORT Standard_Boolean HasEdge (Standard_Integer& theEdge) const;
0088
0089
0090
0091
0092
0093 Standard_EXPORT void SetOriginalEdge (const Standard_Integer theEdge);
0094
0095
0096
0097
0098 Standard_EXPORT Standard_Integer OriginalEdge() const;
0099
0100
0101
0102
0103
0104 Standard_EXPORT Standard_Boolean IsSplitEdge() const;
0105
0106
0107
0108
0109
0110 Standard_EXPORT void Range (Standard_Real& theT1, Standard_Real& theT2) const;
0111
0112
0113
0114
0115
0116
0117 Standard_EXPORT Standard_Boolean HasSameBounds (const Handle(BOPDS_PaveBlock)& theOther) const;
0118
0119
0120
0121
0122
0123 Standard_EXPORT void Indices (Standard_Integer& theIndex1,
0124 Standard_Integer& theIndex2) const;
0125
0126
0127
0128
0129 Standard_EXPORT Standard_Boolean IsToUpdate() const;
0130
0131
0132
0133
0134 Standard_EXPORT void AppendExtPave(const BOPDS_Pave& thePave);
0135
0136
0137
0138
0139 Standard_EXPORT void AppendExtPave1 (const BOPDS_Pave& thePave);
0140
0141
0142
0143 Standard_EXPORT void RemoveExtPave(const Standard_Integer theVertNum);
0144
0145
0146
0147 Standard_EXPORT const BOPDS_ListOfPave& ExtPaves() const;
0148
0149
0150
0151
0152 Standard_EXPORT BOPDS_ListOfPave& ChangeExtPaves();
0153
0154
0155
0156
0157
0158
0159
0160 Standard_EXPORT void Update (BOPDS_ListOfPaveBlock& theLPB,
0161 const Standard_Boolean theFlag = Standard_True);
0162
0163
0164
0165
0166
0167
0168
0169 Standard_EXPORT Standard_Boolean ContainsParameter (const Standard_Real thePrm,
0170 const Standard_Real theTol,
0171 Standard_Integer& theInd) const;
0172
0173
0174
0175
0176
0177
0178
0179 Standard_EXPORT void SetShrunkData (const Standard_Real theTS1,
0180 const Standard_Real theTS2,
0181 const Bnd_Box& theBox,
0182 const Standard_Boolean theIsSplittable);
0183
0184
0185
0186
0187
0188
0189
0190 Standard_EXPORT void ShrunkData (Standard_Real& theTS1,
0191 Standard_Real& theTS2,
0192 Bnd_Box& theBox,
0193 Standard_Boolean& theIsSplittable) const;
0194
0195
0196
0197
0198
0199 Standard_EXPORT Standard_Boolean HasShrunkData() const;
0200
0201 Standard_EXPORT void Dump() const;
0202
0203
0204
0205
0206 Standard_Boolean IsSplittable() const
0207 {
0208 return myIsSplittable;
0209 }
0210
0211
0212
0213 DEFINE_STANDARD_RTTIEXT(BOPDS_PaveBlock,Standard_Transient)
0214
0215 protected:
0216
0217
0218 Handle(NCollection_BaseAllocator) myAllocator;
0219 Standard_Integer myEdge;
0220 Standard_Integer myOriginalEdge;
0221 BOPDS_Pave myPave1;
0222 BOPDS_Pave myPave2;
0223 BOPDS_ListOfPave myExtPaves;
0224 Standard_Real myTS1;
0225 Standard_Real myTS2;
0226 Bnd_Box myShrunkBox;
0227 TColStd_MapOfInteger myMFence;
0228 Standard_Boolean myIsSplittable;
0229
0230 private:
0231
0232
0233
0234
0235 };
0236
0237
0238
0239
0240
0241
0242
0243 #endif