mirror of https://github.com/CGAL/cgal
29 lines
1.2 KiB
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}
|
|
|