Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RayS3< FT > Class Template Reference

#include <RayS3.h>

Public Member Functions

 RayS3 ()
 
 RayS3 (const PointS3< FT > &sp, const PointS3< FT > &secondp)
 
 RayS3 (const PointS3< FT > &sp, const DirectionS3< FT > &d)
 
bool operator== (const RayS3< FT > &r) const
 
bool operator!= (const RayS3< FT > &r) const
 
PointS3< FT > start () const
 
PointS3< FT > source () const
 
PointS3< FT > second_point () const
 
PointS3< FT > point (int i) const
 
DirectionS3< FT > direction () const
 
LineS3< FT > supporting_line () const
 
RayS3 opposite () const
 
RayS3 transform (const Aff_transformationS3< FT > &t) const
 
bool is_degenerate () const
 
bool has_on (const PointS3< FT > &p) const
 
bool collinear_has_on (const PointS3< FT > &p) const
 

Public Attributes

PointS3< FT > e0
 
PointS3< FT > e1
 

Detailed Description

template<class FT>
class RayS3< FT >

Definition at line 59 of file RayS3.h.

Constructor & Destructor Documentation

RayS3 ( )
inline

Definition at line 62 of file RayS3.h.

62 {}
RayS3 ( const PointS3< FT > &  sp,
const PointS3< FT > &  secondp 
)

Definition at line 91 of file RayS3.h.

92 {
93  e0 = sp;
94  e1 = secondp;
95 }
PointS3< FT > e0
Definition: RayS3.h:85
PointS3< FT > e1
Definition: RayS3.h:86
RayS3 ( const PointS3< FT > &  sp,
const DirectionS3< FT > &  d 
)

Definition at line 99 of file RayS3.h.

References DirectionS3< FT >::vector().

100 {
101  e0 = sp;
102  e1 = sp + d.vector();
103 }
PointS3< FT > e0
Definition: RayS3.h:85
VectorS3< FT > vector() const
Definition: DirectionS3.h:71
PointS3< FT > e1
Definition: RayS3.h:86

Here is the call graph for this function:

Member Function Documentation

bool collinear_has_on ( const PointS3< FT > &  p) const
inline

Definition at line 200 of file RayS3.h.

References CGAL_kernel_exactness_precondition, collinear(), compare_x(), compare_y(), compare_z(), and EQUAL.

201 {
203 
205  if (cx != EQUAL)
206  return cx != compare_x(p, source());
207 
209  if (cy != EQUAL)
210  return cy != compare_y(p, source());
211 
213  if (cz != EQUAL)
214  return cz != compare_z(p, source());
215 
216  return true; // p == source()
217 }
PointS3< FT > source() const
Definition: RayS3.h:128
Comparison_result compare_y(const Point_2< R > &p, const Point_2< R > &q)
Comparison_result compare_x(const Point_2< R > &p, const Point_2< R > &q)
bool collinear(const Point_2< R > &p, const Point_2< R > &q, const Point_2< R > &r)
PointS3< FT > second_point() const
Definition: RayS3.h:133
#define CGAL_kernel_exactness_precondition(EX)
Comparison_result
Definition: enum.h:94
Definition: enum.h:97
Comparison_result compare_z(const PointS3< FT > &p, const PointS3< FT > &q)

Here is the call graph for this function:

DirectionS3< FT > direction ( ) const
inline

Definition at line 155 of file RayS3.h.

Referenced by RayS3< FT >::operator==().

156 { return DirectionS3<FT>( second_point() - source() ); }
PointS3< FT > source() const
Definition: RayS3.h:128
PointS3< FT > second_point() const
Definition: RayS3.h:133

Here is the caller graph for this function:

bool has_on ( const PointS3< FT > &  p) const

Definition at line 182 of file RayS3.h.

References collinear().

183 {
184  return (p == source()) ||
185  ( collinear(source(), p, second_point())
186  && ( DirectionS3<FT>(p - source()) == direction() ));
187 }
PointS3< FT > source() const
Definition: RayS3.h:128
bool collinear(const Point_2< R > &p, const Point_2< R > &q, const Point_2< R > &r)
DirectionS3< FT > direction() const
Definition: RayS3.h:155
PointS3< FT > second_point() const
Definition: RayS3.h:133

Here is the call graph for this function:

bool is_degenerate ( ) const
inline

Definition at line 193 of file RayS3.h.

194 { return source() == second_point(); }
PointS3< FT > source() const
Definition: RayS3.h:128
PointS3< FT > second_point() const
Definition: RayS3.h:133
bool operator!= ( const RayS3< FT > &  r) const
inline

Definition at line 116 of file RayS3.h.

117 { return !(*this == r); }
bool operator== ( const RayS3< FT > &  r) const
inline

Definition at line 109 of file RayS3.h.

References RayS3< FT >::direction(), and RayS3< FT >::source().

110 { return (source() == r.source()) && (direction() == r.direction()); }
PointS3< FT > source() const
Definition: RayS3.h:128
DirectionS3< FT > direction() const
Definition: RayS3.h:155

Here is the call graph for this function:

RayS3< FT > opposite ( ) const
inline

Definition at line 169 of file RayS3.h.

170 { return RayS3<FT>( source(), - direction() ); }
PointS3< FT > source() const
Definition: RayS3.h:128
DirectionS3< FT > direction() const
Definition: RayS3.h:155
Definition: RayS3.h:59
PointS3< FT > point ( int  i) const

Definition at line 139 of file RayS3.h.

References CGAL_kernel_precondition.

140 {
141  CGAL_kernel_precondition( i >= 0 );
142  if (i == 0)
143  return e0;
144 
145  if (i == 1)
146  return e1;
147 
148  return source() + FT(i) * (second_point() - source());
149 }
PointS3< FT > e0
Definition: RayS3.h:85
PointS3< FT > source() const
Definition: RayS3.h:128
blockLoc i
Definition: read.cpp:79
PointS3< FT > second_point() const
Definition: RayS3.h:133
PointS3< FT > e1
Definition: RayS3.h:86
#define CGAL_kernel_precondition(EX)
PointS3< FT > second_point ( ) const

Definition at line 133 of file RayS3.h.

Referenced by LineS3< FT >::LineS3(), and PlaneS3< FT >::PlaneS3().

134 { return e1; }
PointS3< FT > e1
Definition: RayS3.h:86

Here is the caller graph for this function:

PointS3< FT > source ( ) const

Definition at line 128 of file RayS3.h.

Referenced by RayS3< FT >::operator==().

129 { return e0; }
PointS3< FT > e0
Definition: RayS3.h:85

Here is the caller graph for this function:

PointS3< FT > start ( ) const

Definition at line 122 of file RayS3.h.

Referenced by LineS3< FT >::LineS3(), and PlaneS3< FT >::PlaneS3().

123 { return e0; }
PointS3< FT > e0
Definition: RayS3.h:85

Here is the caller graph for this function:

LineS3< FT > supporting_line ( ) const
inline

Definition at line 162 of file RayS3.h.

163 { return LineS3<FT>(*this); }
Definition: LineS3.h:59
RayS3< FT > transform ( const Aff_transformationS3< FT > &  t) const
inline

Definition at line 176 of file RayS3.h.

References Aff_transformationS3< FT >::transform().

177 { return RayS3<FT>(t.transform(source()), t.transform(second_point())); }
PointS3< FT > source() const
Definition: RayS3.h:128
PointS3< FT > transform(const PointS3< FT > &p) const
PointS3< FT > second_point() const
Definition: RayS3.h:133
Definition: RayS3.h:59

Here is the call graph for this function:

Member Data Documentation

PointS3<FT> e0

Definition at line 85 of file RayS3.h.

PointS3<FT> e1

Definition at line 86 of file RayS3.h.


The documentation for this class was generated from the following file: