//! * Update : Methods to call when a topology has
//! been created to compute all missing data.
//!
-//! * UpdateFaceUVPoints : Method to update the UV
-//! points stored with the edges on a face. This
-//! method ensure that connected edges have the same
-//! UV point on their common extremity.
+//! * UpdateFaceUVPoints: Method to update the UV points
+//! stored with the edges on a face.
//!
//! * Compare : Method to compare two vertices.
//!
//! Update a shape, call the corect update.
Standard_EXPORT static void Update (const TopoDS_Shape& S);
- //! For all the edges of the face <F> reset the UV
- //! points to ensure that connected faces have the
- //! same point at there common extremity.
- Standard_EXPORT static void UpdateFaceUVPoints (const TopoDS_Face& F);
+ //! For each edge of the face <F> reset the UV points
+ //! to the bounding points of the parametric curve of the
+ //! edge on the face.
+ Standard_EXPORT static void UpdateFaceUVPoints (const TopoDS_Face& theF);
- //! Removes all the triangulations of the faces of <S>
- //! and removes all polygons on triangulations of the
- //! edges.
+ //! Removes all cashed polygonal representation of the shape,
+ //! i.e. the triangulations of the faces of <S> and polygons on
+ //! triangulations and polygons 3d of the edges.
+ //! In case polygonal representation is the only available representation
+ //! for the shape (shape does not have geometry) it is not removed.
Standard_EXPORT static void Clean (const TopoDS_Shape& S);
+ //! Removes geometry (curves and surfaces) from all edges and faces of the shape
+ Standard_EXPORT static void CleanGeometry(const TopoDS_Shape& theShape);
+
//! Removes all the pcurves of the edges of <S> that
//! refer to surfaces not belonging to any face of <S>
Standard_EXPORT static void RemoveUnusedPCurves (const TopoDS_Shape& S);
- //! verifies that each face from the shape <S> has got
- //! a triangulation with a deflection <= deflec and
- //! the edges a discretisation on this triangulation.
- Standard_EXPORT static Standard_Boolean Triangulation (const TopoDS_Shape& S, const Standard_Real deflec);
+ //! Verifies that each Face from the shape has got a triangulation with a deflection smaller or equal to specified one
+ //! and the Edges a discretization on this triangulation.
+ //! @param theShape [in] shape to verify
+ //! @param theLinDefl [in] maximum allowed linear deflection
+ //! @param theToCheckFreeEdges [in] if TRUE, then free Edges are required to have 3D polygon
+ //! @return FALSE if input Shape contains Faces without triangulation,
+ //! or that triangulation has worse (greater) deflection than specified one,
+ //! or Edges in Shape lack polygons on triangulation
+ //! or free Edges in Shape lack 3D polygons
+ Standard_EXPORT static Standard_Boolean Triangulation (const TopoDS_Shape& theShape,
+ const Standard_Real theLinDefl,
+ const Standard_Boolean theToCheckFreeEdges = Standard_False);
//! Returns True if the distance between the two
//! vertices is lower than their tolerance.
const Standard_Real theF,
const Standard_Real theL);
+ //! returns the cumul of the orientation of <Edge>
+ //! and thc containing wire in <Face>
+ Standard_EXPORT static TopAbs_Orientation OriEdgeInFace(const TopoDS_Edge& theEdge,
+ const TopoDS_Face& theFace);
+
+ //! Removes internal sub-shapes from the shape.
+ //! The check on internal status is based on orientation of sub-shapes,
+ //! classification is not performed.
+ //! Before removal of internal sub-shapes the algorithm checks if such
+ //! removal is not going to break topological connectivity between sub-shapes.
+ //! The flag <theForce> if set to true disables the connectivity check and clears
+ //! the given shape from all sub-shapes with internal orientation.
+ Standard_EXPORT static void RemoveInternals (TopoDS_Shape& theS,
+ const Standard_Boolean theForce = Standard_False);
protected: