|
||||
File indexing completed on 2025-01-18 10:03:17
0001 // Created on: 1994-08-25 0002 // Created by: Jacques GOUSSARD 0003 // Copyright (c) 1994-1999 Matra Datavision 0004 // Copyright (c) 1999-2014 OPEN CASCADE SAS 0005 // 0006 // This file is part of Open CASCADE Technology software library. 0007 // 0008 // This library is free software; you can redistribute it and/or modify it under 0009 // the terms of the GNU Lesser General Public License version 2.1 as published 0010 // by the Free Software Foundation, with special exception defined in the file 0011 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT 0012 // distribution for complete text of the license and disclaimer of any warranty. 0013 // 0014 // Alternatively, this file may be used under the terms of Open CASCADE 0015 // commercial license or contractual agreement. 0016 0017 #ifndef _BRepTools_Modification_HeaderFile 0018 #define _BRepTools_Modification_HeaderFile 0019 0020 #include <Standard.hxx> 0021 #include <Standard_Type.hxx> 0022 0023 #include <Standard_Transient.hxx> 0024 #include <Standard_Real.hxx> 0025 #include <GeomAbs_Shape.hxx> 0026 class TopoDS_Face; 0027 class Geom_Surface; 0028 class TopLoc_Location; 0029 class TopoDS_Edge; 0030 class Geom_Curve; 0031 class TopoDS_Vertex; 0032 class gp_Pnt; 0033 class Geom2d_Curve; 0034 class Poly_Triangulation; 0035 0036 class Poly_Polygon3D; 0037 class Poly_PolygonOnTriangulation; 0038 0039 0040 class BRepTools_Modification; 0041 DEFINE_STANDARD_HANDLE(BRepTools_Modification, Standard_Transient) 0042 0043 //! Defines geometric modifications to a shape, i.e. 0044 //! changes to faces, edges and vertices. 0045 class BRepTools_Modification : public Standard_Transient 0046 { 0047 0048 public: 0049 0050 0051 //! Returns true if the face, F, has been modified. 0052 //! If the face has been modified: 0053 //! - S is the new geometry of the face, 0054 //! - L is its new location, and 0055 //! - Tol is the new tolerance. 0056 //! The flag, RevWires, is set to true when the 0057 //! modification reverses the normal of the surface, (i.e. 0058 //! the wires have to be reversed). 0059 //! The flag, RevFace, is set to true if the orientation of 0060 //! the modified face changes in the shells which contain it. 0061 //! If the face has not been modified this function returns 0062 //! false, and the values of S, L, Tol, RevWires and 0063 //! RevFace are not significant. 0064 Standard_EXPORT virtual Standard_Boolean NewSurface (const TopoDS_Face& F, Handle(Geom_Surface)& S, TopLoc_Location& L, Standard_Real& Tol, Standard_Boolean& RevWires, Standard_Boolean& RevFace) = 0; 0065 0066 //! Returns true if the face has been modified according to changed triangulation. 0067 //! If the face has been modified: 0068 //! - T is a new triangulation on the face 0069 Standard_EXPORT virtual Standard_Boolean NewTriangulation(const TopoDS_Face& F, Handle(Poly_Triangulation)& T); 0070 0071 //! Returns true if the edge, E, has been modified. 0072 //! If the edge has been modified: 0073 //! - C is the new geometry associated with the edge, 0074 //! - L is its new location, and 0075 //! - Tol is the new tolerance. 0076 //! If the edge has not been modified, this function 0077 //! returns false, and the values of C, L and Tol are not significant. 0078 Standard_EXPORT virtual Standard_Boolean NewCurve (const TopoDS_Edge& E, Handle(Geom_Curve)& C, TopLoc_Location& L, Standard_Real& Tol) = 0; 0079 0080 //! Returns true if the edge has been modified according to changed polygon. 0081 //! If the edge has been modified: 0082 //! - P is a new polygon 0083 Standard_EXPORT virtual Standard_Boolean NewPolygon(const TopoDS_Edge& E, Handle(Poly_Polygon3D)& P); 0084 0085 //! Returns true if the edge has been modified according to changed polygon on triangulation. 0086 //! If the edge has been modified: 0087 //! - P is a new polygon on triangulation 0088 Standard_EXPORT virtual Standard_Boolean NewPolygonOnTriangulation(const TopoDS_Edge& E, const TopoDS_Face& F, Handle(Poly_PolygonOnTriangulation)& P); 0089 0090 //! Returns true if the vertex V has been modified. 0091 //! If V has been modified: 0092 //! - P is the new geometry of the vertex, and 0093 //! - Tol is the new tolerance. 0094 //! If the vertex has not been modified this function 0095 //! returns false, and the values of P and Tol are not significant. 0096 Standard_EXPORT virtual Standard_Boolean NewPoint (const TopoDS_Vertex& V, gp_Pnt& P, Standard_Real& Tol) = 0; 0097 0098 //! Returns true if the edge, E, has a new curve on 0099 //! surface on the face, F. 0100 //! If a new curve exists: 0101 //! - C is the new geometry of the edge, 0102 //! - L is the new location, and 0103 //! - Tol is the new tolerance. 0104 //! NewE is the new edge created from E, and NewF is 0105 //! the new face created from F. 0106 //! If there is no new curve on the face, this function 0107 //! returns false, and the values of C, L and Tol are not significant. 0108 Standard_EXPORT virtual Standard_Boolean NewCurve2d (const TopoDS_Edge& E, const TopoDS_Face& F, const TopoDS_Edge& NewE, const TopoDS_Face& NewF, Handle(Geom2d_Curve)& C, Standard_Real& Tol) = 0; 0109 0110 //! Returns true if the vertex V has a new parameter on the edge E. 0111 //! If a new parameter exists: 0112 //! - P is the parameter, and 0113 //! - Tol is the new tolerance. 0114 //! If there is no new parameter this function returns 0115 //! false, and the values of P and Tol are not significant. 0116 Standard_EXPORT virtual Standard_Boolean NewParameter (const TopoDS_Vertex& V, const TopoDS_Edge& E, Standard_Real& P, Standard_Real& Tol) = 0; 0117 0118 //! Returns the continuity of <NewE> between <NewF1> 0119 //! and <NewF2>. 0120 //! <NewE> is the new edge created from <E>. <NewF1> 0121 //! (resp. <NewF2>) is the new face created from <F1> 0122 //! (resp. <F2>). 0123 Standard_EXPORT virtual GeomAbs_Shape Continuity (const TopoDS_Edge& E, const TopoDS_Face& F1, const TopoDS_Face& F2, const TopoDS_Edge& NewE, const TopoDS_Face& NewF1, const TopoDS_Face& NewF2) = 0; 0124 0125 0126 0127 0128 DEFINE_STANDARD_RTTIEXT(BRepTools_Modification,Standard_Transient) 0129 0130 protected: 0131 0132 0133 0134 0135 private: 0136 0137 0138 0139 0140 }; 0141 0142 0143 0144 0145 0146 0147 0148 #endif // _BRepTools_Modification_HeaderFile
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |