Open CASCADE Technology 6.6.0
Data Structures | Public Types | Public Member Functions | Protected Member Functions
Poly_MakeLoops Class Reference

#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.
void Reset (const Helper *theHelper, const Handle_NCollection_BaseAllocator &theAlloc=0L)
 It is to reset the algorithm to the initial state.
void AddLink (const Link &theLink)
 Adds a link to the set. theOrient defines which orientations of the link are allowed.
void ReplaceLink (const Link &theLink, const Link &theNewLink)
 Replace one link with another (e.g. to change order of nodes)
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.
Link FindLink (const Link &theLink) const
 Find the link stored in algo by value.
Standard_Integer Perform ()
 Does the work. Returns the collection of result codes.
Standard_Integer GetNbLoops () const
 Returns the number of loops in the result.
const LoopGetLoop (Standard_Integer theIndex) const
 Returns the loop of the given index.
Standard_Integer GetNbHanging () const
 Returns the number of detected hanging chains.
void GetHangingLinks (ListOfLink &theLinks) const
 Fills in the list of hanging links.

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


Member Enumeration Documentation

Enumerator:
LF_None 
LF_Fwd 
LF_Rev 
LF_Both 
LF_Reversed 
Enumerator:
RC_LoopsDone 
RC_HangingLinks 
RC_Failure 

Constructor & Destructor Documentation

Poly_MakeLoops::Poly_MakeLoops ( const Helper theHelper,
const Handle_NCollection_BaseAllocator &  theAlloc = 0L 
)

Member Function Documentation

void Poly_MakeLoops::AddLink ( const Link theLink)
virtual Standard_Integer Poly_MakeLoops::chooseLeftWay ( const Standard_Integer  theNode,
const Standard_Integer  theSegIndex,
const NCollection_List< Standard_Integer > &  theLstIndS 
) const [protected, pure virtual]

Implemented in Poly_MakeLoops3D, and Poly_MakeLoops2D.

Link Poly_MakeLoops::FindLink ( const Link theLink) const
void Poly_MakeLoops::GetHangingLinks ( ListOfLink theLinks) const
const Helper* Poly_MakeLoops::getHelper ( ) const [inline, protected]

Reimplemented in Poly_MakeLoops3D, and Poly_MakeLoops2D.

Link Poly_MakeLoops::getLink ( const Standard_Integer  theSegIndex) const [inline, protected]
const Loop& Poly_MakeLoops::GetLoop ( Standard_Integer  theIndex) const [inline]
Standard_Integer Poly_MakeLoops::GetNbHanging ( ) const [inline]
Standard_Integer Poly_MakeLoops::GetNbLoops ( ) const [inline]
Standard_Integer Poly_MakeLoops::Perform ( )
void Poly_MakeLoops::ReplaceLink ( const Link theLink,
const Link theNewLink 
)
void Poly_MakeLoops::Reset ( const Helper theHelper,
const Handle_NCollection_BaseAllocator &  theAlloc = 0L 
)
LinkFlag Poly_MakeLoops::SetLinkOrientation ( const Link theLink,
const LinkFlag  theOrient 
)

The documentation for this class was generated from the following file:
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines