File indexing completed on 2026-09-14 09:14:33
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _GeomPlate_BuildAveragePlane_HeaderFile
0018 #define _GeomPlate_BuildAveragePlane_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023
0024 #include <gp_Pnt.hxx>
0025 #include <NCollection_Array1.hxx>
0026 #include <NCollection_HArray1.hxx>
0027 #include <gp_Vec.hxx>
0028 #include <Standard_Integer.hxx>
0029 #include <NCollection_Sequence.hxx>
0030 #include <GeomPlate_Aij.hxx>
0031 class Geom_Plane;
0032 class Geom_Line;
0033
0034
0035
0036
0037
0038 class GeomPlate_BuildAveragePlane
0039 {
0040 public:
0041 DEFINE_STANDARD_ALLOC
0042
0043
0044
0045
0046
0047
0048
0049 Standard_EXPORT GeomPlate_BuildAveragePlane(const occ::handle<NCollection_HArray1<gp_Pnt>>& Pts,
0050 const int NbBoundPoints,
0051 const double Tol,
0052 const int POption,
0053 const int NOption);
0054
0055
0056 Standard_EXPORT GeomPlate_BuildAveragePlane(const NCollection_Sequence<gp_Vec>& Normals,
0057 const occ::handle<NCollection_HArray1<gp_Pnt>>& Pts);
0058
0059
0060 Standard_EXPORT occ::handle<Geom_Plane> Plane() const;
0061
0062
0063 Standard_EXPORT occ::handle<Geom_Line> Line() const;
0064
0065
0066 Standard_EXPORT bool IsPlane() const;
0067
0068
0069 Standard_EXPORT bool IsLine() const;
0070
0071
0072
0073 Standard_EXPORT void MinMaxBox(double& Umin, double& Umax, double& Vmin, double& Vmax) const;
0074
0075 Standard_EXPORT static bool HalfSpace(const NCollection_Sequence<gp_Vec>& NewNormals,
0076 NCollection_Sequence<gp_Vec>& Normals,
0077 NCollection_Sequence<GeomPlate_Aij>& Bset,
0078 const double LinTol,
0079 const double AngTol);
0080
0081 private:
0082
0083
0084 Standard_EXPORT void BasePlan(const gp_Vec& N);
0085
0086
0087
0088
0089 Standard_EXPORT gp_Vec DefPlan(const int NOption);
0090
0091 occ::handle<NCollection_HArray1<gp_Pnt>> myPts;
0092 double myUmax;
0093 double myVmax;
0094 double myVmin;
0095 double myUmin;
0096 occ::handle<Geom_Plane> myPlane;
0097 double myTol;
0098 occ::handle<Geom_Line> myLine;
0099 gp_Vec myOX;
0100 gp_Vec myOY;
0101 gp_Pnt myG;
0102 int myNbBoundPoints;
0103 };
0104
0105 #endif