File indexing completed on 2026-09-08 09:16:43
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _IntPatch_Polyhedron_HeaderFile
0018 #define _IntPatch_Polyhedron_HeaderFile
0019
0020 #include <Adaptor3d_Surface.hxx>
0021 #include <Bnd_HArray1OfBox.hxx>
0022
0023
0024
0025 class IntPatch_Polyhedron
0026 {
0027 public:
0028 DEFINE_STANDARD_ALLOC
0029
0030
0031
0032 Standard_EXPORT IntPatch_Polyhedron(const Handle(Adaptor3d_Surface)& Surface,
0033 const Standard_Integer nbdU,
0034 const Standard_Integer nbdV);
0035
0036 Standard_EXPORT IntPatch_Polyhedron(const Handle(Adaptor3d_Surface)& Surface);
0037
0038 Standard_EXPORT void Destroy();
0039
0040 ~IntPatch_Polyhedron() { Destroy(); }
0041
0042 Standard_EXPORT void Perform(const Handle(Adaptor3d_Surface)& Surface,
0043 const Standard_Integer nbdU,
0044 const Standard_Integer nbdV);
0045
0046 Standard_EXPORT void DeflectionOverEstimation(const Standard_Real flec);
0047
0048 Standard_EXPORT Standard_Real DeflectionOnTriangle(const Handle(Adaptor3d_Surface)& Surface,
0049 const Standard_Integer Index) const;
0050
0051 Standard_EXPORT void UMinSingularity(const Standard_Boolean Sing);
0052
0053 Standard_EXPORT void UMaxSingularity(const Standard_Boolean Sing);
0054
0055 Standard_EXPORT void VMinSingularity(const Standard_Boolean Sing);
0056
0057 Standard_EXPORT void VMaxSingularity(const Standard_Boolean Sing);
0058
0059
0060 Standard_EXPORT void Size(Standard_Integer& nbdu, Standard_Integer& nbdv) const;
0061
0062
0063
0064 Standard_EXPORT Standard_Integer NbTriangles() const;
0065
0066
0067
0068 Standard_EXPORT void Triangle(const Standard_Integer Index,
0069 Standard_Integer& P1,
0070 Standard_Integer& P2,
0071 Standard_Integer& P3) const;
0072
0073
0074
0075
0076
0077
0078
0079 Standard_EXPORT Standard_Integer TriConnex(const Standard_Integer Triang,
0080 const Standard_Integer Pivot,
0081 const Standard_Integer Pedge,
0082 Standard_Integer& TriCon,
0083 Standard_Integer& OtherP) const;
0084
0085
0086
0087 Standard_EXPORT Standard_Integer NbPoints() const;
0088
0089
0090
0091 Standard_EXPORT void Point(const gp_Pnt& thePnt,
0092 const Standard_Integer lig,
0093 const Standard_Integer col,
0094 const Standard_Real U,
0095 const Standard_Real V);
0096
0097
0098 Standard_EXPORT const gp_Pnt& Point(const Standard_Integer Index,
0099 Standard_Real& U,
0100 Standard_Real& V) const;
0101
0102
0103 Standard_EXPORT const gp_Pnt& Point(const Standard_Integer Index) const;
0104
0105
0106 Standard_EXPORT void Point(const Standard_Integer Index, gp_Pnt& P) const;
0107
0108
0109 Standard_EXPORT const Bnd_Box& Bounding() const;
0110
0111
0112
0113 Standard_EXPORT void FillBounding();
0114
0115
0116
0117 Standard_EXPORT const Handle(Bnd_HArray1OfBox)& ComponentsBounding() const;
0118
0119 Standard_EXPORT Standard_Real DeflectionOverEstimation() const;
0120
0121 Standard_EXPORT Standard_Boolean HasUMinSingularity() const;
0122
0123 Standard_EXPORT Standard_Boolean HasUMaxSingularity() const;
0124
0125 Standard_EXPORT Standard_Boolean HasVMinSingularity() const;
0126
0127 Standard_EXPORT Standard_Boolean HasVMaxSingularity() const;
0128
0129
0130 Standard_EXPORT void PlaneEquation(const Standard_Integer Triang,
0131 gp_XYZ& NormalVector,
0132 Standard_Real& PolarDistance) const;
0133
0134
0135 Standard_EXPORT Standard_Boolean Contain(const Standard_Integer Triang,
0136 const gp_Pnt& ThePnt) const;
0137
0138 Standard_EXPORT void Parameters(const Standard_Integer Index,
0139 Standard_Real& U,
0140 Standard_Real& V) const;
0141
0142 Standard_EXPORT void Dump() const;
0143
0144 protected:
0145 private:
0146 Bnd_Box TheBnd;
0147 Handle(Bnd_HArray1OfBox) TheComponentsBnd;
0148 Standard_Real TheDeflection;
0149 Standard_Integer nbdeltaU;
0150 Standard_Integer nbdeltaV;
0151 Standard_Address C_MyPnts;
0152 Standard_Address C_MyU;
0153 Standard_Address C_MyV;
0154 Standard_Boolean UMinSingular;
0155 Standard_Boolean UMaxSingular;
0156 Standard_Boolean VMinSingular;
0157 Standard_Boolean VMaxSingular;
0158 };
0159
0160 #endif