PCB Environment 2
Loading...
Searching...
No Matches
NavPoint.hpp File Reference
#include "Geometry.hpp"
#include "GridDirection.hpp"
#include "UniformGrid25.hpp"

Go to the source code of this file.

Data Structures

class  AStarVisitStatus
struct  NavKeepoutCounts
struct  NavRasterizeParams
class  NavPoint

Macros

#define GYM_PCB_NAVPOINT_NUM_COST_TERMS   2
#define NAV_POINT_FLAG_BLOCKED_TEMPORARY   (1 << 0)
 Grid cell flags.
#define NAV_POINT_FLAG_BLOCKED_PERMANENT   (1 << 8)
#define NAV_POINT_FLAG_NO_VIAS   (1 << 1)
#define NAV_POINT_FLAG_INSIDE_PIN   (1 << 2)
#define NAV_POINT_FLAG_INSIDE_COMPONENT   (1 << 3)
#define NAV_POINT_FLAG_PIN_TRACK_CLEARANCE   (1 << 4)
#define NAV_POINT_FLAG_PIN_VIA_CLEARANCE   (1 << 5)
#define NAV_POINT_FLAG_ROUTE_TRACK_CLEARANCE   (1 << 6)
#define NAV_POINT_FLAG_ROUTE_VIA_CLEARANCE   (1 << 7)
#define NAV_POINT_FLAG_SOURCE   (1 << 9)
#define NAV_POINT_FLAG_TARGET   (1 << 10)
#define NAV_POINT_FLAG_ROUTE_GUARD   (1 << 11)
#define NAV_POINT_FLAGS_PIN_CLEARANCE   0x030
 Combinations of the above flags (logical OR).
#define NAV_POINT_FLAGS_ROUTE_CLEARANCE   0x0c0
#define NAV_POINT_FLAGS_TRACK_CLEARANCE   0x050
#define NAV_POINT_FLAGS_VIA_CLEARANCE   0x0a0
#define NAV_POINT_FLAGS_CLEARANCE   0x0f0
#define NAV_POINT_FLAGS_TRACKS_BLOCKED   0x951
#define NAV_POINT_FLAGS_VIAS_BLOCKED   0x9f3
#define NAV_POINT_FLAGS_VIAS_BLOCKED_P   0x9f2
#define NAV_POINT_FLAGS_ENDPOINT   0x600
#define NAV_POINT_FLAGS_ALL   0xfff

Macro Definition Documentation

◆ GYM_PCB_NAVPOINT_NUM_COST_TERMS

#define GYM_PCB_NAVPOINT_NUM_COST_TERMS   2

Each NavPoint has one or more associated costs. When the cost is 1 everywhere, the sum of costs along a path measures its length. Algorithms may adjust these costs or add extra cost values. For rip-up and reroute, we want to store a 2nd cost value for its history cost. Lower this to save memory if you need fewer cost values per cell.

◆ NAV_POINT_FLAG_BLOCKED_PERMANENT

#define NAV_POINT_FLAG_BLOCKED_PERMANENT   (1 << 8)

◆ NAV_POINT_FLAG_BLOCKED_TEMPORARY

#define NAV_POINT_FLAG_BLOCKED_TEMPORARY   (1 << 0)

Grid cell flags.

◆ NAV_POINT_FLAG_INSIDE_COMPONENT

#define NAV_POINT_FLAG_INSIDE_COMPONENT   (1 << 3)

◆ NAV_POINT_FLAG_INSIDE_PIN

#define NAV_POINT_FLAG_INSIDE_PIN   (1 << 2)

◆ NAV_POINT_FLAG_NO_VIAS

#define NAV_POINT_FLAG_NO_VIAS   (1 << 1)

◆ NAV_POINT_FLAG_PIN_TRACK_CLEARANCE

#define NAV_POINT_FLAG_PIN_TRACK_CLEARANCE   (1 << 4)

◆ NAV_POINT_FLAG_PIN_VIA_CLEARANCE

#define NAV_POINT_FLAG_PIN_VIA_CLEARANCE   (1 << 5)

◆ NAV_POINT_FLAG_ROUTE_GUARD

#define NAV_POINT_FLAG_ROUTE_GUARD   (1 << 11)

◆ NAV_POINT_FLAG_ROUTE_TRACK_CLEARANCE

#define NAV_POINT_FLAG_ROUTE_TRACK_CLEARANCE   (1 << 6)

◆ NAV_POINT_FLAG_ROUTE_VIA_CLEARANCE

#define NAV_POINT_FLAG_ROUTE_VIA_CLEARANCE   (1 << 7)

◆ NAV_POINT_FLAG_SOURCE

#define NAV_POINT_FLAG_SOURCE   (1 << 9)

◆ NAV_POINT_FLAG_TARGET

#define NAV_POINT_FLAG_TARGET   (1 << 10)

◆ NAV_POINT_FLAGS_ALL

#define NAV_POINT_FLAGS_ALL   0xfff

◆ NAV_POINT_FLAGS_CLEARANCE

#define NAV_POINT_FLAGS_CLEARANCE   0x0f0

◆ NAV_POINT_FLAGS_ENDPOINT

#define NAV_POINT_FLAGS_ENDPOINT   0x600

◆ NAV_POINT_FLAGS_PIN_CLEARANCE

#define NAV_POINT_FLAGS_PIN_CLEARANCE   0x030

Combinations of the above flags (logical OR).

◆ NAV_POINT_FLAGS_ROUTE_CLEARANCE

#define NAV_POINT_FLAGS_ROUTE_CLEARANCE   0x0c0

◆ NAV_POINT_FLAGS_TRACK_CLEARANCE

#define NAV_POINT_FLAGS_TRACK_CLEARANCE   0x050

◆ NAV_POINT_FLAGS_TRACKS_BLOCKED

#define NAV_POINT_FLAGS_TRACKS_BLOCKED   0x951

◆ NAV_POINT_FLAGS_VIA_CLEARANCE

#define NAV_POINT_FLAGS_VIA_CLEARANCE   0x0a0

◆ NAV_POINT_FLAGS_VIAS_BLOCKED

#define NAV_POINT_FLAGS_VIAS_BLOCKED   0x9f3

◆ NAV_POINT_FLAGS_VIAS_BLOCKED_P

#define NAV_POINT_FLAGS_VIAS_BLOCKED_P   0x9f2