cgal/NewKernel_d/doc_tex/NewKernel_d_ref/Segment.tex

29 lines
1.2 KiB
TeX

\begin{ccRefConcept}{Segment}
The concept of a {\em Segment} is defined by a set of requirements on
the provision of certain types in a \ccc{Kernel} that already provides
the concept of a \ccc{Point}.
\ccRefines
\ccc{Point}
\ccNestedType{Object_list}{shall contain at least \ccc{Segment_tag}.}
\ccNestedType{Type<Segment_tag>::type}{shall be CopyConstructible.}
\ccNestedType{Functor<Convert_ttag<Segment_tag>>::type}{[Optional] A default converter it available to \ccc{Kernel_converter}, but may be unsuitable if your Segment type is too original.}
\ccNestedType{Functor<Construct_segment_extremity_tag>::type}{shall
provide \ccc{Type<Point_tag>::type operator()(Type<Segment_tag>::type,
int k)const} which returns the $k$th ($0$ or $1$) extremity of the segment.}
\ccNestedType{Functor<Construct_ttag<Segment_tag>>::type}{shall provide:\\
\ccc{Type<Segment_tag>::type
operator()(Type<Point_tag>::type,Type<Point_tag>::type)const} which
constructs a segment from its extremities;\\
\ccc{Type<Segment_tag>::type operator()(piecewise_construct_t,
tuple<U...> u, tuple<V...> v)const} which calls
\ccc{Functor<Construct_ttag<Point_tag>>::type} on the content of each
tuple to create the extremities.
}
\end{ccRefConcept}