\doxysection{PCBoard Class Reference}
\hypertarget{classPCBoard}{}\label{classPCBoard}\index{PCBoard@{PCBoard}}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classPCBoard_a86022b5e1a7fde43e119bc8a6cd1abd3}\label{classPCBoard_a86022b5e1a7fde43e119bc8a6cd1abd3} 
{\bfseries PCBoard} (const Nanometers Unit\+Length=Nanometers(163840.\+0))
\item 
\Hypertarget{classPCBoard_acfc15f8034aaa5a9e1e154bcc8f9d1c7}\label{classPCBoard_acfc15f8034aaa5a9e1e154bcc8f9d1c7} 
\mbox{\hyperlink{classPCBoard}{PCBoard}} \texorpdfstring{$\ast$}{*} {\bfseries clone} (\mbox{\hyperlink{classCloneEnv}{Clone\+Env}} \&) const
\item 
\Hypertarget{classPCBoard_ab8395da716b45c89c7c1cb52ac989ada}\label{classPCBoard_ab8395da716b45c89c7c1cb52ac989ada} 
const std\+::string \& {\bfseries name} () const
\item 
\Hypertarget{classPCBoard_a8542bdce7ec7b3618ca5b054602e2499}\label{classPCBoard_a8542bdce7ec7b3618ca5b054602e2499} 
const std\+::string \& {\bfseries get\+Source\+File\+Path} () const
\item 
\Hypertarget{classPCBoard_a9181c5f1f73b8caca60aa4a30ba3bee1}\label{classPCBoard_a9181c5f1f73b8caca60aa4a30ba3bee1} 
uint {\bfseries get\+Num\+Layers} () const
\item 
\Hypertarget{classPCBoard_afdc07ba0cfe0ad9c82206cc666679f54}\label{classPCBoard_afdc07ba0cfe0ad9c82206cc666679f54} 
const \mbox{\hyperlink{classLayer}{Layer}} \& {\bfseries get\+Layer} (uint i) const
\item 
\Hypertarget{classPCBoard_a262899b95ce820efcbc0c053cdc38fee}\label{classPCBoard_a262899b95ce820efcbc0c053cdc38fee} 
\mbox{\hyperlink{classLayoutArea}{Layout\+Area}} \& {\bfseries get\+Layout\+Area} ()
\item 
\Hypertarget{classPCBoard_a14b81463a39d1a74c703079959037028}\label{classPCBoard_a14b81463a39d1a74c703079959037028} 
const \mbox{\hyperlink{classLayoutArea}{Layout\+Area}} \& {\bfseries get\+Layout\+Area} () const
\item 
\Hypertarget{classPCBoard_a73aff02e72bb41d20f8b45d76ea13318}\label{classPCBoard_a73aff02e72bb41d20f8b45d76ea13318} 
\mbox{\hyperlink{classPCBoard}{PCBoard}} \& {\bfseries operator=} (const \mbox{\hyperlink{classPCBoard}{PCBoard}} \&)=delete
\item 
\Hypertarget{classPCBoard_abecae0b1f80df4689067dc47ba4b6418}\label{classPCBoard_abecae0b1f80df4689067dc47ba4b6418} 
\mbox{\hyperlink{classNet}{Net}} \texorpdfstring{$\ast$}{*} {\bfseries get\+Net} (const std\+::string \&name) const
\item 
\Hypertarget{classPCBoard_a852f1f331b2dacabe0ee124879578b62}\label{classPCBoard_a852f1f331b2dacabe0ee124879578b62} 
\mbox{\hyperlink{classNet}{Net}} \texorpdfstring{$\ast$}{*} {\bfseries get\+Net} (uint) const
\item 
\Hypertarget{classPCBoard_a434d0af2ff5a87cf1dfd36a94216dce7}\label{classPCBoard_a434d0af2ff5a87cf1dfd36a94216dce7} 
\mbox{\hyperlink{classNet}{Net}} \texorpdfstring{$\ast$}{*} {\bfseries get\+Net} (Py\+Object \texorpdfstring{$\ast$}{*}) const
\item 
\Hypertarget{classPCBoard_ae289585f00506a1b3fd9c3b86bf7c56e}\label{classPCBoard_ae289585f00506a1b3fd9c3b86bf7c56e} 
\mbox{\hyperlink{classComponent}{Component}} \texorpdfstring{$\ast$}{*} {\bfseries get\+Component} (const std\+::string \&name) const
\item 
\Hypertarget{classPCBoard_a28e97e2a89471d383c9758ec23e08dc0}\label{classPCBoard_a28e97e2a89471d383c9758ec23e08dc0} 
\mbox{\hyperlink{classComponent}{Component}} \texorpdfstring{$\ast$}{*} {\bfseries get\+Component} (uint) const
\item 
\Hypertarget{classPCBoard_ad3650b3d2771777bcbbee56d5191ec77}\label{classPCBoard_ad3650b3d2771777bcbbee56d5191ec77} 
\mbox{\hyperlink{classComponent}{Component}} \texorpdfstring{$\ast$}{*} {\bfseries get\+Component} (Py\+Object \texorpdfstring{$\ast$}{*}) const
\item 
\Hypertarget{classPCBoard_a098da5172974fa6e71091828704d964d}\label{classPCBoard_a098da5172974fa6e71091828704d964d} 
\mbox{\hyperlink{classComponent}{Component}} \texorpdfstring{$\ast$}{*} {\bfseries get\+Component\+At} (const Point\+\_\+2 \&, int z=-\/1) const
\item 
\Hypertarget{classPCBoard_a669e6539564e3e67f596303f2ce85276}\label{classPCBoard_a669e6539564e3e67f596303f2ce85276} 
\mbox{\hyperlink{classPin}{Pin}} \texorpdfstring{$\ast$}{*} {\bfseries get\+Pin} (const std\+::string \&name) const
\item 
\Hypertarget{classPCBoard_a2831663b198aa42dae946ae676101698}\label{classPCBoard_a2831663b198aa42dae946ae676101698} 
\mbox{\hyperlink{classPin}{Pin}} \texorpdfstring{$\ast$}{*} {\bfseries get\+Pin} (Py\+Object \texorpdfstring{$\ast$}{*}) const
\item 
\Hypertarget{classPCBoard_ae497efb6ac5db0d95a83e017e97ce798}\label{classPCBoard_ae497efb6ac5db0d95a83e017e97ce798} 
\mbox{\hyperlink{classConnection}{Connection}} \texorpdfstring{$\ast$}{*} {\bfseries get\+Connection} (Py\+Object \texorpdfstring{$\ast$}{*}) const
\item 
\Hypertarget{classPCBoard_ac98234ffb83beb037987ce2c295001ea}\label{classPCBoard_ac98234ffb83beb037987ce2c295001ea} 
uint {\bfseries get\+Num\+Nets} () const
\item 
\Hypertarget{classPCBoard_aa6e817db4cf89d0839054872b509f69d}\label{classPCBoard_aa6e817db4cf89d0839054872b509f69d} 
const std\+::vector$<$ \mbox{\hyperlink{classNet}{Net}} \texorpdfstring{$\ast$}{*} $>$ \& {\bfseries get\+Nets} () const
\item 
\Hypertarget{classPCBoard_aabaea4e72c3fa598c76038fa1d830c26}\label{classPCBoard_aabaea4e72c3fa598c76038fa1d830c26} 
uint {\bfseries get\+Num\+Components} () const
\item 
\Hypertarget{classPCBoard_a2ea985d2b78dc8bd7df65bc4b3bbcf83}\label{classPCBoard_a2ea985d2b78dc8bd7df65bc4b3bbcf83} 
const std\+::vector$<$ \mbox{\hyperlink{classComponent}{Component}} \texorpdfstring{$\ast$}{*} $>$ \& {\bfseries get\+Components} () const
\item 
\Hypertarget{classPCBoard_a3c9c10e55bd7b93d9b1ea50a0fbc78f4}\label{classPCBoard_a3c9c10e55bd7b93d9b1ea50a0fbc78f4} 
void {\bfseries renumber\+Coms} ()
\item 
\Hypertarget{classPCBoard_a68c36e4ee6f395fbe130bca503af9158}\label{classPCBoard_a68c36e4ee6f395fbe130bca503af9158} 
void {\bfseries renumber\+Pins} ()
\item 
\Hypertarget{classPCBoard_a9b28bf0f567dab5ca964988246b18e4a}\label{classPCBoard_a9b28bf0f567dab5ca964988246b18e4a} 
void {\bfseries renumber\+Nets} ()
\item 
\Hypertarget{classPCBoard_a5b7f948fd71d7dcd2259177a5b0ef423}\label{classPCBoard_a5b7f948fd71d7dcd2259177a5b0ef423} 
const \mbox{\hyperlink{classObjectsBVH}{Objects\+BVH}} \texorpdfstring{$\ast$}{*} {\bfseries get\+BVH} () const
\item 
\Hypertarget{classPCBoard_aad60e254366185b32cd47555183661dd}\label{classPCBoard_aad60e254366185b32cd47555183661dd} 
const \mbox{\hyperlink{classNavGrid}{Nav\+Grid}} \& {\bfseries get\+Nav\+Grid} () const
\item 
\Hypertarget{classPCBoard_a9cc60ef4afda2f40e105917e7fae2907}\label{classPCBoard_a9cc60ef4afda2f40e105917e7fae2907} 
\mbox{\hyperlink{classNavGrid}{Nav\+Grid}} \& {\bfseries get\+Nav\+Grid} ()
\item 
\Hypertarget{classPCBoard_a7838fe445667548f7c3c0a065d764bbe}\label{classPCBoard_a7838fe445667548f7c3c0a065d764bbe} 
\mbox{\hyperlink{classNavTriangulation}{Nav\+Triangulation}} \texorpdfstring{$\ast$}{*} {\bfseries get\+TNG} () const
\item 
\Hypertarget{classPCBoard_a66555e6bfb5c1868eb6033133cf14915}\label{classPCBoard_a66555e6bfb5c1868eb6033133cf14915} 
bool {\bfseries rebuild\+TNG} ()
\item 
\Hypertarget{classPCBoard_a195d87088c401f1affe36f27b3af2160}\label{classPCBoard_a195d87088c401f1affe36f27b3af2160} 
void {\bfseries force\+Connections\+To\+Grid} ()
\begin{DoxyCompactList}\small\item\em Move all connection endpoints to the nearest gridcell center. \end{DoxyCompactList}\item 
\Hypertarget{classPCBoard_a5ecfb8b59c2092246765d88f46c73c3b}\label{classPCBoard_a5ecfb8b59c2092246765d88f46c73c3b} 
void {\bfseries init\+Pathfinding\+For\+Net} (const \mbox{\hyperlink{classConnection}{Connection}} \&)
\begin{DoxyCompactList}\small\item\em These unblock/restore pins and tracks associated with this connection. \end{DoxyCompactList}\item 
\Hypertarget{classPCBoard_a1e31bba119a21dad7f08e793fbf93a29}\label{classPCBoard_a1e31bba119a21dad7f08e793fbf93a29} 
void {\bfseries fini\+Pathfinding\+For\+Net} (const \mbox{\hyperlink{classConnection}{Connection}} \&)
\item 
\Hypertarget{classPCBoard_a9f66988fd52a22055798ed083d81b078}\label{classPCBoard_a9f66988fd52a22055798ed083d81b078} 
void {\bfseries init\+Pathfinding\+For} (const \mbox{\hyperlink{classConnection}{Connection}} \&)
\item 
\Hypertarget{classPCBoard_a3370a540f3564fc23fbc437cd3526931}\label{classPCBoard_a3370a540f3564fc23fbc437cd3526931} 
void {\bfseries fini\+Pathfinding\+For} (const \mbox{\hyperlink{classConnection}{Connection}} \&)
\item 
\Hypertarget{classPCBoard_af3a4d6039c7ca9551a8ec90c1c58b62f}\label{classPCBoard_af3a4d6039c7ca9551a8ec90c1c58b62f} 
void {\bfseries add} (\mbox{\hyperlink{classComponent}{Component}} \&)
\item 
\Hypertarget{classPCBoard_ad9a8a60eb714ad8f54811c5dd087c28a}\label{classPCBoard_ad9a8a60eb714ad8f54811c5dd087c28a} 
void {\bfseries add} (\mbox{\hyperlink{classNet}{Net}} \&)
\item 
\Hypertarget{classPCBoard_abe1dca7351a2e0e3f8c832b05a8e2125}\label{classPCBoard_abe1dca7351a2e0e3f8c832b05a8e2125} 
\mbox{\hyperlink{classComponent}{Component}} \texorpdfstring{$\ast$}{*} {\bfseries remove} (\mbox{\hyperlink{classComponent}{Component}} \&)
\item 
\Hypertarget{classPCBoard_af864eed5c5074f8eeb061b88ad175965}\label{classPCBoard_af864eed5c5074f8eeb061b88ad175965} 
\mbox{\hyperlink{classNet}{Net}} \texorpdfstring{$\ast$}{*} {\bfseries remove} (\mbox{\hyperlink{classNet}{Net}} \&)
\item 
\Hypertarget{classPCBoard_a769636345e63083055d37ce730bf5e45}\label{classPCBoard_a769636345e63083055d37ce730bf5e45} 
void {\bfseries prune\+Layers} (std\+::set$<$ uint $>$ \&keep)
\item 
\Hypertarget{classPCBoard_a1def9af932f352b919e8922f305d767e}\label{classPCBoard_a1def9af932f352b919e8922f305d767e} 
void {\bfseries prune\+Connections} (std\+::set$<$ \mbox{\hyperlink{classConnection}{Connection}} \texorpdfstring{$\ast$}{*} $>$ \&keep, bool delete\+Nets=true)
\item 
\Hypertarget{classPCBoard_a6b8516d5564e2659b2af800fac5e4a79}\label{classPCBoard_a6b8516d5564e2659b2af800fac5e4a79} 
void {\bfseries prune\+Nets} (std\+::set$<$ \mbox{\hyperlink{classNet}{Net}} \texorpdfstring{$\ast$}{*} $>$ \&keep)
\item 
\Hypertarget{classPCBoard_a226c746486c5f5bb3a92b277904a59a8}\label{classPCBoard_a226c746486c5f5bb3a92b277904a59a8} 
void {\bfseries prune\+Pins} (std\+::set$<$ \mbox{\hyperlink{classPin}{Pin}} \texorpdfstring{$\ast$}{*} $>$ \&keep)
\item 
\Hypertarget{classPCBoard_aeb0c70b63ec7aa6f059630f0be44eb02}\label{classPCBoard_aeb0c70b63ec7aa6f059630f0be44eb02} 
void {\bfseries prune\+Components} (std\+::set$<$ \mbox{\hyperlink{classComponent}{Component}} \texorpdfstring{$\ast$}{*} $>$ \&keep)
\item 
\Hypertarget{classPCBoard_a52f1ace85855d47626efec2bc6164f27}\label{classPCBoard_a52f1ace85855d47626efec2bc6164f27} 
void {\bfseries remove\+Empty\+Nets} ()
\item 
\Hypertarget{classPCBoard_a6fcabaf10d85f4d20fd47a92d628ac30}\label{classPCBoard_a6fcabaf10d85f4d20fd47a92d628ac30} 
Real {\bfseries meters\+To\+Units} (Nanometers nm) const
\item 
\Hypertarget{classPCBoard_a93bbe6c42087a3ca9c5a24e436a6381f}\label{classPCBoard_a93bbe6c42087a3ca9c5a24e436a6381f} 
Nanometers {\bfseries units\+To\+Nanometers} (Real r) const
\item 
\Hypertarget{classPCBoard_abf75845791283579a1388d6e76f4d811}\label{classPCBoard_abf75845791283579a1388d6e76f4d811} 
Micrometers {\bfseries units\+To\+Micrometers} (Real r) const
\item 
\Hypertarget{classPCBoard_a311a5134cf5221bf26cee5e542631912}\label{classPCBoard_a311a5134cf5221bf26cee5e542631912} 
uint {\bfseries get\+Layer\+For\+Side} (char t\+\_\+or\+\_\+b) const
\item 
\Hypertarget{classPCBoard_ab361a01d24e93323baa7f837c4b6ee22}\label{classPCBoard_ab361a01d24e93323baa7f837c4b6ee22} 
const std\+::vector$<$ \mbox{\hyperlink{classLayer}{Layer}} $>$ \& {\bfseries get\+Layers} () const
\item 
\Hypertarget{classPCBoard_a72b5f496e2315071bfd8771fcf228cad}\label{classPCBoard_a72b5f496e2315071bfd8771fcf228cad} 
\mbox{\hyperlink{classLayer}{Layer}} \& {\bfseries get\+Layer} (uint i)
\item 
\Hypertarget{classPCBoard_a4d5212de1f241abed97801652b013744}\label{classPCBoard_a4d5212de1f241abed97801652b013744} 
void {\bfseries set\+Name} (const std\+::string \&name)
\item 
\Hypertarget{classPCBoard_ac123043dc7b64652830474624de4bcce}\label{classPCBoard_ac123043dc7b64652830474624de4bcce} 
void {\bfseries set\+Source\+File\+Path} (const std\+::string \&path)
\item 
\Hypertarget{classPCBoard_a049e6c141b0fd139b23c95ac9c23e095}\label{classPCBoard_a049e6c141b0fd139b23c95ac9c23e095} 
void {\bfseries set\+Num\+Layers} (uint N)
\begin{DoxyCompactList}\small\item\em NOTE\+: Deletes objects on no-\/longer existing layers. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{classPCBoard_a04428685a8b54f758edcad5ffd8326c3}{adjust\+Layout\+Area\+Margins}} (Real min, Real max=std\+::numeric\+\_\+limits$<$ Real $>$\+::infinity())
\item 
\Hypertarget{classPCBoard_a35a2a1a5600ce1d9cf89b70d5782f719}\label{classPCBoard_a35a2a1a5600ce1d9cf89b70d5782f719} 
void {\bfseries set\+Min\+Via\+Diameter} (Micrometers)
\item 
\Hypertarget{classPCBoard_a3bb9ba9544702674554512b4ab9ef099}\label{classPCBoard_a3bb9ba9544702674554512b4ab9ef099} 
Real {\bfseries get\+Min\+Via\+Diameter} () const
\item 
\Hypertarget{classPCBoard_a6920a592ab418197079fc2d4d3551db2}\label{classPCBoard_a6920a592ab418197079fc2d4d3551db2} 
void {\bfseries set\+Min\+Clearance\+Pins} (Micrometers)
\item 
\Hypertarget{classPCBoard_a03616d4b3507a3b9d4442aa3826b5db4}\label{classPCBoard_a03616d4b3507a3b9d4442aa3826b5db4} 
Real {\bfseries get\+Min\+Clearance\+Pins} () const
\item 
\Hypertarget{classPCBoard_a043b01fa7bd1317ebf0ab4e489a307a4}\label{classPCBoard_a043b01fa7bd1317ebf0ab4e489a307a4} 
void {\bfseries set\+Min\+Clearance\+Nets} (Micrometers)
\item 
\Hypertarget{classPCBoard_a12125df710f1785ca5f10e9ba25b8440}\label{classPCBoard_a12125df710f1785ca5f10e9ba25b8440} 
Real {\bfseries get\+Min\+Clearance\+Nets} () const
\item 
\Hypertarget{classPCBoard_a3c59e47e872756473d359964b91a5f87}\label{classPCBoard_a3c59e47e872756473d359964b91a5f87} 
void {\bfseries set\+Min\+Track\+Width} (Micrometers)
\item 
\Hypertarget{classPCBoard_acb28fab4cafb2ab7c332ce0353843ad3}\label{classPCBoard_acb28fab4cafb2ab7c332ce0353843ad3} 
Real {\bfseries get\+Min\+Track\+Width} () const
\item 
\Hypertarget{classPCBoard_a01d275e189cea0347c8c6bfe7e3a0181}\label{classPCBoard_a01d275e189cea0347c8c6bfe7e3a0181} 
Bbox\+\_\+2 {\bfseries get\+Component\+Area\+Bbox} () const
\item 
\Hypertarget{classPCBoard_a2d69254379d0f32c4fa4549fbdfd8f28}\label{classPCBoard_a2d69254379d0f32c4fa4549fbdfd8f28} 
void {\bfseries recompute\+Component\+Area\+Bbox} ()
\item 
\Hypertarget{classPCBoard_a56e3d57677a24323b469ba4a13b9b057}\label{classPCBoard_a56e3d57677a24323b469ba4a13b9b057} 
Bbox\+\_\+2 {\bfseries get\+Active\+Area\+Bbox} () const
\item 
\Hypertarget{classPCBoard_a5bd088843b03b7cb6c512d3c8de4a868}\label{classPCBoard_a5bd088843b03b7cb6c512d3c8de4a868} 
void {\bfseries set\+Active\+Area\+Bbox} (const Bbox\+\_\+2 \&box)
\item 
bool \mbox{\hyperlink{classPCBoard_a7ab066f817c5b8f20d9d6a8c93c61a59}{run\+Path\+Finding}} (\mbox{\hyperlink{classConnection}{Connection}} \&, \mbox{\hyperlink{classConnection}{Connection}} \texorpdfstring{$\ast$}{*}ref=0, const \mbox{\hyperlink{structAStarCosts}{AStar\+Costs}} \texorpdfstring{$\ast$}{*}=0)
\item 
\Hypertarget{classPCBoard_a7f9687911b8393028fce0a074d88dd87}\label{classPCBoard_a7f9687911b8393028fce0a074d88dd87} 
bool {\bfseries run\+Path\+Finding\+Tri} (\mbox{\hyperlink{classConnection}{Connection}} \&)
\item 
\Hypertarget{classPCBoard_a67f67ef1980b0a6770d31329db12ade3}\label{classPCBoard_a67f67ef1980b0a6770d31329db12ade3} 
void {\bfseries rasterize\+Tracks} (const \mbox{\hyperlink{classConnection}{Connection}} \&, int8\+\_\+t count=1)
\item 
\Hypertarget{classPCBoard_a085b90e3b8297973516c9b5ac0b0ed5f}\label{classPCBoard_a085b90e3b8297973516c9b5ac0b0ed5f} 
void {\bfseries unrasterize\+Tracks} (const \mbox{\hyperlink{classConnection}{Connection}} \&, int8\+\_\+t count=-\/1)
\item 
\Hypertarget{classPCBoard_a7be3117c3f6221c494541ebf340f527e}\label{classPCBoard_a7be3117c3f6221c494541ebf340f527e} 
void {\bfseries erase\+Tracks} (\mbox{\hyperlink{classConnection}{Connection}} \&)
\item 
\Hypertarget{classPCBoard_aedb49326b65342820f2432d762ce463b}\label{classPCBoard_aedb49326b65342820f2432d762ce463b} 
void {\bfseries wipe} ()
\item 
\Hypertarget{classPCBoard_a0e38a0097884710c91093a97b3d73fa7}\label{classPCBoard_a0e38a0097884710c91093a97b3d73fa7} 
Real {\bfseries sum\+Violation\+Area} (\mbox{\hyperlink{classConnection}{Connection}} \&, \mbox{\hyperlink{classConnection}{Connection}} \texorpdfstring{$\ast$}{*}ref=0)
\item 
\Hypertarget{classPCBoard_ac17dabe5735fd35954d0eed61b253807}\label{classPCBoard_ac17dabe5735fd35954d0eed61b253807} 
Py\+Object \texorpdfstring{$\ast$}{*} {\bfseries get\+Py} (Py\+Object \texorpdfstring{$\ast$}{*}dict, uint depth=3, bool as\+Numpy=true) const
\item 
\Hypertarget{classPCBoard_a08b2bdda84e1319eb412feee66900828}\label{classPCBoard_a08b2bdda84e1319eb412feee66900828} 
Py\+Object \texorpdfstring{$\ast$}{*} {\bfseries get\+Layers\+Py} () const
\item 
std\+::mutex \& \mbox{\hyperlink{classPCBoard_afca7f09ebf781baaff53b82cc6ff7aa9}{get\+Lock}} () const
\item 
\Hypertarget{classPCBoard_a6e5c603f68f635956b8c815c95ebf846}\label{classPCBoard_a6e5c603f68f635956b8c815c95ebf846} 
bool {\bfseries has\+Changed} () const
\item 
\Hypertarget{classPCBoard_abf08d74d2371235980c32178bc032ab4}\label{classPCBoard_abf08d74d2371235980c32178bc032ab4} 
void {\bfseries set\+Changed} (uint32\+\_\+t mask)
\item 
\Hypertarget{classPCBoard_ae4492c43a6b245db1859d41a0019900d}\label{classPCBoard_ae4492c43a6b245db1859d41a0019900d} 
uint32\+\_\+t {\bfseries ack\+Changes} () const
\end{DoxyCompactItemize}


\label{doc-func-members}
\Hypertarget{classPCBoard_doc-func-members}
\doxysubsection{Member Function Documentation}
\Hypertarget{classPCBoard_a04428685a8b54f758edcad5ffd8326c3}\index{PCBoard@{PCBoard}!adjustLayoutAreaMargins@{adjustLayoutAreaMargins}}
\index{adjustLayoutAreaMargins@{adjustLayoutAreaMargins}!PCBoard@{PCBoard}}
\doxysubsubsection{\texorpdfstring{adjustLayoutAreaMargins()}{adjustLayoutAreaMargins()}}
{\footnotesize\ttfamily \label{classPCBoard_a04428685a8b54f758edcad5ffd8326c3} 
void PCBoard\+::adjust\+Layout\+Area\+Margins (\begin{DoxyParamCaption}\item[{Real}]{min}{, }\item[{Real}]{max}{ = {\ttfamily std\+:\+:numeric\+\_\+limits$<$~Real~$>$\+:\+:infinity()}}\end{DoxyParamCaption})}

Adjust the layout area around the component area bbox.

Negative values are interpreted as fractions of the component bbox\textquotesingle{}s maximum dimension.


\begin{DoxyParams}{Parameters}
{\em min} & Minimum margin around component area bbox. \\
\hline
{\em max} & Maximum margin around component area bbox (may be infinite). \\
\hline
\end{DoxyParams}
\Hypertarget{classPCBoard_afca7f09ebf781baaff53b82cc6ff7aa9}\index{PCBoard@{PCBoard}!getLock@{getLock}}
\index{getLock@{getLock}!PCBoard@{PCBoard}}
\doxysubsubsection{\texorpdfstring{getLock()}{getLock()}}
{\footnotesize\ttfamily \label{classPCBoard_afca7f09ebf781baaff53b82cc6ff7aa9} 
std\+::mutex \& PCBoard\+::get\+Lock (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

Hold this lock to synchronize with the GUI while modifying the board. Only \doxylink{classPCBoard_a7ab066f817c5b8f20d9d6a8c93c61a59}{run\+Path\+Finding()} does this on its own. This does not prevent two pathfinding operations from running in parallel and producing conflicting tracks! \Hypertarget{classPCBoard_a7ab066f817c5b8f20d9d6a8c93c61a59}\index{PCBoard@{PCBoard}!runPathFinding@{runPathFinding}}
\index{runPathFinding@{runPathFinding}!PCBoard@{PCBoard}}
\doxysubsubsection{\texorpdfstring{runPathFinding()}{runPathFinding()}}
{\footnotesize\ttfamily \label{classPCBoard_a7ab066f817c5b8f20d9d6a8c93c61a59} 
bool PCBoard\+::run\+Path\+Finding (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classConnection}{Connection}} \&}]{}{, }\item[{\mbox{\hyperlink{classConnection}{Connection}} \texorpdfstring{$\ast$}{*}}]{ref}{ = {\ttfamily 0}, }\item[{const \mbox{\hyperlink{structAStarCosts}{AStar\+Costs}} \texorpdfstring{$\ast$}{*}}]{}{ = {\ttfamily 0}}\end{DoxyParamCaption})}

Run A-\/star. 
\begin{DoxyParams}{Parameters}
{\em ref} & Set this if there is a different connection we\textquotesingle{}re allowed to cross.\\
\hline
\end{DoxyParams}
NOTE\+: Locks the PCB while modifying the \doxylink{classConnection}{Connection}. 

The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
/home/chr/devel/\+Ph\+D/\+Environment/pub/\+PCBEnv/pcbenv/cxx/PCBoard.\+hpp\end{DoxyCompactItemize}
