\doxysection{PCBItem\+Sets.\+hpp}
\hypertarget{PCBItemSets_8hpp_source}{}\label{PCBItemSets_8hpp_source}\index{/home/chr/devel/PhD/Environment/pub/PCBEnv/pcbenv/cxx/Util/PCBItemSets.hpp@{/home/chr/devel/PhD/Environment/pub/PCBEnv/pcbenv/cxx/Util/PCBItemSets.hpp}}

\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ }
\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#ifndef\ GYM\_PCB\_UTIL\_SUBSETS}}
\DoxyCodeLine{00003\ \textcolor{preprocessor}{\#define\ GYM\_PCB\_UTIL\_SUBSETS}}
\DoxyCodeLine{00004\ }
\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}Py.hpp"{}}}
\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ <set>}}
\DoxyCodeLine{00007\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classComponent}{Component}};}
\DoxyCodeLine{00008\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classPin}{Pin}};}
\DoxyCodeLine{00009\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classConnection}{Connection}};}
\DoxyCodeLine{00010\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classNet}{Net}};}
\DoxyCodeLine{00011\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classPCBoard}{PCBoard}};}
\DoxyCodeLine{00012\ }
\DoxyCodeLine{00013\ \textcolor{keyword}{namespace\ }util}
\DoxyCodeLine{00014\ \{}
\DoxyCodeLine{00015\ }
\DoxyCodeLine{00016\ \textcolor{keywordtype}{void}\ populate(std::set<Connection\ *>\&,\ PCBoard\&,\ PyObject\ *);}
\DoxyCodeLine{00017\ \textcolor{keywordtype}{void}\ populate(std::set<Net\ *>\&,\ PCBoard\&,\ PyObject\ *);}
\DoxyCodeLine{00018\ \textcolor{keywordtype}{void}\ populate(std::set<Component\ *>\&,\ PCBoard\&,\ PyObject\ *);}
\DoxyCodeLine{00019\ \textcolor{keywordtype}{void}\ populate(std::set<Pin\ *>\&,\ PCBoard\&,\ PyObject\ *);}
\DoxyCodeLine{00020\ }
\DoxyCodeLine{00021\ \}\ \textcolor{comment}{//\ namespace\ util}}
\DoxyCodeLine{00022\ }
\DoxyCodeLine{00023\ \textcolor{keyword}{struct\ }PCBItemSets}
\DoxyCodeLine{00024\ \{}
\DoxyCodeLine{00025\ \ \ \ \ PCBItemSets(std::set<Component\ *>\ *com\ =\ 0,}
\DoxyCodeLine{00026\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ std::set<Pin\ *>\ *pin\ =\ 0,}
\DoxyCodeLine{00027\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ std::set<Net\ *>\ *net\ =\ 0,}
\DoxyCodeLine{00028\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ std::set<Connection\ *>\ *con\ =\ 0)\ :\ coms(com),\ pins(pin),\ nets(net),\ cons(con)}
\DoxyCodeLine{00029\ \ \ \ \ \{}
\DoxyCodeLine{00030\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!com)\ coms\ =\ \&\_coms;}
\DoxyCodeLine{00031\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!pin)\ pins\ =\ \&\_pins;}
\DoxyCodeLine{00032\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!net)\ nets\ =\ \&\_nets;}
\DoxyCodeLine{00033\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (!con)\ cons\ =\ \&\_cons;}
\DoxyCodeLine{00034\ \ \ \ \ \}}
\DoxyCodeLine{00035\ \ \ \ \ std::set<Component\ *>\ *coms;}
\DoxyCodeLine{00036\ \ \ \ \ std::set<Component\ *>\ \_coms;}
\DoxyCodeLine{00037\ \ \ \ \ std::set<Pin\ *>\ *pins;}
\DoxyCodeLine{00038\ \ \ \ \ std::set<Pin\ *>\ \_pins;}
\DoxyCodeLine{00039\ \ \ \ \ std::set<Net\ *>\ *nets;}
\DoxyCodeLine{00040\ \ \ \ \ std::set<Net\ *>\ \_nets;}
\DoxyCodeLine{00041\ \ \ \ \ std::set<Connection\ *>\ *cons;}
\DoxyCodeLine{00042\ \ \ \ \ std::set<Connection\ *>\ \_cons;}
\DoxyCodeLine{00043\ \ \ \ \ \textcolor{keywordtype}{void}\ populate(\mbox{\hyperlink{classPCBoard}{PCBoard}}\&,\ PyObject\ *);}
\DoxyCodeLine{00044\ \ \ \ \ \textcolor{keywordtype}{void}\ clear();}
\DoxyCodeLine{00045\ \ \ \ \ \textcolor{keywordtype}{void}\ complement(\mbox{\hyperlink{classPCBoard}{PCBoard}}\&);}
\DoxyCodeLine{00046\ \ \ \ \ \textcolor{keywordtype}{void}\ populateComsFromPins();}
\DoxyCodeLine{00047\ \ \ \ \ \textcolor{keywordtype}{void}\ populateComsFromNets();}
\DoxyCodeLine{00048\ \ \ \ \ \textcolor{keywordtype}{void}\ populateComsFromConnections();}
\DoxyCodeLine{00049\ \ \ \ \ \textcolor{keywordtype}{void}\ populatePinsFromComs();}
\DoxyCodeLine{00050\ \ \ \ \ \textcolor{keywordtype}{void}\ populatePinsFromNets();}
\DoxyCodeLine{00051\ \ \ \ \ \textcolor{keywordtype}{void}\ populatePinsFromConnections();}
\DoxyCodeLine{00052\ \ \ \ \ \textcolor{keywordtype}{void}\ populateNetsFromComs();}
\DoxyCodeLine{00053\ \ \ \ \ \textcolor{keywordtype}{void}\ populateNetsFromPins();}
\DoxyCodeLine{00054\ \ \ \ \ \textcolor{keywordtype}{void}\ populateNetsFromConnections();}
\DoxyCodeLine{00055\ \ \ \ \ \textcolor{keywordtype}{void}\ populateConnectionsFromComs();}
\DoxyCodeLine{00056\ \ \ \ \ \textcolor{keywordtype}{void}\ populateConnectionsFromPins();}
\DoxyCodeLine{00057\ \ \ \ \ \textcolor{keywordtype}{void}\ populateConnectionsFromNets();}
\DoxyCodeLine{00058\ \ \ \ \ \textcolor{keywordtype}{void}\ prune(\mbox{\hyperlink{classPCBoard}{PCBoard}}\&);}
\DoxyCodeLine{00059\ \};}
\DoxyCodeLine{00060\ }
\DoxyCodeLine{00061\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ GYM\_PCB\_UTIL\_SUBSETS}}

\end{DoxyCode}
