\hypertarget{classKite_1_1TrackElement}{\subsection{Track\-Element Class Reference}
\label{classKite_1_1TrackElement}\index{Track\-Element@{Track\-Element}}
}


Abstract Class for all Elements inserted inside a \hyperlink{classKite_1_1Track}{Track}.  




Inheritance diagram for Track\-Element\-:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=282pt]{classKite_1_1TrackElement__inherit__graph}
\end{center}
\end{figure}
\subsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual bool \hyperlink{classKite_1_1TrackElement_af5e7d3badddf2ec07159f1d83426d4c1}{is\-Fixed} () const 
\item 
virtual bool \hyperlink{classKite_1_1TrackElement_a9d3db1f8a5aca58f8f54d291faebf873}{is\-Horizontal} () const =0
\item 
virtual bool \hyperlink{classKite_1_1TrackElement_a6fa2bf0568a2b295dd7cd1f7207247d5}{is\-Vertical} () const =0
\item 
virtual bool \hyperlink{classKite_1_1TrackElement_a69fb7e260ed2bc6fa82bfe12c2aeec5a}{is\-Local} () const 
\item 
virtual bool \hyperlink{classKite_1_1TrackElement_a017b1ead8e5988dd0e491cae93ac510c}{is\-Global} () const 
\item 
virtual bool \hyperlink{classKite_1_1TrackElement_ab5035e6d84cf3ec7b519a5acb109efaa}{is\-Bipoint} () const 
\item 
virtual bool \hyperlink{classKite_1_1TrackElement_a8d6f4521b27f32080d7477cf8ee8a274}{is\-Terminal} () const 
\item 
virtual bool \hyperlink{classKite_1_1TrackElement_a4721fcbe9c93ed5392afd9a756b989a8}{is\-Strap} () const 
\item 
virtual bool \hyperlink{classKite_1_1TrackElement_ab1f9e0bca70dea59558459a003a62d88}{is\-Slackened} () const 
\item 
virtual bool \hyperlink{classKite_1_1TrackElement_a172b2394f9c2cbaaf5bc4b19e0e76e65}{is\-Dogleg} () const 
\item 
bool \hyperlink{classKite_1_1TrackElement_a6a7e35dd5a9ca99ca879e424ce42b902}{is\-Created} () const 
\item 
bool \hyperlink{classKite_1_1TrackElement_a54f713d06c43bebf4e0dfef06e347531}{is\-Invalidated} () const 
\item 
bool \hyperlink{classKite_1_1TrackElement_a1dbaf905a283e4e45ac71c4771e9e644}{is\-Blockage} () const 
\item 
bool \hyperlink{classKite_1_1TrackElement_ae0c9fa9daf2467984aea571a0f3940c6}{is\-Locked} () const 
\item 
bool \hyperlink{classKite_1_1TrackElement_ae7adbfe4ada0ac46f8cd9cc8f296327d}{is\-Routed} () const 
\item 
bool \hyperlink{classKite_1_1TrackElement_af5f88959753a39f16726a858ee6fb0fd}{has\-Source\-Dogleg} () const 
\item 
bool \hyperlink{classKite_1_1TrackElement_a71fcabadfc78d0e1aefa934659cb1204}{has\-Target\-Dogleg} () const 
\item 
bool \hyperlink{classKite_1_1TrackElement_a5aa65e9913c7368130b187464404ded6}{can\-Ripple} () const 
\item 
virtual bool \hyperlink{classKite_1_1TrackElement_aa0bb6f1592688e942ff67e0ac318a4fd}{can\-Dogleg} ()
\item 
virtual bool \hyperlink{classKite_1_1TrackElement_accb4c6a7ee2678a0cff4dbc4a7860fe1}{can\-Dogleg} ({\bf Interval})
\item 
virtual bool \hyperlink{classKite_1_1TrackElement_a4f040cf33009e4886d401115c3bea838}{can\-Dogleg} ({\bf Katabatic\-::\-G\-Cell} $\ast$, unsigned int flags=0)
\item 
virtual unsigned long \hyperlink{classKite_1_1TrackElement_ae68c47fdf838be02cbf6660cd25a0806}{get\-Id} () const 
\item 
virtual unsigned int \hyperlink{classKite_1_1TrackElement_ae35b78590ed6aa546b626ef95f28c533}{get\-Direction} () const =0
\item 
virtual {\bf Net} $\ast$ \hyperlink{classKite_1_1TrackElement_a2b383a5b6f5028911a35e446a682dabd}{get\-Net} () const =0
\item 
virtual const {\bf Layer} $\ast$ \hyperlink{classKite_1_1TrackElement_ad96c66549598873bf68c2e18ec7164c1}{get\-Layer} () const =0
\item 
\hyperlink{classKite_1_1Track}{Track} $\ast$ \hyperlink{classKite_1_1TrackElement_abfd8de286baf41eea066220773c7046d}{get\-Track} () const 
\item 
size\-\_\-t \hyperlink{classKite_1_1TrackElement_a659e8df65f89db5547aa8a8fe3d92f69}{get\-Index} () const 
\item 
virtual unsigned long \hyperlink{classKite_1_1TrackElement_a9f20f94d2d8aaa38c2b9ead5275ead27}{get\-Freedom\-Degree} () const 
\item 
virtual float \hyperlink{classKite_1_1TrackElement_a71b29fb20a3ba09616a6be4b122a797e}{get\-Max\-Under\-Density} (unsigned int flags=0) const 
\item 
{\bf Box} \hyperlink{classKite_1_1TrackElement_a3b9694bf093e3ea16e4a8c8126a8d4db}{get\-Bounding\-Box} () const 
\item 
virtual \hyperlink{classKite_1_1TrackElement}{Track\-Element} $\ast$ \hyperlink{classKite_1_1TrackElement_a5af0ac91c558873fea9703e7ab6f48df}{get\-Next} () const 
\item 
virtual \hyperlink{classKite_1_1TrackElement}{Track\-Element} $\ast$ \hyperlink{classKite_1_1TrackElement_acbb9c965449bf4502d71149563cec0a2}{get\-Previous} () const 
\item 
virtual {\bf Db\-U\-::\-Unit} \hyperlink{classKite_1_1TrackElement_ac492fb5399691d81c31547db6b56fd03}{get\-Axis} () const =0
\item 
{\bf Db\-U\-::\-Unit} \hyperlink{classKite_1_1TrackElement_a3932d5ce9094ead510e4e33bd4e78e1a}{get\-Source\-U} () const 
\item 
{\bf Db\-U\-::\-Unit} \hyperlink{classKite_1_1TrackElement_a8e5f2a51f56c6bdb74024ac77c08a22a}{get\-Target\-U} () const 
\item 
{\bf Db\-U\-::\-Unit} \hyperlink{classKite_1_1TrackElement_a5370f2cf21823e1fa58d0627ee53c483}{get\-Length} () const 
\item 
{\bf Interval} \hyperlink{classKite_1_1TrackElement_ad78cfb34e7d8e92ba854fbc2dbf9d842}{get\-Canonical\-Interval} () const 
\item 
virtual {\bf Interval} \hyperlink{classKite_1_1TrackElement_a38d30a241d00a14943a06401d0d12923}{get\-Free\-Interval} () const 
\item 
virtual {\bf Interval} \hyperlink{classKite_1_1TrackElement_a972921aeb7f907194710ea35ac7600be}{get\-Source\-Constraints} () const 
\item 
virtual {\bf Interval} \hyperlink{classKite_1_1TrackElement_a00d398bdc1837c6c1e4847895c557829}{get\-Target\-Constraints} () const 
\item 
virtual \hyperlink{classKite_1_1DataNegociate}{Data\-Negociate} $\ast$ \hyperlink{classKite_1_1TrackElement_a76a45d5701f875711a03692e9bf6d5ce}{get\-Data\-Negociate} (unsigned int flags=\hyperlink{namespaceKite_acca8fffa3182dea5f94208f454f14b47a68e917ff37d4b5cef906303181836404}{Kt\-Data\-Self}) const 
\item 
virtual \hyperlink{classKite_1_1TrackElement}{Track\-Element} $\ast$ \hyperlink{classKite_1_1TrackElement_af2d46d64cbd02bdbba53d5483d95e26d}{get\-Canonical} ({\bf Interval} \&)
\item 
virtual size\-\_\-t \hyperlink{classKite_1_1TrackElement_a79b25d8199fe90446e99cf08d2d85674}{get\-G\-Cells} (Katabatic\-::\-G\-Cell\-Vector \&) const 
\item 
virtual \hyperlink{classKite_1_1TrackElement}{Track\-Element} $\ast$ \hyperlink{classKite_1_1TrackElement_ad1a03a36d5908ce44c3d0391ff9c7103}{get\-Parent} () const 
\item 
virtual unsigned int \hyperlink{classKite_1_1TrackElement_ace669b962e7df815b92fe70e1f4ad755}{get\-Dogleg\-Level} () const 
\item 
virtual \hyperlink{classKite_1_1TrackElement}{Track\-Element} $\ast$ \hyperlink{classKite_1_1TrackElement_a7e79fbfe77f173d46b1959c41087930a}{get\-Source\-Dogleg} ()
\item 
virtual \hyperlink{classKite_1_1TrackElement}{Track\-Element} $\ast$ \hyperlink{classKite_1_1TrackElement_aeb4e39bd925d093e6c45599433bb421c}{get\-Target\-Dogleg} ()
\item 
virtual Track\-Elements \hyperlink{classKite_1_1TrackElement_aa0ba92ebf19f596537dc051c090d5736}{get\-Perpandiculars} ()
\item 
void \hyperlink{classKite_1_1TrackElement_aeb14f94914af58657a0dc2f50ec98df5}{set\-Flags} (unsigned int)
\item 
void \hyperlink{classKite_1_1TrackElement_a1a6fac115cb81db48e3ac9ffa0721bb5}{unset\-Flags} (unsigned int)
\item 
virtual void \hyperlink{classKite_1_1TrackElement_abd3d8093f871d3d1a7f24b053648026c}{set\-Track} (\hyperlink{classKite_1_1Track}{Track} $\ast$)
\item 
void \hyperlink{classKite_1_1TrackElement_abee236b4d62f51320212f31e010fc1b5}{set\-Index} (size\-\_\-t)
\item 
virtual void \hyperlink{classKite_1_1TrackElement_af5332d647c0482aa90ad7cc9b2a50f3a}{update\-Freedom\-Degree} ()
\item 
virtual void \hyperlink{classKite_1_1TrackElement_a2b90319cb042b283aa5d1fdb1992f11f}{set\-Dogleg\-Level} (unsigned int)
\item 
virtual void \hyperlink{classKite_1_1TrackElement_acc245ce084989d1c34816d0e61b9d510}{swap\-Track} (\hyperlink{classKite_1_1TrackElement}{Track\-Element} $\ast$)
\item 
virtual void \hyperlink{classKite_1_1TrackElement_a0ffe603ec7d46f21f5e56ccbe84c03fb}{reschedule} (unsigned int level)
\item 
virtual void \hyperlink{classKite_1_1TrackElement_ac295bade8aee589f6718dfa79edc2a34}{detach} ()
\item 
virtual void \hyperlink{classKite_1_1TrackElement_a893f1101c650c08c98612515c2b1a89c}{invalidate} ()
\item 
virtual void \hyperlink{classKite_1_1TrackElement_a5bd93abe1416952ace15a98dbeeed124}{revalidate} ()
\item 
virtual void \hyperlink{classKite_1_1TrackElement_a250348f9030b92b19580749bf99030b5}{inc\-Overlap\-Cost} ({\bf Net} $\ast$, Track\-Cost \&) const 
\item 
virtual void \hyperlink{classKite_1_1TrackElement_a45e685b1e3ee630d24bf43746553af4c}{set\-Axis} ({\bf Db\-U\-::\-Unit}, unsigned int flags={\bf Katabatic\-::\-Seg\-Axis\-Set})
\item 
virtual \hyperlink{classKite_1_1TrackElement}{Track\-Element} $\ast$ \hyperlink{classKite_1_1TrackElement_a7a9637875364e84e6862de0102341715}{make\-Dogleg} ()
\item 
bool \hyperlink{classKite_1_1TrackElement_a3e1b4982a2427f74e55592520ab6272d}{make\-Dogleg} ({\bf Katabatic\-::\-G\-Cell} $\ast$)
\item 
virtual \hyperlink{classKite_1_1TrackElement}{Track\-Element} $\ast$ \hyperlink{classKite_1_1TrackElement_a524f1569b2f2c1a84df2fe47e84e28ed}{make\-Dogleg} ({\bf Interval}, unsigned int \&flags)
\item 
virtual bool \hyperlink{classKite_1_1TrackElement_aa1ef325b98fab61d2c7c5bdc1fcd92fc}{\-\_\-check} () const 
\end{DoxyCompactItemize}
\subsubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static \hyperlink{namespaceKite_aa5bc3df660243357cdf8639f57d4a41b}{Segment\-Overlap\-Cost\-C\-B} $\ast$ \hyperlink{classKite_1_1TrackElement_a4648fa47d0870cf743436ff6a6239fd9}{set\-Overlap\-Cost\-C\-B} (\hyperlink{namespaceKite_aa5bc3df660243357cdf8639f57d4a41b}{Segment\-Overlap\-Cost\-C\-B} $\ast$)
\end{DoxyCompactItemize}


\subsubsection{Detailed Description}
Abstract Class for all Elements inserted inside a \hyperlink{classKite_1_1Track}{Track}. 

\hypertarget{classKite_1_1TrackElement_secTrackElementAbstract}{}\subsubsection{Track\-Element Abstract}\label{classKite_1_1TrackElement_secTrackElementAbstract}
The \hyperlink{classKite_1_1TrackElement}{Track\-Element} class is abstract and is used as base class for any element that can be inserted in a \hyperlink{classKite_1_1Track}{Track}. It represent the footprint of that element inside the \hyperlink{classKite_1_1Track}{Track} (an interval). Additionnaly it keep a pointer to the \hyperlink{classKite_1_1Track}{Track} and it's index inside it (\hyperlink{classKite_1_1Track}{Track} is implemented with a {\ttfamily vector$<$$>$}).

To avoid some explicit dynamic cast later, it provides a default implementation for almost all the methods that will be present in all the derived classes. All default methods return {\ttfamily false}, {\ttfamily N\-U\-L\-L} or {\ttfamily 0} ({\itshape zero}) or whatever is appropriated to tell it is not meaningful.

{\bfseries Design Note}

\hyperlink{classKite_1_1TrackElement}{Track\-Element} has been designed to serve as a base class for \hyperlink{classKite_1_1TrackSegment}{Track\-Segment} and \hyperlink{classKite_1_1TrackMarker}{Track\-Marker}. But, in the end, those two classes have been put in separated vectors inside the \hyperlink{classKite_1_1Track}{Track}, thus rendering this design choice less pertinent. We keep it for now because we may introduce other object than \hyperlink{classKite_1_1TrackSegment}{Track\-Segment} inside a \hyperlink{classKite_1_1Track}{Track}. If the need do not arise, we may merge back \hyperlink{classKite_1_1TrackElement}{Track\-Element} and \hyperlink{classKite_1_1TrackSegment}{Track\-Segment}. 

\subsubsection{Member Function Documentation}
\hypertarget{classKite_1_1TrackElement_a4648fa47d0870cf743436ff6a6239fd9}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!set\-Overlap\-Cost\-C\-B@{set\-Overlap\-Cost\-C\-B}}
\index{set\-Overlap\-Cost\-C\-B@{set\-Overlap\-Cost\-C\-B}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{set\-Overlap\-Cost\-C\-B}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Segment\-Overlap\-Cost\-C\-B} $\ast$ set\-Overlap\-Cost\-C\-B (
\begin{DoxyParamCaption}
\item[{{\bf Segment\-Overlap\-Cost\-C\-B} $\ast$}]{cb}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{classKite_1_1TrackElement_a4648fa47d0870cf743436ff6a6239fd9}

\begin{DoxyParams}{Parameters}
{\em cb} & the new overlap cost callback. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the previous overlap cost callback.
\end{DoxyReturn}
sets the overlap callback. 

Referenced by Negociate\-Window\-::run().

\hypertarget{classKite_1_1TrackElement_af5e7d3badddf2ec07159f1d83426d4c1}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!is\-Fixed@{is\-Fixed}}
\index{is\-Fixed@{is\-Fixed}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{is\-Fixed}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Fixed (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_af5e7d3badddf2ec07159f1d83426d4c1}
{\bfseries See also\-:}~ {\bf Katabatic\-::\-Auto\-Segment\-::is\-Fixed()}. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_af5e7d3badddf2ec07159f1d83426d4c1}{Track\-Segment}, and \hyperlink{classKite_1_1TrackFixedSegment_af5e7d3badddf2ec07159f1d83426d4c1}{Track\-Fixed\-Segment}.



Referenced by Segment\-Fsm\-::add\-Action(), Segment\-Fsm\-::conflict\-Solve\-By\-Placeds(), Negociate\-Window\-::create\-Track\-Segment(), Segment\-Fsm\-::desaturate(), Segment\-Action\-::do\-Action(), Manipulator\-::force\-Over\-Locals(), Manipulator\-::force\-To\-Track(), Manipulator\-::insert\-In\-Track(), Manipulator\-::is\-Caged(), Manipulator\-::make\-Dogleg(), Manipulator\-::minimize(), Manipulator\-::move\-Up(), Manipulator\-::pivot\-Down(), Manipulator\-::pivot\-Up(), Manipulator\-::relax(), Manipulator\-::repack\-Perpandiculars(), Manipulator\-::ripup(), Manipulator\-::shrink\-To\-Track(), and Manipulator\-::slacken().

\hypertarget{classKite_1_1TrackElement_a9d3db1f8a5aca58f8f54d291faebf873}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!is\-Horizontal@{is\-Horizontal}}
\index{is\-Horizontal@{is\-Horizontal}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{is\-Horizontal}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Horizontal (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}}\label{classKite_1_1TrackElement_a9d3db1f8a5aca58f8f54d291faebf873}
{\bfseries See also\-:}~ {\bf Katabatic\-::\-Auto\-Segment\-::is\-Horizontal()}. 

Implemented in \hyperlink{classKite_1_1TrackSegment_ac46ac3b48d712750c7888b48964ac189}{Track\-Segment}, and \hyperlink{classKite_1_1TrackFixedSegment_ac46ac3b48d712750c7888b48964ac189}{Track\-Fixed\-Segment}.



Referenced by Segment\-Fsm\-::conflict\-Solve\-By\-History(), and Manipulator\-::make\-Dogleg().

\hypertarget{classKite_1_1TrackElement_a6fa2bf0568a2b295dd7cd1f7207247d5}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!is\-Vertical@{is\-Vertical}}
\index{is\-Vertical@{is\-Vertical}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{is\-Vertical}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Vertical (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}}\label{classKite_1_1TrackElement_a6fa2bf0568a2b295dd7cd1f7207247d5}
{\bfseries See also\-:}~ {\bf Katabatic\-::\-Auto\-Segment\-::is\-Vertical()}. 

Implemented in \hyperlink{classKite_1_1TrackSegment_a2bb30e82aad1f321af4a065338775f36}{Track\-Segment}, and \hyperlink{classKite_1_1TrackFixedSegment_a2bb30e82aad1f321af4a065338775f36}{Track\-Fixed\-Segment}.

\hypertarget{classKite_1_1TrackElement_a69fb7e260ed2bc6fa82bfe12c2aeec5a}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!is\-Local@{is\-Local}}
\index{is\-Local@{is\-Local}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{is\-Local}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Local (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a69fb7e260ed2bc6fa82bfe12c2aeec5a}
{\bfseries See also\-:}~ Katabatic\-::is\-Local(). 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a69fb7e260ed2bc6fa82bfe12c2aeec5a}{Track\-Segment}.



Referenced by Segment\-Fsm\-::conflict\-Solve\-By\-Placeds(), Segment\-Fsm\-::do\-Actions(), Manipulator\-::insert\-In\-Track(), Manipulator\-::make\-Dogleg(), Manipulator\-::move\-Up(), Manipulator\-::pivot\-Up(), Manipulator\-::relax(), Manipulator\-::ripple(), Manipulator\-::ripup\-Perpandiculars(), Segment\-Fsm\-::\-Segment\-Fsm(), Manipulator\-::shrink\-To\-Track(), Segment\-Fsm\-::slacken\-Topology(), and Segment\-Fsm\-::solve\-Full\-Blockages().

\hypertarget{classKite_1_1TrackElement_a017b1ead8e5988dd0e491cae93ac510c}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!is\-Global@{is\-Global}}
\index{is\-Global@{is\-Global}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{is\-Global}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Global (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a017b1ead8e5988dd0e491cae93ac510c}
{\bfseries See also\-:}~ {\bf Katabatic\-::\-Auto\-Segment\-::is\-Global()}. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a017b1ead8e5988dd0e491cae93ac510c}{Track\-Segment}.



Referenced by Segment\-Fsm\-::conflict\-Solve\-By\-Placeds(), Manipulator\-::insert\-In\-Track(), Manipulator\-::relax(), Manipulator\-::repack\-Perpandiculars(), and Segment\-Fsm\-::\-Segment\-Fsm().

\hypertarget{classKite_1_1TrackElement_ab5035e6d84cf3ec7b519a5acb109efaa}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!is\-Bipoint@{is\-Bipoint}}
\index{is\-Bipoint@{is\-Bipoint}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{is\-Bipoint}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Bipoint (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_ab5035e6d84cf3ec7b519a5acb109efaa}
{\bfseries See also\-:}~ {\bf Katabatic\-::\-Auto\-Segment\-::is\-Bipoint()}. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_ab5035e6d84cf3ec7b519a5acb109efaa}{Track\-Segment}.



Referenced by Segment\-Fsm\-::desaturate().

\hypertarget{classKite_1_1TrackElement_a8d6f4521b27f32080d7477cf8ee8a274}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!is\-Terminal@{is\-Terminal}}
\index{is\-Terminal@{is\-Terminal}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{is\-Terminal}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Terminal (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a8d6f4521b27f32080d7477cf8ee8a274}
{\bfseries See also\-:}~ Katabatic\-::\-Auto\-Segment\-::is\-Terminal(). 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a8d6f4521b27f32080d7477cf8ee8a274}{Track\-Segment}.



Referenced by Manipulator\-::make\-Dogleg(), and Manipulator\-::relax().

\hypertarget{classKite_1_1TrackElement_a4721fcbe9c93ed5392afd9a756b989a8}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!is\-Strap@{is\-Strap}}
\index{is\-Strap@{is\-Strap}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{is\-Strap}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Strap (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a4721fcbe9c93ed5392afd9a756b989a8}
{\bfseries See also\-:}~ {\bf Katabatic\-::\-Auto\-Segment\-::is\-Strap()}. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a4721fcbe9c93ed5392afd9a756b989a8}{Track\-Segment}.



Referenced by Manipulator\-::insert\-In\-Track(), Manipulator\-::pivot\-Down(), Manipulator\-::pivot\-Up(), Segment\-Fsm\-::\-Segment\-Fsm(), and Segment\-Fsm\-::slacken\-Topology().

\hypertarget{classKite_1_1TrackElement_ab1f9e0bca70dea59558459a003a62d88}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!is\-Slackened@{is\-Slackened}}
\index{is\-Slackened@{is\-Slackened}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{is\-Slackened}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Slackened (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_ab1f9e0bca70dea59558459a003a62d88}
{\bfseries See also\-:}~ {\bf Katabatic\-::\-Auto\-Segment\-::is\-Slackened()}. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_ab1f9e0bca70dea59558459a003a62d88}{Track\-Segment}.

\hypertarget{classKite_1_1TrackElement_a172b2394f9c2cbaaf5bc4b19e0e76e65}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!is\-Dogleg@{is\-Dogleg}}
\index{is\-Dogleg@{is\-Dogleg}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{is\-Dogleg}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Dogleg (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a172b2394f9c2cbaaf5bc4b19e0e76e65}
{\bfseries See also\-:}~ Katabatic\-::is\-Dogleg(). 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a172b2394f9c2cbaaf5bc4b19e0e76e65}{Track\-Segment}.

\hypertarget{classKite_1_1TrackElement_a6a7e35dd5a9ca99ca879e424ce42b902}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!is\-Created@{is\-Created}}
\index{is\-Created@{is\-Created}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{is\-Created}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Created (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classKite_1_1TrackElement_a6a7e35dd5a9ca99ca879e424ce42b902}
{\bfseries See also\-:}~ {\bf Katabatic\-::\-Auto\-Segment\-::is\-Created()}. \hypertarget{classKite_1_1TrackElement_a54f713d06c43bebf4e0dfef06e347531}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!is\-Invalidated@{is\-Invalidated}}
\index{is\-Invalidated@{is\-Invalidated}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{is\-Invalidated}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Invalidated (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classKite_1_1TrackElement_a54f713d06c43bebf4e0dfef06e347531}
{\bfseries Returns\-:} {\bfseries true} if the segment is invalidated (may be different from the supporting Auto\-Segment status). 

Referenced by Segment\-Observer\-::notify().

\hypertarget{classKite_1_1TrackElement_a1dbaf905a283e4e45ac71c4771e9e644}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!is\-Blockage@{is\-Blockage}}
\index{is\-Blockage@{is\-Blockage}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{is\-Blockage}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Blockage (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classKite_1_1TrackElement_a1dbaf905a283e4e45ac71c4771e9e644}
{\bfseries true} if the element is a blockage (obstacle). 

Referenced by Segment\-Fsm\-::conflict\-Solve\-By\-Placeds(), Negociate\-Window\-::create\-Track\-Segment(), Manipulator\-::insert\-In\-Track(), and Manipulator\-::is\-Caged().

\hypertarget{classKite_1_1TrackElement_ae0c9fa9daf2467984aea571a0f3940c6}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!is\-Locked@{is\-Locked}}
\index{is\-Locked@{is\-Locked}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{is\-Locked}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Locked (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classKite_1_1TrackElement_ae0c9fa9daf2467984aea571a0f3940c6}
{\bfseries true} if the element is part of a net, but must not be moved by the router, whatever the reason. \hypertarget{classKite_1_1TrackElement_ae7adbfe4ada0ac46f8cd9cc8f296327d}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!is\-Routed@{is\-Routed}}
\index{is\-Routed@{is\-Routed}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{is\-Routed}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Routed (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classKite_1_1TrackElement_ae7adbfe4ada0ac46f8cd9cc8f296327d}
{\bfseries true} if the router has placed it. 

Referenced by Track\-Segment\-::can\-Dogleg().

\hypertarget{classKite_1_1TrackElement_af5f88959753a39f16726a858ee6fb0fd}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!has\-Source\-Dogleg@{has\-Source\-Dogleg}}
\index{has\-Source\-Dogleg@{has\-Source\-Dogleg}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{has\-Source\-Dogleg}]{\setlength{\rightskip}{0pt plus 5cm}bool has\-Source\-Dogleg (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classKite_1_1TrackElement_af5f88959753a39f16726a858ee6fb0fd}
This method purpose has not been reviewed yet. 

Referenced by Track\-Segment\-::can\-Dogleg(), Track\-Segment\-::get\-Source\-Dogleg(), and Track\-Segment\-::get\-Target\-Dogleg().

\hypertarget{classKite_1_1TrackElement_a71fcabadfc78d0e1aefa934659cb1204}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!has\-Target\-Dogleg@{has\-Target\-Dogleg}}
\index{has\-Target\-Dogleg@{has\-Target\-Dogleg}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{has\-Target\-Dogleg}]{\setlength{\rightskip}{0pt plus 5cm}bool has\-Target\-Dogleg (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classKite_1_1TrackElement_a71fcabadfc78d0e1aefa934659cb1204}
This method purpose has not been reviewed yet. 

Referenced by Track\-Segment\-::can\-Dogleg().

\hypertarget{classKite_1_1TrackElement_a5aa65e9913c7368130b187464404ded6}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!can\-Ripple@{can\-Ripple}}
\index{can\-Ripple@{can\-Ripple}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{can\-Ripple}]{\setlength{\rightskip}{0pt plus 5cm}bool can\-Ripple (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classKite_1_1TrackElement_a5aa65e9913c7368130b187464404ded6}
This method purpose has not been reviewed yet. 

Referenced by Manipulator\-::ripple().

\hypertarget{classKite_1_1TrackElement_aa0bb6f1592688e942ff67e0ac318a4fd}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!can\-Dogleg@{can\-Dogleg}}
\index{can\-Dogleg@{can\-Dogleg}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{can\-Dogleg}]{\setlength{\rightskip}{0pt plus 5cm}bool can\-Dogleg (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_aa0bb6f1592688e942ff67e0ac318a4fd}
{\bfseries See also\-:}~ {\bf Auto\-Segment\-::can\-Dogleg()}. At \hyperlink{namespaceKite}{Kite} level, this variant of the method will apply only on local segments and the segment must not already have a source or target dogleg. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_aa0bb6f1592688e942ff67e0ac318a4fd}{Track\-Segment}.



Referenced by Segment\-Fsm\-::conflict\-Solve\-By\-History(), Manipulator\-::make\-Dogleg(), and Manipulator\-::relax().

\hypertarget{classKite_1_1TrackElement_accb4c6a7ee2678a0cff4dbc4a7860fe1}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!can\-Dogleg@{can\-Dogleg}}
\index{can\-Dogleg@{can\-Dogleg}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{can\-Dogleg}]{\setlength{\rightskip}{0pt plus 5cm}bool can\-Dogleg (
\begin{DoxyParamCaption}
\item[{{\bf Interval}}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_accb4c6a7ee2678a0cff4dbc4a7860fe1}
{\bfseries See also\-:}~ {\bf Auto\-Segment\-::can\-Dogleg()}. At \hyperlink{namespaceKite}{Kite} level, this variant of the method will apply only on local segments and the segment must not already have a source or target dogleg. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_accb4c6a7ee2678a0cff4dbc4a7860fe1}{Track\-Segment}.

\hypertarget{classKite_1_1TrackElement_a4f040cf33009e4886d401115c3bea838}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!can\-Dogleg@{can\-Dogleg}}
\index{can\-Dogleg@{can\-Dogleg}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{can\-Dogleg}]{\setlength{\rightskip}{0pt plus 5cm}bool can\-Dogleg (
\begin{DoxyParamCaption}
\item[{{\bf Katabatic\-::\-G\-Cell} $\ast$}]{dogleg\-G\-Cell, }
\item[{unsigned int}]{flags = {\ttfamily 0}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a4f040cf33009e4886d401115c3bea838}
{\bfseries See also\-:}~ {\bf Auto\-Segment\-::can\-Dogleg()}. At kite level, this variant of the method is mainly targeted to global segment. For local segment it behave like \hyperlink{classKite_1_1TrackElement_accb4c6a7ee2678a0cff4dbc4a7860fe1}{Track\-Element\-::can\-Dogleg(\-Interval)}. For global segment, make the break in the requested G\-Cell {\ttfamily dogleg\-G\-Cell}. If it's in the first or last G\-Cell and there is already a dogleg, allow to reuse it if {\ttfamily flags} contains \hyperlink{namespaceKite_acca8fffa3182dea5f94208f454f14b47a766f453d6caa06490196a952762f0bb8}{Kite\-::\-Kt\-Allow\-Dogleg\-Reuse}. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a4f040cf33009e4886d401115c3bea838}{Track\-Segment}.

\hypertarget{classKite_1_1TrackElement_ae68c47fdf838be02cbf6660cd25a0806}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Id@{get\-Id}}
\index{get\-Id@{get\-Id}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Id}]{\setlength{\rightskip}{0pt plus 5cm}unsigned long get\-Id (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_ae68c47fdf838be02cbf6660cd25a0806}
\begin{DoxyReturn}{Returns}
The {\ttfamily Id} of the supporting Auto\-Segment, if there is any. {\itshape Zero} otherwise. 
\end{DoxyReturn}


Reimplemented in \hyperlink{classKite_1_1TrackSegment_ae68c47fdf838be02cbf6660cd25a0806}{Track\-Segment}, and \hyperlink{classKite_1_1TrackFixedSegment_ae68c47fdf838be02cbf6660cd25a0806}{Track\-Fixed\-Segment}.



Referenced by Routing\-Event\-::process().

\hypertarget{classKite_1_1TrackElement_ae35b78590ed6aa546b626ef95f28c533}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Direction@{get\-Direction}}
\index{get\-Direction@{get\-Direction}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Direction}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int get\-Direction (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}}\label{classKite_1_1TrackElement_ae35b78590ed6aa546b626ef95f28c533}
\begin{DoxyReturn}{Returns}
The direction of the supporting element (should match the preferred direction of the \hyperlink{classKite_1_1Track}{Track}). 
\end{DoxyReturn}


Implemented in \hyperlink{classKite_1_1TrackSegment_a09d03fbca9ab891c2f25bdae7f89a899}{Track\-Segment}, and \hyperlink{classKite_1_1TrackFixedSegment_a09d03fbca9ab891c2f25bdae7f89a899}{Track\-Fixed\-Segment}.



Referenced by Track\-Element\-::get\-Bounding\-Box(), Track\-Segment\-::get\-Source\-Dogleg(), Track\-Segment\-::get\-Target\-Dogleg(), Manipulator\-::make\-Dogleg(), Manipulator\-::minimize(), Manipulator\-::relax(), and Manipulator\-::ripple().

\hypertarget{classKite_1_1TrackElement_a2b383a5b6f5028911a35e446a682dabd}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Net@{get\-Net}}
\index{get\-Net@{get\-Net}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Net}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Net} $\ast$ get\-Net (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}}\label{classKite_1_1TrackElement_a2b383a5b6f5028911a35e446a682dabd}
{\bfseries Returns\-:} The Net associated to the element (may be {\ttfamily N\-U\-L\-L}). 

Implemented in \hyperlink{classKite_1_1TrackSegment_adf3e1a980233163de0ca34a5c3575998}{Track\-Segment}, and \hyperlink{classKite_1_1TrackFixedSegment_adf3e1a980233163de0ca34a5c3575998}{Track\-Fixed\-Segment}.



Referenced by Segment\-Fsm\-::conflict\-Solve\-By\-History(), Segment\-Fsm\-::conflict\-Solve\-By\-Placeds(), Segment\-Fsm\-::desaturate(), Segment\-Action\-::do\-Action(), Manipulator\-::force\-Over\-Locals(), Manipulator\-::force\-To\-Track(), Track\-Element\-::get\-Free\-Interval(), Track\-Element\-::get\-Next(), Track\-::get\-Overlap\-Cost(), Track\-Element\-::get\-Previous(), Track\-Element\-::inc\-Overlap\-Cost(), Manipulator\-::insert\-In\-Track(), Manipulator\-::make\-Dogleg(), Manipulator\-::minimize(), Routing\-Event\-::process(), Routing\-Event\-::revalidate(), Manipulator\-::ripple(), Manipulator\-::ripup\-Perpandiculars(), Segment\-Fsm\-::\-Segment\-Fsm(), Manipulator\-::shrink\-To\-Track(), Segment\-Fsm\-::slacken\-Topology(), and Segment\-Fsm\-::solve\-Full\-Blockages().

\hypertarget{classKite_1_1TrackElement_ad96c66549598873bf68c2e18ec7164c1}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Layer@{get\-Layer}}
\index{get\-Layer@{get\-Layer}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Layer}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf Layer} $\ast$ get\-Layer (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}}\label{classKite_1_1TrackElement_ad96c66549598873bf68c2e18ec7164c1}
{\bfseries Returns\-:} The Layer of the element (should match the one of the \hyperlink{classKite_1_1Track}{Track}). 

Implemented in \hyperlink{classKite_1_1TrackSegment_a304ee4e02745811e04ac6fb688bf834f}{Track\-Segment}, and \hyperlink{classKite_1_1TrackFixedSegment_a304ee4e02745811e04ac6fb688bf834f}{Track\-Fixed\-Segment}.



Referenced by Segment\-Fsm\-::conflict\-Solve\-By\-History(), Segment\-Fsm\-::conflict\-Solve\-By\-Placeds(), Track\-::insert(), Manipulator\-::relax(), Routing\-Event\-::revalidate(), Manipulator\-::ripple(), Manipulator\-::ripup\-Perpandiculars(), and Segment\-Fsm\-::\-Segment\-Fsm().

\hypertarget{classKite_1_1TrackElement_abfd8de286baf41eea066220773c7046d}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Track@{get\-Track}}
\index{get\-Track@{get\-Track}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Track}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Track} $\ast$ get\-Track (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classKite_1_1TrackElement_abfd8de286baf41eea066220773c7046d}
{\bfseries Returns\-:} The \hyperlink{classKite_1_1Track}{Track} into which the element is inserted (may be {\ttfamily N\-U\-L\-L}). 

Referenced by Routing\-Event\-Queue\-::add(), Segment\-Action\-::do\-Action(), Track\-Fixed\-Segment\-::get\-Axis(), Track\-Fixed\-Segment\-::get\-Direction(), Data\-Negociate\-::get\-Track(), Manipulator\-::is\-Caged(), Track\-Fixed\-Segment\-::is\-Horizontal(), Track\-Fixed\-Segment\-::is\-Vertical(), Manipulator\-::relax(), and Track\-Segment\-::swap\-Track().

\hypertarget{classKite_1_1TrackElement_a659e8df65f89db5547aa8a8fe3d92f69}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Index@{get\-Index}}
\index{get\-Index@{get\-Index}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Index}]{\setlength{\rightskip}{0pt plus 5cm}size\-\_\-t get\-Index (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classKite_1_1TrackElement_a659e8df65f89db5547aa8a8fe3d92f69}
{\bfseries Returns\-:} The index of the element inside the \hyperlink{classKite_1_1Track}{Track}'s vector.

\begin{DoxyParagraph}{Remark\-:}
If the element is not inserted in a \hyperlink{classKite_1_1Track}{Track}, it is set to \hyperlink{classKite_1_1Track_ae0070ea45b2592ce3701ab9e486e58a0}{Track\-::npos}, and obviously must not be used. 
\end{DoxyParagraph}


Referenced by Track\-Segment\-::swap\-Track().

\hypertarget{classKite_1_1TrackElement_a9f20f94d2d8aaa38c2b9ead5275ead27}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Freedom\-Degree@{get\-Freedom\-Degree}}
\index{get\-Freedom\-Degree@{get\-Freedom\-Degree}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Freedom\-Degree}]{\setlength{\rightskip}{0pt plus 5cm}unsigned long get\-Freedom\-Degree (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a9f20f94d2d8aaa38c2b9ead5275ead27}
{\bfseries Returns\-:} The degree of freedom of the element. It is used as a priority value when sorting \hyperlink{classKite_1_1TrackElement}{Track\-Element} (in \hyperlink{classKite_1_1RoutingEvent}{Routing\-Event}).

{\bfseries Returns\-:} The degree of freedom of the element. It is used as a priority value when sorting \hyperlink{classKite_1_1TrackElement}{Track\-Element} (in \hyperlink{classKite_1_1RoutingEvent}{Routing\-Event}).

Currently, it is the {\itshape slack} of the {\bf Katabatic\-::\-Auto\-Segment}. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a9f20f94d2d8aaa38c2b9ead5275ead27}{Track\-Segment}.



Referenced by Routing\-Event\-::process().

\hypertarget{classKite_1_1TrackElement_a71b29fb20a3ba09616a6be4b122a797e}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Max\-Under\-Density@{get\-Max\-Under\-Density}}
\index{get\-Max\-Under\-Density@{get\-Max\-Under\-Density}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Max\-Under\-Density}]{\setlength{\rightskip}{0pt plus 5cm}float get\-Max\-Under\-Density (
\begin{DoxyParamCaption}
\item[{unsigned int}]{flags = {\ttfamily 0}}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a71b29fb20a3ba09616a6be4b122a797e}
{\bfseries Returns\-:} The maximum density of all the G\-Cells under this element. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a3bc51798c4b09a1537350822025adcea}{Track\-Segment}.

\hypertarget{classKite_1_1TrackElement_a3b9694bf093e3ea16e4a8c8126a8d4db}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Bounding\-Box@{get\-Bounding\-Box}}
\index{get\-Bounding\-Box@{get\-Bounding\-Box}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Bounding\-Box}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Box} get\-Bounding\-Box (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classKite_1_1TrackElement_a3b9694bf093e3ea16e4a8c8126a8d4db}
{\bfseries Returns\-:} The box that this element uses in the \hyperlink{classKite_1_1Track}{Track}. \hypertarget{classKite_1_1TrackElement_a5af0ac91c558873fea9703e7ab6f48df}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Next@{get\-Next}}
\index{get\-Next@{get\-Next}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Next}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Track\-Element} $\ast$ get\-Next (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a5af0ac91c558873fea9703e7ab6f48df}
{\bfseries Returns\-:} The next \hyperlink{classKite_1_1TrackElement}{Track\-Element}, on the same track and of a {\itshape different} net. {\bfseries See also\-:}~ \hyperlink{classKite_1_1Track_afaad0c947c459bab3b7ef742aaa5c59f}{Track\-::get\-Next()}. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a5af0ac91c558873fea9703e7ab6f48df}{Track\-Segment}, and \hyperlink{classKite_1_1TrackFixedSegment_a5af0ac91c558873fea9703e7ab6f48df}{Track\-Fixed\-Segment}.



Referenced by Manipulator\-::is\-Caged().

\hypertarget{classKite_1_1TrackElement_acbb9c965449bf4502d71149563cec0a2}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Previous@{get\-Previous}}
\index{get\-Previous@{get\-Previous}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Previous}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Track\-Element} $\ast$ get\-Previous (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_acbb9c965449bf4502d71149563cec0a2}
{\bfseries Returns\-:} The previous \hyperlink{classKite_1_1TrackElement}{Track\-Element}, on the same track and of a {\itshape different} net. {\bfseries See also\-:}~ \hyperlink{classKite_1_1Track_a4ebcb68fdea325b48de96a417a86d896}{Track\-::get\-Previous()}. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_acbb9c965449bf4502d71149563cec0a2}{Track\-Segment}, and \hyperlink{classKite_1_1TrackFixedSegment_acbb9c965449bf4502d71149563cec0a2}{Track\-Fixed\-Segment}.



Referenced by Manipulator\-::is\-Caged().

\hypertarget{classKite_1_1TrackElement_ac492fb5399691d81c31547db6b56fd03}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Axis@{get\-Axis}}
\index{get\-Axis@{get\-Axis}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Axis}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Db\-U\-::\-Unit} get\-Axis (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}}\label{classKite_1_1TrackElement_ac492fb5399691d81c31547db6b56fd03}
{\bfseries Returns\-:} The axis position of the element (must be the same as the \hyperlink{classKite_1_1Track}{Track}). 

Implemented in \hyperlink{classKite_1_1TrackSegment_af85576c58c70007850ad56e238e8d266}{Track\-Segment}, and \hyperlink{classKite_1_1TrackFixedSegment_af85576c58c70007850ad56e238e8d266}{Track\-Fixed\-Segment}.



Referenced by Segment\-Fsm\-::conflict\-Solve\-By\-History(), Track\-Element\-::get\-Bounding\-Box(), Manipulator\-::ripple(), and Manipulator\-::ripup\-Perpandiculars().

\hypertarget{classKite_1_1TrackElement_a3932d5ce9094ead510e4e33bd4e78e1a}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Source\-U@{get\-Source\-U}}
\index{get\-Source\-U@{get\-Source\-U}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Source\-U}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Db\-U\-::\-Unit} get\-Source\-U (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classKite_1_1TrackElement_a3932d5ce9094ead510e4e33bd4e78e1a}
{\bfseries Returns\-:} The minimun of the interval used by the element (cached in an attribute). 

Referenced by Track\-Segment\-::\-\_\-check(), Segment\-Fsm\-::conflict\-Solve\-By\-History(), Track\-::find(), Track\-Element\-::get\-Bounding\-Box(), Track\-Element\-::get\-Canonical\-Interval(), Track\-Element\-::get\-Length(), Manipulator\-::insert\-In\-Track(), Manipulator\-::is\-Caged(), Manipulator\-::minimize(), and Manipulator\-::shrink\-To\-Track().

\hypertarget{classKite_1_1TrackElement_a8e5f2a51f56c6bdb74024ac77c08a22a}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Target\-U@{get\-Target\-U}}
\index{get\-Target\-U@{get\-Target\-U}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Target\-U}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Db\-U\-::\-Unit} get\-Target\-U (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classKite_1_1TrackElement_a8e5f2a51f56c6bdb74024ac77c08a22a}
{\bfseries Returns\-:} The maximum of the interval used by the element (cached in an attribute). 

Referenced by Track\-Segment\-::\-\_\-check(), Track\-Element\-::get\-Bounding\-Box(), Track\-Element\-::get\-Canonical\-Interval(), Track\-Element\-::get\-Length(), Manipulator\-::insert\-In\-Track(), and Manipulator\-::is\-Caged().

\hypertarget{classKite_1_1TrackElement_a5370f2cf21823e1fa58d0627ee53c483}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Length@{get\-Length}}
\index{get\-Length@{get\-Length}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Length}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Db\-U\-::\-Unit} get\-Length (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classKite_1_1TrackElement_a5370f2cf21823e1fa58d0627ee53c483}
{\bfseries Returns\-:} The length of the interval used by the element. 

Referenced by Negociate\-Window\-::compute\-Wirelength(), Manipulator\-::make\-Dogleg(), Manipulator\-::move\-Up(), and Routing\-Event\-::revalidate().

\hypertarget{classKite_1_1TrackElement_ad78cfb34e7d8e92ba854fbc2dbf9d842}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Canonical\-Interval@{get\-Canonical\-Interval}}
\index{get\-Canonical\-Interval@{get\-Canonical\-Interval}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Canonical\-Interval}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Interval} get\-Canonical\-Interval (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classKite_1_1TrackElement_ad78cfb34e7d8e92ba854fbc2dbf9d842}
{\bfseries Returns\-:} The interval span used by the element inside the \hyperlink{classKite_1_1Track}{Track}. 

Referenced by Segment\-Fsm\-::conflict\-Solve\-By\-History(), Segment\-Fsm\-::conflict\-Solve\-By\-Placeds(), Segment\-Fsm\-::desaturate(), Manipulator\-::force\-Over\-Locals(), Manipulator\-::force\-To\-Track(), Track\-::get\-Overlap\-Cost(), Manipulator\-::insert\-In\-Track(), Manipulator\-::make\-Dogleg(), Manipulator\-::minimize(), Manipulator\-::relax(), Manipulator\-::ripple(), Manipulator\-::ripup\-Perpandiculars(), Manipulator\-::shrink\-To\-Track(), and Segment\-Fsm\-::solve\-Full\-Blockages().

\hypertarget{classKite_1_1TrackElement_a38d30a241d00a14943a06401d0d12923}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Free\-Interval@{get\-Free\-Interval}}
\index{get\-Free\-Interval@{get\-Free\-Interval}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Free\-Interval}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Interval} get\-Free\-Interval (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a38d30a241d00a14943a06401d0d12923}
{\bfseries Returns\-:} The greatest free interval enclosing this element. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a38d30a241d00a14943a06401d0d12923}{Track\-Segment}, and \hyperlink{classKite_1_1TrackFixedSegment_a38d30a241d00a14943a06401d0d12923}{Track\-Fixed\-Segment}.

\hypertarget{classKite_1_1TrackElement_a972921aeb7f907194710ea35ac7600be}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Source\-Constraints@{get\-Source\-Constraints}}
\index{get\-Source\-Constraints@{get\-Source\-Constraints}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Source\-Constraints}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Interval} get\-Source\-Constraints (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a972921aeb7f907194710ea35ac7600be}
{\bfseries See also\-:}~ {\bf Katabatic\-::\-Auto\-Segment\-::get\-Source\-Constraints()}. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a972921aeb7f907194710ea35ac7600be}{Track\-Segment}.

\hypertarget{classKite_1_1TrackElement_a00d398bdc1837c6c1e4847895c557829}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Target\-Constraints@{get\-Target\-Constraints}}
\index{get\-Target\-Constraints@{get\-Target\-Constraints}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Target\-Constraints}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Interval} get\-Target\-Constraints (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a00d398bdc1837c6c1e4847895c557829}
{\bfseries See also\-:}~ {\bf Katabatic\-::\-Auto\-Segment\-::get\-Target\-Constraints()}. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a00d398bdc1837c6c1e4847895c557829}{Track\-Segment}.

\hypertarget{classKite_1_1TrackElement_a76a45d5701f875711a03692e9bf6d5ce}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Data\-Negociate@{get\-Data\-Negociate}}
\index{get\-Data\-Negociate@{get\-Data\-Negociate}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Data\-Negociate}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Data\-Negociate} $\ast$ get\-Data\-Negociate (
\begin{DoxyParamCaption}
\item[{unsigned int}]{flags = {\ttfamily {\bf Kt\-Data\-Self}}}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a76a45d5701f875711a03692e9bf6d5ce}
{\bfseries Returns\-:} The additional data-\/structure supplied by the routing algorithm. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a76a45d5701f875711a03692e9bf6d5ce}{Track\-Segment}.



Referenced by Negociate\-Window\-::add\-Routing\-Event(), Segment\-Fsm\-::desaturate(), Segment\-Action\-::do\-Action(), Manipulator\-::force\-Over\-Locals(), Manipulator\-::force\-To\-Track(), Track\-Segment\-::get\-Data\-Negociate(), Routing\-Event\-::get\-State(), Manipulator\-::insert\-In\-Track(), Manipulator\-::make\-Dogleg(), Routing\-Event\-::process(), Manipulator\-::relax(), Manipulator\-::repack\-Perpandiculars(), Routing\-Event\-::reschedule(), Manipulator\-::ripple(), Segment\-Fsm\-::\-Segment\-Fsm(), Negociate\-Window\-::set\-G\-Cells(), Routing\-Event\-::set\-Segment(), Routing\-Event\-::set\-State(), and Segment\-Fsm\-::slacken\-Topology().

\hypertarget{classKite_1_1TrackElement_af2d46d64cbd02bdbba53d5483d95e26d}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Canonical@{get\-Canonical}}
\index{get\-Canonical@{get\-Canonical}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Canonical}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Track\-Element} $\ast$ get\-Canonical (
\begin{DoxyParamCaption}
\item[{{\bf Interval} \&}]{i}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_af2d46d64cbd02bdbba53d5483d95e26d}
Inner working still unclear to myself. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_af2d46d64cbd02bdbba53d5483d95e26d}{Track\-Segment}.



Referenced by Negociate\-Window\-::create\-Track\-Segment(), and Data\-Negociate\-::update().

\hypertarget{classKite_1_1TrackElement_a79b25d8199fe90446e99cf08d2d85674}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-G\-Cells@{get\-G\-Cells}}
\index{get\-G\-Cells@{get\-G\-Cells}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-G\-Cells}]{\setlength{\rightskip}{0pt plus 5cm}size\-\_\-t get\-G\-Cells (
\begin{DoxyParamCaption}
\item[{Katabatic\-::\-G\-Cell\-Vector \&}]{gcells}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a79b25d8199fe90446e99cf08d2d85674}
{\bfseries Returns\-:} The table of {\bf Katabatic\-::\-G\-Cell} underneath the element whole span. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a79b25d8199fe90446e99cf08d2d85674}{Track\-Segment}.



Referenced by Manipulator\-::make\-Dogleg(), and Manipulator\-::relax().

\hypertarget{classKite_1_1TrackElement_ad1a03a36d5908ce44c3d0391ff9c7103}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Parent@{get\-Parent}}
\index{get\-Parent@{get\-Parent}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Parent}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Track\-Element} $\ast$ get\-Parent (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_ad1a03a36d5908ce44c3d0391ff9c7103}
{\bfseries Returns\-:} The \hyperlink{classKite_1_1TrackElement}{Track\-Element} from which the dogleg has been created, if any. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_ad1a03a36d5908ce44c3d0391ff9c7103}{Track\-Segment}.



Referenced by Routing\-Event\-::set\-Axis\-Hint\-From\-Parent().

\hypertarget{classKite_1_1TrackElement_ace669b962e7df815b92fe70e1f4ad755}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Dogleg\-Level@{get\-Dogleg\-Level}}
\index{get\-Dogleg\-Level@{get\-Dogleg\-Level}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Dogleg\-Level}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int get\-Dogleg\-Level (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_ace669b962e7df815b92fe70e1f4ad755}
{\bfseries Returns\-:} The deepness of the dogleg. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_ace669b962e7df815b92fe70e1f4ad755}{Track\-Segment}.

\hypertarget{classKite_1_1TrackElement_a7e79fbfe77f173d46b1959c41087930a}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Source\-Dogleg@{get\-Source\-Dogleg}}
\index{get\-Source\-Dogleg@{get\-Source\-Dogleg}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Source\-Dogleg}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Track\-Element} $\ast$ get\-Source\-Dogleg (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a7e79fbfe77f173d46b1959c41087930a}
{\bfseries Returns\-:} The source part of the segment from which the dogleg has been created. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a7e79fbfe77f173d46b1959c41087930a}{Track\-Segment}.



Referenced by Manipulator\-::relax().

\hypertarget{classKite_1_1TrackElement_aeb4e39bd925d093e6c45599433bb421c}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Target\-Dogleg@{get\-Target\-Dogleg}}
\index{get\-Target\-Dogleg@{get\-Target\-Dogleg}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Target\-Dogleg}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Track\-Element} $\ast$ get\-Target\-Dogleg (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_aeb4e39bd925d093e6c45599433bb421c}
{\bfseries Returns\-:} The target part of the segment from which the dogleg has been created. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_aeb4e39bd925d093e6c45599433bb421c}{Track\-Segment}.



Referenced by Manipulator\-::relax().

\hypertarget{classKite_1_1TrackElement_aa0ba92ebf19f596537dc051c090d5736}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!get\-Perpandiculars@{get\-Perpandiculars}}
\index{get\-Perpandiculars@{get\-Perpandiculars}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{get\-Perpandiculars}]{\setlength{\rightskip}{0pt plus 5cm}Track\-Elements get\-Perpandiculars (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_aa0ba92ebf19f596537dc051c090d5736}
{\bfseries Returns\-:} The collection of all element perpandiculars to this one. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_aa0ba92ebf19f596537dc051c090d5736}{Track\-Segment}.



Referenced by Manipulator\-::force\-To\-Track(), and Manipulator\-::insert\-In\-Track().

\hypertarget{classKite_1_1TrackElement_aeb14f94914af58657a0dc2f50ec98df5}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!set\-Flags@{set\-Flags}}
\index{set\-Flags@{set\-Flags}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{set\-Flags}]{\setlength{\rightskip}{0pt plus 5cm}void set\-Flags (
\begin{DoxyParamCaption}
\item[{unsigned int}]{flags}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classKite_1_1TrackElement_aeb14f94914af58657a0dc2f50ec98df5}
Set to {\bfseries true} {\ttfamily flags} in the element state array. 

Referenced by Track\-Segment\-::detach(), Track\-Segment\-::invalidate(), and Manipulator\-::relax().

\hypertarget{classKite_1_1TrackElement_a1a6fac115cb81db48e3ac9ffa0721bb5}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!unset\-Flags@{unset\-Flags}}
\index{unset\-Flags@{unset\-Flags}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{unset\-Flags}]{\setlength{\rightskip}{0pt plus 5cm}void unset\-Flags (
\begin{DoxyParamCaption}
\item[{unsigned int}]{flags}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classKite_1_1TrackElement_a1a6fac115cb81db48e3ac9ffa0721bb5}
Reset to {\bfseries false} {\ttfamily flags} in the element state array. 

Referenced by Track\-Segment\-::revalidate().

\hypertarget{classKite_1_1TrackElement_abd3d8093f871d3d1a7f24b053648026c}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!set\-Track@{set\-Track}}
\index{set\-Track@{set\-Track}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{set\-Track}]{\setlength{\rightskip}{0pt plus 5cm}void set\-Track (
\begin{DoxyParamCaption}
\item[{{\bf Track} $\ast$}]{track}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_abd3d8093f871d3d1a7f24b053648026c}
Insert the element into {\ttfamily track}, also used as an insertion marker. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_abd3d8093f871d3d1a7f24b053648026c}{Track\-Segment}.



Referenced by Track\-::insert(), and Track\-Segment\-::set\-Track().

\hypertarget{classKite_1_1TrackElement_abee236b4d62f51320212f31e010fc1b5}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!set\-Index@{set\-Index}}
\index{set\-Index@{set\-Index}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{set\-Index}]{\setlength{\rightskip}{0pt plus 5cm}void set\-Index (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{index}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classKite_1_1TrackElement_abee236b4d62f51320212f31e010fc1b5}
Cache the element's index in the \hyperlink{classKite_1_1Track}{Track} internal vector. 

Referenced by Track\-Segment\-::detach(), and Track\-Segment\-::swap\-Track().

\hypertarget{classKite_1_1TrackElement_af5332d647c0482aa90ad7cc9b2a50f3a}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!update\-Freedom\-Degree@{update\-Freedom\-Degree}}
\index{update\-Freedom\-Degree@{update\-Freedom\-Degree}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{update\-Freedom\-Degree}]{\setlength{\rightskip}{0pt plus 5cm}void update\-Freedom\-Degree (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_af5332d647c0482aa90ad7cc9b2a50f3a}
Update, from the element characteristics, it's degree of freedom. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_af5332d647c0482aa90ad7cc9b2a50f3a}{Track\-Segment}.

\hypertarget{classKite_1_1TrackElement_a2b90319cb042b283aa5d1fdb1992f11f}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!set\-Dogleg\-Level@{set\-Dogleg\-Level}}
\index{set\-Dogleg\-Level@{set\-Dogleg\-Level}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{set\-Dogleg\-Level}]{\setlength{\rightskip}{0pt plus 5cm}void set\-Dogleg\-Level (
\begin{DoxyParamCaption}
\item[{unsigned int}]{level}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a2b90319cb042b283aa5d1fdb1992f11f}
Sets the level of dogleg of the element. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a2b90319cb042b283aa5d1fdb1992f11f}{Track\-Segment}.

\hypertarget{classKite_1_1TrackElement_acc245ce084989d1c34816d0e61b9d510}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!swap\-Track@{swap\-Track}}
\index{swap\-Track@{swap\-Track}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{swap\-Track}]{\setlength{\rightskip}{0pt plus 5cm}void swap\-Track (
\begin{DoxyParamCaption}
\item[{{\bf Track\-Element} $\ast$}]{other}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_acc245ce084989d1c34816d0e61b9d510}
Swap the tracks of {\ttfamily this} and {\ttfamily other}. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_acc245ce084989d1c34816d0e61b9d510}{Track\-Segment}.

\hypertarget{classKite_1_1TrackElement_a0ffe603ec7d46f21f5e56ccbe84c03fb}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!reschedule@{reschedule}}
\index{reschedule@{reschedule}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{reschedule}]{\setlength{\rightskip}{0pt plus 5cm}void reschedule (
\begin{DoxyParamCaption}
\item[{unsigned int}]{level}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a0ffe603ec7d46f21f5e56ccbe84c03fb}
If the \hyperlink{classKite_1_1TrackElement}{Track\-Element} has already an event scheduled, change the level of this event, otherwise create a new event.

{\bfseries See also\-:}~ Negotiate\-Window\-::reschedule\-Event(). 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a0ffe603ec7d46f21f5e56ccbe84c03fb}{Track\-Segment}.



Referenced by Track\-Segment\-::\-\_\-post\-Doglegs().

\hypertarget{classKite_1_1TrackElement_ac295bade8aee589f6718dfa79edc2a34}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!detach@{detach}}
\index{detach@{detach}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{detach}]{\setlength{\rightskip}{0pt plus 5cm}void detach (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_ac295bade8aee589f6718dfa79edc2a34}
Remove the link from the \hyperlink{classKite_1_1TrackElement}{Track\-Element} to it's owning \hyperlink{classKite_1_1Track}{Track}, marking it for removal. The removal from the \hyperlink{classKite_1_1Track}{Track}'s vector is managed by the \hyperlink{classKite_1_1Track}{Track} itself during the \hyperlink{classKite_1_1Session}{Session} revalidation stage. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_ac295bade8aee589f6718dfa79edc2a34}{Track\-Segment}.

\hypertarget{classKite_1_1TrackElement_a893f1101c650c08c98612515c2b1a89c}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!invalidate@{invalidate}}
\index{invalidate@{invalidate}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{invalidate}]{\setlength{\rightskip}{0pt plus 5cm}void invalidate (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a893f1101c650c08c98612515c2b1a89c}
{\bfseries See also\-:}~ {\bf Auto\-Segment\-::invalidate()}. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a893f1101c650c08c98612515c2b1a89c}{Track\-Segment}.



Referenced by Negociate\-Window\-::create\-Track\-Segment(), and Segment\-Observer\-::notify().

\hypertarget{classKite_1_1TrackElement_a5bd93abe1416952ace15a98dbeeed124}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!revalidate@{revalidate}}
\index{revalidate@{revalidate}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{revalidate}]{\setlength{\rightskip}{0pt plus 5cm}void revalidate (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a5bd93abe1416952ace15a98dbeeed124}
Actualize the \hyperlink{classKite_1_1TrackElement}{Track\-Element} characteristics from the supporting elements (set of Auto\-Segment).

Must be completed with the event management 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a5bd93abe1416952ace15a98dbeeed124}{Track\-Segment}.

\hypertarget{classKite_1_1TrackElement_a250348f9030b92b19580749bf99030b5}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!inc\-Overlap\-Cost@{inc\-Overlap\-Cost}}
\index{inc\-Overlap\-Cost@{inc\-Overlap\-Cost}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{inc\-Overlap\-Cost}]{\setlength{\rightskip}{0pt plus 5cm}void inc\-Overlap\-Cost (
\begin{DoxyParamCaption}
\item[{{\bf Net} $\ast$}]{net, }
\item[{Track\-Cost \&}]{cost}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a250348f9030b92b19580749bf99030b5}
{\bfseries See also\-:}~ Compute the cost of overlap between this segment and the interval specified in {\ttfamily cost}. Mainly calls the relevant callback. \hypertarget{classKite_1_1TrackElement_a45e685b1e3ee630d24bf43746553af4c}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!set\-Axis@{set\-Axis}}
\index{set\-Axis@{set\-Axis}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{set\-Axis}]{\setlength{\rightskip}{0pt plus 5cm}void set\-Axis (
\begin{DoxyParamCaption}
\item[{{\bf Db\-U\-::\-Unit}}]{, }
\item[{unsigned int}]{flags = {\ttfamily {\bf Katabatic\-::\-Seg\-Axis\-Set}}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a45e685b1e3ee630d24bf43746553af4c}
Sets the axis of the \hyperlink{classKite_1_1TrackElement}{Track\-Element}. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a262a915c38127d3722ec561b30d80f91}{Track\-Segment}.



Referenced by Negociate\-Window\-::create\-Track\-Segment(), Segment\-Action\-::do\-Action(), Track\-::insert(), Track\-Segment\-::make\-Dogleg(), and Manipulator\-::relax().

\hypertarget{classKite_1_1TrackElement_a7a9637875364e84e6862de0102341715}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!make\-Dogleg@{make\-Dogleg}}
\index{make\-Dogleg@{make\-Dogleg}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{make\-Dogleg}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Track\-Element} $\ast$ make\-Dogleg (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a7a9637875364e84e6862de0102341715}
Create a dogleg on the source end of the \hyperlink{classKite_1_1TrackSegment}{Track\-Segment}. Put the dogleg axis on the source {\bfseries To be further reviewed}.

{\bfseries See also\-:}~ \hyperlink{classKite_1_1TrackSegment_secDogleg}{Dogleg management}.

Post-\/processing done by \hyperlink{classKite_1_1TrackSegment_a10a45c049d0bd7d01c7eff1c5441c7a2}{Track\-Segment\-::\-\_\-post\-Doglegs()}. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a7a9637875364e84e6862de0102341715}{Track\-Segment}.



Referenced by Segment\-Fsm\-::conflict\-Solve\-By\-History(), Manipulator\-::make\-Dogleg(), Track\-Element\-::make\-Dogleg(), and Manipulator\-::relax().

\hypertarget{classKite_1_1TrackElement_a3e1b4982a2427f74e55592520ab6272d}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!make\-Dogleg@{make\-Dogleg}}
\index{make\-Dogleg@{make\-Dogleg}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{make\-Dogleg}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Track\-Element} $\ast$ make\-Dogleg (
\begin{DoxyParamCaption}
\item[{{\bf Katabatic\-::\-G\-Cell} $\ast$}]{gcell}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classKite_1_1TrackElement_a3e1b4982a2427f74e55592520ab6272d}
{\bfseries See also\-:}~ {\bf Auto\-Segment\-::make\-Dogleg()}, \hyperlink{classKite_1_1TrackSegment_secDogleg}{Dogleg management}.

Post-\/processing done by \hyperlink{classKite_1_1TrackSegment_a10a45c049d0bd7d01c7eff1c5441c7a2}{Track\-Segment\-::\-\_\-post\-Doglegs()}. \hypertarget{classKite_1_1TrackElement_a524f1569b2f2c1a84df2fe47e84e28ed}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!make\-Dogleg@{make\-Dogleg}}
\index{make\-Dogleg@{make\-Dogleg}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{make\-Dogleg}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Track\-Element} $\ast$ make\-Dogleg (
\begin{DoxyParamCaption}
\item[{{\bf Interval}}]{interval, }
\item[{unsigned int \&}]{flags}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_a524f1569b2f2c1a84df2fe47e84e28ed}
{\bfseries See also\-:}~ {\bf Auto\-Segment\-::make\-Dogleg()}, \hyperlink{classKite_1_1TrackSegment_secDogleg}{Dogleg management}, the return flags from this method are returned through the {\ttfamily flags} variable.

Post-\/processing done by \hyperlink{classKite_1_1TrackSegment_a10a45c049d0bd7d01c7eff1c5441c7a2}{Track\-Segment\-::\-\_\-post\-Doglegs()}. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_a524f1569b2f2c1a84df2fe47e84e28ed}{Track\-Segment}.

\hypertarget{classKite_1_1TrackElement_aa1ef325b98fab61d2c7c5bdc1fcd92fc}{\index{Kite\-::\-Track\-Element@{Kite\-::\-Track\-Element}!\-\_\-check@{\-\_\-check}}
\index{\-\_\-check@{\-\_\-check}!Kite::TrackElement@{Kite\-::\-Track\-Element}}
\paragraph[{\-\_\-check}]{\setlength{\rightskip}{0pt plus 5cm}bool \-\_\-check (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackElement_aa1ef325b98fab61d2c7c5bdc1fcd92fc}
Check the coherency of the element. For a \hyperlink{classKite_1_1TrackSegment}{Track\-Segment}\-:
\begin{DoxyItemize}
\item The supporting Auto\-Segment the canonical one of the set.
\item The cached {\ttfamily min} \& {\ttfamily max} values are identical to the computed ones.
\end{DoxyItemize}

{\bfseries Returns\-:} {\bfseries true} on success. 

Reimplemented in \hyperlink{classKite_1_1TrackSegment_aa1ef325b98fab61d2c7c5bdc1fcd92fc}{Track\-Segment}.



The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
Track\-Element.\-h\item 
Track\-Element.\-cpp\item 
Track\-Element.\-dox\item 
Track\-Segment.\-dox\end{DoxyCompactItemize}
