\hypertarget{class_d_t_r_1_1_rule}{}\section{Rule Class Reference}
\label{class_d_t_r_1_1_rule}\index{Rule@{Rule}}
Inheritance diagram for Rule\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{class_d_t_r_1_1_rule}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{class_d_t_r_1_1_rule_a710e6d75d7ae8de075ced5da150e10db}\label{class_d_t_r_1_1_rule_a710e6d75d7ae8de075ced5da150e10db}} 
const std\+::string \& \mbox{\hyperlink{class_d_t_r_1_1_rule_a710e6d75d7ae8de075ced5da150e10db}{get\+Layer1}} ()
\begin{DoxyCompactList}\small\item\em returns the first layer of the rule. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{class_d_t_r_1_1_rule_a29e6dc8d83450a582cbd9af372e96162}\label{class_d_t_r_1_1_rule_a29e6dc8d83450a582cbd9af372e96162}} 
virtual const std\+::string \& \mbox{\hyperlink{class_d_t_r_1_1_rule_a29e6dc8d83450a582cbd9af372e96162}{get\+Layer2}} ()
\begin{DoxyCompactList}\small\item\em returns the second layer of the rule. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{class_d_t_r_1_1_rule_a2858c0c4e8b5108f041237cf5a802029}\label{class_d_t_r_1_1_rule_a2858c0c4e8b5108f041237cf5a802029}} 
const std\+::string \& \mbox{\hyperlink{class_d_t_r_1_1_rule_a2858c0c4e8b5108f041237cf5a802029}{get\+Name}} ()
\begin{DoxyCompactList}\small\item\em returns the name of the rule. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{class_d_t_r_1_1_rule_a07cf74adaf661f0aaaa1818d24c2243d}\label{class_d_t_r_1_1_rule_a07cf74adaf661f0aaaa1818d24c2243d}} 
const std\+::string \& \mbox{\hyperlink{class_d_t_r_1_1_rule_a07cf74adaf661f0aaaa1818d24c2243d}{get\+Ref}} ()
\begin{DoxyCompactList}\small\item\em returns the reference of the rule. \end{DoxyCompactList}\item 
const std\+::string \& \mbox{\hyperlink{class_d_t_r_1_1_rule_a7a88ff26f0ba9cfbfa5059c565d1e30b}{get\+Type}} ()
\begin{DoxyCompactList}\small\item\em returns the type of the rule. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{class_d_t_r_1_1_rule_a666f992950731c68de1ad441f80f228c}\label{class_d_t_r_1_1_rule_a666f992950731c68de1ad441f80f228c}} 
double \mbox{\hyperlink{class_d_t_r_1_1_rule_a666f992950731c68de1ad441f80f228c}{get\+Value}} ()
\begin{DoxyCompactList}\small\item\em returns the value of the rule. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{class_d_t_r_1_1_rule_a3fad3e4886891e1efcdca530d2f6daa3}\label{class_d_t_r_1_1_rule_a3fad3e4886891e1efcdca530d2f6daa3}} 
const std\+::string \& \mbox{\hyperlink{class_d_t_r_1_1_rule_a3fad3e4886891e1efcdca530d2f6daa3}{get\+Value\+As\+String}} ()
\begin{DoxyCompactList}\small\item\em returns the string corresponding to the value of the rule. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_d_t_r_1_1_rule_aee8c5385eba121203f788a012b502e24}{Rule}} (const char $\ast$name, double value, const char $\ast$ref, const char $\ast$layer1, const char $\ast$layer2)
\begin{DoxyCompactList}\small\item\em creates a new rule. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_d_t_r_1_1_rule_a3568407d7a7890c39b8c9acc1e608535}{set\+Type}} (const char $\ast$)
\begin{DoxyCompactList}\small\item\em sets the type of a rule. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
This class describes a symmetrical rule.

A symmetrical rule represents several type of rules\+:
\begin{DoxyItemize}
\item a simple rule with only a name (e.\+g. transistor\+MinW\+: transistor minimum width)
\item a rule for a unique layer (e.\+g. min\+Width.\+metal1\+: the minimum width for metal1 wire)
\item a rule associating two layers (e.\+g min\+Space.\+poly.\+active\+: the minimum spacing between a poly shape and an active shape) In this last case the symmetrical characteristic is important since it implies that the value is the same if we invert the two layers \+: min\+Spacing poly vs active = min\+Spacing active vs poly.
\end{DoxyItemize}

Typical rules using no layer are\+: {\itshape transistor\+MinW, transsitor\+MaxW, transistor\+MinL transistor\+MaxL}

Typical rules using one layer are\+: {\itshape min\+Width, min\+Spacing, min\+Area, min\+Gate\+Spacing, min\+Strap\+Enclosure}

Typical rules using two layers are\+: {\itshape min\+Spacing} 

\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_d_t_r_1_1_rule_aee8c5385eba121203f788a012b502e24}\label{class_d_t_r_1_1_rule_aee8c5385eba121203f788a012b502e24}} 
\index{D\+T\+R\+::\+Rule@{D\+T\+R\+::\+Rule}!Rule@{Rule}}
\index{Rule@{Rule}!D\+T\+R\+::\+Rule@{D\+T\+R\+::\+Rule}}
\subsubsection{\texorpdfstring{Rule()}{Rule()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_d_t_r_1_1_rule}{Rule}} (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name,  }\item[{double}]{value,  }\item[{const char $\ast$}]{ref,  }\item[{const char $\ast$}]{layer1,  }\item[{const char $\ast$}]{layer2 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



creates a new rule. 


\begin{DoxyParams}{Parameters}
{\em name} & the name of the rule. \\
\hline
{\em value} & the value of the rule. \\
\hline
{\em ref} & the reference of the rule (helpful to find rule in design kit). \\
\hline
{\em layer1} & the first layer. \\
\hline
{\em layer2} & the second layer. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_d_t_r_1_1_rule_a7a88ff26f0ba9cfbfa5059c565d1e30b}\label{class_d_t_r_1_1_rule_a7a88ff26f0ba9cfbfa5059c565d1e30b}} 
\index{D\+T\+R\+::\+Rule@{D\+T\+R\+::\+Rule}!get\+Type@{get\+Type}}
\index{get\+Type@{get\+Type}!D\+T\+R\+::\+Rule@{D\+T\+R\+::\+Rule}}
\subsubsection{\texorpdfstring{get\+Type()}{getType()}}
{\footnotesize\ttfamily const std\+::string \& get\+Type (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



returns the type of the rule. 

\mbox{\hyperlink{class_d_t_r_1_1_rule}{Rule}}\textquotesingle{}s type allows to set a specific type for a rule especially the \textquotesingle{}area\textquotesingle{} type to take into account that the value of the rule is to be considered in unit$^\wedge$2. \mbox{\Hypertarget{class_d_t_r_1_1_rule_a3568407d7a7890c39b8c9acc1e608535}\label{class_d_t_r_1_1_rule_a3568407d7a7890c39b8c9acc1e608535}} 
\index{D\+T\+R\+::\+Rule@{D\+T\+R\+::\+Rule}!set\+Type@{set\+Type}}
\index{set\+Type@{set\+Type}!D\+T\+R\+::\+Rule@{D\+T\+R\+::\+Rule}}
\subsubsection{\texorpdfstring{set\+Type()}{setType()}}
{\footnotesize\ttfamily void set\+Type (\begin{DoxyParamCaption}\item[{const char $\ast$}]{type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



sets the type of a rule. 


\begin{DoxyParams}{Parameters}
{\em type} & the type of the rule.\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
By default the type of a rule is \char`\"{}\char`\"{}. 
\end{DoxyNote}
