KiCad PCB EDA Suite
MATRIX_ROUTING_HEAD Class Reference

class MATRIX_ROUTING_HEAD handle the matrix routing that describes the actual board More...

#include <autorout.h>

Public Member Functions

 MATRIX_ROUTING_HEAD ()
 
 ~MATRIX_ROUTING_HEAD ()
 
void WriteCell (int aRow, int aCol, int aSide, MATRIX_CELL aCell)
 
wxPoint GetBrdCoordOrigin ()
 function GetBrdCoordOrigin More...
 
bool ComputeMatrixSize (BOARD *aPcb, bool aUseBoardEdgesOnly=false)
 Function ComputeMatrixSize calculates the number of rows and columns of dimensions of aPcb for routing and automatic calculation of area. More...
 
int InitRoutingMatrix ()
 Function InitBoard initializes the data structures. More...
 
void UnInitRoutingMatrix ()
 
void SetCellOperation (int aLogicOp)
 
MATRIX_CELL GetCell (int aRow, int aCol, int aSide)
 
void SetCell (int aRow, int aCol, int aSide, MATRIX_CELL aCell)
 
void OrCell (int aRow, int aCol, int aSide, MATRIX_CELL aCell)
 
void XorCell (int aRow, int aCol, int aSide, MATRIX_CELL aCell)
 
void AndCell (int aRow, int aCol, int aSide, MATRIX_CELL aCell)
 
void AddCell (int aRow, int aCol, int aSide, MATRIX_CELL aCell)
 
DIST_CELL GetDist (int aRow, int aCol, int aSide)
 
void SetDist (int aRow, int aCol, int aSide, DIST_CELL)
 
int GetDir (int aRow, int aCol, int aSide)
 
void SetDir (int aRow, int aCol, int aSide, int aDir)
 
int CalcDist (int x, int y, int z, int side)
 
int GetApxDist (int r1, int c1, int r2, int c2)
 

Public Attributes

MATRIX_CELLm_BoardSide [MAX_ROUTING_LAYERS_COUNT]
 
DIST_CELLm_DistSide [MAX_ROUTING_LAYERS_COUNT]
 
DIR_CELLm_DirSide [MAX_ROUTING_LAYERS_COUNT]
 
bool m_InitMatrixDone
 
int m_RoutingLayersCount
 
int m_GridRouting
 
EDA_RECT m_BrdBox
 
int m_Nrows
 
int m_Ncols
 
int m_MemSize
 
int m_RouteCount
 

Private Attributes

void(MATRIX_ROUTING_HEAD::* m_opWriteCell )(int aRow, int aCol, int aSide, MATRIX_CELL aCell)
 

Detailed Description

class MATRIX_ROUTING_HEAD handle the matrix routing that describes the actual board

Definition at line 104 of file autorout.h.

Constructor & Destructor Documentation

MATRIX_ROUTING_HEAD::MATRIX_ROUTING_HEAD ( )

Definition at line 49 of file routing_matrix.cpp.

References m_BoardSide, m_DirSide, m_DistSide, m_GridRouting, m_InitMatrixDone, m_MemSize, m_Ncols, m_Nrows, m_opWriteCell, m_RouteCount, and m_RoutingLayersCount.

50 {
51  m_BoardSide[0] = m_BoardSide[1] = NULL;
52  m_DistSide[0] = m_DistSide[1] = NULL;
53  m_DirSide[0] = m_DirSide[1] = NULL;
54  m_opWriteCell = NULL;
55  m_InitMatrixDone = false;
56  m_Nrows = 0;
57  m_Ncols = 0;
58  m_MemSize = 0;
60  m_GridRouting = 0;
61  m_RouteCount = 0;
62 }
DIR_CELL * m_DirSide[MAX_ROUTING_LAYERS_COUNT]
Definition: autorout.h:110
MATRIX_CELL * m_BoardSide[MAX_ROUTING_LAYERS_COUNT]
Definition: autorout.h:107
DIST_CELL * m_DistSide[MAX_ROUTING_LAYERS_COUNT]
Definition: autorout.h:108
void(MATRIX_ROUTING_HEAD::* m_opWriteCell)(int aRow, int aCol, int aSide, MATRIX_CELL aCell)
Definition: autorout.h:122
MATRIX_ROUTING_HEAD::~MATRIX_ROUTING_HEAD ( )

Definition at line 65 of file routing_matrix.cpp.

66 {
67 }

Member Function Documentation

void MATRIX_ROUTING_HEAD::AddCell ( int  aRow,
int  aCol,
int  aSide,
MATRIX_CELL  aCell 
)

Definition at line 501 of file routing_matrix.cpp.

References m_BoardSide, m_Ncols, and RoutingMatrix.

Referenced by SetCellOperation().

502 {
503  MATRIX_CELL* p;
504 
505  p = RoutingMatrix.m_BoardSide[aSide];
506  p[aRow * m_Ncols + aCol] += x;
507 }
MATRIX_CELL * m_BoardSide[MAX_ROUTING_LAYERS_COUNT]
Definition: autorout.h:107
unsigned char MATRIX_CELL
Definition: autorout.h:81
MATRIX_ROUTING_HEAD RoutingMatrix
Definition: autorout.cpp:51
void MATRIX_ROUTING_HEAD::AndCell ( int  aRow,
int  aCol,
int  aSide,
MATRIX_CELL  aCell 
)

Definition at line 490 of file routing_matrix.cpp.

References m_BoardSide, m_Ncols, and RoutingMatrix.

Referenced by SetCellOperation().

491 {
492  MATRIX_CELL* p;
493 
494  p = RoutingMatrix.m_BoardSide[aSide];
495  p[aRow * m_Ncols + aCol] &= x;
496 }
MATRIX_CELL * m_BoardSide[MAX_ROUTING_LAYERS_COUNT]
Definition: autorout.h:107
unsigned char MATRIX_CELL
Definition: autorout.h:81
MATRIX_ROUTING_HEAD RoutingMatrix
Definition: autorout.cpp:51
int MATRIX_ROUTING_HEAD::CalcDist ( int  x,
int  y,
int  z,
int  side 
)

Definition at line 138 of file dist.cpp.

References BOTTOM, dir_penalty_BOTTOM, dir_penalty_TOP, dist, EMPTY, FROM_OTHERSIDE, m_RouteCount, penalty, and TOP.

Referenced by Autoroute_One_Track().

139 {
140  int adjust, ldist;
141 
142  adjust = 0; /* set if hole is encountered */
143 
144  if( x == EMPTY )
145  x = 10;
146 
147  if( y == EMPTY )
148  {
149  y = 10;
150  }
151  else if( y == FROM_OTHERSIDE )
152  {
153  if( z == EMPTY )
154  z = 10;
155 
156  adjust = penalty[x-1][z-1];
157  }
158 
159  ldist = dist[x-1][y-1] + penalty[x-1][y-1] + adjust;
160 
161  if( m_RouteCount > 1 )
162  {
163  if( side == BOTTOM )
164  ldist += dir_penalty_TOP[x-1][y-1];
165 
166  if( side == TOP )
167  ldist += dir_penalty_BOTTOM[x-1][y-1];
168  }
169 
170  return ldist * 10;
171 }
#define FROM_OTHERSIDE
Definition: cell.h:112
static const int dist[10][10]
Definition: dist.cpp:57
static const int penalty[10][10]
Definition: dist.cpp:74
#define TOP
Definition: autorout.h:49
static const int dir_penalty_TOP[10][10]
Definition: dist.cpp:92
#define EMPTY
Definition: autorout.h:51
static int dir_penalty_BOTTOM[10][10]
Definition: dist.cpp:109
#define BOTTOM
Definition: autorout.h:50
bool MATRIX_ROUTING_HEAD::ComputeMatrixSize ( BOARD aPcb,
bool  aUseBoardEdgesOnly = false 
)

Function ComputeMatrixSize calculates the number of rows and columns of dimensions of aPcb for routing and automatic calculation of area.

Parameters
aPcb= the physical board
aUseBoardEdgesOnly= true to use board edges only, = false to use the full board bounding box (default)

Definition at line 70 of file routing_matrix.cpp.

References BOARD::GetBoardEdgesBoundingBox(), BOARD::GetBoundingBox(), EDA_RECT::GetEnd(), EDA_RECT::GetHeight(), EDA_RECT::GetWidth(), EDA_RECT::GetX(), EDA_RECT::GetY(), m_BrdBox, m_GridRouting, m_Ncols, m_Nrows, EDA_RECT::SetEnd(), EDA_RECT::SetX(), EDA_RECT::SetY(), wxPoint::x, and wxPoint::y.

Referenced by genPlacementRoutingMatrix().

71 {
72  // The boundary box must have its start point on routing grid:
73  m_BrdBox = aUseBoardEdgesOnly ? aPcb->GetBoardEdgesBoundingBox() : aPcb->GetBoundingBox();
74 
77 
78  // The boundary box must have its end point on routing grid:
79  wxPoint end = m_BrdBox.GetEnd();
80 
81  end.x -= end.x % m_GridRouting;
82  end.x += m_GridRouting;
83 
84  end.y -= end.y % m_GridRouting;
85  end.y += m_GridRouting;
86 
87  m_BrdBox.SetEnd( end );
88 
91 
92  // gives a small margin
93  m_Ncols += 1;
94  m_Nrows += 1;
95 
96  return true;
97 }
const EDA_RECT GetBoundingBox() const override
Function GetBoundingBox returns the orthogonal, bounding box of this object for display purposes...
Definition: class_board.h:785
int GetHeight() const
const EDA_RECT GetBoardEdgesBoundingBox() const
Function GetBoardEdgesBoundingBox Returns the board bounding box calculated using exclusively the boa...
Definition: class_board.h:797
void SetEnd(int x, int y)
void SetX(int val)
void SetY(int val)
const wxPoint GetEnd() const
int GetX() const
int GetWidth() const
int GetY() const
EDA_RECT m_BrdBox
Definition: autorout.h:115
int MATRIX_ROUTING_HEAD::GetApxDist ( int  r1,
int  c1,
int  r2,
int  c2 
)

Definition at line 42 of file dist.cpp.

Referenced by Autoroute_One_Track(), and SetWork().

43 {
44  int d1, d2; /* row and column deltas */
45 
46  if( ( d1 = r1 - r2 ) < 0 ) /* get absolute row delta */
47  d1 = -d1;
48 
49  if( ( d2 = c1 - c2 ) < 0 ) /* get absolute column delta */
50  d2 = -d2;
51 
52  return ( d1+d2 ) * 50;
53 }
wxPoint MATRIX_ROUTING_HEAD::GetBrdCoordOrigin ( )
inline

function GetBrdCoordOrigin

Returns
the board coordinate corresponding to the routing matrix origin ( board coordinate offset )

Definition at line 139 of file autorout.h.

References EDA_RECT::GetOrigin().

Referenced by TraceFilledCircle(), TraceFilledRectangle(), and TraceSegmentPcb().

140  {
141  return m_BrdBox.GetOrigin();
142  }
const wxPoint & GetOrigin() const
EDA_RECT m_BrdBox
Definition: autorout.h:115
MATRIX_CELL MATRIX_ROUTING_HEAD::GetCell ( int  aRow,
int  aCol,
int  aSide 
)

Definition at line 446 of file routing_matrix.cpp.

References m_BoardSide, m_Ncols, and RoutingMatrix.

Referenced by Autoroute_One_Track(), DisplayRoutingMatrix(), drawPlacementRoutingMatrix(), propagate(), and TstRectangle().

447 {
448  MATRIX_CELL* p;
449 
450  p = RoutingMatrix.m_BoardSide[aSide];
451  return p[aRow * m_Ncols + aCol];
452 }
MATRIX_CELL * m_BoardSide[MAX_ROUTING_LAYERS_COUNT]
Definition: autorout.h:107
unsigned char MATRIX_CELL
Definition: autorout.h:81
MATRIX_ROUTING_HEAD RoutingMatrix
Definition: autorout.cpp:51
int MATRIX_ROUTING_HEAD::GetDir ( int  aRow,
int  aCol,
int  aSide 
)

Definition at line 531 of file routing_matrix.cpp.

References m_DirSide, m_Ncols, and RoutingMatrix.

Referenced by Autoroute_One_Track(), and Retrace().

532 {
533  DIR_CELL* p;
534 
535  p = RoutingMatrix.m_DirSide[aSide];
536  return (int) (p[aRow * m_Ncols + aCol]);
537 }
DIR_CELL * m_DirSide[MAX_ROUTING_LAYERS_COUNT]
Definition: autorout.h:110
MATRIX_ROUTING_HEAD RoutingMatrix
Definition: autorout.cpp:51
char DIR_CELL
Definition: autorout.h:83
DIST_CELL MATRIX_ROUTING_HEAD::GetDist ( int  aRow,
int  aCol,
int  aSide 
)

Definition at line 511 of file routing_matrix.cpp.

References m_DistSide, m_Ncols, and RoutingMatrix.

Referenced by Autoroute_One_Track(), CalculateKeepOutArea(), CreateKeepOutRectangle(), and drawPlacementRoutingMatrix().

512 {
513  DIST_CELL* p;
514 
515  p = RoutingMatrix.m_DistSide[aSide];
516  return p[aRow * m_Ncols + aCol];
517 }
DIST_CELL * m_DistSide[MAX_ROUTING_LAYERS_COUNT]
Definition: autorout.h:108
MATRIX_ROUTING_HEAD RoutingMatrix
Definition: autorout.cpp:51
int DIST_CELL
Definition: autorout.h:82
int MATRIX_ROUTING_HEAD::InitRoutingMatrix ( )

Function InitBoard initializes the data structures.

Returns
the amount of memory used or -1 if default.

Definition at line 100 of file routing_matrix.cpp.

References BOTTOM, m_BoardSide, m_DirSide, m_DistSide, m_InitMatrixDone, m_MemSize, m_Ncols, m_Nrows, m_RouteCount, m_RoutingLayersCount, RoutingMatrix, and TOP.

Referenced by genPlacementRoutingMatrix().

101 {
102  if( m_Nrows <= 0 || m_Ncols <= 0 )
103  return 0;
104 
105  m_InitMatrixDone = true; // we have been called
106 
107  // give a small margin for memory allocation:
108  int ii = (RoutingMatrix.m_Nrows + 1) * (RoutingMatrix.m_Ncols + 1);
109 
110  int side = BOTTOM;
111  for( int jj = 0; jj < m_RoutingLayersCount; jj++ ) // m_RoutingLayersCount = 1 or 2
112  {
113  m_BoardSide[side] = NULL;
114  m_DistSide[side] = NULL;
115  m_DirSide[side] = NULL;
116 
117  // allocate matrix & initialize everything to empty
118  m_BoardSide[side] = (MATRIX_CELL*) operator new( ii * sizeof(MATRIX_CELL) );
119  memset( m_BoardSide[side], 0, ii * sizeof(MATRIX_CELL) );
120 
121  if( m_BoardSide[side] == NULL )
122  return -1;
123 
124  // allocate Distances
125  m_DistSide[side] = (DIST_CELL*) operator new( ii * sizeof(DIST_CELL) );
126  memset( m_DistSide[side], 0, ii * sizeof(DIST_CELL) );
127 
128  if( m_DistSide[side] == NULL )
129  return -1;
130 
131  // allocate Dir (chars)
132  m_DirSide[side] = (char*) operator new( ii );
133  memset( m_DirSide[side], 0, ii );
134 
135  if( m_DirSide[side] == NULL )
136  return -1;
137 
138  side = TOP;
139  }
140 
141  m_MemSize = m_RouteCount * ii * ( sizeof(MATRIX_CELL)
142  + sizeof(DIST_CELL) + sizeof(char) );
143 
144  return m_MemSize;
145 }
DIR_CELL * m_DirSide[MAX_ROUTING_LAYERS_COUNT]
Definition: autorout.h:110
#define TOP
Definition: autorout.h:49
MATRIX_CELL * m_BoardSide[MAX_ROUTING_LAYERS_COUNT]
Definition: autorout.h:107
DIST_CELL * m_DistSide[MAX_ROUTING_LAYERS_COUNT]
Definition: autorout.h:108
unsigned char MATRIX_CELL
Definition: autorout.h:81
MATRIX_ROUTING_HEAD RoutingMatrix
Definition: autorout.cpp:51
#define BOTTOM
Definition: autorout.h:50
int DIST_CELL
Definition: autorout.h:82
void MATRIX_ROUTING_HEAD::OrCell ( int  aRow,
int  aCol,
int  aSide,
MATRIX_CELL  aCell 
)

Definition at line 468 of file routing_matrix.cpp.

References m_BoardSide, m_Ncols, and RoutingMatrix.

Referenced by genPlacementRoutingMatrix(), propagate(), and SetCellOperation().

469 {
470  MATRIX_CELL* p;
471 
472  p = RoutingMatrix.m_BoardSide[aSide];
473  p[aRow * m_Ncols + aCol] |= x;
474 }
MATRIX_CELL * m_BoardSide[MAX_ROUTING_LAYERS_COUNT]
Definition: autorout.h:107
unsigned char MATRIX_CELL
Definition: autorout.h:81
MATRIX_ROUTING_HEAD RoutingMatrix
Definition: autorout.cpp:51
void MATRIX_ROUTING_HEAD::SetCell ( int  aRow,
int  aCol,
int  aSide,
MATRIX_CELL  aCell 
)

Definition at line 457 of file routing_matrix.cpp.

References m_BoardSide, m_Ncols, and RoutingMatrix.

Referenced by SetCellOperation().

458 {
459  MATRIX_CELL* p;
460 
461  p = RoutingMatrix.m_BoardSide[aSide];
462  p[aRow * m_Ncols + aCol] = x;
463 }
MATRIX_CELL * m_BoardSide[MAX_ROUTING_LAYERS_COUNT]
Definition: autorout.h:107
unsigned char MATRIX_CELL
Definition: autorout.h:81
MATRIX_ROUTING_HEAD RoutingMatrix
Definition: autorout.cpp:51
void MATRIX_ROUTING_HEAD::SetCellOperation ( int  aLogicOp)

Definition at line 416 of file routing_matrix.cpp.

References AddCell(), AndCell(), m_opWriteCell, OrCell(), SetCell(), WRITE_ADD_CELL, WRITE_AND_CELL, WRITE_CELL, WRITE_OR_CELL, WRITE_XOR_CELL, and XorCell().

Referenced by DrawSegmentQcq(), TraceFilledCircle(), TraceFilledRectangle(), and TracePcbLine().

417 {
418  switch( aLogicOp )
419  {
420  default:
421  case WRITE_CELL:
423  break;
424 
425  case WRITE_OR_CELL:
427  break;
428 
429  case WRITE_XOR_CELL:
431  break;
432 
433  case WRITE_AND_CELL:
435  break;
436 
437  case WRITE_ADD_CELL:
439  break;
440  }
441 }
void AddCell(int aRow, int aCol, int aSide, MATRIX_CELL aCell)
#define WRITE_CELL
Definition: autorout.h:190
#define WRITE_XOR_CELL
Definition: autorout.h:192
#define WRITE_AND_CELL
Definition: autorout.h:193
void XorCell(int aRow, int aCol, int aSide, MATRIX_CELL aCell)
void(MATRIX_ROUTING_HEAD::* m_opWriteCell)(int aRow, int aCol, int aSide, MATRIX_CELL aCell)
Definition: autorout.h:122
void SetCell(int aRow, int aCol, int aSide, MATRIX_CELL aCell)
void OrCell(int aRow, int aCol, int aSide, MATRIX_CELL aCell)
void AndCell(int aRow, int aCol, int aSide, MATRIX_CELL aCell)
#define WRITE_ADD_CELL
Definition: autorout.h:194
#define WRITE_OR_CELL
Definition: autorout.h:191
void MATRIX_ROUTING_HEAD::SetDir ( int  aRow,
int  aCol,
int  aSide,
int  aDir 
)

Definition at line 541 of file routing_matrix.cpp.

References m_DirSide, m_Ncols, and RoutingMatrix.

Referenced by Autoroute_One_Track().

542 {
543  DIR_CELL* p;
544 
545  p = RoutingMatrix.m_DirSide[aSide];
546  p[aRow * m_Ncols + aCol] = (char) x;
547 }
DIR_CELL * m_DirSide[MAX_ROUTING_LAYERS_COUNT]
Definition: autorout.h:110
MATRIX_ROUTING_HEAD RoutingMatrix
Definition: autorout.cpp:51
char DIR_CELL
Definition: autorout.h:83
void MATRIX_ROUTING_HEAD::SetDist ( int  aRow,
int  aCol,
int  aSide,
DIST_CELL  x 
)

Definition at line 521 of file routing_matrix.cpp.

References m_DistSide, m_Ncols, and RoutingMatrix.

Referenced by Autoroute_One_Track(), and CreateKeepOutRectangle().

522 {
523  DIST_CELL* p;
524 
525  p = RoutingMatrix.m_DistSide[aSide];
526  p[aRow * m_Ncols + aCol] = x;
527 }
DIST_CELL * m_DistSide[MAX_ROUTING_LAYERS_COUNT]
Definition: autorout.h:108
MATRIX_ROUTING_HEAD RoutingMatrix
Definition: autorout.cpp:51
int DIST_CELL
Definition: autorout.h:82
void MATRIX_ROUTING_HEAD::UnInitRoutingMatrix ( )

Definition at line 148 of file routing_matrix.cpp.

References m_BoardSide, m_DirSide, m_DistSide, m_InitMatrixDone, m_Ncols, m_Nrows, and MAX_ROUTING_LAYERS_COUNT.

Referenced by PCB_EDIT_FRAME::AutoPlaceModule(), and genPlacementRoutingMatrix().

149 {
150  int ii;
151 
152  m_InitMatrixDone = false;
153 
154  for( ii = 0; ii < MAX_ROUTING_LAYERS_COUNT; ii++ )
155  {
156  // de-allocate Dir matrix
157  if( m_DirSide[ii] )
158  {
159  delete m_DirSide[ii];
160  m_DirSide[ii] = NULL;
161  }
162 
163  // de-allocate Distances matrix
164  if( m_DistSide[ii] )
165  {
166  delete m_DistSide[ii];
167  m_DistSide[ii] = NULL;
168  }
169 
170  // de-allocate cells matrix
171  if( m_BoardSide[ii] )
172  {
173  delete m_BoardSide[ii];
174  m_BoardSide[ii] = NULL;
175  }
176  }
177 
178  m_Nrows = m_Ncols = 0;
179 }
DIR_CELL * m_DirSide[MAX_ROUTING_LAYERS_COUNT]
Definition: autorout.h:110
MATRIX_CELL * m_BoardSide[MAX_ROUTING_LAYERS_COUNT]
Definition: autorout.h:107
DIST_CELL * m_DistSide[MAX_ROUTING_LAYERS_COUNT]
Definition: autorout.h:108
#define MAX_ROUTING_LAYERS_COUNT
Definition: autorout.h:69
void MATRIX_ROUTING_HEAD::WriteCell ( int  aRow,
int  aCol,
int  aSide,
MATRIX_CELL  aCell 
)
inline

Definition at line 129 of file autorout.h.

References m_opWriteCell.

Referenced by TraceFilledCircle(), and TraceFilledRectangle().

130  {
131  (*this.*m_opWriteCell)( aRow, aCol, aSide, aCell );
132  }
void(MATRIX_ROUTING_HEAD::* m_opWriteCell)(int aRow, int aCol, int aSide, MATRIX_CELL aCell)
Definition: autorout.h:122
void MATRIX_ROUTING_HEAD::XorCell ( int  aRow,
int  aCol,
int  aSide,
MATRIX_CELL  aCell 
)

Definition at line 479 of file routing_matrix.cpp.

References m_BoardSide, m_Ncols, and RoutingMatrix.

Referenced by SetCellOperation().

480 {
481  MATRIX_CELL* p;
482 
483  p = RoutingMatrix.m_BoardSide[aSide];
484  p[aRow * m_Ncols + aCol] ^= x;
485 }
MATRIX_CELL * m_BoardSide[MAX_ROUTING_LAYERS_COUNT]
Definition: autorout.h:107
unsigned char MATRIX_CELL
Definition: autorout.h:81
MATRIX_ROUTING_HEAD RoutingMatrix
Definition: autorout.cpp:51

Member Data Documentation

DIR_CELL* MATRIX_ROUTING_HEAD::m_DirSide[MAX_ROUTING_LAYERS_COUNT]
DIST_CELL* MATRIX_ROUTING_HEAD::m_DistSide[MAX_ROUTING_LAYERS_COUNT]
bool MATRIX_ROUTING_HEAD::m_InitMatrixDone

Definition at line 112 of file autorout.h.

Referenced by InitRoutingMatrix(), MATRIX_ROUTING_HEAD(), and UnInitRoutingMatrix().

int MATRIX_ROUTING_HEAD::m_MemSize

Definition at line 117 of file autorout.h.

Referenced by genPlacementRoutingMatrix(), InitRoutingMatrix(), and MATRIX_ROUTING_HEAD().

void(MATRIX_ROUTING_HEAD::* MATRIX_ROUTING_HEAD::m_opWriteCell) (int aRow, int aCol, int aSide, MATRIX_CELL aCell)
private

Definition at line 122 of file autorout.h.

Referenced by MATRIX_ROUTING_HEAD(), SetCellOperation(), and WriteCell().

int MATRIX_ROUTING_HEAD::m_RouteCount

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