\hypertarget{classKite_1_1TrackSegment}{\subsection{Track\-Segment Class Reference} \label{classKite_1_1TrackSegment}\index{Track\-Segment@{Track\-Segment}} } Derived {\bf Katabatic\-::\-Auto\-Segment} for the router. Inheritance diagram for Track\-Segment\-:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=160pt]{classKite_1_1TrackSegment__inherit__graph} \end{center} \end{figure} \subsubsection*{Public Member Functions} \begin{DoxyCompactItemize} \item virtual bool \hyperlink{classKite_1_1TrackSegment_af5e7d3badddf2ec07159f1d83426d4c1}{is\-Fixed} () const \item virtual bool \hyperlink{classKite_1_1TrackSegment_ac46ac3b48d712750c7888b48964ac189}{is\-Horizontal} () const \item virtual bool \hyperlink{classKite_1_1TrackSegment_a2bb30e82aad1f321af4a065338775f36}{is\-Vertical} () const \item virtual bool \hyperlink{classKite_1_1TrackSegment_a69fb7e260ed2bc6fa82bfe12c2aeec5a}{is\-Local} () const \item virtual bool \hyperlink{classKite_1_1TrackSegment_a017b1ead8e5988dd0e491cae93ac510c}{is\-Global} () const \item virtual bool \hyperlink{classKite_1_1TrackSegment_ab5035e6d84cf3ec7b519a5acb109efaa}{is\-Bipoint} () const \item virtual bool \hyperlink{classKite_1_1TrackSegment_a8d6f4521b27f32080d7477cf8ee8a274}{is\-Terminal} () const \item virtual bool \hyperlink{classKite_1_1TrackSegment_a4721fcbe9c93ed5392afd9a756b989a8}{is\-Strap} () const \item virtual bool \hyperlink{classKite_1_1TrackSegment_ab1f9e0bca70dea59558459a003a62d88}{is\-Slackened} () const \item virtual bool \hyperlink{classKite_1_1TrackSegment_a172b2394f9c2cbaaf5bc4b19e0e76e65}{is\-Dogleg} () const \item virtual bool \hyperlink{classKite_1_1TrackSegment_aa0bb6f1592688e942ff67e0ac318a4fd}{can\-Dogleg} () \item virtual bool \hyperlink{classKite_1_1TrackSegment_accb4c6a7ee2678a0cff4dbc4a7860fe1}{can\-Dogleg} ({\bf Interval}) \item virtual bool \hyperlink{classKite_1_1TrackSegment_a4f040cf33009e4886d401115c3bea838}{can\-Dogleg} ({\bf Katabatic\-::\-G\-Cell} $\ast$, unsigned int flags=0) \item virtual float \hyperlink{classKite_1_1TrackSegment_a3bc51798c4b09a1537350822025adcea}{get\-Max\-Under\-Density} (unsigned int flags) const \item virtual unsigned long \hyperlink{classKite_1_1TrackSegment_ae68c47fdf838be02cbf6660cd25a0806}{get\-Id} () const \item virtual unsigned int \hyperlink{classKite_1_1TrackSegment_a09d03fbca9ab891c2f25bdae7f89a899}{get\-Direction} () const \item virtual {\bf Net} $\ast$ \hyperlink{classKite_1_1TrackSegment_adf3e1a980233163de0ca34a5c3575998}{get\-Net} () const \item virtual const {\bf Layer} $\ast$ \hyperlink{classKite_1_1TrackSegment_a304ee4e02745811e04ac6fb688bf834f}{get\-Layer} () const \item virtual unsigned long \hyperlink{classKite_1_1TrackSegment_a9f20f94d2d8aaa38c2b9ead5275ead27}{get\-Freedom\-Degree} () const \item virtual unsigned int \hyperlink{classKite_1_1TrackSegment_ace669b962e7df815b92fe70e1f4ad755}{get\-Dogleg\-Level} () const \item virtual \hyperlink{classKite_1_1TrackElement}{Track\-Element} $\ast$ \hyperlink{classKite_1_1TrackSegment_a5af0ac91c558873fea9703e7ab6f48df}{get\-Next} () const \item virtual \hyperlink{classKite_1_1TrackElement}{Track\-Element} $\ast$ \hyperlink{classKite_1_1TrackSegment_acbb9c965449bf4502d71149563cec0a2}{get\-Previous} () const \item virtual \hyperlink{classKite_1_1TrackElement}{Track\-Element} $\ast$ \hyperlink{classKite_1_1TrackSegment_ad1a03a36d5908ce44c3d0391ff9c7103}{get\-Parent} () const \item virtual {\bf Db\-U\-::\-Unit} \hyperlink{classKite_1_1TrackSegment_af85576c58c70007850ad56e238e8d266}{get\-Axis} () const \item virtual {\bf Interval} \hyperlink{classKite_1_1TrackSegment_a38d30a241d00a14943a06401d0d12923}{get\-Free\-Interval} () const \item virtual {\bf Interval} \hyperlink{classKite_1_1TrackSegment_a972921aeb7f907194710ea35ac7600be}{get\-Source\-Constraints} () const \item virtual {\bf Interval} \hyperlink{classKite_1_1TrackSegment_a00d398bdc1837c6c1e4847895c557829}{get\-Target\-Constraints} () const \item virtual \hyperlink{classKite_1_1DataNegociate}{Data\-Negociate} $\ast$ \hyperlink{classKite_1_1TrackSegment_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_1TrackSegment_af2d46d64cbd02bdbba53d5483d95e26d}{get\-Canonical} ({\bf Interval} \&) \item virtual size\-\_\-t \hyperlink{classKite_1_1TrackSegment_a79b25d8199fe90446e99cf08d2d85674}{get\-G\-Cells} (Katabatic\-::\-G\-Cell\-Vector \&) const \item virtual \hyperlink{classKite_1_1TrackElement}{Track\-Element} $\ast$ \hyperlink{classKite_1_1TrackSegment_a7e79fbfe77f173d46b1959c41087930a}{get\-Source\-Dogleg} () \item virtual \hyperlink{classKite_1_1TrackElement}{Track\-Element} $\ast$ \hyperlink{classKite_1_1TrackSegment_aeb4e39bd925d093e6c45599433bb421c}{get\-Target\-Dogleg} () \item virtual Track\-Elements \hyperlink{classKite_1_1TrackSegment_aa0ba92ebf19f596537dc051c090d5736}{get\-Perpandiculars} () \item virtual void \hyperlink{classKite_1_1TrackSegment_abd3d8093f871d3d1a7f24b053648026c}{set\-Track} (\hyperlink{classKite_1_1Track}{Track} $\ast$) \item virtual void \hyperlink{classKite_1_1TrackSegment_af5332d647c0482aa90ad7cc9b2a50f3a}{update\-Freedom\-Degree} () \item virtual void \hyperlink{classKite_1_1TrackSegment_a2b90319cb042b283aa5d1fdb1992f11f}{set\-Dogleg\-Level} (unsigned int) \item virtual void \hyperlink{classKite_1_1TrackSegment_acc245ce084989d1c34816d0e61b9d510}{swap\-Track} (\hyperlink{classKite_1_1TrackElement}{Track\-Element} $\ast$) \item virtual void \hyperlink{classKite_1_1TrackSegment_a0ffe603ec7d46f21f5e56ccbe84c03fb}{reschedule} (unsigned int level) \item virtual void \hyperlink{classKite_1_1TrackSegment_ac295bade8aee589f6718dfa79edc2a34}{detach} () \item virtual void \hyperlink{classKite_1_1TrackSegment_a893f1101c650c08c98612515c2b1a89c}{invalidate} () \item virtual void \hyperlink{classKite_1_1TrackSegment_a5bd93abe1416952ace15a98dbeeed124}{revalidate} () \item virtual void \hyperlink{classKite_1_1TrackSegment_a262a915c38127d3722ec561b30d80f91}{set\-Axis} ({\bf Db\-U\-::\-Unit}, unsigned int flags) \item virtual \hyperlink{classKite_1_1TrackElement}{Track\-Element} $\ast$ \hyperlink{classKite_1_1TrackSegment_a7a9637875364e84e6862de0102341715}{make\-Dogleg} () \item virtual \hyperlink{classKite_1_1TrackElement}{Track\-Element} $\ast$ \hyperlink{classKite_1_1TrackSegment_a524f1569b2f2c1a84df2fe47e84e28ed}{make\-Dogleg} ({\bf Interval}, unsigned int \&flags) \item virtual void \hyperlink{classKite_1_1TrackSegment_a10a45c049d0bd7d01c7eff1c5441c7a2}{\-\_\-post\-Doglegs} (\hyperlink{classKite_1_1TrackElement}{Track\-Element} $\ast$\&perpandicular, \hyperlink{classKite_1_1TrackElement}{Track\-Element} $\ast$\¶llel) \item virtual bool \hyperlink{classKite_1_1TrackSegment_aa1ef325b98fab61d2c7c5bdc1fcd92fc}{\-\_\-check} () const \end{DoxyCompactItemize} \subsubsection*{Static Public Member Functions} \begin{DoxyCompactItemize} \item static \hyperlink{classKite_1_1TrackElement}{Track\-Element} $\ast$ \hyperlink{classKite_1_1TrackSegment_a536f91d468e6c2097f85169e6d790f64}{create} ({\bf Auto\-Segment} $\ast$, \hyperlink{classKite_1_1Track}{Track} $\ast$, bool \&created) \end{DoxyCompactItemize} \subsubsection{Detailed Description} Derived {\bf Katabatic\-::\-Auto\-Segment} for the router. We create one \hyperlink{classKite_1_1TrackSegment}{Track\-Segment} per aligned {\bf Katabatic\-::\-Auto\-Segment} set, the \hyperlink{classKite_1_1TrackSegment}{Track\-Segment} is associated to the canonical one of the set. To provide some speedup, the full extention of the aligned segment set is computed once and stored in the \hyperlink{classKite_1_1TrackSegment}{Track\-Segment} itself. The drawback beeing that whenever one segment from the aligned set has it's extention modified, the full extention must be recomputed.\hypertarget{classKite_1_1TrackSegment_secTSLazyRevalidate}{}\subsubsection{Lazy Revalidate}\label{classKite_1_1TrackSegment_secTSLazyRevalidate} When the \hyperlink{classKite_1_1TrackSegment_a5bd93abe1416952ace15a98dbeeed124}{Track\-Segment\-::revalidate()} method is called, it only update the cached size of the segment (from the Auto\-Segment set of aligneds) and the track into which it may be inserted. The associated \hyperlink{classKite_1_1DataNegociate}{Data\-Negociate} and \hyperlink{classKite_1_1RoutingEvent}{Routing\-Event} are {\bfseries not} updated. \begin{DoxyItemize} \item The \hyperlink{classKite_1_1RoutingEvent}{Routing\-Event} will be updated when it's key is updated, typically during a requeueing operation {\bfseries and} in the \hyperlink{classKite_1_1SegmentFsm}{Segment\-Fsm} constructor. This should be optimized in the future. \item The \hyperlink{classKite_1_1DataNegociate}{Data\-Negociate} is updated {\itshape only} in the \hyperlink{classKite_1_1SegmentFsm}{Segment\-Fsm} constructor. This is the most costly of the two updates as it perform a perpandicular \& parallel connexity exploration. \end{DoxyItemize}\hypertarget{classKite_1_1TrackSegment_secDogleg}{}\subsubsection{Dogleg Management}\label{classKite_1_1TrackSegment_secDogleg} The basic {\bf Auto\-Segment\-::can\-Dogleg()} method is declined in three more dedicated methods in this class\-: \begin{DoxyItemize} \item \hyperlink{classKite_1_1TrackSegment_aa0bb6f1592688e942ff67e0ac318a4fd}{Track\-Segment\-::can\-Dogleg()}, for locals only, check if a break is possible, never break a segment more than once (to avoid fragmentation). \item \hyperlink{classKite_1_1TrackSegment_a4f040cf33009e4886d401115c3bea838}{Track\-Segment\-::can\-Dogleg(\-Katabatic\-::\-G\-Cell$\ast$,unsigned int flags)} for globals, check that the segment is breakable in the desired G\-Cell. Never break twice in the first/last G\-Cell (fragmentation limitation), but may {\itshape reuse} an already existing dogleg. \item \hyperlink{classKite_1_1TrackSegment_accb4c6a7ee2678a0cff4dbc4a7860fe1}{Track\-Segment\-::can\-Dogleg(\-Interval)}, for locals only, direct proxy for the Auto\-Segment method. Never allow more than one break. \end{DoxyItemize} {\bfseries Relationship between Auto\-Segment and \hyperlink{classKite_1_1TrackSegment}{Track\-Segment}} Figure 2 below, shows an example of dogleg creation\-: \begin{DoxyItemize} \item At the {\bf Katabatic} level, Auto\-Segment {\ttfamily id\-:12} is broken. Thus the creation of Auto\-Segments {\ttfamily id\-:20} and {\ttfamily id\-:21}. The orignal \hyperlink{classKite_1_1TrackSegment}{Track\-Segment} (canonical Auto\-Segment {\ttfamily id\-:10}) remains on the right side (target) of the break. \item But, because the canonical of the former aligned Auto\-Segment set {\ttfamily }(10,11,12,13,14) was on the {\itshape right} side of the break, the new parallel \hyperlink{classKite_1_1TrackSegment}{Track\-Segment} will be created on the {\ttfamily left} side, associated to the newly promoted canonical Auto\-Segment {\ttfamily id\-:12}. \end{DoxyItemize} The \hyperlink{classKite_1_1TrackSegment_a10a45c049d0bd7d01c7eff1c5441c7a2}{Track\-Segment\-::\-\_\-post\-Doglegs()} method called by all flavors of \hyperlink{classKite_1_1TrackSegment_a7a9637875364e84e6862de0102341715}{Track\-Segment\-::make\-Dogleg()} methods is responsible for creating new Track\-Segments for the new doglegs (there may be more than one), it also update the dogleg level and source/target dogleg flags. {\bfseries This section is not finished.} I need to review the parent and doglevel numbering management. There seems to be a risk of infinite fragmentation as the numbering of the original segment is not increased, we should create a {\itshape break} counter separate from deepness.\hypertarget{classKite_1_1TrackSegment_secWeakGlobal}{}\subsubsection{Global, Weak Global and Local Segments}\label{classKite_1_1TrackSegment_secWeakGlobal} There's a slight semantic change between {\bf Katabatic} and \hyperlink{namespaceKite}{Kite} about what is local and what is local. This is due to how we consider the intermediate status of {\itshape Weak\-Global}. A {\ttfamily Weak\-Global} segment is a local segment which is aligned with a global (though a V\-Tee or an H\-Tee contact). In {\bf Katabatic} a local segment is one that is not {\ttfamily Global}, a local segment can be both {\ttfamily Local} and {\ttfamily Weak\-Global}. In \hyperlink{namespaceKite}{Kite} a local segment is one that is neither {\ttfamily Global} or {\ttfamily Weak\-Global}. The {\ttfamily Weak\-Global} sides with {\ttfamily Global} unlike in {\bf Katabatic}. \subsubsection{Member Function Documentation} \hypertarget{classKite_1_1TrackSegment_a536f91d468e6c2097f85169e6d790f64}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!create@{create}} \index{create@{create}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{create}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Track\-Segment} $\ast$ create ( \begin{DoxyParamCaption} \item[{{\bf Auto\-Segment} $\ast$}]{segment, } \item[{{\bf Track} $\ast$}]{track, } \item[{bool \&}]{created} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [static]}}}\label{classKite_1_1TrackSegment_a536f91d468e6c2097f85169e6d790f64} \begin{DoxyParams}{Parameters} {\em segment} & The {\bf Katabatic} Auto\-Segment to decorate. \\ \hline {\em track} & A \hyperlink{classKite_1_1Track}{Track} into which insert the \hyperlink{classKite_1_1TrackSegment}{Track\-Segment} (may be {\ttfamily N\-U\-L\-L}). \\ \hline {\em created} & This flag is sets is a new \hyperlink{classKite_1_1TrackSegment}{Track\-Segment} has be created. \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} A \hyperlink{classKite_1_1TrackSegment}{Track\-Segment} wrapped around an Auto\-Segment. \end{DoxyReturn} Constructor mainly used at loading time to decorate the {\bf Katabatic} data-\/base with the router attributes. Referenced by Negociate\-Window\-::create\-Track\-Segment(). \hypertarget{classKite_1_1TrackSegment_af5e7d3badddf2ec07159f1d83426d4c1}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!is\-Fixed@{is\-Fixed}} \index{is\-Fixed@{is\-Fixed}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{is\-Fixed}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Fixed ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} ) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_af5e7d3badddf2ec07159f1d83426d4c1} {\bfseries See also\-:}~ {\bf Katabatic\-::\-Auto\-Segment\-::is\-Fixed()}. Reimplemented from \hyperlink{classKite_1_1TrackElement_af5e7d3badddf2ec07159f1d83426d4c1}{Track\-Element}. Referenced by Track\-Segment\-::can\-Dogleg(). \hypertarget{classKite_1_1TrackSegment_ac46ac3b48d712750c7888b48964ac189}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!is\-Horizontal@{is\-Horizontal}} \index{is\-Horizontal@{is\-Horizontal}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{is\-Horizontal}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Horizontal ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} ) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_ac46ac3b48d712750c7888b48964ac189} {\bfseries See also\-:}~ {\bf Katabatic\-::\-Auto\-Segment\-::is\-Horizontal()}. Implements \hyperlink{classKite_1_1TrackElement_a9d3db1f8a5aca58f8f54d291faebf873}{Track\-Element}. Referenced by Track\-Segment\-::get\-G\-Cells(). \hypertarget{classKite_1_1TrackSegment_a2bb30e82aad1f321af4a065338775f36}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!is\-Vertical@{is\-Vertical}} \index{is\-Vertical@{is\-Vertical}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{is\-Vertical}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Vertical ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} ) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_a2bb30e82aad1f321af4a065338775f36} {\bfseries See also\-:}~ {\bf Katabatic\-::\-Auto\-Segment\-::is\-Vertical()}. Implements \hyperlink{classKite_1_1TrackElement_a6fa2bf0568a2b295dd7cd1f7207247d5}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_a69fb7e260ed2bc6fa82bfe12c2aeec5a}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!is\-Local@{is\-Local}} \index{is\-Local@{is\-Local}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{is\-Local}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Local ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} ) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_a69fb7e260ed2bc6fa82bfe12c2aeec5a} {\bfseries See also\-:}~ Katabatic\-::is\-Local(). Reimplemented from \hyperlink{classKite_1_1TrackElement_a69fb7e260ed2bc6fa82bfe12c2aeec5a}{Track\-Element}. Referenced by Track\-Segment\-::\-\_\-post\-Doglegs(), and Track\-Segment\-::can\-Dogleg(). \hypertarget{classKite_1_1TrackSegment_a017b1ead8e5988dd0e491cae93ac510c}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!is\-Global@{is\-Global}} \index{is\-Global@{is\-Global}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{is\-Global}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Global ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} ) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_a017b1ead8e5988dd0e491cae93ac510c} {\bfseries See also\-:}~ {\bf Katabatic\-::\-Auto\-Segment\-::is\-Global()}. Reimplemented from \hyperlink{classKite_1_1TrackElement_a017b1ead8e5988dd0e491cae93ac510c}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_ab5035e6d84cf3ec7b519a5acb109efaa}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!is\-Bipoint@{is\-Bipoint}} \index{is\-Bipoint@{is\-Bipoint}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{is\-Bipoint}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Bipoint ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} ) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_ab5035e6d84cf3ec7b519a5acb109efaa} {\bfseries See also\-:}~ {\bf Katabatic\-::\-Auto\-Segment\-::is\-Bipoint()}. Reimplemented from \hyperlink{classKite_1_1TrackElement_ab5035e6d84cf3ec7b519a5acb109efaa}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_a8d6f4521b27f32080d7477cf8ee8a274}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!is\-Terminal@{is\-Terminal}} \index{is\-Terminal@{is\-Terminal}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{is\-Terminal}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Terminal ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} ) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_a8d6f4521b27f32080d7477cf8ee8a274} {\bfseries See also\-:}~ Katabatic\-::\-Auto\-Segment\-::is\-Terminal(). Reimplemented from \hyperlink{classKite_1_1TrackElement_a8d6f4521b27f32080d7477cf8ee8a274}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_a4721fcbe9c93ed5392afd9a756b989a8}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!is\-Strap@{is\-Strap}} \index{is\-Strap@{is\-Strap}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{is\-Strap}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Strap ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} ) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_a4721fcbe9c93ed5392afd9a756b989a8} {\bfseries See also\-:}~ {\bf Katabatic\-::\-Auto\-Segment\-::is\-Strap()}. Reimplemented from \hyperlink{classKite_1_1TrackElement_a4721fcbe9c93ed5392afd9a756b989a8}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_ab1f9e0bca70dea59558459a003a62d88}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!is\-Slackened@{is\-Slackened}} \index{is\-Slackened@{is\-Slackened}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{is\-Slackened}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Slackened ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} ) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_ab1f9e0bca70dea59558459a003a62d88} {\bfseries See also\-:}~ {\bf Katabatic\-::\-Auto\-Segment\-::is\-Slackened()}. Reimplemented from \hyperlink{classKite_1_1TrackElement_ab1f9e0bca70dea59558459a003a62d88}{Track\-Element}. Referenced by Track\-Segment\-::can\-Dogleg(). \hypertarget{classKite_1_1TrackSegment_a172b2394f9c2cbaaf5bc4b19e0e76e65}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!is\-Dogleg@{is\-Dogleg}} \index{is\-Dogleg@{is\-Dogleg}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{is\-Dogleg}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Dogleg ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} ) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_a172b2394f9c2cbaaf5bc4b19e0e76e65} {\bfseries See also\-:}~ Katabatic\-::is\-Dogleg(). Reimplemented from \hyperlink{classKite_1_1TrackElement_a172b2394f9c2cbaaf5bc4b19e0e76e65}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_aa0bb6f1592688e942ff67e0ac318a4fd}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!can\-Dogleg@{can\-Dogleg}} \index{can\-Dogleg@{can\-Dogleg}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{can\-Dogleg}]{\setlength{\rightskip}{0pt plus 5cm}bool can\-Dogleg ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_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 from \hyperlink{classKite_1_1TrackElement_aa0bb6f1592688e942ff67e0ac318a4fd}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_accb4c6a7ee2678a0cff4dbc4a7860fe1}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!can\-Dogleg@{can\-Dogleg}} \index{can\-Dogleg@{can\-Dogleg}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_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 from \hyperlink{classKite_1_1TrackElement_accb4c6a7ee2678a0cff4dbc4a7860fe1}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_a4f040cf33009e4886d401115c3bea838}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!can\-Dogleg@{can\-Dogleg}} \index{can\-Dogleg@{can\-Dogleg}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_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 from \hyperlink{classKite_1_1TrackElement_a4f040cf33009e4886d401115c3bea838}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_a3bc51798c4b09a1537350822025adcea}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!get\-Max\-Under\-Density@{get\-Max\-Under\-Density}} \index{get\-Max\-Under\-Density@{get\-Max\-Under\-Density}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{get\-Max\-Under\-Density}]{\setlength{\rightskip}{0pt plus 5cm}float get\-Max\-Under\-Density ( \begin{DoxyParamCaption} \item[{unsigned int}]{flags} \end{DoxyParamCaption} ) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_a3bc51798c4b09a1537350822025adcea} {\bfseries Returns\-:} The maximum density of all the G\-Cells under this element. Reimplemented from \hyperlink{classKite_1_1TrackElement_a71b29fb20a3ba09616a6be4b122a797e}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_ae68c47fdf838be02cbf6660cd25a0806}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!get\-Id@{get\-Id}} \index{get\-Id@{get\-Id}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_ae68c47fdf838be02cbf6660cd25a0806} \begin{DoxyReturn}{Returns} The {\ttfamily Id} of the supporting Auto\-Segment, if there is any. {\itshape Zero} otherwise. \end{DoxyReturn} Reimplemented from \hyperlink{classKite_1_1TrackElement_ae68c47fdf838be02cbf6660cd25a0806}{Track\-Element}. Referenced by Track\-Segment\-::detach(). \hypertarget{classKite_1_1TrackSegment_a09d03fbca9ab891c2f25bdae7f89a899}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!get\-Direction@{get\-Direction}} \index{get\-Direction@{get\-Direction}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{get\-Direction}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int get\-Direction ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} ) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_a09d03fbca9ab891c2f25bdae7f89a899} \begin{DoxyReturn}{Returns} The direction of the supporting element (should match the preferred direction of the \hyperlink{classKite_1_1Track}{Track}). \end{DoxyReturn} Implements \hyperlink{classKite_1_1TrackElement_ae35b78590ed6aa546b626ef95f28c533}{Track\-Element}. Referenced by Track\-Segment\-::get\-Source\-Dogleg(), and Track\-Segment\-::get\-Target\-Dogleg(). \hypertarget{classKite_1_1TrackSegment_adf3e1a980233163de0ca34a5c3575998}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!get\-Net@{get\-Net}} \index{get\-Net@{get\-Net}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{get\-Net}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Net} $\ast$ get\-Net ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} ) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_adf3e1a980233163de0ca34a5c3575998} {\bfseries Returns\-:} The Net associated to the element (may be {\ttfamily N\-U\-L\-L}). Implements \hyperlink{classKite_1_1TrackElement_a2b383a5b6f5028911a35e446a682dabd}{Track\-Element}. Referenced by Track\-Segment\-::get\-Free\-Interval(), Track\-Segment\-::get\-Next(), and Track\-Segment\-::get\-Previous(). \hypertarget{classKite_1_1TrackSegment_a304ee4e02745811e04ac6fb688bf834f}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!get\-Layer@{get\-Layer}} \index{get\-Layer@{get\-Layer}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{get\-Layer}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf Layer} $\ast$ get\-Layer ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} ) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_a304ee4e02745811e04ac6fb688bf834f} {\bfseries Returns\-:} The Layer of the element (should match the one of the \hyperlink{classKite_1_1Track}{Track}). Implements \hyperlink{classKite_1_1TrackElement_ad96c66549598873bf68c2e18ec7164c1}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_a9f20f94d2d8aaa38c2b9ead5275ead27}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!get\-Freedom\-Degree@{get\-Freedom\-Degree}} \index{get\-Freedom\-Degree@{get\-Freedom\-Degree}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_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 from \hyperlink{classKite_1_1TrackElement_a9f20f94d2d8aaa38c2b9ead5275ead27}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_ace669b962e7df815b92fe70e1f4ad755}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!get\-Dogleg\-Level@{get\-Dogleg\-Level}} \index{get\-Dogleg\-Level@{get\-Dogleg\-Level}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_ace669b962e7df815b92fe70e1f4ad755} {\bfseries Returns\-:} The deepness of the dogleg. Reimplemented from \hyperlink{classKite_1_1TrackElement_ace669b962e7df815b92fe70e1f4ad755}{Track\-Element}. Referenced by Track\-Segment\-::can\-Dogleg(). \hypertarget{classKite_1_1TrackSegment_a5af0ac91c558873fea9703e7ab6f48df}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!get\-Next@{get\-Next}} \index{get\-Next@{get\-Next}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_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 from \hyperlink{classKite_1_1TrackElement_a5af0ac91c558873fea9703e7ab6f48df}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_acbb9c965449bf4502d71149563cec0a2}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!get\-Previous@{get\-Previous}} \index{get\-Previous@{get\-Previous}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_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 from \hyperlink{classKite_1_1TrackElement_acbb9c965449bf4502d71149563cec0a2}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_ad1a03a36d5908ce44c3d0391ff9c7103}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!get\-Parent@{get\-Parent}} \index{get\-Parent@{get\-Parent}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_ad1a03a36d5908ce44c3d0391ff9c7103} {\bfseries Returns\-:} The \hyperlink{classKite_1_1TrackElement}{Track\-Element} from which the dogleg has been created, if any. Reimplemented from \hyperlink{classKite_1_1TrackElement_ad1a03a36d5908ce44c3d0391ff9c7103}{Track\-Element}. Referenced by Track\-Segment\-::get\-Data\-Negociate(). \hypertarget{classKite_1_1TrackSegment_af85576c58c70007850ad56e238e8d266}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!get\-Axis@{get\-Axis}} \index{get\-Axis@{get\-Axis}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{get\-Axis}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Db\-U\-::\-Unit} get\-Axis ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} ) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_af85576c58c70007850ad56e238e8d266} {\bfseries Returns\-:} The axis position of the element (must be the same as the \hyperlink{classKite_1_1Track}{Track}). Implements \hyperlink{classKite_1_1TrackElement_ac492fb5399691d81c31547db6b56fd03}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_a38d30a241d00a14943a06401d0d12923}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!get\-Free\-Interval@{get\-Free\-Interval}} \index{get\-Free\-Interval@{get\-Free\-Interval}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_a38d30a241d00a14943a06401d0d12923} {\bfseries Returns\-:} The greatest free interval enclosing this element. Reimplemented from \hyperlink{classKite_1_1TrackElement_a38d30a241d00a14943a06401d0d12923}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_a972921aeb7f907194710ea35ac7600be}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!get\-Source\-Constraints@{get\-Source\-Constraints}} \index{get\-Source\-Constraints@{get\-Source\-Constraints}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_a972921aeb7f907194710ea35ac7600be} {\bfseries See also\-:}~ {\bf Katabatic\-::\-Auto\-Segment\-::get\-Source\-Constraints()}. Reimplemented from \hyperlink{classKite_1_1TrackElement_a972921aeb7f907194710ea35ac7600be}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_a00d398bdc1837c6c1e4847895c557829}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!get\-Target\-Constraints@{get\-Target\-Constraints}} \index{get\-Target\-Constraints@{get\-Target\-Constraints}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_a00d398bdc1837c6c1e4847895c557829} {\bfseries See also\-:}~ {\bf Katabatic\-::\-Auto\-Segment\-::get\-Target\-Constraints()}. Reimplemented from \hyperlink{classKite_1_1TrackElement_a00d398bdc1837c6c1e4847895c557829}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_a76a45d5701f875711a03692e9bf6d5ce}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!get\-Data\-Negociate@{get\-Data\-Negociate}} \index{get\-Data\-Negociate@{get\-Data\-Negociate}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_a76a45d5701f875711a03692e9bf6d5ce} {\bfseries Returns\-:} The additional data-\/structure supplied by the routing algorithm. Reimplemented from \hyperlink{classKite_1_1TrackElement_a76a45d5701f875711a03692e9bf6d5ce}{Track\-Element}. Referenced by Track\-Segment\-::\-\_\-post\-Doglegs(), and Track\-Segment\-::swap\-Track(). \hypertarget{classKite_1_1TrackSegment_af2d46d64cbd02bdbba53d5483d95e26d}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!get\-Canonical@{get\-Canonical}} \index{get\-Canonical@{get\-Canonical}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_af2d46d64cbd02bdbba53d5483d95e26d} Inner working still unclear to myself. Reimplemented from \hyperlink{classKite_1_1TrackElement_af2d46d64cbd02bdbba53d5483d95e26d}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_a79b25d8199fe90446e99cf08d2d85674}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!get\-G\-Cells@{get\-G\-Cells}} \index{get\-G\-Cells@{get\-G\-Cells}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_a79b25d8199fe90446e99cf08d2d85674} {\bfseries Returns\-:} The table of {\bf Katabatic\-::\-G\-Cell} underneath the element whole span. Reimplemented from \hyperlink{classKite_1_1TrackElement_a79b25d8199fe90446e99cf08d2d85674}{Track\-Element}. Referenced by Track\-Segment\-::can\-Dogleg(). \hypertarget{classKite_1_1TrackSegment_a7e79fbfe77f173d46b1959c41087930a}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!get\-Source\-Dogleg@{get\-Source\-Dogleg}} \index{get\-Source\-Dogleg@{get\-Source\-Dogleg}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_a7e79fbfe77f173d46b1959c41087930a} {\bfseries Returns\-:} The source part of the segment from which the dogleg has been created. Reimplemented from \hyperlink{classKite_1_1TrackElement_a7e79fbfe77f173d46b1959c41087930a}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_aeb4e39bd925d093e6c45599433bb421c}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!get\-Target\-Dogleg@{get\-Target\-Dogleg}} \index{get\-Target\-Dogleg@{get\-Target\-Dogleg}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_aeb4e39bd925d093e6c45599433bb421c} {\bfseries Returns\-:} The target part of the segment from which the dogleg has been created. Reimplemented from \hyperlink{classKite_1_1TrackElement_aeb4e39bd925d093e6c45599433bb421c}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_aa0ba92ebf19f596537dc051c090d5736}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!get\-Perpandiculars@{get\-Perpandiculars}} \index{get\-Perpandiculars@{get\-Perpandiculars}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{get\-Perpandiculars}]{\setlength{\rightskip}{0pt plus 5cm}Track\-Elements get\-Perpandiculars ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_aa0ba92ebf19f596537dc051c090d5736} {\bfseries Returns\-:} The collection of all element perpandiculars to this one. Reimplemented from \hyperlink{classKite_1_1TrackElement_aa0ba92ebf19f596537dc051c090d5736}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_abd3d8093f871d3d1a7f24b053648026c}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!set\-Track@{set\-Track}} \index{set\-Track@{set\-Track}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_abd3d8093f871d3d1a7f24b053648026c} Insert the element into {\ttfamily track}, also used as an insertion marker. Reimplemented from \hyperlink{classKite_1_1TrackElement_abd3d8093f871d3d1a7f24b053648026c}{Track\-Element}. Referenced by Track\-Segment\-::detach(), and Track\-Segment\-::swap\-Track(). \hypertarget{classKite_1_1TrackSegment_af5332d647c0482aa90ad7cc9b2a50f3a}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!update\-Freedom\-Degree@{update\-Freedom\-Degree}} \index{update\-Freedom\-Degree@{update\-Freedom\-Degree}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_af5332d647c0482aa90ad7cc9b2a50f3a} Update, from the element characteristics, it's degree of freedom. Reimplemented from \hyperlink{classKite_1_1TrackElement_af5332d647c0482aa90ad7cc9b2a50f3a}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_a2b90319cb042b283aa5d1fdb1992f11f}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!set\-Dogleg\-Level@{set\-Dogleg\-Level}} \index{set\-Dogleg\-Level@{set\-Dogleg\-Level}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_a2b90319cb042b283aa5d1fdb1992f11f} Sets the level of dogleg of the element. Reimplemented from \hyperlink{classKite_1_1TrackElement_a2b90319cb042b283aa5d1fdb1992f11f}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_acc245ce084989d1c34816d0e61b9d510}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!swap\-Track@{swap\-Track}} \index{swap\-Track@{swap\-Track}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_acc245ce084989d1c34816d0e61b9d510} Swap the tracks of {\ttfamily this} and {\ttfamily other}. Reimplemented from \hyperlink{classKite_1_1TrackElement_acc245ce084989d1c34816d0e61b9d510}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_a0ffe603ec7d46f21f5e56ccbe84c03fb}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!reschedule@{reschedule}} \index{reschedule@{reschedule}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_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 from \hyperlink{classKite_1_1TrackElement_a0ffe603ec7d46f21f5e56ccbe84c03fb}{Track\-Element}. Referenced by Track\-Segment\-::\-\_\-post\-Doglegs(). \hypertarget{classKite_1_1TrackSegment_ac295bade8aee589f6718dfa79edc2a34}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!detach@{detach}} \index{detach@{detach}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{detach}]{\setlength{\rightskip}{0pt plus 5cm}void detach ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_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 from \hyperlink{classKite_1_1TrackElement_ac295bade8aee589f6718dfa79edc2a34}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_a893f1101c650c08c98612515c2b1a89c}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!invalidate@{invalidate}} \index{invalidate@{invalidate}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{invalidate}]{\setlength{\rightskip}{0pt plus 5cm}void invalidate ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_a893f1101c650c08c98612515c2b1a89c} {\bfseries See also\-:}~ {\bf Auto\-Segment\-::invalidate()}. Reimplemented from \hyperlink{classKite_1_1TrackElement_a893f1101c650c08c98612515c2b1a89c}{Track\-Element}. Referenced by Track\-Segment\-::create(), and Track\-Segment\-::set\-Axis(). \hypertarget{classKite_1_1TrackSegment_a5bd93abe1416952ace15a98dbeeed124}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!revalidate@{revalidate}} \index{revalidate@{revalidate}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{revalidate}]{\setlength{\rightskip}{0pt plus 5cm}void revalidate ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_a5bd93abe1416952ace15a98dbeeed124} Actualize the \hyperlink{classKite_1_1TrackSegment}{Track\-Segment} characteristics from the supporting elements (set of Auto\-Segment). This method do not update the \hyperlink{classKite_1_1DataNegociate}{Data\-Negociate} or the \hyperlink{classKite_1_1RoutingEvent}{Routing\-Event}. This is a lazy update delayed until the constructor of \hyperlink{classKite_1_1SegmentFsm}{Segment\-Fsm} is called. (see \hyperlink{classKite_1_1TrackSegment_secTSLazyRevalidate}{Lazy Revalidate}). Reimplemented from \hyperlink{classKite_1_1TrackElement_a5bd93abe1416952ace15a98dbeeed124}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_a262a915c38127d3722ec561b30d80f91}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!set\-Axis@{set\-Axis}} \index{set\-Axis@{set\-Axis}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{set\-Axis}]{\setlength{\rightskip}{0pt plus 5cm}void set\-Axis ( \begin{DoxyParamCaption} \item[{{\bf Db\-U\-::\-Unit}}]{, } \item[{unsigned int}]{flags} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_a262a915c38127d3722ec561b30d80f91} Sets the axis of the \hyperlink{classKite_1_1TrackElement}{Track\-Element}. Reimplemented from \hyperlink{classKite_1_1TrackElement_a45e685b1e3ee630d24bf43746553af4c}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_a7a9637875364e84e6862de0102341715}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!make\-Dogleg@{make\-Dogleg}} \index{make\-Dogleg@{make\-Dogleg}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_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 from \hyperlink{classKite_1_1TrackElement_a7a9637875364e84e6862de0102341715}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_a524f1569b2f2c1a84df2fe47e84e28ed}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!make\-Dogleg@{make\-Dogleg}} \index{make\-Dogleg@{make\-Dogleg}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \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_1TrackSegment_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 from \hyperlink{classKite_1_1TrackElement_a524f1569b2f2c1a84df2fe47e84e28ed}{Track\-Element}. \hypertarget{classKite_1_1TrackSegment_a10a45c049d0bd7d01c7eff1c5441c7a2}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!\-\_\-post\-Doglegs@{\-\_\-post\-Doglegs}} \index{\-\_\-post\-Doglegs@{\-\_\-post\-Doglegs}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{\-\_\-post\-Doglegs}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Track\-Segment} $\ast$ \-\_\-post\-Doglegs ( \begin{DoxyParamCaption} \item[{{\bf Track\-Element} $\ast$\&}]{perpandicular, } \item[{{\bf Track\-Element} $\ast$\&}]{parallel} \end{DoxyParamCaption} )\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_a10a45c049d0bd7d01c7eff1c5441c7a2} Post-\/process to be called inside the various dogleg creation or slacken methods. Iterate through the newly created Auto\-Segments to create, for the {\itshape perpandicular} and the {\itshape new parallel} associateds Track\-Segments. Also sets the dogleg levels and flags of the newly created elements. The session dogleg reset is called at the end of this method. The {\ttfamily perpandicular} and {\ttfamily parallel} references to pointers contains the newly created segments for the {\bfseries last} dogleg. If more than one was created, you cannot access them (the need has not arised yet). Reimplemented from \hyperlink{classKite_1_1TrackElement}{Track\-Element}. Referenced by Track\-Segment\-::make\-Dogleg(). \hypertarget{classKite_1_1TrackSegment_aa1ef325b98fab61d2c7c5bdc1fcd92fc}{\index{Kite\-::\-Track\-Segment@{Kite\-::\-Track\-Segment}!\-\_\-check@{\-\_\-check}} \index{\-\_\-check@{\-\_\-check}!Kite::TrackSegment@{Kite\-::\-Track\-Segment}} \paragraph[{\-\_\-check}]{\setlength{\rightskip}{0pt plus 5cm}bool \-\_\-check ( \begin{DoxyParamCaption} {} \end{DoxyParamCaption} ) const\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classKite_1_1TrackSegment_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 from \hyperlink{classKite_1_1TrackElement_aa1ef325b98fab61d2c7c5bdc1fcd92fc}{Track\-Element}. The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize} \item Track\-Segment.\-h\item Track\-Segment.\-cpp\item Track\-Segment.\-dox\end{DoxyCompactItemize}