Horizon
Loading...
Searching...
No Matches
PNS::SHOVE Class Reference

The actual Push and Shove algorithm. More...

#include <pns_shove.h>

Inheritance diagram for PNS::SHOVE:
PNS::ALGO_BASE

Public Types

enum  SHOVE_STATUS {
  SH_OK = 0 , SH_NULL , SH_INCOMPLETE , SH_HEAD_MODIFIED ,
  SH_TRY_WALK
}

Public Member Functions

 SHOVE (NODE *aWorld, ROUTER *aRouter)
virtual LOGGERLogger () override
SHOVE_STATUS ShoveLines (const LINE &aCurrentHead)
SHOVE_STATUS ShoveMultiLines (const ITEM_SET &aHeadSet)
SHOVE_STATUS ShoveDraggingVia (const VIA_HANDLE aOldVia, const VECTOR2I &aWhere, VIA_HANDLE &aNewVia)
SHOVE_STATUS ShoveObstacleLine (const LINE &aCurLine, const LINE &aObstacleLine, LINE &aResultLine)
void ForceClearance (bool aEnabled, int aClearance)
NODECurrentNode ()
const LINE NewHead () const
void SetInitialLine (LINE &aInitial)
bool AddLockedSpringbackNode (NODE *aNode)
void UnlockSpringbackNode (NODE *aNode)
bool RewindSpringbackTo (NODE *aNode)
bool RewindToLastLockedNode ()
void DisablePostShoveOptimizations (int aMask)
void SetSpringbackDoNotTouchNode (NODE *aNode)
Public Member Functions inherited from PNS::ALGO_BASE
 ALGO_BASE (ROUTER *aRouter)
virtual ~ALGO_BASE ()
 Return the instance of our router.
ROUTERRouter () const
 Return current router settings.
ROUTING_SETTINGSSettings () const
 Return the logger object, allowing to dump geometry to a file.
void SetLogger (LOGGER *aLogger)
void SetDebugDecorator (DEBUG_DECORATOR *aDecorator)
 Assign a debug decorator allowing this algo to draw extra graphics for visual debugging.
DEBUG_DECORATORDbg () const
const BOX2I & VisibleViewArea () const

Additional Inherited Members

Protected Attributes inherited from PNS::ALGO_BASE
DEBUG_DECORATORm_debugDecorator
ROUTERm_router
LOGGERm_logger

Detailed Description

The actual Push and Shove algorithm.

Member Function Documentation

◆ Logger()

virtual LOGGER * PNS::SHOVE::Logger ( )
inlineoverridevirtual

Reimplemented from PNS::ALGO_BASE.


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