Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
ogdf::booth_lueker::EmbedIndicator Class Reference

#include <ogdf/planarity/booth_lueker/EmbedIndicator.h>

+ Inheritance diagram for ogdf::booth_lueker::EmbedIndicator:

Public Member Functions

 EmbedIndicator (int count, PQNodeKey< edge, IndInfo *, bool > *infoPtr)
 
virtual ~EmbedIndicator ()
 
PQInternalKey< edge, IndInfo *, bool > * getInternal () const override
 getInternal() returns a pointer to the PQInternalKey information of a node, in case that the node is supposed to have PQInternalKey information, such as elements of the derived class template PQInternalNode.
 
PQLeafKey< edge, IndInfo *, bool > * getKey () const override
 getKey() returns a pointer to the PQLeafKeyof a node, in case that the node is supposed to have a key, such as elements of the derived class template PQLeaf.
 
PQNodeMark mark () const override
 mark() returns the variable PQLeaf::m_mark in the derived class PQLeaf and PQInternalNode.
 
void mark (PQNodeMark) override
 mark() sets the variable PQLeaf::m_mark in the derived class PQLeaf and PQInternalNode.
 
bool setInternal (PQInternalKey< edge, IndInfo *, bool > *pointerToInternal) override
 
bool setKey (PQLeafKey< edge, IndInfo *, bool > *pointerToKey) override
 
PQNodeStatus status () const override
 Returns the variable PQLeaf::m_status in the derived class PQLeaf and PQInternalNode.
 
void status (PQNodeStatus) override
 Sets the variable PQLeaf::m_status in the derived class PQLeaf and PQInternalNode.
 
PQNodeType type () const override
 Returns the variable PQInternalNode::m_type in the derived class PQLeaf and PQInternalNode.
 
void type (PQNodeType) override
 Sets the variable PQInternalNode::m_type in the derived class PQLeaf and PQInternalNode.
 
- Public Member Functions inherited from ogdf::PQNode< edge, IndInfo *, bool >
 PQNode (int count)
 The (second) constructor is called, if no information is available or neccessary.
 
 PQNode (int count, PQNodeKey< edge, IndInfo *, bool > *infoPtr)
 The (first) constructor combines the node with its information and will automatically set the PQBasicKey::m_nodePointer (see basicKey) of the element of type PQNodeKey.
 
virtual ~PQNode ()
 The destructor does not delete any accompanying information class as PQLeafKey, PQNodeKey and PQInternalKey.
 
bool changeEndmost (PQNode< edge, IndInfo *, bool > *oldEnd, PQNode< edge, IndInfo *, bool > *newEnd)
 The function changeEndmost() replaces the old endmost child oldEnd of the node by a new child newEnd.
 
bool changeSiblings (PQNode< edge, IndInfo *, bool > *oldSib, PQNode< edge, IndInfo *, bool > *newSib)
 The function changeSiblings() replaces the old sibling oldSib of the node by a new sibling newSib.
 
int childCount () const
 Returns the number of children of a node.
 
void childCount (int count)
 Sets the number of children of a node.
 
bool endmostChild () const
 The function endmostChild() checks if a node is endmost child of a Q-node.
 
PQNode< edge, IndInfo *, bool > * getEndmost (PQNode< edge, IndInfo *, bool > *other) const
 Returns one of the endmost children of node, if node is a Q-node.
 
PQNode< edge, IndInfo *, bool > * getEndmost (SibDirection side) const
 Returns one of the endmost children of node, if node is a Q-node.
 
PQNode< edge, IndInfo *, bool > * getNextSib (PQNode< edge, IndInfo *, bool > *other) const
 The function getNextSib() returns one of the siblings of the node.
 
PQNodeKey< edge, IndInfo *, bool > * getNodeInfo () const
 Returns the identification number of a node.
 
PQNode< edge, IndInfo *, bool > * getSib (SibDirection side) const
 The function getSib() returns one of the siblings of the node.
 
int identificationNumber () const
 Returns the identification number of a node.
 
PQNode< edge, IndInfo *, bool > * parent () const
 The function parent() returns a pointer to the parent of a node.
 
PQNode< edge, IndInfo *, bool > * parent (PQNode< edge, IndInfo *, bool > *newParent)
 Sets the parent pointer of a node.
 
PQNodeType parentType () const
 Returns the type of the parent of a node.
 
void parentType (PQNodeType newParentType)
 Sets the type of the parent of a node.
 
int pertChildCount () const
 Returs the number of pertinent children of a node.
 
void pertChildCount (int count)
 Sets the number of pertinent children of a node.
 
SibDirection putSibling (PQNode< edge, IndInfo *, bool > *newSib)
 The default function putSibling() stores a new sibling at a free sibling pointer of the node.
 
SibDirection putSibling (PQNode< edge, IndInfo *, bool > *newSib, SibDirection preference)
 The function putSibling() with preference stores a new sibling at a free sibling pointer of the node.
 
PQNode< edge, IndInfo *, bool > * referenceChild () const
 Returns a pointer to the reference child if node is a P-node.
 
PQNode< edge, IndInfo *, bool > * referenceParent () const
 Returns the pointer to the parent if node is a reference child.
 
virtual bool setInternal (PQInternalKey< edge, IndInfo *, bool > *pointerToInternal)=0
 
virtual bool setKey (PQLeafKey< edge, IndInfo *, bool > *pointerToKey)=0
 Sets a specified pointer variable in a derived class to the specified adress of pointerToKey that is of type PQLeafKey.
 
bool setNodeInfo (PQNodeKey< edge, IndInfo *, bool > *pointerToInfo)
 Sets the pointer m_pointerToInfo to the specified adress of pointerToInfo.
 
- Public Member Functions inherited from ogdf::PQNodeRoot
 PQNodeRoot ()
 
virtual ~PQNodeRoot ()
 

Additional Inherited Members

- Public Types inherited from ogdf::PQNodeRoot
enum class  PQNodeMark { Unmarked = 0 , Queued = 1 , Blocked = 2 , Unblocked = 3 }
 
enum class  PQNodeStatus { Empty = 1 , Partial = 2 , Full = 3 , Pertinent = 4 , ToBeDeleted = 5 , Indicator = 6 , Eliminated = 6 , WhaDelete = 7 , PertRoot = 8 }
 
enum class  PQNodeType { PNode = 1 , QNode = 2 , Leaf = 3 , Undefined = 0 }
 
enum class  SibDirection { NoDir , Left , Right }
 
- Protected Attributes inherited from ogdf::PQNode< edge, IndInfo *, bool >
List< PQNode< edge, IndInfo *, bool > * > * fullChildren
 Stores all full children of a node during a reduction.
 
int m_childCount
 
int m_debugTreeNumber
 Needed for debuging purposes.
 
PQNode< edge, IndInfo *, bool > * m_firstFull
 Stores a pointer to the first full child of a Q-node.
 
int m_identificationNumber
 Each node that has been introduced once into the tree gets a unique number.
 
PQNode< edge, IndInfo *, bool > * m_leftEndmost
 
PQNode< edge, IndInfo *, bool > * m_parent
 Is a pointer to the parent.
 
PQNodeType m_parentType
 Stores the type of the parent which can be either a P- or Q-node.
 
int m_pertChildCount
 Stores the number of pertinent children of the node.
 
int m_pertLeafCount
 Stores the number of pertinent leaves in the frontier of the node.
 
PQNodeKey< edge, IndInfo *, bool > * m_pointerToInfo
 Stores a pointer to the corresponding information of the node.
 
PQNode< edge, IndInfo *, bool > * m_referenceChild
 Stores a pointer to one child, the reference child of the doubly linked cirkular list of children of a P-node.
 
PQNode< edge, IndInfo *, bool > * m_referenceParent
 Is a pointer to the parent, in case that the parent is a P-node and the node itself is its reference child.
 
PQNode< edge, IndInfo *, bool > * m_rightEndmost
 Stores the right endmost child of a Q-node.
 
PQNode< edge, IndInfo *, bool > * m_sibLeft
 Stores a pointer ot the left sibling of PQNode.
 
PQNode< edge, IndInfo *, bool > * m_sibRight
 Stores a pointer ot the right sibling of PQNode.
 
List< PQNode< edge, IndInfo *, bool > * > * partialChildren
 Stores all partial children of a node during a reduction.
 

Detailed Description

Definition at line 44 of file EmbedIndicator.h.

Constructor & Destructor Documentation

◆ EmbedIndicator()

ogdf::booth_lueker::EmbedIndicator::EmbedIndicator ( int  count,
PQNodeKey< edge, IndInfo *, bool > *  infoPtr 
)
inline

Definition at line 46 of file EmbedIndicator.h.

◆ ~EmbedIndicator()

virtual ogdf::booth_lueker::EmbedIndicator::~EmbedIndicator ( )
inlinevirtual

Definition at line 49 of file EmbedIndicator.h.

Member Function Documentation

◆ getInternal()

PQInternalKey< edge, IndInfo *, bool > * ogdf::booth_lueker::EmbedIndicator::getInternal ( ) const
inlineoverridevirtual

getInternal() returns a pointer to the PQInternalKey information of a node, in case that the node is supposed to have PQInternalKey information, such as elements of the derived class template PQInternalNode.

The internal information is of type PQInternalKey.

Implements ogdf::PQNode< edge, IndInfo *, bool >.

Definition at line 72 of file EmbedIndicator.h.

◆ getKey()

PQLeafKey< edge, IndInfo *, bool > * ogdf::booth_lueker::EmbedIndicator::getKey ( ) const
inlineoverridevirtual

getKey() returns a pointer to the PQLeafKeyof a node, in case that the node is supposed to have a key, such as elements of the derived class template PQLeaf.

The key contains information and is of type PQLeafKey.

Implements ogdf::PQNode< edge, IndInfo *, bool >.

Definition at line 66 of file EmbedIndicator.h.

◆ mark() [1/2]

PQNodeMark ogdf::booth_lueker::EmbedIndicator::mark ( ) const
inlineoverridevirtual

mark() returns the variable PQLeaf::m_mark in the derived class PQLeaf and PQInternalNode.

In a derived class this function has to return the designation used in the first pass of Booth and Luekers algorithm called Bubble(). A node then is either marked BLOCKED, UNBLOCKED or QUEUED (see PQNode).

Implements ogdf::PQNode< edge, IndInfo *, bool >.

Definition at line 62 of file EmbedIndicator.h.

◆ mark() [2/2]

void ogdf::booth_lueker::EmbedIndicator::mark ( PQNodeMark  )
inlineoverridevirtual

mark() sets the variable PQLeaf::m_mark in the derived class PQLeaf and PQInternalNode.

Implements ogdf::PQNode< edge, IndInfo *, bool >.

Definition at line 64 of file EmbedIndicator.h.

◆ setInternal()

bool ogdf::booth_lueker::EmbedIndicator::setInternal ( PQInternalKey< edge, IndInfo *, bool > *  pointerToInternal)
inlineoverride

Definition at line 74 of file EmbedIndicator.h.

◆ setKey()

bool ogdf::booth_lueker::EmbedIndicator::setKey ( PQLeafKey< edge, IndInfo *, bool > *  pointerToKey)
inlineoverride

Definition at line 68 of file EmbedIndicator.h.

◆ status() [1/2]

PQNodeStatus ogdf::booth_lueker::EmbedIndicator::status ( ) const
inlineoverridevirtual

Returns the variable PQLeaf::m_status in the derived class PQLeaf and PQInternalNode.

Its objective is to manage status of a node in the PQ-tree. A status is any kind of information of the current situation in the frontier of a node (the frontier of a node are all descendant leaves of the node). A status is anything such as EMPTY, FULL or PARTIAL (see PQNode). Since there might be more than those three possibilities, (e.g. in computing planar subgraphs this function probably has to be overloaded by the client.

Implements ogdf::PQNode< edge, IndInfo *, bool >.

Definition at line 58 of file EmbedIndicator.h.

◆ status() [2/2]

void ogdf::booth_lueker::EmbedIndicator::status ( PQNodeStatus  )
inlineoverridevirtual

Sets the variable PQLeaf::m_status in the derived class PQLeaf and PQInternalNode.

Implements ogdf::PQNode< edge, IndInfo *, bool >.

Definition at line 60 of file EmbedIndicator.h.

◆ type() [1/2]

PQNodeType ogdf::booth_lueker::EmbedIndicator::type ( ) const
inlineoverridevirtual

Returns the variable PQInternalNode::m_type in the derived class PQLeaf and PQInternalNode.

Its objective it to manage the type of a node. node the current node is. The type of a node in the class template PQTree is either PNode, QNode or leaf (see PQNode). There may be of course more types such as sequence indicators.

Observe that the derived class template PQLeaf does not have a variable PQInternalNode::m_type, since it obviously is of type leaf.

Implements ogdf::PQNode< edge, IndInfo *, bool >.

Definition at line 54 of file EmbedIndicator.h.

◆ type() [2/2]

void ogdf::booth_lueker::EmbedIndicator::type ( PQNodeType  )
inlineoverridevirtual

Sets the variable PQInternalNode::m_type in the derived class PQLeaf and PQInternalNode.

Implements ogdf::PQNode< edge, IndInfo *, bool >.

Definition at line 56 of file EmbedIndicator.h.


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