117 template <
class FT >
119 { new_rep(p, q - p); }
121 template <
class FT >
125 template <
class FT >
129 template <
class FT >
131 { new_rep(p, d.
vector()); }
133 template <
class FT >
137 template <
class FT >
141 {
return !(*
this == l); }
143 template <
class FT >
148 template <
class FT >
151 {
return (e1 -
ORIGIN).direction(); }
154 template <
class FT >
159 template <
class FT >
164 template <
class FT >
169 template <
class FT >
173 return point() + ( ((direction().vector() * (p - point())) /
174 (direction().vector() * direction().vector()))
175 * direction().vector() );
178 template <
class FT >
181 {
return collinear(point(), point()+direction().vector(), p); }
184 template <
class FT >
190 template <
class FT >
197 #ifndef CGAL_NO_OSTREAM_INSERT_LINES3
198 template <
class FT >
200 operator<<(std::ostream& os, const LineS3<FT>& l)
205 return os << l.point(0) <<
' ' << l.point(1);
207 return os << l.point(0) << l.point(1);
209 return os <<
"LineS3(" << l.point(0) <<
", " << l.point(1) <<
")";
212 #endif // CGAL_NO_OSTREAM_INSERT_LINES3
214 #ifndef CGAL_NO_ISTREAM_EXTRACT_LINES3
215 template <
class FT >
224 #endif // CGAL_NO_ISTREAM_EXTRACT_LINES3
229 #endif // CGAL_LINES3_H
bool is_degenerate() const
void new_rep(const PointS3< FT > &p, const VectorS3< FT > &v)
PointS3< FT > start() const
PointS3< FT > projection(const PointS3< FT > &p) const
bool has_on(const PointS3< FT > &p) const
LineS3< FT > opposite() const
*********************************************************************Illinois Open Source License ****University of Illinois NCSA **Open Source License University of Illinois All rights reserved ****Developed free of to any person **obtaining a copy of this software and associated documentation to deal with the Software without including without limitation the rights to and or **sell copies of the and to permit persons to whom the **Software is furnished to do subject to the following this list of conditions and the following disclaimers ****Redistributions in binary form must reproduce the above **copyright this list of conditions and the following **disclaimers in the documentation and or other materials **provided with the distribution ****Neither the names of the Center for Simulation of Advanced the University of nor the names of its **contributors may be used to endorse or promote products derived **from this Software without specific prior written permission ****THE SOFTWARE IS PROVIDED AS WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **ARISING OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE v
bool collinear(const Point_2< R > &p, const Point_2< R > &q, const Point_2< R > &r)
PointS3< FT > end() const
PlaneS3< FT > perpendicular_plane(const PointS3< FT > &p) const
PointS3< FT > point() const
PointS3< FT > second_point() const
VectorS3< FT > vector() const
LineS3< FT > transform(const Aff_transformationS3< FT > &t) const
#define CGAL_BEGIN_NAMESPACE
DirectionS3< FT > direction() const
bool operator==(const LineS3< FT > &l) const
bool operator!=(const LineS3< FT > &l) const
PointS3< FT > start() const
#define CGAL_END_NAMESPACE