\doxysection{Rats\+Nest.\+hpp}
\hypertarget{RatsNest_8hpp_source}{}\label{RatsNest_8hpp_source}\index{/home/chr/devel/PhD/Environment/pub/PCBEnv/pcbenv/cxx/UI/RatsNest.hpp@{/home/chr/devel/PhD/Environment/pub/PCBEnv/pcbenv/cxx/UI/RatsNest.hpp}}

\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ }
\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#ifndef\ GYM\_PCB\_UI\_RATSNEST\_H}}
\DoxyCodeLine{00003\ \textcolor{preprocessor}{\#define\ GYM\_PCB\_UI\_RATSNEST\_H}}
\DoxyCodeLine{00004\ }
\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}GLContext.hpp"{}}}
\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ "{}Color.hpp"{}}}
\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#include\ <map>}}
\DoxyCodeLine{00008\ \textcolor{preprocessor}{\#include\ <vector>}}
\DoxyCodeLine{00009\ }
\DoxyCodeLine{00010\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classConnection}{Connection}};}
\DoxyCodeLine{00011\ \textcolor{keyword}{class\ }Bus;}
\DoxyCodeLine{00012\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classPCBoard}{PCBoard}};}
\DoxyCodeLine{00013\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classCamera}{Camera}};}
\DoxyCodeLine{00014\ }
\DoxyCodeLine{00015\ \textcolor{keyword}{class\ }RatsNest}
\DoxyCodeLine{00016\ \{}
\DoxyCodeLine{00017\ \textcolor{keyword}{public}:}
\DoxyCodeLine{00018\ \ \ \ \ RatsNest(\textcolor{keyword}{const}\ \mbox{\hyperlink{classPCBoard}{PCBoard}}\&);}
\DoxyCodeLine{00019\ \ \ \ \ \string~RatsNest();}
\DoxyCodeLine{00020\ \ \ \ \ \textcolor{keywordtype}{void}\ setHL(\textcolor{keyword}{const}\ std::vector<Connection\ *>\ *);}
\DoxyCodeLine{00021\ \ \ \ \ \textcolor{keywordtype}{void}\ update();}
\DoxyCodeLine{00022\ \ \ \ \ \textcolor{keywordtype}{void}\ updateHL();}
\DoxyCodeLine{00023\ \ \ \ \ \textcolor{keywordtype}{void}\ draw(\textcolor{keyword}{const}\ \mbox{\hyperlink{classCamera}{Camera}}\&);}
\DoxyCodeLine{00024\ \ \ \ \ \textcolor{keywordtype}{void}\ setLineWidth(\textcolor{keywordtype}{float}\ w)\ \{\ mLineWidth\ =\ w;\ \}}
\DoxyCodeLine{00025\ \ \ \ \ \textcolor{keywordtype}{float}\ getLayerAlpha(uint\ z)\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ mLayerAlpha.at(z);\ \}}
\DoxyCodeLine{00026\ \ \ \ \ \textcolor{keywordtype}{void}\ setLayerAlpha(uint\ z,\ \textcolor{keywordtype}{float}\ a)\ \{\ mLayerAlpha.at(z)\ =\ a;\ \}}
\DoxyCodeLine{00027\ \ \ \ \ \textcolor{keywordtype}{void}\ setColorHL(\mbox{\hyperlink{classColor}{Color}}\ c);}
\DoxyCodeLine{00028\ \ \ \ \ \textcolor{keywordtype}{bool}\ allVisible()\textcolor{keyword}{\ const\ }\{\ \textcolor{keywordflow}{return}\ mAllVisible;\ \}}
\DoxyCodeLine{00029\ \ \ \ \ \textcolor{keywordtype}{void}\ setAllVisible(\textcolor{keywordtype}{bool}\ b)\ \{\ mAllVisible\ =\ b;\ \}}
\DoxyCodeLine{00030\ \textcolor{keyword}{private}:}
\DoxyCodeLine{00031\ \ \ \ \ \textcolor{keyword}{const}\ \mbox{\hyperlink{classPCBoard}{PCBoard}}\ \&mPCB;}
\DoxyCodeLine{00032\ \ \ \ \ uint\ mNumLines\{0\};}
\DoxyCodeLine{00033\ \ \ \ \ \textcolor{keywordtype}{float}\ mLineWidth\{1.0f\};}
\DoxyCodeLine{00034\ \ \ \ \ GLfloat\ mColorVars[2][2][4];}
\DoxyCodeLine{00035\ \ \ \ \ \textcolor{keywordtype}{bool}\ mAllVisible\{\textcolor{keyword}{true}\};}
\DoxyCodeLine{00036\ \ \ \ \ std::map<const\ Connection\ *,\ std::pair<uint16\_t,\ uint16\_t>>\ mConn2Index;}
\DoxyCodeLine{00037\ \ \ \ \ std::vector<uint16\_t>\ mIndicesHL;}
\DoxyCodeLine{00038\ \ \ \ \ std::vector<const\ Connection\ *>\ mHLConns;}
\DoxyCodeLine{00039\ \ \ \ \ std::vector<float>\ mLayerAlpha;}
\DoxyCodeLine{00040\ }
\DoxyCodeLine{00041\ \ \ \ \ GLuint\ mVBO\{0\};}
\DoxyCodeLine{00042\ \ \ \ \ GLuint\ mVAO\{0\};}
\DoxyCodeLine{00043\ }
\DoxyCodeLine{00044\ \ \ \ \ \textcolor{keyword}{static}\ GLuint\ sVP,\ sFP,\ sPP;}
\DoxyCodeLine{00045\ \ \ \ \ \textcolor{keyword}{static}\ GLint\ sUniformColors;}
\DoxyCodeLine{00046\ }
\DoxyCodeLine{00047\ \ \ \ \ \textcolor{keywordtype}{bool}\ shouldAdd(\textcolor{keyword}{const}\ \mbox{\hyperlink{classConnection}{Connection}}\&)\ \textcolor{keyword}{const};}
\DoxyCodeLine{00048\ \ \ \ \ \textcolor{keywordtype}{float}\ getLayerAlpha(\textcolor{keyword}{const}\ \mbox{\hyperlink{classPin}{Pin}}\ *)\ \textcolor{keyword}{const};}
\DoxyCodeLine{00049\ }
\DoxyCodeLine{00050\ \ \ \ \ \textcolor{keywordtype}{void}\ createVAO();}
\DoxyCodeLine{00051\ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ createShaders();}
\DoxyCodeLine{00052\ \};}
\DoxyCodeLine{00053\ }
\DoxyCodeLine{00054\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ GYM\_PCB\_UI\_RATSNEST\_H}}

\end{DoxyCode}
