22#ifndef __PNS_PLACEMENT_ALGO_H
23#define __PNS_PLACEMENT_ALGO_H
25#include <math/vector2d.h>
27#include "pns_algo_base.h"
28#include "pns_sizes_settings.h"
29#include "pns_itemset.h"
45class PLACEMENT_ALGO :
public ALGO_BASE
48 PLACEMENT_ALGO(
ROUTER* aRouter ) :
49 ALGO_BASE( aRouter ) {};
51 virtual ~PLACEMENT_ALGO () {};
59 virtual bool Start(
const VECTOR2I& aP,
ITEM* aStartItem ) = 0;
68 virtual bool Move(
const VECTOR2I& aP,
ITEM* aEndItem ) = 0;
79 virtual bool FixRoute(
const VECTOR2I& aP,
ITEM* aEndItem,
bool aForceFinish =
false ) = 0;
81 virtual bool UnfixRoute() {
return false; };
83 virtual bool CommitPlacement() {
return false; };
85 virtual bool AbortPlacement() {
return false; };
87 virtual bool HasPlacedAnything()
const {
return false; }
Definition pns_itemset.h:37
Base class for PNS router board items.
Definition pns_item.h:57
Keep the router "world" - i.e.
Definition pns_node.h:148
virtual NODE * CurrentNode(bool aLoopsRemoved=false) const =0
Function CurrentNode().
virtual bool IsPlacingVia() const
Function IsPlacingVia().
Definition pns_placement_algo.h:104
virtual const std::vector< int > CurrentNets() const =0
Function CurrentNets().
virtual void FlipPosture()
Function FlipPosture().
Definition pns_placement_algo.h:160
virtual const VECTOR2I & CurrentEnd() const =0
Function CurrentEnd().
virtual const ITEM_SET Traces()=0
Function Traces().
virtual bool Start(const VECTOR2I &aP, ITEM *aStartItem)=0
Function Start().
virtual bool Move(const VECTOR2I &aP, ITEM *aEndItem)=0
Function Move().
virtual int CurrentLayer() const =0
Function CurrentLayer().
virtual void SetOrthoMode(bool aOrthoMode)
Function SetOrthoMode().
Definition pns_placement_algo.h:182
virtual void GetModifiedNets(std::vector< int > &aNets) const
Function GetModifiedNets.
Definition pns_placement_algo.h:191
virtual bool ToggleVia(bool aEnabled)
Function ToggleVia().
Definition pns_placement_algo.h:94
virtual bool SetLayer(int aLayer)
Function SetLayer().
Definition pns_placement_algo.h:114
virtual void UpdateSizes(const SIZES_SETTINGS &aSizes)
Function UpdateSizes().
Definition pns_placement_algo.h:171
virtual bool FixRoute(const VECTOR2I &aP, ITEM *aEndItem, bool aForceFinish=false)=0
Function FixRoute().
Definition pns_router.h:116
Definition pns_sizes_settings.h:42