54 #include <CGAL/SimpleCartesian/PointS2.h>
100 {
s = sp; t = sp + d.
vector(); }
102 template <
class FT >
106 {
return ((source() == r.
source()) && (direction() == r.
direction()) ); }
108 template <
class FT >
111 {
return !(*
this == r); }
113 template <
class FT >
119 template <
class FT >
125 template <
class FT >
131 template <
class FT >
143 return source() + FT(i) * (second_point() - source());
146 template <
class FT >
152 template <
class FT >
157 template <
class FT >
160 {
return RayS2<FT>( source(), - direction() ); }
163 template <
class FT >
170 template <
class FT >
174 {
return (source().
y() == second_point().
y()); }
176 template <
class FT >
180 {
return (source().
x() == second_point().
x()); }
182 template <
class FT >
186 {
return (source() == second_point()); }
188 template <
class FT >
193 return ( p == source()
194 || (
collinear(source(), p, second_point())
198 template <
class FT >
203 switch(
compare_x(source(), second_point())){
209 switch(
compare_y(source(), second_point())){
221 #ifndef CGAL_NO_OSTREAM_INSERT_RAYS2
222 template <
class FT >
223 std::ostream& operator<<(std::ostream &os, const RayS2<FT> &r)
227 return os << r.source() <<
' ' << r.direction();
229 return os << r.source() << r.direction();
231 return os <<
"RayS2(" << r.source() <<
", " << r.direction() <<
")";
234 #endif // CGAL_NO_OSTREAM_INSERT_RAYS2
236 #ifndef CGAL_NO_ISTREAM_EXTRACT_RAYS2
237 template <
class FT >
248 #endif // CGAL_NO_ISTREAM_EXTRACT_RAYS2
RayS2(const PointS2< FT > &sp, const PointS2< FT > &secondp)
#define CGAL_KERNEL_CTOR_INLINE
Comparison_result compare_y(const Point_2< R > &p, const Point_2< R > &q)
void int int REAL REAL * y
LineS2< FT > supporting_line() const
#define CGAL_KERNEL_INLINE
bool operator!=(const RayS2< FT > &r) const
#define CGAL_KERNEL_MEDIUM_INLINE
DirectionS2< FT > direction() const
bool collinear_has_on(const PointS2< FT > &p) const
PointS2< FT > second_point() const
Comparison_result compare_x(const Point_2< R > &p, const Point_2< R > &q)
const PointS2< FT > & start() const
bool has_on(const PointS2< FT > &p) const
const PointS2< FT > & source() const
bool collinear(const Point_2< R > &p, const Point_2< R > &q, const Point_2< R > &r)
bool is_horizontal() const
VectorS2< FT > vector() const
PointS2< FT > point(int i) const
bool operator==(const RayS2< FT > &r) const
#define CGAL_BEGIN_NAMESPACE
bool is_degenerate() const
RayS2< FT > opposite() const
RayS2< FT > transform(const Aff_transformationS2< FT > &t) const
#define CGAL_END_NAMESPACE
#define CGAL_kernel_precondition(EX)