54 #ifndef CGAL_REP_CLASS_DEFINED
55 #error no representation class defined
56 #endif // CGAL_REP_CLASS_DEFINED
58 #ifdef CGAL_HOMOGENEOUS_H
60 #include <CGAL/RayH3.h>
61 #endif // CGAL_RAYH3_H
62 #endif // CGAL_HOMOGENEOUS_H
64 #ifdef CGAL_CARTESIAN_H
66 #include <CGAL/Cartesian/Ray_3.h>
67 #endif // CGAL_RAYC3_H
68 #endif // CGAL_CARTESIAN_H
70 #ifdef CGAL_SIMPLE_CARTESIAN_H
72 #endif // CGAL_SIMPLE_CARTESIAN_H
78 class Ray_3 :
public R_::Ray_3_base
82 typedef typename R::RT
RT;
83 typedef typename R::FT
FT;
84 typedef typename R::Ray_3_base
RRay_3;
92 Ray_3(
const CGAL::Point_3<R>& sp,
93 const CGAL::Point_3<R>& secondp)
96 Ray_3(
const CGAL::Point_3<R>& sp,
97 const CGAL::Direction_3<R>&
d)
104 {
return !(*
this == r); }
107 {
return RRay_3::start(); }
109 {
return RRay_3::source(); }
111 {
return RRay_3::second_point(); }
113 {
return RRay_3::point(i); }
115 {
return RRay_3::direction(); }
117 {
return RRay_3::supporting_line(); }
120 CGAL::Ray_3<R>
transform(
const CGAL::Aff_transformation_3<R>& t)
const
121 {
return RRay_3::transform(t); }
123 {
return RRay_3::is_degenerate(); }
124 bool has_on(
const CGAL::Point_3<R>& p)
const
125 {
return RRay_3::has_on(p); }
128 #ifndef NO_OSTREAM_INSERT_RAY_3
131 operator<<(std::ostream& os, const Ray_3<R>& r)
133 typedef typename R::Ray_3_base RRay_3;
134 return os << (
const RRay_3& )r;
136 #endif // NO_OSTREAM_INSERT_RAY_3
138 #ifndef NO_ISTREAM_EXTRACT_RAY_3
143 typedef typename R::Ray_3_base RRay_3;
144 return is >> (RRay_3& )r;
146 #endif // NO_ISTREAM_EXTRACT_RAY_3
152 #ifndef CGAL_LINE_3_H
154 #endif // CGAL_LINE_3_H
156 #endif // CGAL_RAY_3_H
CGAL::Line_3< R > supporting_line() const
CGAL_END_NAMESPACE CGAL_BEGIN_NAMESPACE bool operator==(const Origin &o, const Point_2< R > &p)
Ray_3(const CGAL::Point_3< R > &sp, const CGAL::Direction_3< R > &d)
bool is_degenerate() const
bool operator==(const CGAL::Ray_3< R > &r) const
bool operator!=(const CGAL::Ray_3< R > &r) const
bool has_on(const CGAL::Point_3< R > &p) const
CGAL::Point_3< R > start() const
CGAL::Ray_3< R > transform(const CGAL::Aff_transformation_3< R > &t) const
CGAL::Point_3< R > source() const
CGAL::Ray_3< R > opposite() const
CGAL::Point_3< R > second_point() const
Ray_3(const CGAL::Point_3< R > &sp, const CGAL::Point_3< R > &secondp)
CGAL::Direction_3< R > direction() const
CGAL_BEGIN_NAMESPACE T opposite(const T &t)
Ray_3(const CGAL::Ray_3< R > &r)
#define CGAL_BEGIN_NAMESPACE
#define CGAL_END_NAMESPACE
CGAL::Point_3< R > point(int i) const