File indexing completed on 2026-05-12 08:47:37
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _ShapeExtend_CompositeSurface_HeaderFile
0018 #define _ShapeExtend_CompositeSurface_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_Type.hxx>
0022
0023 #include <TColGeom_HArray2OfSurface.hxx>
0024 #include <TColStd_HArray1OfReal.hxx>
0025 #include <Geom_Surface.hxx>
0026 #include <ShapeExtend_Parametrisation.hxx>
0027 #include <TColStd_Array1OfReal.hxx>
0028 #include <Standard_Integer.hxx>
0029 #include <GeomAbs_Shape.hxx>
0030 class gp_Pnt2d;
0031 class gp_Trsf2d;
0032 class gp_Trsf;
0033 class Geom_Geometry;
0034 class Geom_Curve;
0035 class gp_Pnt;
0036 class gp_Vec;
0037
0038 class ShapeExtend_CompositeSurface;
0039 DEFINE_STANDARD_HANDLE(ShapeExtend_CompositeSurface, Geom_Surface)
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072 class ShapeExtend_CompositeSurface : public Geom_Surface
0073 {
0074
0075 public:
0076
0077 Standard_EXPORT ShapeExtend_CompositeSurface();
0078
0079
0080 Standard_EXPORT ShapeExtend_CompositeSurface(
0081 const Handle(TColGeom_HArray2OfSurface)& GridSurf,
0082 const ShapeExtend_Parametrisation param = ShapeExtend_Natural);
0083
0084
0085 Standard_EXPORT ShapeExtend_CompositeSurface(const Handle(TColGeom_HArray2OfSurface)& GridSurf,
0086 const TColStd_Array1OfReal& UJoints,
0087 const TColStd_Array1OfReal& VJoints);
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101 Standard_EXPORT Standard_Boolean
0102 Init(const Handle(TColGeom_HArray2OfSurface)& GridSurf,
0103 const ShapeExtend_Parametrisation param = ShapeExtend_Natural);
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115 Standard_EXPORT Standard_Boolean Init(const Handle(TColGeom_HArray2OfSurface)& GridSurf,
0116 const TColStd_Array1OfReal& UJoints,
0117 const TColStd_Array1OfReal& VJoints);
0118
0119
0120 Standard_EXPORT Standard_Integer NbUPatches() const;
0121
0122
0123 Standard_EXPORT Standard_Integer NbVPatches() const;
0124
0125
0126 Standard_EXPORT const Handle(Geom_Surface)& Patch(const Standard_Integer i,
0127 const Standard_Integer j) const;
0128
0129
0130 Standard_EXPORT const Handle(TColGeom_HArray2OfSurface)& Patches() const;
0131
0132
0133
0134
0135 Standard_EXPORT Handle(TColStd_HArray1OfReal) UJointValues() const;
0136
0137
0138
0139
0140 Standard_EXPORT Handle(TColStd_HArray1OfReal) VJointValues() const;
0141
0142
0143
0144
0145 Standard_EXPORT Standard_Real UJointValue(const Standard_Integer i) const;
0146
0147
0148
0149
0150 Standard_EXPORT Standard_Real VJointValue(const Standard_Integer j) const;
0151
0152
0153
0154
0155
0156
0157 Standard_EXPORT Standard_Boolean SetUJointValues(const TColStd_Array1OfReal& UJoints);
0158
0159
0160
0161
0162
0163
0164 Standard_EXPORT Standard_Boolean SetVJointValues(const TColStd_Array1OfReal& VJoints);
0165
0166
0167
0168 Standard_EXPORT void SetUFirstValue(const Standard_Real UFirst);
0169
0170
0171
0172 Standard_EXPORT void SetVFirstValue(const Standard_Real VFirst);
0173
0174
0175 Standard_EXPORT Standard_Integer LocateUParameter(const Standard_Real U) const;
0176
0177
0178 Standard_EXPORT Standard_Integer LocateVParameter(const Standard_Real V) const;
0179
0180
0181
0182 Standard_EXPORT void LocateUVPoint(const gp_Pnt2d& pnt,
0183 Standard_Integer& i,
0184 Standard_Integer& j) const;
0185
0186
0187 Standard_EXPORT const Handle(Geom_Surface)& Patch(const Standard_Real U,
0188 const Standard_Real V) const;
0189
0190
0191 Standard_EXPORT const Handle(Geom_Surface)& Patch(const gp_Pnt2d& pnt) const;
0192
0193
0194 Standard_EXPORT Standard_Real ULocalToGlobal(const Standard_Integer i,
0195 const Standard_Integer j,
0196 const Standard_Real u) const;
0197
0198
0199 Standard_EXPORT Standard_Real VLocalToGlobal(const Standard_Integer i,
0200 const Standard_Integer j,
0201 const Standard_Real v) const;
0202
0203
0204 Standard_EXPORT gp_Pnt2d LocalToGlobal(const Standard_Integer i,
0205 const Standard_Integer j,
0206 const gp_Pnt2d& uv) const;
0207
0208
0209 Standard_EXPORT Standard_Real UGlobalToLocal(const Standard_Integer i,
0210 const Standard_Integer j,
0211 const Standard_Real U) const;
0212
0213
0214 Standard_EXPORT Standard_Real VGlobalToLocal(const Standard_Integer i,
0215 const Standard_Integer j,
0216 const Standard_Real V) const;
0217
0218
0219 Standard_EXPORT gp_Pnt2d GlobalToLocal(const Standard_Integer i,
0220 const Standard_Integer j,
0221 const gp_Pnt2d& UV) const;
0222
0223
0224
0225
0226
0227
0228
0229 Standard_EXPORT Standard_Boolean GlobalToLocalTransformation(const Standard_Integer i,
0230 const Standard_Integer j,
0231 Standard_Real& uFact,
0232 gp_Trsf2d& Trsf) const;
0233
0234
0235 Standard_EXPORT virtual void Transform(const gp_Trsf& T) Standard_OVERRIDE;
0236
0237
0238 Standard_EXPORT virtual Handle(Geom_Geometry) Copy() const Standard_OVERRIDE;
0239
0240
0241 Standard_EXPORT virtual void UReverse() Standard_OVERRIDE;
0242
0243
0244 Standard_EXPORT virtual Standard_Real UReversedParameter(const Standard_Real U) const
0245 Standard_OVERRIDE;
0246
0247
0248 Standard_EXPORT virtual void VReverse() Standard_OVERRIDE;
0249
0250
0251 Standard_EXPORT virtual Standard_Real VReversedParameter(const Standard_Real V) const
0252 Standard_OVERRIDE;
0253
0254
0255 Standard_EXPORT virtual void Bounds(Standard_Real& U1,
0256 Standard_Real& U2,
0257 Standard_Real& V1,
0258 Standard_Real& V2) const Standard_OVERRIDE;
0259
0260
0261
0262 Standard_EXPORT virtual Standard_Boolean IsUClosed() const Standard_OVERRIDE;
0263
0264
0265
0266 Standard_EXPORT virtual Standard_Boolean IsVClosed() const Standard_OVERRIDE;
0267
0268
0269 Standard_EXPORT virtual Standard_Boolean IsUPeriodic() const Standard_OVERRIDE;
0270
0271
0272 Standard_EXPORT virtual Standard_Boolean IsVPeriodic() const Standard_OVERRIDE;
0273
0274
0275 Standard_EXPORT virtual Handle(Geom_Curve) UIso(const Standard_Real U) const Standard_OVERRIDE;
0276
0277
0278 Standard_EXPORT virtual Handle(Geom_Curve) VIso(const Standard_Real V) const Standard_OVERRIDE;
0279
0280
0281 Standard_EXPORT virtual GeomAbs_Shape Continuity() const Standard_OVERRIDE;
0282
0283
0284 Standard_EXPORT virtual Standard_Boolean IsCNu(const Standard_Integer N) const Standard_OVERRIDE;
0285
0286
0287 Standard_EXPORT virtual Standard_Boolean IsCNv(const Standard_Integer N) const Standard_OVERRIDE;
0288
0289
0290 Standard_EXPORT virtual void D0(const Standard_Real U,
0291 const Standard_Real V,
0292 gp_Pnt& P) const Standard_OVERRIDE;
0293
0294
0295
0296 Standard_EXPORT virtual void D1(const Standard_Real U,
0297 const Standard_Real V,
0298 gp_Pnt& P,
0299 gp_Vec& D1U,
0300 gp_Vec& D1V) const Standard_OVERRIDE;
0301
0302
0303
0304 Standard_EXPORT virtual void D2(const Standard_Real U,
0305 const Standard_Real V,
0306 gp_Pnt& P,
0307 gp_Vec& D1U,
0308 gp_Vec& D1V,
0309 gp_Vec& D2U,
0310 gp_Vec& D2V,
0311 gp_Vec& D2UV) const Standard_OVERRIDE;
0312
0313
0314
0315 Standard_EXPORT virtual void D3(const Standard_Real U,
0316 const Standard_Real V,
0317 gp_Pnt& P,
0318 gp_Vec& D1U,
0319 gp_Vec& D1V,
0320 gp_Vec& D2U,
0321 gp_Vec& D2V,
0322 gp_Vec& D2UV,
0323 gp_Vec& D3U,
0324 gp_Vec& D3V,
0325 gp_Vec& D3UUV,
0326 gp_Vec& D3UVV) const Standard_OVERRIDE;
0327
0328
0329
0330 Standard_EXPORT virtual gp_Vec DN(const Standard_Real U,
0331 const Standard_Real V,
0332 const Standard_Integer Nu,
0333 const Standard_Integer Nv) const Standard_OVERRIDE;
0334
0335
0336 Standard_EXPORT gp_Pnt Value(const gp_Pnt2d& pnt) const;
0337
0338
0339 Standard_EXPORT void ComputeJointValues(
0340 const ShapeExtend_Parametrisation param = ShapeExtend_Natural);
0341
0342
0343
0344 Standard_EXPORT Standard_Boolean CheckConnectivity(const Standard_Real prec);
0345
0346 DEFINE_STANDARD_RTTIEXT(ShapeExtend_CompositeSurface, Geom_Surface)
0347
0348 protected:
0349 private:
0350 Handle(TColGeom_HArray2OfSurface) myPatches;
0351 Handle(TColStd_HArray1OfReal) myUJointValues;
0352 Handle(TColStd_HArray1OfReal) myVJointValues;
0353 Standard_Boolean myUClosed;
0354 Standard_Boolean myVClosed;
0355 };
0356
0357 #endif