Open CASCADE Technology  7.5.0
Data Structures | Public Types | Public Member Functions | Protected Member Functions
Poly_MakeLoops Class Referenceabstract

#include <Poly_MakeLoops.hxx>

Inheritance diagram for Poly_MakeLoops:
Inheritance graph
[legend]

Data Structures

class  HeapOfInteger
 This class implements a heap of integers. The most effective usage of it is first to add there all items, and then get top item and remove any items till it becomes empty. More...
 
class  Helper
 The abstract helper class. More...
 
struct  Link
 The Link structure. More...
 

Public Types

enum  LinkFlag {
  LF_None = 0, LF_Fwd = 1, LF_Rev = 2, LF_Both = 3,
  LF_Reversed = 4
}
 Orientation flags that can be attached to a link. More...
 
enum  ResultCode { RC_LoopsDone = 1, RC_HangingLinks = 2, RC_Failure = 4 }
 
typedef NCollection_List< LinkListOfLink
 
typedef ListOfLink Loop
 

Public Member Functions

 Poly_MakeLoops (const Helper *theHelper, const Handle< NCollection_BaseAllocator > &theAlloc=0L)
 Constructor. If helper is NULL then the algorithm will probably return a wrong result. More...
 
void Reset (const Helper *theHelper, const Handle< NCollection_BaseAllocator > &theAlloc=0L)
 It is to reset the algorithm to the initial state. More...
 
void AddLink (const Link &theLink)
 Adds a link to the set. theOrient defines which orientations of the link are allowed. More...
 
void ReplaceLink (const Link &theLink, const Link &theNewLink)
 Replace one link with another (e.g. to change order of nodes) More...
 
LinkFlag SetLinkOrientation (const Link &theLink, const LinkFlag theOrient)
 Set a new value of orientation of a link already added earlier. It can be used with LF_None to exclude the link from consideration. Returns the old value of orienation. More...
 
Link FindLink (const Link &theLink) const
 Find the link stored in algo by value. More...
 
Standard_Integer Perform ()
 Does the work. Returns the collection of result codes. More...
 
Standard_Integer GetNbLoops () const
 Returns the number of loops in the result. More...
 
const LoopGetLoop (Standard_Integer theIndex) const
 Returns the loop of the given index. More...
 
Standard_Integer GetNbHanging () const
 Returns the number of detected hanging chains. More...
 
void GetHangingLinks (ListOfLink &theLinks) const
 Fills in the list of hanging links. More...
 

Protected Member Functions

virtual Standard_Integer chooseLeftWay (const Standard_Integer theNode, const Standard_Integer theSegIndex, const NCollection_List< Standard_Integer > &theLstIndS) const =0
 
const HelpergetHelper () const
 
Link getLink (const Standard_Integer theSegIndex) const
 

Detailed Description

Make loops from a set of connected links. A link is represented by a pair of integer indices of nodes.

Member Typedef Documentation

◆ ListOfLink

◆ Loop

Member Enumeration Documentation

◆ LinkFlag

Orientation flags that can be attached to a link.

Enumerator
LF_None 
LF_Fwd 
LF_Rev 
LF_Both 
LF_Reversed 

◆ ResultCode

Enumerator
RC_LoopsDone 
RC_HangingLinks 
RC_Failure 

Constructor & Destructor Documentation

◆ Poly_MakeLoops()

Poly_MakeLoops::Poly_MakeLoops ( const Helper theHelper,
const Handle< NCollection_BaseAllocator > &  theAlloc = 0L 
)

Constructor. If helper is NULL then the algorithm will probably return a wrong result.

Member Function Documentation

◆ AddLink()

void Poly_MakeLoops::AddLink ( const Link theLink)

Adds a link to the set. theOrient defines which orientations of the link are allowed.

◆ chooseLeftWay()

virtual Standard_Integer Poly_MakeLoops::chooseLeftWay ( const Standard_Integer  theNode,
const Standard_Integer  theSegIndex,
const NCollection_List< Standard_Integer > &  theLstIndS 
) const
protectedpure virtual

Implemented in Poly_MakeLoops2D, and Poly_MakeLoops3D.

◆ FindLink()

Link Poly_MakeLoops::FindLink ( const Link theLink) const

Find the link stored in algo by value.

◆ GetHangingLinks()

void Poly_MakeLoops::GetHangingLinks ( ListOfLink theLinks) const

Fills in the list of hanging links.

◆ getHelper()

const Helper* Poly_MakeLoops::getHelper ( ) const
inlineprotected

◆ getLink()

Link Poly_MakeLoops::getLink ( const Standard_Integer  theSegIndex) const
inlineprotected

◆ GetLoop()

const Loop& Poly_MakeLoops::GetLoop ( Standard_Integer  theIndex) const
inline

Returns the loop of the given index.

◆ GetNbHanging()

Standard_Integer Poly_MakeLoops::GetNbHanging ( ) const
inline

Returns the number of detected hanging chains.

◆ GetNbLoops()

Standard_Integer Poly_MakeLoops::GetNbLoops ( ) const
inline

Returns the number of loops in the result.

◆ Perform()

Standard_Integer Poly_MakeLoops::Perform ( )

Does the work. Returns the collection of result codes.

◆ ReplaceLink()

void Poly_MakeLoops::ReplaceLink ( const Link theLink,
const Link theNewLink 
)

Replace one link with another (e.g. to change order of nodes)

◆ Reset()

void Poly_MakeLoops::Reset ( const Helper theHelper,
const Handle< NCollection_BaseAllocator > &  theAlloc = 0L 
)

It is to reset the algorithm to the initial state.

◆ SetLinkOrientation()

LinkFlag Poly_MakeLoops::SetLinkOrientation ( const Link theLink,
const LinkFlag  theOrient 
)

Set a new value of orientation of a link already added earlier. It can be used with LF_None to exclude the link from consideration. Returns the old value of orienation.


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