Open CASCADE Technology
7.6.0

This class is intended to control and, if possible, redefine the order of a list of edges which define a wire Edges are not given directly, but as their bounds (start,end) More...
#include <ShapeAnalysis_WireOrder.hxx>
Public Member Functions  
ShapeAnalysis_WireOrder ()  
Empty constructor. More...  
ShapeAnalysis_WireOrder (const Standard_Boolean mode3d, const Standard_Real tol)  
Creates a WireOrder in 3D (if mode3d is True) or 2D (if False) with a tolerance. More...  
void  SetMode (const Standard_Boolean mode3d, const Standard_Real tol) 
Sets new values. Clears the connexion list If <mode3d> changes, also clears the edge list (else, doesn't) More...  
Standard_Real  Tolerance () const 
Returns the working tolerance. More...  
void  Clear () 
Clears the list of edges, but not mode and tol. More...  
void  Add (const gp_XYZ &start3d, const gp_XYZ &end3d) 
Adds a couple of points 3D (start,end) More...  
void  Add (const gp_XY &start2d, const gp_XY &end2d) 
Adds a couple of points 2D (start,end) More...  
Standard_Integer  NbEdges () const 
Returns the count of added couples of points (one per edges) More...  
Standard_Boolean &  KeepLoopsMode () 
If this mode is True method perform does not sort edges of different loops. The resulting order is first loop, second one etc... More...  
void  Perform (const Standard_Boolean closed=Standard_True) 
Computes the better order If <closed> is True (D) considers also closure Optimised if the couples were already in order The criterium is : two couples in order if distance between endprec and startcur is less then starting tolerance <tol> Else, the smallest distance is reached Gap corresponds to a smallest distance greater than <tol> More...  
Standard_Boolean  IsDone () const 
Tells if Perform has been done Else, the following methods returns original values. More...  
Standard_Integer  Status () const 
Returns the status of the order (0 if not done) : 0 : all edges are direct and in sequence 1 : all edges are direct but some are not in sequence 2 : in addition, unresolved gaps remain 1 : some edges are reversed, but no gap remain 2 : some edges are reversed and some gaps remain 10 : COULD NOT BE RESOLVED, Failure on Reorder gap : regarding starting <tol> More...  
Standard_Integer  Ordered (const Standard_Integer n) const 
Returns the number of original edge which correspond to the newly ordered number <n> Warning : the returned value is NEGATIVE if edge should be reversed. More...  
void  XYZ (const Standard_Integer num, gp_XYZ &start3d, gp_XYZ &end3d) const 
Returns the values of the couple <num>, as 3D values. More...  
void  XY (const Standard_Integer num, gp_XY &start2d, gp_XY &end2d) const 
Returns the values of the couple <num>, as 2D values. More...  
Standard_Real  Gap (const Standard_Integer num=0) const 
Returns the gap between a couple and its preceding <num> is considered ordered If <num> = 0 (D), returns the greatest gap found. More...  
void  SetChains (const Standard_Real gap) 
Determines the chains inside which successive edges have a gap less than a given value. Queried by NbChains and Chain. More...  
Standard_Integer  NbChains () const 
Returns the count of computed chains. More...  
void  Chain (const Standard_Integer num, Standard_Integer &n1, Standard_Integer &n2) const 
Returns, for the chain n0 num, starting and ending numbers of edges. In the list of ordered edges (see Ordered for originals) More...  
void  SetCouples (const Standard_Real gap) 
Determines the couples of edges for which end and start fit inside a given gap. Queried by NbCouples and Couple. More...  
Standard_Integer  NbCouples () const 
Returns the count of computed couples. More...  
void  Couple (const Standard_Integer num, Standard_Integer &n1, Standard_Integer &n2) const 
Returns, for the couple n0 num, the two implied edges In the list of ordered edges. More...  
This class is intended to control and, if possible, redefine the order of a list of edges which define a wire Edges are not given directly, but as their bounds (start,end)
This allows to use this tool, either on existing wire, or on data just taken from a file (coordinates are easy to get)
It can work, either in 2D, or in 3D, but not miscible Warning about tolerance : according to the mode (2D/3D), it must be given as 2D or 3D (i.e. metric) tolerance, uniform on the whole list
Two phases : firstly add the couples (start,end) secondly perform then get the result
ShapeAnalysis_WireOrder::ShapeAnalysis_WireOrder  (  ) 
Empty constructor.
ShapeAnalysis_WireOrder::ShapeAnalysis_WireOrder  (  const Standard_Boolean  mode3d, 
const Standard_Real  tol  
) 
Creates a WireOrder in 3D (if mode3d is True) or 2D (if False) with a tolerance.
Adds a couple of points 2D (start,end)
Adds a couple of points 3D (start,end)
void ShapeAnalysis_WireOrder::Chain  (  const Standard_Integer  num, 
Standard_Integer &  n1,  
Standard_Integer &  n2  
)  const 
Returns, for the chain n0 num, starting and ending numbers of edges. In the list of ordered edges (see Ordered for originals)
void ShapeAnalysis_WireOrder::Clear  (  ) 
Clears the list of edges, but not mode and tol.
void ShapeAnalysis_WireOrder::Couple  (  const Standard_Integer  num, 
Standard_Integer &  n1,  
Standard_Integer &  n2  
)  const 
Returns, for the couple n0 num, the two implied edges In the list of ordered edges.
Standard_Real ShapeAnalysis_WireOrder::Gap  (  const Standard_Integer  num = 0  )  const 
Returns the gap between a couple and its preceding <num> is considered ordered If <num> = 0 (D), returns the greatest gap found.
Standard_Boolean ShapeAnalysis_WireOrder::IsDone  (  )  const 
Tells if Perform has been done Else, the following methods returns original values.
Standard_Boolean& ShapeAnalysis_WireOrder::KeepLoopsMode  (  ) 
If this mode is True method perform does not sort edges of different loops. The resulting order is first loop, second one etc...
Standard_Integer ShapeAnalysis_WireOrder::NbChains  (  )  const 
Returns the count of computed chains.
Standard_Integer ShapeAnalysis_WireOrder::NbCouples  (  )  const 
Returns the count of computed couples.
Standard_Integer ShapeAnalysis_WireOrder::NbEdges  (  )  const 
Returns the count of added couples of points (one per edges)
Standard_Integer ShapeAnalysis_WireOrder::Ordered  (  const Standard_Integer  n  )  const 
Returns the number of original edge which correspond to the newly ordered number <n> Warning : the returned value is NEGATIVE if edge should be reversed.
void ShapeAnalysis_WireOrder::Perform  (  const Standard_Boolean  closed = Standard_True  ) 
Computes the better order If <closed> is True (D) considers also closure Optimised if the couples were already in order The criterium is : two couples in order if distance between endprec and startcur is less then starting tolerance <tol> Else, the smallest distance is reached Gap corresponds to a smallest distance greater than <tol>
void ShapeAnalysis_WireOrder::SetChains  (  const Standard_Real  gap  ) 
Determines the chains inside which successive edges have a gap less than a given value. Queried by NbChains and Chain.
void ShapeAnalysis_WireOrder::SetCouples  (  const Standard_Real  gap  ) 
Determines the couples of edges for which end and start fit inside a given gap. Queried by NbCouples and Couple.
void ShapeAnalysis_WireOrder::SetMode  (  const Standard_Boolean  mode3d, 
const Standard_Real  tol  
) 
Sets new values. Clears the connexion list If <mode3d> changes, also clears the edge list (else, doesn't)
Standard_Integer ShapeAnalysis_WireOrder::Status  (  )  const 
Returns the status of the order (0 if not done) : 0 : all edges are direct and in sequence 1 : all edges are direct but some are not in sequence 2 : in addition, unresolved gaps remain 1 : some edges are reversed, but no gap remain 2 : some edges are reversed and some gaps remain 10 : COULD NOT BE RESOLVED, Failure on Reorder gap : regarding starting <tol>
Standard_Real ShapeAnalysis_WireOrder::Tolerance  (  )  const 
Returns the working tolerance.
void ShapeAnalysis_WireOrder::XY  (  const Standard_Integer  num, 
gp_XY &  start2d,  
gp_XY &  end2d  
)  const 
Returns the values of the couple <num>, as 2D values.
void ShapeAnalysis_WireOrder::XYZ  (  const Standard_Integer  num, 
gp_XYZ &  start3d,  
gp_XYZ &  end3d  
)  const 
Returns the values of the couple <num>, as 3D values.