\doxysection{Pin Class Reference}
\hypertarget{classPin}{}\label{classPin}\index{Pin@{Pin}}
Inheritance diagram for Pin\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classPin}
\end{center}
\end{figure}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classPin_aa36f1a6baadeeaab7b5c01a55d8f30b2}\label{classPin_aa36f1a6baadeeaab7b5c01a55d8f30b2} 
{\bfseries Pin} (\mbox{\hyperlink{classComponent}{Component}} \texorpdfstring{$\ast$}{*}, const std\+::string \&name)
\item 
\mbox{\hyperlink{classObject}{Object}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classPin_a1b02def4c9baf9702bcf8a5da9969762}{clone}} (\mbox{\hyperlink{classCloneEnv}{Clone\+Env}} \&) const override
\item 
\Hypertarget{classPin_a5bc8281efc61c97486da6efa6e86b23c}\label{classPin_a5bc8281efc61c97486da6efa6e86b23c} 
\mbox{\hyperlink{classComponent}{Component}} \texorpdfstring{$\ast$}{*} {\bfseries get\+Parent} () const
\item 
\Hypertarget{classPin_a8e73c265c280c1a0482f09f41cd04a0e}\label{classPin_a8e73c265c280c1a0482f09f41cd04a0e} 
bool {\bfseries has\+Net} () const
\item 
\Hypertarget{classPin_a88c98f799f63f9d783a333f0cc3079c4}\label{classPin_a88c98f799f63f9d783a333f0cc3079c4} 
\mbox{\hyperlink{classNet}{Net}} \texorpdfstring{$\ast$}{*} {\bfseries net} () const
\item 
\Hypertarget{classPin_a0ae1af7ad6dcefd933476a991adb40b0}\label{classPin_a0ae1af7ad6dcefd933476a991adb40b0} 
bool {\bfseries same\+Net\+As} (const \mbox{\hyperlink{classPin}{Pin}} \&T) const
\item 
\Hypertarget{classPin_a211e29dc8f9b24dca2b8322326d204ec}\label{classPin_a211e29dc8f9b24dca2b8322326d204ec} 
void {\bfseries set\+Net} (\mbox{\hyperlink{classNet}{Net}} \texorpdfstring{$\ast$}{*}net)
\item 
uint \mbox{\hyperlink{classPin_a48bbb1d21eeb24713ea42a46eed6074b}{get\+Start\+Layer\+For}} (const \mbox{\hyperlink{classConnection}{Connection}} \&) const
\item 
const Pin\+Compound \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classPin_a8572d814d6359da7f61860f1fa987660}{compound}} () const
\item 
\Hypertarget{classPin_ab1b0fdac51478e1e22ef2975c5e16cc9}\label{classPin_ab1b0fdac51478e1e22ef2975c5e16cc9} 
bool {\bfseries in\+Compound} (const \mbox{\hyperlink{classPin}{Pin}} \&) const
\item 
\Hypertarget{classPin_aa3b1ac3cb70c384e8b00e8472b75b51d}\label{classPin_aa3b1ac3cb70c384e8b00e8472b75b51d} 
void {\bfseries set\+Compound} (\mbox{\hyperlink{classPin}{Pin}} \texorpdfstring{$\ast$}{*})
\item 
\Hypertarget{classPin_a3c4e591b893503b15b6e3de7f749e63e}\label{classPin_a3c4e591b893503b15b6e3de7f749e63e} 
uint {\bfseries num\+Connections} () const
\item 
\Hypertarget{classPin_abf6251a26b8075cf53f40120298b4e2e}\label{classPin_abf6251a26b8075cf53f40120298b4e2e} 
void {\bfseries add\+Connection} (\mbox{\hyperlink{classConnection}{Connection}} \texorpdfstring{$\ast$}{*}X)
\item 
\Hypertarget{classPin_af2653c320b2c2d0fa14e75249f104a7d}\label{classPin_af2653c320b2c2d0fa14e75249f104a7d} 
bool {\bfseries remove\+Connection} (\mbox{\hyperlink{classConnection}{Connection}} \texorpdfstring{$\ast$}{*}X, bool retain\+Net)
\item 
\Hypertarget{classPin_a230b4d3b5cd7087f585bbbdd832d15fd}\label{classPin_a230b4d3b5cd7087f585bbbdd832d15fd} 
const std\+::set$<$ \mbox{\hyperlink{classConnection}{Connection}} \texorpdfstring{$\ast$}{*} $>$ \& {\bfseries connections} () const
\item 
\Hypertarget{classPin_af28af6572583c7a72dccaa5767d7af17}\label{classPin_af28af6572583c7a72dccaa5767d7af17} 
\mbox{\hyperlink{classColor}{Color}} {\bfseries color\+Line} () const
\item 
\Hypertarget{classPin_ae5160ad8348dc3a24523de42eec62c14}\label{classPin_ae5160ad8348dc3a24523de42eec62c14} 
\mbox{\hyperlink{classColor}{Color}} {\bfseries color\+Fill} () const
\item 
std\+::string \mbox{\hyperlink{classPin_a75c23cad2bb8099b37354abfcb42abc3}{str}} () const override
\item 
Py\+Object \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{classPin_a494c9c793b5a44fecab86126e698e618}{get\+Py}} (uint depth) const override
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{classObject}{Object}}}
\begin{DoxyCompactItemize}
\item 
const std\+::string \& {\bfseries name} () const
\item 
std\+::string {\bfseries get\+Full\+Name} () const
\item 
uint {\bfseries id} () const
\item 
void {\bfseries set\+Id} (uint id)
\item 
bool {\bfseries has\+Parent} () const
\item 
\mbox{\hyperlink{classObject}{Object}} \texorpdfstring{$\ast$}{*} {\bfseries get\+Parent} () const
\item 
\mbox{\hyperlink{classObject}{Object}} \texorpdfstring{$\ast$}{*} {\bfseries get\+Child\+At} (const Point\+\_\+2 \&) const
\item 
const std\+::vector$<$ \mbox{\hyperlink{classObject}{Object}} \texorpdfstring{$\ast$}{*} $>$ \& {\bfseries get\+Children} () const
\item 
void {\bfseries add\+Child} (\mbox{\hyperlink{classObject}{Object}} \&)
\item 
uint {\bfseries num\+Children} () const
\item 
bool {\bfseries has\+Children} () const
\item 
void {\bfseries remove\+Child} (\mbox{\hyperlink{classObject}{Object}} \&)
\item 
const Point\+\_\+2 \& {\bfseries get\+Center} () const
\item 
\mbox{\hyperlink{classPoint__25}{Point\+\_\+25}} {\bfseries get\+Center25} () const
\begin{DoxyCompactList}\small\item\em \doxylink{classLayer}{Layer} is set to max(Layer\+Min, parent.\+Layer\+Min) to account for bottom layer thru-\/hole pins. \end{DoxyCompactList}\item 
const Bbox\+\_\+2 {\bfseries get\+Bbox} () const
\item 
virtual void \mbox{\hyperlink{classObject_aeec197d77027b98d962afe24c6dfe527}{add\+Occluded\+Object}} (\mbox{\hyperlink{classObject}{Object}} \&)
\item 
void {\bfseries translate} (const Vector\+\_\+2 \&)
\item 
void {\bfseries transform} (const Aff\+\_\+transformation\+\_\+2 \&)
\item 
void {\bfseries rotate\+Around} (const Point\+\_\+2 \&ref\+Point, Real angle\+Radians)
\item 
bool {\bfseries is\+On\+Layer} (int z) const
\item 
int {\bfseries min\+Layer} () const
\item 
int {\bfseries max\+Layer} () const
\item 
void {\bfseries set\+Layer} (int)
\item 
void {\bfseries set\+Layer\+Range} (int, int)
\item 
int {\bfseries get\+Single\+Layer} () const
\item 
bool {\bfseries shares\+Layer} (const \mbox{\hyperlink{classObject}{Object}} \&) const
\item 
Real {\bfseries get\+Clearance} () const
\item 
void {\bfseries set\+Clearance} (Real c)
\item 
\mbox{\hyperlink{classAShape}{AShape}} \texorpdfstring{$\ast$}{*} {\bfseries get\+Shape} () const
\item 
void {\bfseries set\+Shape} (const Circle\+\_\+2 \&)
\item 
void {\bfseries set\+Shape} (const Triangle\+\_\+2 \&)
\item 
void {\bfseries set\+Shape} (const Iso\+\_\+rectangle\+\_\+2 \&)
\item 
void {\bfseries set\+Shape} (const Polygon\+\_\+2 \&)
\item 
void {\bfseries set\+Shape} (const \mbox{\hyperlink{classWideSegment__25}{Wide\+Segment\+\_\+25}} \&, Real angle\+Tolerance=0.\+0)
\item 
void {\bfseries set\+Shape} (Polygon\+\_\+2 \&\&)
\item 
bool {\bfseries can\+Route\+Inside} () const
\item 
void {\bfseries set\+Can\+Route\+Inside} (bool b)
\item 
bool {\bfseries can\+Place\+Vias\+Inside} () const
\item 
void {\bfseries set\+Can\+Place\+Vias\+Inside} (bool b)
\item 
bool {\bfseries is\+Selected} () const
\item 
void {\bfseries set\+Selected} (bool b)
\item 
void {\bfseries set\+Selected} (bool b, uint recursion)
\item 
bool {\bfseries violates\+Clearance} (const \mbox{\hyperlink{classVia}{Via}} \&, Real clearance, \mbox{\hyperlink{classPoint__25}{Point\+\_\+25}} \texorpdfstring{$\ast$}{*}=0) const
\item 
bool {\bfseries violates\+Clearance} (const \mbox{\hyperlink{classWideSegment__25}{Wide\+Segment\+\_\+25}} \&, Real clearance, \mbox{\hyperlink{classPoint__25}{Point\+\_\+25}} \texorpdfstring{$\ast$}{*}=0) const
\item 
Real {\bfseries distance\+To} (const Point\+\_\+2 \&v) const
\item 
bool {\bfseries contains2D} (const Point\+\_\+2 \&v) const
\item 
bool {\bfseries contains3D} (const \mbox{\hyperlink{classPoint__25}{Point\+\_\+25}} \&v) const
\item 
bool {\bfseries is\+Inside\+Bbox} (const Point\+\_\+2 \&v) const
\item 
bool {\bfseries is\+Inside\+Bbox} (const Point\+\_\+2 \&v, int zmin, int zmax) const
\item 
bool {\bfseries intersects} (const Bbox\+\_\+2 \&B) const
\item 
bool {\bfseries intersects} (const \mbox{\hyperlink{classWideSegment__25}{Wide\+Segment\+\_\+25}} \&s) const
\item 
bool {\bfseries intersects} (const \mbox{\hyperlink{classObject}{Object}} \&A) const
\item 
bool {\bfseries bbox\+Test} (const Bbox\+\_\+2 \&B)
\item 
bool {\bfseries bbox\+Test} (const Bbox\+\_\+2 \&B, int z0, int z1=-\/1)
\item 
bool {\bfseries is\+Container\+Of} (const \mbox{\hyperlink{classObject}{Object}} \&) const
\item 
void {\bfseries copy\+From} (\mbox{\hyperlink{classCloneEnv}{Clone\+Env}} \&, const \mbox{\hyperlink{classObject}{Object}} \&)
\item 
{\footnotesize template$<$typename T$>$ }\\bool {\bfseries is\+\_\+a} () const
\item 
{\footnotesize template$<$typename T$>$ }\\const T \texorpdfstring{$\ast$}{*} {\bfseries as} () const
\item 
{\footnotesize template$<$typename T$>$ }\\T \texorpdfstring{$\ast$}{*} {\bfseries as} ()
\end{DoxyCompactItemize}
\doxysubsubsection*{Additional Inherited Members}
\doxysubsection*{Protected Member Functions inherited from \mbox{\hyperlink{classObject}{Object}}}
\begin{DoxyCompactItemize}
\item 
{\bfseries Object} (\mbox{\hyperlink{classObject}{Object}} \texorpdfstring{$\ast$}{*}parent, const std\+::string \&name)
\end{DoxyCompactItemize}
\doxysubsection*{Protected Attributes inherited from \mbox{\hyperlink{classObject}{Object}}}
\begin{DoxyCompactItemize}
\item 
std\+::unique\+\_\+ptr$<$ \mbox{\hyperlink{classAShape}{AShape}} $>$ {\bfseries m\+Shape}
\item 
Point\+\_\+2 {\bfseries m\+Center}
\item 
\mbox{\hyperlink{classObject}{Object}} \texorpdfstring{$\ast$}{*}const {\bfseries m\+Parent}
\item 
std\+::vector$<$ \mbox{\hyperlink{classObject}{Object}} \texorpdfstring{$\ast$}{*} $>$ {\bfseries m\+Children}
\item 
std\+::string {\bfseries m\+Name}
\item 
uint {\bfseries m\+Id}
\item 
uint {\bfseries m\+Child\+Index} \{std\+::numeric\+\_\+limits$<$uint$>$\+::max()\}
\item 
int {\bfseries m\+Layer\+Range} \mbox{[}2\mbox{]} \{-\/1,-\/1\}
\item 
Real {\bfseries m\+Clearance} \{0.\+0\}
\item 
bool {\bfseries m\+Can\+Route\+Inside} \{false\}
\item 
bool {\bfseries m\+Can\+Place\+Vias\+Inside} \{true\}
\item 
bool {\bfseries m\+Selection\+Flag} \{false\}
\end{DoxyCompactItemize}


\label{doc-func-members}
\Hypertarget{classPin_doc-func-members}
\doxysubsection{Member Function Documentation}
\Hypertarget{classPin_a1b02def4c9baf9702bcf8a5da9969762}\index{Pin@{Pin}!clone@{clone}}
\index{clone@{clone}!Pin@{Pin}}
\doxysubsubsection{\texorpdfstring{clone()}{clone()}}
{\footnotesize\ttfamily \label{classPin_a1b02def4c9baf9702bcf8a5da9969762} 
\mbox{\hyperlink{classObject}{Object}} \texorpdfstring{$\ast$}{*} Pin\+::clone (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classCloneEnv}{Clone\+Env}} \&}]{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Reimplemented from \mbox{\hyperlink{classObject}{Object}}.

\Hypertarget{classPin_a8572d814d6359da7f61860f1fa987660}\index{Pin@{Pin}!compound@{compound}}
\index{compound@{compound}!Pin@{Pin}}
\doxysubsubsection{\texorpdfstring{compound()}{compound()}}
{\footnotesize\ttfamily \label{classPin_a8572d814d6359da7f61860f1fa987660} 
const Pin\+Compound \texorpdfstring{$\ast$}{*} Pin\+::compound (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\doxylink{classPin}{Pin} compounds are a hack to support pins with discontiguous shapes. \Hypertarget{classPin_a494c9c793b5a44fecab86126e698e618}\index{Pin@{Pin}!getPy@{getPy}}
\index{getPy@{getPy}!Pin@{Pin}}
\doxysubsubsection{\texorpdfstring{getPy()}{getPy()}}
{\footnotesize\ttfamily \label{classPin_a494c9c793b5a44fecab86126e698e618} 
Py\+Object \texorpdfstring{$\ast$}{*} Pin\+::get\+Py (\begin{DoxyParamCaption}\item[{uint}]{depth}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Reimplemented from \mbox{\hyperlink{classObject}{Object}}.

\Hypertarget{classPin_a48bbb1d21eeb24713ea42a46eed6074b}\index{Pin@{Pin}!getStartLayerFor@{getStartLayerFor}}
\index{getStartLayerFor@{getStartLayerFor}!Pin@{Pin}}
\doxysubsubsection{\texorpdfstring{getStartLayerFor()}{getStartLayerFor()}}
{\footnotesize\ttfamily \label{classPin_a48bbb1d21eeb24713ea42a46eed6074b} 
uint Pin\+::get\+Start\+Layer\+For (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classConnection}{Connection}} \&}]{}{}\end{DoxyParamCaption}) const}

Get any layer of the pin that is allowed in the connection\textquotesingle{}s layer mask. If there is no overlap, returns min\+Layer(). \Hypertarget{classPin_a75c23cad2bb8099b37354abfcb42abc3}\index{Pin@{Pin}!str@{str}}
\index{str@{str}!Pin@{Pin}}
\doxysubsubsection{\texorpdfstring{str()}{str()}}
{\footnotesize\ttfamily \label{classPin_a75c23cad2bb8099b37354abfcb42abc3} 
std\+::string Pin\+::str (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Reimplemented from \mbox{\hyperlink{classObject}{Object}}.



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