\hypertarget{classHurricane_1_1Layer}{}\section{Hurricane\+:\+:Layer Class Reference}
\label{classHurricane_1_1Layer}\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}


\mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} description ({\bfseries A\+PI})  




Inheritance diagram for Hurricane\+:\+:Layer\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classHurricane_1_1Layer__inherit__graph}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef Hurricane\+::\+Mask$<$ unsigned long long $>$ \mbox{\hyperlink{classHurricane_1_1Layer_af5277c670637bd5d910237e7afe01a91}{Mask}}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classHurricane_1_1Technology}{Technology}} $\ast$ \mbox{\hyperlink{classHurricane_1_1Layer_ae506b17bd7a245de622f8a8e9947629b}{get\+Technology}} () const
\item 
const \mbox{\hyperlink{classHurricane_1_1Name}{Name}} \& \mbox{\hyperlink{classHurricane_1_1Layer_a3dc54f6efc60fddb8529599caa6b0f1f}{get\+Name}} () const
\item 
const \mbox{\hyperlink{classHurricane_1_1Layer_af5277c670637bd5d910237e7afe01a91}{Mask}} \& \mbox{\hyperlink{classHurricane_1_1Layer_a29b22c3b59cc24bf82449ad6c068ff1f}{get\+Mask}} () const
\item 
const \mbox{\hyperlink{classHurricane_1_1Layer_af5277c670637bd5d910237e7afe01a91}{Mask}} \& \mbox{\hyperlink{classHurricane_1_1Layer_af009bbd89a8e8260122b7244bfa10349}{get\+Extract\+Mask}} () const
\item 
const \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}} \& \mbox{\hyperlink{classHurricane_1_1Layer_afed9a488bf20daaeed18874f2b16268e}{get\+Minimal\+Size}} () const
\item 
const \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}} \& \mbox{\hyperlink{classHurricane_1_1Layer_a6a03f9f40ca855d33763497162414062}{get\+Minimal\+Spacing}} () const
\item 
virtual Basic\+Layers \mbox{\hyperlink{classHurricane_1_1Layer_a7e953c126a02952e3a0b0d32f37e2ae0}{get\+Basic\+Layers}} () const =0
\item 
virtual const \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$ \mbox{\hyperlink{classHurricane_1_1Layer_a5f7c43a29f3dd02a9ebccbcbf91d6727}{get\+Top}} () const
\item 
virtual const \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$ \mbox{\hyperlink{classHurricane_1_1Layer_a4dab4552a219d2d900ed0b1245dc6580}{get\+Bottom}} () const
\item 
virtual const \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$ \mbox{\hyperlink{classHurricane_1_1Layer_a69e76c09a56260169c4f5c145a35a47f}{get\+Opposite}} (const \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$) const
\item 
\mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$ \mbox{\hyperlink{classHurricane_1_1Layer_ac32eff2dc51180660fe9b4ce17cae42c}{get\+Metal\+Above}} (bool use\+Symbolic=true) const
\item 
\mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$ \mbox{\hyperlink{classHurricane_1_1Layer_a4bc8358f67c1a1a9b2581e4b3732108c}{get\+Metal\+Below}} (bool use\+Symbolic=true) const
\item 
\mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$ \mbox{\hyperlink{classHurricane_1_1Layer_ad9fca94fed1837e3e80e9b6445822b7d}{get\+Cut\+Above}} (bool use\+Symbolic=true) const
\item 
\mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$ \mbox{\hyperlink{classHurricane_1_1Layer_a983956c8127688390f978cc5bd0d768d}{get\+Cut\+Below}} (bool use\+Symbolic=true) const
\item 
bool \mbox{\hyperlink{classHurricane_1_1Layer_abbd13bf66cf75dd6445d0353987119f3}{above}} (const \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$layer) const
\item 
bool \mbox{\hyperlink{classHurricane_1_1Layer_a090f8697946f721351a626052af25027}{below}} (const \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$layer) const
\item 
bool \mbox{\hyperlink{classHurricane_1_1Layer_af63dd0a48e2a3514a1cdaccd4586bad8}{contains}} (const \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$layer) const
\item 
bool \mbox{\hyperlink{classHurricane_1_1Layer_adbea0bafaa87b033efdaa98bf2709182}{intersect}} (const \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$layer) const
\item 
void \mbox{\hyperlink{classHurricane_1_1Layer_ab93809f19bc360f58d35e91438ef2f87}{set\+Name}} (const \mbox{\hyperlink{classHurricane_1_1Name}{Name}} \&name)
\item 
void \mbox{\hyperlink{classHurricane_1_1Layer_a400d17fe999c0080bb50489948986fe7}{set\+Minimal\+Size}} (const \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}} \&minimal\+Size)
\item 
void \mbox{\hyperlink{classHurricane_1_1Layer_a81a8a24526e8535fba5a35cdcc194a8f}{set\+Minimal\+Spacing}} (const \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}} \&minimal\+Spacing)
\item 
virtual void \mbox{\hyperlink{classHurricane_1_1Layer_a04e9c983525d074508d7e10107c1c3c7}{set\+Enclosure}} (const \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}} $\ast$layer, \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}}, uint32\+\_\+t flags)
\item 
virtual void \mbox{\hyperlink{classHurricane_1_1Layer_a55c7b39e000442ea36a0774d26b7fbde}{set\+Extention\+Cap}} (const \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}} $\ast$layer, \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}})
\item 
virtual void \mbox{\hyperlink{classHurricane_1_1Layer_a7a6943dbcb3403aff34056cd5de00e66}{set\+Extention\+Width}} (const \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}} $\ast$layer, \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}})
\end{DoxyCompactItemize}


\subsection{Detailed Description}
\mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} description ({\bfseries A\+PI}) 

\hypertarget{classHurricane_1_1Layer_secLayerIntro}{}\subsection{Introduction}\label{classHurricane_1_1Layer_secLayerIntro}
Layers are divideds in three categories\+: 
\begin{DoxyItemize}
\item \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} \+: the base class, it supplies a generic interface sufficent for most manipulations. However, there are cases when a specific derived class may be needed. Mostly when assembling the symbolic layers. 
\item \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}} \+: they represents the real process layers (G\+DS ones). They possesses the following characteristics\+: 
\begin{DoxyItemize}
\item Each \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}} is associated with an unique bit in the \mbox{\hyperlink{classHurricane_1_1Layer_af5277c670637bd5d910237e7afe01a91}{Layer\+::\+Mask}}. This bit is used to find if a symbolic layer contains that particular \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}}. 
\item No dimension extentions. Database objects drawn with those layers have rectangles the exact size specified by the user. This is mandatory if you want to create a real layout (by opposition to a symbolic one). 
\item They have a {\bfseries material} field hinting the purpose of the layer (is a routing metal, a cut, a diffusion and so on). 
\item They may have an associated blockage layer (for routing layers). 
\end{DoxyItemize}
\item {\bfseries Symbolic Layers} \+: used to draw the various components of a symbolic layout. They are made of a list of Basic\+Layers and how to extend their dimensions from the user specified sizes. 
\begin{DoxyItemize}
\item \mbox{\hyperlink{classHurricane_1_1RegularLayer}{Regular\+Layer}} \+: contains one \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}}, use for wires. 
\item \mbox{\hyperlink{classHurricane_1_1ViaLayer}{Via\+Layer}} \+: contains three \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}}, for contact between metal layers. The Basic\+Layers must be of {\ttfamily }(metal,cut,metal) materials. 
\item \mbox{\hyperlink{classHurricane_1_1ContactLayer}{Contact\+Layer}} \+: contains four or five Basic\+Layers, for contact towards active layers or transistor gates. The fifth optional parameter is the well. Materials of the components must be of type {\ttfamily }(metal,cut,active,diffusion\mbox{[},well\mbox{]}) 
\item \mbox{\hyperlink{classHurricane_1_1DiffusionLayer}{Diffusion\+Layer}} \+: contains three \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}}, for diffusion area. Materials of the components must be of type {\ttfamily }(active,diffusion,well). 
\item \mbox{\hyperlink{classHurricane_1_1TransistorLayer}{Transistor\+Layer}} \+: contains three to four layers, for representing digital transistors. Materials are of type \+: {\ttfamily }(gate,active,diffusion,well). 
\end{DoxyItemize}
\end{DoxyItemize}

Like for the \mbox{\hyperlink{classHurricane_1_1Technology}{Technology}} object, a layer must not be deleted, else all components located on it will have a dangling pointer to an deleted object ...\hypertarget{classHurricane_1_1Layer_secBasicLayerOrder}{}\subsubsection{Basic\+Layer Creation Ordering}\label{classHurricane_1_1Layer_secBasicLayerOrder}
The creation order is significant regarding the metal connectivity. The metal \& cut layers must be created in alternately fashion, for example\+: \begin{center} \tabulinesep=1mm
\begin{longtabu} spread 0pt [c]{*{3}{|X[-1]}|}
\hline
\rowcolor{\tableheadbgcolor}\textbf{ \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}}}&\textbf{ Material}&\textbf{ \mbox{\hyperlink{classHurricane_1_1Layer_af5277c670637bd5d910237e7afe01a91}{Layer\+::\+Mask}} }\\\cline{1-3}
\endfirsthead
\hline
\endfoot
\hline
\rowcolor{\tableheadbgcolor}\textbf{ \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}}}&\textbf{ Material}&\textbf{ \mbox{\hyperlink{classHurricane_1_1Layer_af5277c670637bd5d910237e7afe01a91}{Layer\+::\+Mask}} }\\\cline{1-3}
\endhead
{\ttfamily cut0} &\textbf{ {\ttfamily cut} }&\textbf{ {\ttfamily 0x00000010} }\\\cline{1-3}
{\ttfamily metal1} &\textbf{ {\ttfamily metal} }&\textbf{ {\ttfamily 0x00000020} }\\\cline{1-3}
{\ttfamily cut1} &\textbf{ {\ttfamily cut} }&\textbf{ {\ttfamily 0x00000040} }\\\cline{1-3}
{\ttfamily metal2} &\textbf{ {\ttfamily metal} }&\textbf{ {\ttfamily 0x00000080} }\\\cline{1-3}
{\ttfamily cut2} &\textbf{ {\ttfamily cut} }&\textbf{ {\ttfamily 0x00000100} }\\\cline{1-3}
{\ttfamily metal3} &\textbf{ {\ttfamily metal} }&\textbf{ {\ttfamily 0x00000200} }\\\cline{1-3}
\end{longtabu}
\end{center} \hypertarget{classHurricane_1_1Layer_secLayerLookup}{}\subsubsection{Looking Up a Layer from a Mask}\label{classHurricane_1_1Layer_secLayerLookup}
A \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}} is uniquely associated to a bit in the \mbox{\hyperlink{classHurricane_1_1Layer_af5277c670637bd5d910237e7afe01a91}{Layer\+::\+Mask}}. But, multiple symbolic layers could be built over that \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}}. In that case all those layers will have the same mask. For the mask lookup functions not to be confused, we introduce the concept of {\bfseries working layer} in all the symbolic layers with the same mask, this is the one that will be returned. 

\subsection{Member Typedef Documentation}
\mbox{\Hypertarget{classHurricane_1_1Layer_af5277c670637bd5d910237e7afe01a91}\label{classHurricane_1_1Layer_af5277c670637bd5d910237e7afe01a91}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!Mask@{Mask}}
\index{Mask@{Mask}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{Mask}{Mask}}
{\footnotesize\ttfamily \mbox{\hyperlink{classHurricane_1_1Layer_af5277c670637bd5d910237e7afe01a91}{Hurricane\+::\+Layer\+::\+Mask}}}

This type represents a mask bit field characterising efficiently the constituents of any kind of layer. It associates to each basic layer a bit and to each symbolic layer the union of the bits corresponding to its basic layers. 

\subsection{Member Function Documentation}
\mbox{\Hypertarget{classHurricane_1_1Layer_ae506b17bd7a245de622f8a8e9947629b}\label{classHurricane_1_1Layer_ae506b17bd7a245de622f8a8e9947629b}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!get\+Technology@{get\+Technology}}
\index{get\+Technology@{get\+Technology}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{get\+Technology()}{getTechnology()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classHurricane_1_1Technology}{Technology}} $\ast$ Hurricane\+::\+Layer\+::get\+Technology (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} the technolgy owning the layer. \mbox{\Hypertarget{classHurricane_1_1Layer_a3dc54f6efc60fddb8529599caa6b0f1f}\label{classHurricane_1_1Layer_a3dc54f6efc60fddb8529599caa6b0f1f}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!get\+Name@{get\+Name}}
\index{get\+Name@{get\+Name}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{get\+Name()}{getName()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{classHurricane_1_1Name}{Name}} \& Hurricane\+::\+Layer\+::get\+Name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} the name of the layer. \mbox{\Hypertarget{classHurricane_1_1Layer_a29b22c3b59cc24bf82449ad6c068ff1f}\label{classHurricane_1_1Layer_a29b22c3b59cc24bf82449ad6c068ff1f}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!get\+Mask@{get\+Mask}}
\index{get\+Mask@{get\+Mask}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{get\+Mask()}{getMask()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{classHurricane_1_1Layer_af5277c670637bd5d910237e7afe01a91}{Layer\+::\+Mask}} \& Hurricane\+::\+Layer\+::get\+Mask (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} the mask associated to the layer. 

Referenced by above(), below(), and Hurricane\+::\+Technology\+::is\+Metal().

\mbox{\Hypertarget{classHurricane_1_1Layer_af009bbd89a8e8260122b7244bfa10349}\label{classHurricane_1_1Layer_af009bbd89a8e8260122b7244bfa10349}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!get\+Extract\+Mask@{get\+Extract\+Mask}}
\index{get\+Extract\+Mask@{get\+Extract\+Mask}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{get\+Extract\+Mask()}{getExtractMask()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{classHurricane_1_1Layer_af5277c670637bd5d910237e7afe01a91}{Layer\+::\+Mask}} \& Hurricane\+::\+Layer\+::get\+Extract\+Mask (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} the mask used for extraction.

Two differents basic layers have different masks but may have same extraction masks (ie CP layer which represent poly and C\+PG which represent poly used to realize transistor gates). \mbox{\Hypertarget{classHurricane_1_1Layer_afed9a488bf20daaeed18874f2b16268e}\label{classHurricane_1_1Layer_afed9a488bf20daaeed18874f2b16268e}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!get\+Minimal\+Size@{get\+Minimal\+Size}}
\index{get\+Minimal\+Size@{get\+Minimal\+Size}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{get\+Minimal\+Size()}{getMinimalSize()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}} \& Hurricane\+::\+Layer\+::get\+Minimal\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} the minimal size allowed for a rectangular layout pad on this layer. \mbox{\Hypertarget{classHurricane_1_1Layer_a6a03f9f40ca855d33763497162414062}\label{classHurricane_1_1Layer_a6a03f9f40ca855d33763497162414062}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!get\+Minimal\+Spacing@{get\+Minimal\+Spacing}}
\index{get\+Minimal\+Spacing@{get\+Minimal\+Spacing}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{get\+Minimal\+Spacing()}{getMinimalSpacing()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}} \& Hurricane\+::\+Layer\+::get\+Minimal\+Spacing (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} the minimal spacing between two pads on this layer. \mbox{\Hypertarget{classHurricane_1_1Layer_a7e953c126a02952e3a0b0d32f37e2ae0}\label{classHurricane_1_1Layer_a7e953c126a02952e3a0b0d32f37e2ae0}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!get\+Basic\+Layers@{get\+Basic\+Layers}}
\index{get\+Basic\+Layers@{get\+Basic\+Layers}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{get\+Basic\+Layers()}{getBasicLayers()}}
{\footnotesize\ttfamily Basic\+Layers Hurricane\+::\+Layer\+::get\+Basic\+Layers (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

{\bfseries Returns\+:} the collection of basic layers within this layer.

\begin{DoxyParagraph}{Remark\+: For a basic layer the collection contains this one only. }

\end{DoxyParagraph}
\mbox{\Hypertarget{classHurricane_1_1Layer_a5f7c43a29f3dd02a9ebccbcbf91d6727}\label{classHurricane_1_1Layer_a5f7c43a29f3dd02a9ebccbcbf91d6727}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!get\+Top@{get\+Top}}
\index{get\+Top@{get\+Top}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{get\+Top()}{getTop()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$ Hurricane\+::\+Layer\+::get\+Top (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}

{\bfseries Returns\+:} The uppermost layer of that layer. On \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}}, it is always the layer itself. In symbolic layers the meaning depends on the object structure.

\begin{DoxyParagraph}{Remark\+: In symbolic layers, top \& bottom are not related to the Layer\+:\+:Mask}
but to the {\itshape structuration} of the layer. It is advisable that the designer create layers and symbolic layers in way that ensure the top layer is indeed the one with the greater mask. 
\end{DoxyParagraph}
\mbox{\Hypertarget{classHurricane_1_1Layer_a4dab4552a219d2d900ed0b1245dc6580}\label{classHurricane_1_1Layer_a4dab4552a219d2d900ed0b1245dc6580}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!get\+Bottom@{get\+Bottom}}
\index{get\+Bottom@{get\+Bottom}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{get\+Bottom()}{getBottom()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$ Hurricane\+::\+Layer\+::get\+Bottom (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}

{\bfseries Returns\+:} The lowermost layer of that layer. On \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}}, it is always the layer itself. In symbolic layers the meaning depends on the object structure. \mbox{\Hypertarget{classHurricane_1_1Layer_a69e76c09a56260169c4f5c145a35a47f}\label{classHurricane_1_1Layer_a69e76c09a56260169c4f5c145a35a47f}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!get\+Opposite@{get\+Opposite}}
\index{get\+Opposite@{get\+Opposite}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{get\+Opposite()}{getOpposite()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$ Hurricane\+::\+Layer\+::get\+Opposite (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$}]{source }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}

{\bfseries Returns\+:} This method is only meaningful for \mbox{\hyperlink{classHurricane_1_1ViaLayer}{Via\+Layer}}. It returns the metal \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} opposite to the one given in arguments. \mbox{\Hypertarget{classHurricane_1_1Layer_ac32eff2dc51180660fe9b4ce17cae42c}\label{classHurricane_1_1Layer_ac32eff2dc51180660fe9b4ce17cae42c}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!get\+Metal\+Above@{get\+Metal\+Above}}
\index{get\+Metal\+Above@{get\+Metal\+Above}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{get\+Metal\+Above()}{getMetalAbove()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$ Hurricane\+::\+Layer\+::get\+Metal\+Above (\begin{DoxyParamCaption}\item[{bool}]{use\+Symbolic = {\ttfamily true} }\end{DoxyParamCaption}) const}

{\bfseries Returns\+:} The metal {\itshape working layer} whose mask is immediatly above this one. \mbox{\Hypertarget{classHurricane_1_1Layer_a4bc8358f67c1a1a9b2581e4b3732108c}\label{classHurricane_1_1Layer_a4bc8358f67c1a1a9b2581e4b3732108c}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!get\+Metal\+Below@{get\+Metal\+Below}}
\index{get\+Metal\+Below@{get\+Metal\+Below}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{get\+Metal\+Below()}{getMetalBelow()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$ Hurricane\+::\+Layer\+::get\+Metal\+Below (\begin{DoxyParamCaption}\item[{bool}]{use\+Symbolic = {\ttfamily true} }\end{DoxyParamCaption}) const}

{\bfseries Returns\+:} The metal {\itshape working layer} whose mask is immediatly below this one. \mbox{\Hypertarget{classHurricane_1_1Layer_ad9fca94fed1837e3e80e9b6445822b7d}\label{classHurricane_1_1Layer_ad9fca94fed1837e3e80e9b6445822b7d}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!get\+Cut\+Above@{get\+Cut\+Above}}
\index{get\+Cut\+Above@{get\+Cut\+Above}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{get\+Cut\+Above()}{getCutAbove()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$ Hurricane\+::\+Layer\+::get\+Cut\+Above (\begin{DoxyParamCaption}\item[{bool}]{use\+Symbolic = {\ttfamily true} }\end{DoxyParamCaption}) const}

{\bfseries Returns\+:} The cut {\itshape working layer} whose mask is immediatly above this one. \mbox{\Hypertarget{classHurricane_1_1Layer_a983956c8127688390f978cc5bd0d768d}\label{classHurricane_1_1Layer_a983956c8127688390f978cc5bd0d768d}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!get\+Cut\+Below@{get\+Cut\+Below}}
\index{get\+Cut\+Below@{get\+Cut\+Below}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{get\+Cut\+Below()}{getCutBelow()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$ Hurricane\+::\+Layer\+::get\+Cut\+Below (\begin{DoxyParamCaption}\item[{bool}]{use\+Symbolic = {\ttfamily true} }\end{DoxyParamCaption}) const}

{\bfseries Returns\+:} The cut {\itshape working layer} whose mask is immediatly below this one. \mbox{\Hypertarget{classHurricane_1_1Layer_abbd13bf66cf75dd6445d0353987119f3}\label{classHurricane_1_1Layer_abbd13bf66cf75dd6445d0353987119f3}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!above@{above}}
\index{above@{above}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{above()}{above()}}
{\footnotesize\ttfamily bool Hurricane\+::\+Layer\+::above (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$}]{layer }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} {\bfseries true}, if {\ttfamily layer} is above this one. 

References get\+Mask().

\mbox{\Hypertarget{classHurricane_1_1Layer_a090f8697946f721351a626052af25027}\label{classHurricane_1_1Layer_a090f8697946f721351a626052af25027}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!below@{below}}
\index{below@{below}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{below()}{below()}}
{\footnotesize\ttfamily bool Hurricane\+::\+Layer\+::below (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$}]{layer }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

{\bfseries Returns\+:} {\bfseries true}, if {\ttfamily layer} is below this one. 

References get\+Mask().

\mbox{\Hypertarget{classHurricane_1_1Layer_af63dd0a48e2a3514a1cdaccd4586bad8}\label{classHurricane_1_1Layer_af63dd0a48e2a3514a1cdaccd4586bad8}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!contains@{contains}}
\index{contains@{contains}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{contains()}{contains()}}
{\footnotesize\ttfamily bool Hurricane\+::\+Layer\+::contains (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$}]{layer }\end{DoxyParamCaption}) const}

{\bfseries Returns\+:} {\bfseries true} if the {\ttfamily $<$layer$>$} is completely included in the layer {\ttfamily $<$this$>$} (that is if the basic layers of {\ttfamily $<$layer$>$} are a sub-\/set of the basic layers of {\ttfamily $<$this$>$}), else {\bfseries false}. \mbox{\Hypertarget{classHurricane_1_1Layer_adbea0bafaa87b033efdaa98bf2709182}\label{classHurricane_1_1Layer_adbea0bafaa87b033efdaa98bf2709182}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!intersect@{intersect}}
\index{intersect@{intersect}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{intersect()}{intersect()}}
{\footnotesize\ttfamily bool Hurricane\+::\+Layer\+::intersect (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classHurricane_1_1Layer}{Layer}} $\ast$}]{layer }\end{DoxyParamCaption}) const}

{\bfseries Returns\+:} {\bfseries true} if the {\ttfamily $<$layer$>$} and the layer {\ttfamily $<$this$>$} have at least a common basic layer, else {\bfseries false}. \mbox{\Hypertarget{classHurricane_1_1Layer_ab93809f19bc360f58d35e91438ef2f87}\label{classHurricane_1_1Layer_ab93809f19bc360f58d35e91438ef2f87}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!set\+Name@{set\+Name}}
\index{set\+Name@{set\+Name}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{set\+Name()}{setName()}}
{\footnotesize\ttfamily void Hurricane\+::\+Layer\+::set\+Name (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classHurricane_1_1Name}{Name}} \&}]{name }\end{DoxyParamCaption})}

sets or changes the layer name.

\begin{DoxyParagraph}{Remark\+: An exception is thrown if the name is empty or if there is an }
other layer with that name. 
\end{DoxyParagraph}
\mbox{\Hypertarget{classHurricane_1_1Layer_a400d17fe999c0080bb50489948986fe7}\label{classHurricane_1_1Layer_a400d17fe999c0080bb50489948986fe7}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!set\+Minimal\+Size@{set\+Minimal\+Size}}
\index{set\+Minimal\+Size@{set\+Minimal\+Size}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{set\+Minimal\+Size()}{setMinimalSize()}}
{\footnotesize\ttfamily void Hurricane\+::\+Layer\+::set\+Minimal\+Size (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}} \&}]{minimal\+Size }\end{DoxyParamCaption})}

Sets the minimal size of a pad on this layer. \mbox{\Hypertarget{classHurricane_1_1Layer_a81a8a24526e8535fba5a35cdcc194a8f}\label{classHurricane_1_1Layer_a81a8a24526e8535fba5a35cdcc194a8f}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!set\+Minimal\+Spacing@{set\+Minimal\+Spacing}}
\index{set\+Minimal\+Spacing@{set\+Minimal\+Spacing}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{set\+Minimal\+Spacing()}{setMinimalSpacing()}}
{\footnotesize\ttfamily void Hurricane\+::\+Layer\+::set\+Minimal\+Spacing (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}} \&}]{minimal\+Spacing }\end{DoxyParamCaption})}

Sets the minimal spacing between two pads on this layer. \mbox{\Hypertarget{classHurricane_1_1Layer_a04e9c983525d074508d7e10107c1c3c7}\label{classHurricane_1_1Layer_a04e9c983525d074508d7e10107c1c3c7}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!set\+Enclosure@{set\+Enclosure}}
\index{set\+Enclosure@{set\+Enclosure}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{set\+Enclosure()}{setEnclosure()}}
{\footnotesize\ttfamily void Hurricane\+::\+Layer\+::set\+Enclosure (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}} $\ast$}]{layer,  }\item[{\mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}}}]{,  }\item[{uint32\+\_\+t}]{flags }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}

Sets the enclosure for the given \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}}. \mbox{\Hypertarget{classHurricane_1_1Layer_a55c7b39e000442ea36a0774d26b7fbde}\label{classHurricane_1_1Layer_a55c7b39e000442ea36a0774d26b7fbde}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!set\+Extention\+Cap@{set\+Extention\+Cap}}
\index{set\+Extention\+Cap@{set\+Extention\+Cap}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{set\+Extention\+Cap()}{setExtentionCap()}}
{\footnotesize\ttfamily void Hurricane\+::\+Layer\+::set\+Extention\+Cap (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}} $\ast$}]{layer,  }\item[{\mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}}}]{ecap }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}

Sets the extention cap for the given \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}}. \mbox{\Hypertarget{classHurricane_1_1Layer_a7a6943dbcb3403aff34056cd5de00e66}\label{classHurricane_1_1Layer_a7a6943dbcb3403aff34056cd5de00e66}} 
\index{Hurricane\+::\+Layer@{Hurricane\+::\+Layer}!set\+Extention\+Width@{set\+Extention\+Width}}
\index{set\+Extention\+Width@{set\+Extention\+Width}!Hurricane\+::\+Layer@{Hurricane\+::\+Layer}}
\subsubsection{\texorpdfstring{set\+Extention\+Width()}{setExtentionWidth()}}
{\footnotesize\ttfamily void Hurricane\+::\+Layer\+::set\+Extention\+Width (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}} $\ast$}]{layer,  }\item[{\mbox{\hyperlink{group__DbUGroup_ga4fbfa3e8c89347af76c9628ea06c4146}{Db\+U\+::\+Unit}}}]{ewidth }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}

Sets the extention width for the given \mbox{\hyperlink{classHurricane_1_1BasicLayer}{Basic\+Layer}}. 

The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Layer.\+h\item 
Layer.\+dox\end{DoxyCompactItemize}
