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< Link > | ListOfLink |
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 Loop & | GetLoop (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 Helper * | getHelper () const |
Link | getLink (const Standard_Integer theSegIndex) const |
Make loops from a set of connected links. A link is represented by a pair of integer indices of nodes.