Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Public Member Functions
ShapeAnalysis_CheckSmallFace Class Reference

Analysis of the face size. More...

#include <ShapeAnalysis_CheckSmallFace.hxx>

Public Member Functions

 ShapeAnalysis_CheckSmallFace ()
 Creates an empty tool Checks a Shape i.e. each of its faces, records checks as diagnostics in the <infos>
 
int IsSpotFace (const TopoDS_Face &F, gp_Pnt &spot, double &spotol, const double tol=-1.0) const
 Checks if a Face is as a Spot Returns 0 if not, 1 if yes, 2 if yes and all vertices are the same By default, considers the tolerance zone of its vertices A given value <tol> may be given to check a spot of this size If a Face is a Spot, its location is returned in <spot>, and <spotol> returns an equivalent tolerance, which is computed as half of max dimension of min-max box of the face.
 
bool CheckSpotFace (const TopoDS_Face &F, const double tol=-1.0)
 Acts as IsSpotFace, but records in <infos> a diagnostic "SpotFace" with the Pnt as value (data "Location")
 
bool IsStripSupport (const TopoDS_Face &F, const double tol=-1.0)
 Checks if a Face lies on a Surface which is a strip So the Face is a strip. But a Face may be a strip elsewhere ..
 
bool CheckStripEdges (const TopoDS_Edge &E1, const TopoDS_Edge &E2, const double tol, double &dmax) const
 Checks if two edges define a strip, i.e. distance maxi below tolerance, given or some of those of E1 and E2.
 
bool FindStripEdges (const TopoDS_Face &F, TopoDS_Edge &E1, TopoDS_Edge &E2, const double tol, double &dmax)
 Searches for two and only two edges up tolerance Returns True if OK, false if not 2 edges If True, returns the two edges and their maximum distance.
 
bool CheckSingleStrip (const TopoDS_Face &F, TopoDS_Edge &E1, TopoDS_Edge &E2, const double tol=-1.0)
 Checks if a Face is a single strip, i.e. brings two great edges which are confused on their whole length, possible other edges are small or null length.
 
bool CheckStripFace (const TopoDS_Face &F, TopoDS_Edge &E1, TopoDS_Edge &E2, const double tol=-1.0)
 Checks if a Face is as a Strip Returns 0 if not or non determined, 1 if in U, 2 if in V By default, considers the tolerance zone of its edges A given value <tol> may be given to check a strip of max this width.
 
int CheckSplittingVertices (const TopoDS_Face &F, NCollection_DataMap< TopoDS_Shape, NCollection_List< TopoDS_Shape >, TopTools_ShapeMapHasher > &MapEdges, NCollection_DataMap< TopoDS_Shape, NCollection_List< double >, TopTools_ShapeMapHasher > &MapParam, TopoDS_Compound &theAllVert)
 Checks if a Face brings vertices which split it, either confused with non adjacent vertices, or confused with their projection on non adjacent edges Returns the count of found splitting vertices Each vertex then brings a diagnostic "SplittingVertex", with data : "Face" for the face, "Edge" for the split edge.
 
bool CheckPin (const TopoDS_Face &F, int &whatrow, int &sence)
 Checks if a Face has a pin, which can be edited No singularity : no pin, returns 0 If there is a pin, checked topics, with returned value :
 
bool CheckTwisted (const TopoDS_Face &F, double &paramu, double &paramv)
 Checks if a Face is twisted (apart from checking Pin, i.e. it does not give information on pin, only "it is twisted")
 
bool CheckPinFace (const TopoDS_Face &F, NCollection_DataMap< TopoDS_Shape, TopoDS_Shape, TopTools_ShapeMapHasher > &mapEdges, const double toler=-1.0)
 
bool CheckPinEdges (const TopoDS_Edge &theFirstEdge, const TopoDS_Edge &theSecondEdge, const double coef1, const double coef2, const double toler) const
 
bool Status (const ShapeExtend_Status status) const
 Returns the status of last call to Perform() ShapeExtend_OK : face was OK, nothing done ShapeExtend_DONE1: some wires are fixed ShapeExtend_DONE2: orientation of wires fixed ShapeExtend_DONE3: missing seam added ShapeExtend_DONE4: small area wire removed ShapeExtend_DONE5: natural bounds added ShapeExtend_FAIL1: some fails during fixing wires ShapeExtend_FAIL2: cannot fix orientation of wires ShapeExtend_FAIL3: cannot add missing seam ShapeExtend_FAIL4: cannot remove small area wire.
 
void SetTolerance (const double tol)
 Sets a fixed Tolerance to check small face By default, local tolerance zone is considered Sets a fixed MaxTolerance to check small face Sets a fixed Tolerance to check small face By default, local tolerance zone is considered Unset fixed tolerance, comes back to local tolerance zones Unset fixed tolerance, comes back to local tolerance zones.
 
double Tolerance () const
 Returns the tolerance to check small faces, negative value if local tolerances zones are to be considered.
 
bool StatusSpot (const ShapeExtend_Status status) const
 
bool StatusStrip (const ShapeExtend_Status status) const
 
bool StatusPin (const ShapeExtend_Status status) const
 
bool StatusTwisted (const ShapeExtend_Status status) const
 
bool StatusSplitVert (const ShapeExtend_Status status) const
 
bool StatusPinFace (const ShapeExtend_Status status) const
 
bool StatusPinEdges (const ShapeExtend_Status status) const
 

Detailed Description

Analysis of the face size.

Constructor & Destructor Documentation

◆ ShapeAnalysis_CheckSmallFace()

ShapeAnalysis_CheckSmallFace::ShapeAnalysis_CheckSmallFace ( )

Creates an empty tool Checks a Shape i.e. each of its faces, records checks as diagnostics in the <infos>

If <infos> has not been set before, no check is done

For faces which are in a Shell, topological data are recorded to allow recovering connectivities after fixing or removing the small faces or parts of faces Enchains various checks on a face inshell : to compute more information, relevant to topology

Member Function Documentation

◆ CheckPin()

bool ShapeAnalysis_CheckSmallFace::CheckPin ( const TopoDS_Face & F,
int & whatrow,
int & sence )

Checks if a Face has a pin, which can be edited No singularity : no pin, returns 0 If there is a pin, checked topics, with returned value :

  • 0 : nothing to do more
  • 1 : "smooth", i.e. not a really sharp pin -> diagnostic "SmoothPin"
  • 2 : stretched pin, i.e. is possible to relimit the face by another vertex, so that this vertex still gives a pin -> diagnostic "StretchedPin" with location of vertex (Pnt)

◆ CheckPinEdges()

bool ShapeAnalysis_CheckSmallFace::CheckPinEdges ( const TopoDS_Edge & theFirstEdge,
const TopoDS_Edge & theSecondEdge,
const double coef1,
const double coef2,
const double toler ) const

◆ CheckPinFace()

bool ShapeAnalysis_CheckSmallFace::CheckPinFace ( const TopoDS_Face & F,
NCollection_DataMap< TopoDS_Shape, TopoDS_Shape, TopTools_ShapeMapHasher > & mapEdges,
const double toler = -1.0 )

◆ CheckSingleStrip()

bool ShapeAnalysis_CheckSmallFace::CheckSingleStrip ( const TopoDS_Face & F,
TopoDS_Edge & E1,
TopoDS_Edge & E2,
const double tol = -1.0 )

Checks if a Face is a single strip, i.e. brings two great edges which are confused on their whole length, possible other edges are small or null length.

Returns 0 if not a strip support, 1 strip in U, 2 strip in V Records diagnostic in info if it is a single strip

◆ CheckSplittingVertices()

int ShapeAnalysis_CheckSmallFace::CheckSplittingVertices ( const TopoDS_Face & F,
NCollection_DataMap< TopoDS_Shape, NCollection_List< TopoDS_Shape >, TopTools_ShapeMapHasher > & MapEdges,
NCollection_DataMap< TopoDS_Shape, NCollection_List< double >, TopTools_ShapeMapHasher > & MapParam,
TopoDS_Compound & theAllVert )

Checks if a Face brings vertices which split it, either confused with non adjacent vertices, or confused with their projection on non adjacent edges Returns the count of found splitting vertices Each vertex then brings a diagnostic "SplittingVertex", with data : "Face" for the face, "Edge" for the split edge.

◆ CheckSpotFace()

bool ShapeAnalysis_CheckSmallFace::CheckSpotFace ( const TopoDS_Face & F,
const double tol = -1.0 )

Acts as IsSpotFace, but records in <infos> a diagnostic "SpotFace" with the Pnt as value (data "Location")

◆ CheckStripEdges()

bool ShapeAnalysis_CheckSmallFace::CheckStripEdges ( const TopoDS_Edge & E1,
const TopoDS_Edge & E2,
const double tol,
double & dmax ) const

Checks if two edges define a strip, i.e. distance maxi below tolerance, given or some of those of E1 and E2.

◆ CheckStripFace()

bool ShapeAnalysis_CheckSmallFace::CheckStripFace ( const TopoDS_Face & F,
TopoDS_Edge & E1,
TopoDS_Edge & E2,
const double tol = -1.0 )

Checks if a Face is as a Strip Returns 0 if not or non determined, 1 if in U, 2 if in V By default, considers the tolerance zone of its edges A given value <tol> may be given to check a strip of max this width.

If a Face is determined as a Strip, it is delinited by two lists of edges. These lists are recorded in diagnostic Diagnostic "StripFace" brings data "Direction" (U or V), "List1" , "List2" (if they could be computed)

◆ CheckTwisted()

bool ShapeAnalysis_CheckSmallFace::CheckTwisted ( const TopoDS_Face & F,
double & paramu,
double & paramv )

Checks if a Face is twisted (apart from checking Pin, i.e. it does not give information on pin, only "it is twisted")

◆ FindStripEdges()

bool ShapeAnalysis_CheckSmallFace::FindStripEdges ( const TopoDS_Face & F,
TopoDS_Edge & E1,
TopoDS_Edge & E2,
const double tol,
double & dmax )

Searches for two and only two edges up tolerance Returns True if OK, false if not 2 edges If True, returns the two edges and their maximum distance.

◆ IsSpotFace()

int ShapeAnalysis_CheckSmallFace::IsSpotFace ( const TopoDS_Face & F,
gp_Pnt & spot,
double & spotol,
const double tol = -1.0 ) const

Checks if a Face is as a Spot Returns 0 if not, 1 if yes, 2 if yes and all vertices are the same By default, considers the tolerance zone of its vertices A given value <tol> may be given to check a spot of this size If a Face is a Spot, its location is returned in <spot>, and <spotol> returns an equivalent tolerance, which is computed as half of max dimension of min-max box of the face.

◆ IsStripSupport()

bool ShapeAnalysis_CheckSmallFace::IsStripSupport ( const TopoDS_Face & F,
const double tol = -1.0 )

Checks if a Face lies on a Surface which is a strip So the Face is a strip. But a Face may be a strip elsewhere ..

A given value <tol> may be given to check max width By default, considers the tolerance zone of its edges Returns 0 if not a strip support, 1 strip in U, 2 strip in V

◆ SetTolerance()

void ShapeAnalysis_CheckSmallFace::SetTolerance ( const double tol)

Sets a fixed Tolerance to check small face By default, local tolerance zone is considered Sets a fixed MaxTolerance to check small face Sets a fixed Tolerance to check small face By default, local tolerance zone is considered Unset fixed tolerance, comes back to local tolerance zones Unset fixed tolerance, comes back to local tolerance zones.

◆ Status()

bool ShapeAnalysis_CheckSmallFace::Status ( const ShapeExtend_Status status) const

Returns the status of last call to Perform() ShapeExtend_OK : face was OK, nothing done ShapeExtend_DONE1: some wires are fixed ShapeExtend_DONE2: orientation of wires fixed ShapeExtend_DONE3: missing seam added ShapeExtend_DONE4: small area wire removed ShapeExtend_DONE5: natural bounds added ShapeExtend_FAIL1: some fails during fixing wires ShapeExtend_FAIL2: cannot fix orientation of wires ShapeExtend_FAIL3: cannot add missing seam ShapeExtend_FAIL4: cannot remove small area wire.

◆ StatusPin()

bool ShapeAnalysis_CheckSmallFace::StatusPin ( const ShapeExtend_Status status) const

◆ StatusPinEdges()

bool ShapeAnalysis_CheckSmallFace::StatusPinEdges ( const ShapeExtend_Status status) const

◆ StatusPinFace()

bool ShapeAnalysis_CheckSmallFace::StatusPinFace ( const ShapeExtend_Status status) const

◆ StatusSplitVert()

bool ShapeAnalysis_CheckSmallFace::StatusSplitVert ( const ShapeExtend_Status status) const

◆ StatusSpot()

bool ShapeAnalysis_CheckSmallFace::StatusSpot ( const ShapeExtend_Status status) const

◆ StatusStrip()

bool ShapeAnalysis_CheckSmallFace::StatusStrip ( const ShapeExtend_Status status) const

◆ StatusTwisted()

bool ShapeAnalysis_CheckSmallFace::StatusTwisted ( const ShapeExtend_Status status) const

◆ Tolerance()

double ShapeAnalysis_CheckSmallFace::Tolerance ( ) const

Returns the tolerance to check small faces, negative value if local tolerances zones are to be considered.


The documentation for this class was generated from the following file: