Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
predicates/kernel_ftC2.h File Reference
Include dependency graph for predicates/kernel_ftC2.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

template<class FT >
CGAL_BEGIN_NAMESPACE
CGAL_KERNEL_MEDIUM_INLINE bool 
equal_lineC2 (const FT &l1a, const FT &l1b, const FT &l1c, const FT &l2a, const FT &l2b, const FT &l2c)
 
template<class FT >
CGAL_KERNEL_MEDIUM_INLINE
Comparison_result 
compare_xC2 (const FT &px, const FT &la, const FT &lb, const FT &lc, const FT &ha, const FT &hb, const FT &hc)
 
template<class FT >
CGAL_KERNEL_MEDIUM_INLINE
Comparison_result 
compare_xC2 (const FT &la, const FT &lb, const FT &lc, const FT &h1a, const FT &h1b, const FT &h1c, const FT &h2a, const FT &h2b, const FT &h2c)
 
template<class FT >
CGAL_KERNEL_MEDIUM_INLINE
Comparison_result 
compare_xC2 (const FT &l1a, const FT &l1b, const FT &l1c, const FT &h1a, const FT &h1b, const FT &h1c, const FT &l2a, const FT &l2b, const FT &l2c, const FT &h2a, const FT &h2b, const FT &h2c)
 
template<class FT >
CGAL_KERNEL_MEDIUM_INLINE
Comparison_result 
compare_y_at_xC2 (const FT &px, const FT &py, const FT &la, const FT &lb, const FT &lc)
 
template<class FT >
CGAL_KERNEL_MEDIUM_INLINE
Comparison_result 
compare_y_at_xC2 (const FT &px, const FT &l1a, const FT &l1b, const FT &l1c, const FT &l2a, const FT &l2b, const FT &l2c)
 
template<class FT >
CGAL_KERNEL_LARGE_INLINE
Comparison_result 
compare_y_at_xC2 (const FT &l1a, const FT &l1b, const FT &l1c, const FT &l2a, const FT &l2b, const FT &l2c, const FT &ha, const FT &hb, const FT &hc)
 
template<class FT >
CGAL_KERNEL_LARGE_INLINE
Comparison_result 
compare_y_at_xC2 (const FT &l1a, const FT &l1b, const FT &l1c, const FT &l2a, const FT &l2b, const FT &l2c, const FT &h1a, const FT &h1b, const FT &h1c, const FT &h2a, const FT &h2b, const FT &h2c)
 
template<class FT >
CGAL_KERNEL_MEDIUM_INLINE bool equal_directionC2 (const FT &dx1, const FT &dy1, const FT &dx2, const FT &dy2)
 
template<class FT >
CGAL_KERNEL_MEDIUM_INLINE
Comparison_result 
compare_angle_with_x_axisC2 (const FT &dx1, const FT &dy1, const FT &dx2, const FT &dy2)
 
template<class FT >
Comparison_result compare_deltax_deltayC2 (const FT &px, const FT &qx, const FT &ry, const FT &sy)
 
template<class FT >
Comparison_result compare_lexicographically_xyC2 (const FT &px, const FT &py, const FT &qx, const FT &qy)
 
template<class FT >
Orientation orientationC2 (const FT &px, const FT &py, const FT &qx, const FT &qy, const FT &rx, const FT &ry)
 
template<class FT >
CGAL_KERNEL_MEDIUM_INLINE bool collinear_are_ordered_along_lineC2 (const FT &px, const FT &py, const FT &qx, const FT &qy, const FT &rx, const FT &ry)
 
template<class FT >
CGAL_KERNEL_MEDIUM_INLINE bool collinear_are_strictly_ordered_along_lineC2 (const FT &px, const FT &py, const FT &qx, const FT &qy, const FT &rx, const FT &ry)
 
template<class FT >
CGAL_KERNEL_LARGE_INLINE
Oriented_side 
side_of_oriented_circleC2 (const FT &px, const FT &py, const FT &qx, const FT &qy, const FT &rx, const FT &ry, const FT &tx, const FT &ty)
 
template<class FT >
CGAL_KERNEL_LARGE_INLINE
Bounded_side 
side_of_bounded_circleC2 (const FT &px, const FT &py, const FT &qx, const FT &qy, const FT &rx, const FT &ry, const FT &tx, const FT &ty)
 
template<class FT >
Comparison_result cmp_dist_to_pointC2 (const FT &px, const FT &py, const FT &qx, const FT &qy, const FT &rx, const FT &ry)
 
template<class FT >
bool has_larger_dist_to_pointC2 (const FT &px, const FT &py, const FT &qx, const FT &qy, const FT &rx, const FT &ry)
 
template<class FT >
bool has_smaller_dist_to_pointC2 (const FT &px, const FT &py, const FT &qx, const FT &qy, const FT &rx, const FT &ry)
 
template<class FT >
Comparison_result cmp_signed_dist_to_directionC2 (const FT &la, const FT &lb, const FT &px, const FT &py, const FT &qx, const FT &qy)
 
template<class FT >
bool has_larger_signed_dist_to_directionC2 (const FT &la, const FT &lb, const FT &px, const FT &py, const FT &qx, const FT &qy)
 
template<class FT >
bool has_smaller_signed_dist_to_directionC2 (const FT &la, const FT &lb, const FT &px, const FT &py, const FT &qx, const FT &qy)
 
template<class FT >
Comparison_result cmp_signed_dist_to_lineC2 (const FT &px, const FT &py, const FT &qx, const FT &qy, const FT &rx, const FT &ry, const FT &sx, const FT &sy)
 
template<class FT >
bool has_larger_signed_dist_to_lineC2 (const FT &px, const FT &py, const FT &qx, const FT &qy, const FT &rx, const FT &ry, const FT &sx, const FT &sy)
 
template<class FT >
bool has_smaller_signed_dist_to_lineC2 (const FT &px, const FT &py, const FT &qx, const FT &qy, const FT &rx, const FT &ry, const FT &sx, const FT &sy)
 
template<class FT >
Oriented_side side_of_oriented_lineC2 (const FT &a, const FT &b, const FT &c, const FT &x, const FT &y)
 

Function Documentation

Comparison_result cmp_dist_to_pointC2 ( const FT &  px,
const FT &  py,
const FT &  qx,
const FT &  qy,
const FT &  rx,
const FT &  ry 
)
inline

Definition at line 329 of file predicates/kernel_ftC2.h.

References CGAL_NTS, CGAL::compare(), and squared_distanceC2().

Referenced by has_larger_dist_to_pointC2(), and has_smaller_dist_to_pointC2().

332 {
333  return CGAL_NTS compare(squared_distanceC2(px,py,qx,qy),
334  squared_distanceC2(px,py,rx,ry));
335 }
CGAL_KERNEL_INLINE FT squared_distanceC2(const FT &px, const FT &py, const FT &qx, const FT &qy)
CGAL_KERNEL_INLINE Comparison_result compare(const NT &n1, const NT &n2)
Definition: number_utils.h:143
#define CGAL_NTS

Here is the call graph for this function:

Here is the caller graph for this function:

Comparison_result cmp_signed_dist_to_directionC2 ( const FT &  la,
const FT &  lb,
const FT &  px,
const FT &  py,
const FT &  qx,
const FT &  qy 
)
inline

Definition at line 362 of file predicates/kernel_ftC2.h.

References CGAL_NTS, CGAL::compare(), and scaled_distance_to_directionC2().

Referenced by has_larger_signed_dist_to_directionC2(), and has_smaller_signed_dist_to_directionC2().

365 {
366  return CGAL_NTS compare(scaled_distance_to_directionC2(la,lb,px,py),
367  scaled_distance_to_directionC2(la,lb,qx,qy));
368 }
CGAL_KERNEL_INLINE FT scaled_distance_to_directionC2(const FT &la, const FT &lb, const FT &px, const FT &py)
CGAL_KERNEL_INLINE Comparison_result compare(const NT &n1, const NT &n2)
Definition: number_utils.h:143
#define CGAL_NTS

Here is the call graph for this function:

Here is the caller graph for this function:

Comparison_result cmp_signed_dist_to_lineC2 ( const FT &  px,
const FT &  py,
const FT &  qx,
const FT &  qy,
const FT &  rx,
const FT &  ry,
const FT &  sx,
const FT &  sy 
)
inline

Definition at line 395 of file predicates/kernel_ftC2.h.

References CGAL_NTS, CGAL::compare(), and scaled_distance_to_lineC2().

Referenced by has_larger_signed_dist_to_lineC2(), and has_smaller_signed_dist_to_lineC2().

399 {
400  return CGAL_NTS compare(scaled_distance_to_lineC2(px,py,qx,qy,rx,ry),
401  scaled_distance_to_lineC2(px,py,qx,qy,sx,sy));
402 }
CGAL_KERNEL_INLINE Comparison_result compare(const NT &n1, const NT &n2)
Definition: number_utils.h:143
#define CGAL_NTS
CGAL_KERNEL_INLINE FT scaled_distance_to_lineC2(const FT &la, const FT &lb, const FT &lc, const FT &px, const FT &py)

Here is the call graph for this function:

Here is the caller graph for this function:

CGAL_KERNEL_MEDIUM_INLINE bool collinear_are_ordered_along_lineC2 ( const FT &  px,
const FT &  py,
const FT &  qx,
const FT &  qy,
const FT &  rx,
const FT &  ry 
)

Definition at line 257 of file predicates/kernel_ftC2.h.

Referenced by collinear_are_ordered_along_line().

260 {
261  if (px < qx) return !(rx < qx);
262  if (qx < px) return !(qx < rx);
263  if (py < qy) return !(ry < qy);
264  if (qy < py) return !(qy < ry);
265  return true; // p==q
266 }

Here is the caller graph for this function:

CGAL_KERNEL_MEDIUM_INLINE bool collinear_are_strictly_ordered_along_lineC2 ( const FT &  px,
const FT &  py,
const FT &  qx,
const FT &  qy,
const FT &  rx,
const FT &  ry 
)

Definition at line 272 of file predicates/kernel_ftC2.h.

Referenced by collinear_are_strictly_ordered_along_line().

275 {
276  if (px < qx) return (qx < rx);
277  if (qx < px) return (rx < qx);
278  if (py < qy) return (qy < ry);
279  if (qy < py) return (ry < qy);
280  return false;
281 }

Here is the caller graph for this function:

CGAL_KERNEL_MEDIUM_INLINE Comparison_result compare_angle_with_x_axisC2 ( const FT &  dx1,
const FT &  dy1,
const FT &  dx2,
const FT &  dy2 
)

Definition at line 204 of file predicates/kernel_ftC2.h.

References LARGER, sign_of_determinant2x2(), and SMALLER.

206 {
207  // angles are in [-pi,pi], and the angle between Ox and d1 is compared
208  // with the angle between Ox and d2
209  int quadrant_1 = (dx1 >= FT(0)) ? ((dy1 >= FT(0))?1:4)
210  : ((dy1 >= FT(0))?2:3);
211  int quadrant_2 = (dx2 >= FT(0)) ? ((dy2 >= FT(0))?1:4)
212  : ((dy2 >= FT(0))?2:3);
213  // We can't use CGAL_NTS compare(quadrant_1,quadrant_2) because in case
214  // of tie, we need additional computation
215  if (quadrant_1 > quadrant_2)
216  return LARGER;
217  else if (quadrant_1 < quadrant_2)
218  return SMALLER;
219  return Comparison_result(-sign_of_determinant2x2(dx1,dy1,dx2,dy2));
220 }
CGAL_BEGIN_NAMESPACE Sign sign_of_determinant2x2(const FT &a00, const FT &a01, const FT &a10, const FT &a11)
Definition: enum.h:96
Comparison_result
Definition: enum.h:94
Definition: enum.h:98

Here is the call graph for this function:

Comparison_result compare_deltax_deltayC2 ( const FT &  px,
const FT &  qx,
const FT &  ry,
const FT &  sy 
)
inline

Definition at line 225 of file predicates/kernel_ftC2.h.

References NTS::abs(), CGAL_NTS, and CGAL::compare().

Referenced by compare_deltax_deltay().

227 {
228  return CGAL_NTS compare(CGAL_NTS abs(px-qx), CGAL_NTS abs(ry-sy));
229 }
NT abs(const NT &x)
Definition: number_utils.h:130
CGAL_KERNEL_INLINE Comparison_result compare(const NT &n1, const NT &n2)
Definition: number_utils.h:143
#define CGAL_NTS

Here is the call graph for this function:

Here is the caller graph for this function:

Comparison_result compare_lexicographically_xyC2 ( const FT &  px,
const FT &  py,
const FT &  qx,
const FT &  qy 
)
inline

Definition at line 235 of file predicates/kernel_ftC2.h.

References CGAL_NTS, CGAL::compare(), and EQUAL.

Referenced by compare_lexicographically_xy(), and compare_lexicographically_yx().

237 {
239  return (c != EQUAL) ? c : CGAL_NTS compare(py,qy);
240 }
Comparison_result
Definition: enum.h:94
Definition: enum.h:97
CGAL_KERNEL_INLINE Comparison_result compare(const NT &n1, const NT &n2)
Definition: number_utils.h:143
#define CGAL_NTS

Here is the call graph for this function:

Here is the caller graph for this function:

CGAL_KERNEL_MEDIUM_INLINE Comparison_result compare_xC2 ( const FT &  px,
const FT &  la,
const FT &  lb,
const FT &  lc,
const FT &  ha,
const FT &  hb,
const FT &  hc 
)

Definition at line 76 of file predicates/kernel_ftC2.h.

References CGAL_kernel_assertion, CGAL_NTS, CGAL::compare(), den, det2x2_by_formula(), s, sign(), and ZERO.

79 {
80  // The abscissa of the intersection point is num/den.
81  FT num = det2x2_by_formula( lb, lc, hb, hc);
82  FT den = det2x2_by_formula( la, lb, ha, hb);
83  Sign s = CGAL_NTS sign(den);
85  return Comparison_result( s * CGAL_NTS compare( px * den, num) );
86 }
CGAL_BEGIN_NAMESPACE FT det2x2_by_formula(const FT &a00, const FT &a01, const FT &a10, const FT &a11)
Definition: determinant.h:59
static SURF_BEGIN_NAMESPACE double sign(double x)
double s
Definition: blastest.C:80
NT & den
Sign
Definition: enum.h:57
Comparison_result
Definition: enum.h:94
Definition: enum.h:60
CGAL_KERNEL_INLINE Comparison_result compare(const NT &n1, const NT &n2)
Definition: number_utils.h:143
#define CGAL_NTS
#define CGAL_kernel_assertion(EX)

Here is the call graph for this function:

CGAL_KERNEL_MEDIUM_INLINE Comparison_result compare_xC2 ( const FT &  la,
const FT &  lb,
const FT &  lc,
const FT &  h1a,
const FT &  h1b,
const FT &  h1c,
const FT &  h2a,
const FT &  h2b,
const FT &  h2c 
)

Definition at line 91 of file predicates/kernel_ftC2.h.

References CGAL_NTS, det2x2_by_formula(), and sign().

94 {
95  /*
96  FT num1 = det2x2_by_formula( lb, lc, h1b, h1c);
97  FT den1 = det2x2_by_formula( la, lb, h1a, h1b);
98  FT num2 = det2x2_by_formula( lb, lc, h2b, h2c);
99  FT den2 = det2x2_by_formula( la, lb, h2a, h2b);
100  Sign s = Sign (CGAL_NTS sign(den1) * CGAL_NTS sign(den2));
101  CGAL_kernel_assertion( s != ZERO );
102  return Comparison_result( s * sign_of_determinant2x2(num1,
103  num2, den1, den2));
104  */
105  FT num1 = det2x2_by_formula( la, lc, h1a, h1c);
106  FT num2 = det2x2_by_formula( la, lc, h2a, h2c);
107  FT num = det2x2_by_formula(h1a,h1c,h2a,h2c)*lb
108  + det2x2_by_formula(num1,num2,h1b,h2b);
109  FT den1 = det2x2_by_formula( la, lb, h1a, h1b);
110  FT den2 = det2x2_by_formula( la, lb, h2a, h2b);
111  return Comparison_result( CGAL_NTS sign(lb) * CGAL_NTS sign(num) *
112  CGAL_NTS sign(den1) * CGAL_NTS sign(den2));
113 }
CGAL_BEGIN_NAMESPACE FT det2x2_by_formula(const FT &a00, const FT &a01, const FT &a10, const FT &a11)
Definition: determinant.h:59
static SURF_BEGIN_NAMESPACE double sign(double x)
Comparison_result
Definition: enum.h:94
#define CGAL_NTS

Here is the call graph for this function:

CGAL_KERNEL_MEDIUM_INLINE Comparison_result compare_xC2 ( const FT &  l1a,
const FT &  l1b,
const FT &  l1c,
const FT &  h1a,
const FT &  h1b,
const FT &  h1c,
const FT &  l2a,
const FT &  l2b,
const FT &  l2c,
const FT &  h2a,
const FT &  h2b,
const FT &  h2c 
)

Definition at line 118 of file predicates/kernel_ftC2.h.

References CGAL_kernel_assertion, CGAL_NTS, det2x2_by_formula(), s, sign(), sign_of_determinant2x2(), and ZERO.

122 {
123  FT num1 = det2x2_by_formula( l1b, l1c, h1b, h1c);
124  FT den1 = det2x2_by_formula( l1a, l1b, h1a, h1b);
125  FT num2 = det2x2_by_formula( l2b, l2c, h2b, h2c);
126  FT den2 = det2x2_by_formula( l2a, l2b, h2a, h2b);
127  Sign s = Sign (CGAL_NTS sign(den1) * CGAL_NTS sign(den2));
128  CGAL_kernel_assertion( s != ZERO );
129  return Comparison_result( s * sign_of_determinant2x2(num1, num2,
130  den1, den2));
131 }
CGAL_BEGIN_NAMESPACE FT det2x2_by_formula(const FT &a00, const FT &a01, const FT &a10, const FT &a11)
Definition: determinant.h:59
static SURF_BEGIN_NAMESPACE double sign(double x)
CGAL_BEGIN_NAMESPACE Sign sign_of_determinant2x2(const FT &a00, const FT &a01, const FT &a10, const FT &a11)
double s
Definition: blastest.C:80
Sign
Definition: enum.h:57
Comparison_result
Definition: enum.h:94
Definition: enum.h:60
#define CGAL_NTS
#define CGAL_kernel_assertion(EX)

Here is the call graph for this function:

CGAL_KERNEL_MEDIUM_INLINE Comparison_result compare_y_at_xC2 ( const FT &  px,
const FT &  py,
const FT &  la,
const FT &  lb,
const FT &  lc 
)

Definition at line 136 of file predicates/kernel_ftC2.h.

References CGAL_kernel_assertion, CGAL_NTS, s, sign(), and ZERO.

138 {
139  Sign s = CGAL_NTS sign(lb);
140  CGAL_kernel_assertion( s != ZERO );
141  return Comparison_result (s * CGAL_NTS sign(la*px + lb*py + lc));
142 }
static SURF_BEGIN_NAMESPACE double sign(double x)
double s
Definition: blastest.C:80
Sign
Definition: enum.h:57
Comparison_result
Definition: enum.h:94
Definition: enum.h:60
#define CGAL_NTS
#define CGAL_kernel_assertion(EX)

Here is the call graph for this function:

CGAL_KERNEL_MEDIUM_INLINE Comparison_result compare_y_at_xC2 ( const FT &  px,
const FT &  l1a,
const FT &  l1b,
const FT &  l1c,
const FT &  l2a,
const FT &  l2b,
const FT &  l2c 
)

Definition at line 147 of file predicates/kernel_ftC2.h.

References CGAL_kernel_assertion, CGAL_NTS, s, sign(), sign_of_determinant2x2(), and ZERO.

150 {
151  Sign s = Sign (CGAL_NTS sign(l1b) * CGAL_NTS sign(l2b));
152  CGAL_kernel_assertion( s != ZERO );
153  return Comparison_result ( s * sign_of_determinant2x2(l2a*px+l2c, l2b,
154  l1a*px+l1c, l1b));
155 }
static SURF_BEGIN_NAMESPACE double sign(double x)
CGAL_BEGIN_NAMESPACE Sign sign_of_determinant2x2(const FT &a00, const FT &a01, const FT &a10, const FT &a11)
double s
Definition: blastest.C:80
Sign
Definition: enum.h:57
Comparison_result
Definition: enum.h:94
Definition: enum.h:60
#define CGAL_NTS
#define CGAL_kernel_assertion(EX)

Here is the call graph for this function:

CGAL_KERNEL_LARGE_INLINE Comparison_result compare_y_at_xC2 ( const FT &  l1a,
const FT &  l1b,
const FT &  l1c,
const FT &  l2a,
const FT &  l2b,
const FT &  l2c,
const FT &  ha,
const FT &  hb,
const FT &  hc 
)

Definition at line 160 of file predicates/kernel_ftC2.h.

References CGAL_kernel_assertion, CGAL_NTS, s, sign(), sign_of_determinant2x2(), sign_of_determinant3x3(), and ZERO.

163 {
164  Sign s = Sign (sign_of_determinant2x2(l1a, l1b, l2a, l2b) *
165  CGAL_NTS sign(hb));
166  CGAL_kernel_assertion( s != ZERO );
167  return Comparison_result( s * sign_of_determinant3x3(l1a, l1b, l1c,
168  l2a, l2b, l2c,
169  ha, hb, hc));
170 }
static SURF_BEGIN_NAMESPACE double sign(double x)
Sign sign_of_determinant3x3(const FT &a00, const FT &a01, const FT &a02, const FT &a10, const FT &a11, const FT &a12, const FT &a20, const FT &a21, const FT &a22)
CGAL_BEGIN_NAMESPACE Sign sign_of_determinant2x2(const FT &a00, const FT &a01, const FT &a10, const FT &a11)
double s
Definition: blastest.C:80
Sign
Definition: enum.h:57
Comparison_result
Definition: enum.h:94
Definition: enum.h:60
#define CGAL_NTS
#define CGAL_kernel_assertion(EX)

Here is the call graph for this function:

CGAL_KERNEL_LARGE_INLINE Comparison_result compare_y_at_xC2 ( const FT &  l1a,
const FT &  l1b,
const FT &  l1c,
const FT &  l2a,
const FT &  l2b,
const FT &  l2c,
const FT &  h1a,
const FT &  h1b,
const FT &  h1c,
const FT &  h2a,
const FT &  h2b,
const FT &  h2c 
)

Definition at line 175 of file predicates/kernel_ftC2.h.

References CGAL_kernel_assertion, CGAL_NTS, den, det2x2_by_formula(), s, sign(), sign_of_determinant2x2(), and ZERO.

179 {
180  // The abscissa of the intersection point is num/den.
181  FT num = det2x2_by_formula( l1b, l1c, l2b, l2c);
182  FT den = det2x2_by_formula( l1a, l1b, l2a, l2b);
183  Sign s = Sign (CGAL_NTS sign(h1b) * CGAL_NTS sign(h2b) * CGAL_NTS sign(den));
184  CGAL_kernel_assertion( s != ZERO );
185  return Comparison_result ( s * sign_of_determinant2x2(h2a*num+h2c*den, h2b,
186  h1a*num+h1c*den, h1b));
187 }
CGAL_BEGIN_NAMESPACE FT det2x2_by_formula(const FT &a00, const FT &a01, const FT &a10, const FT &a11)
Definition: determinant.h:59
static SURF_BEGIN_NAMESPACE double sign(double x)
CGAL_BEGIN_NAMESPACE Sign sign_of_determinant2x2(const FT &a00, const FT &a01, const FT &a10, const FT &a11)
double s
Definition: blastest.C:80
NT & den
Sign
Definition: enum.h:57
Comparison_result
Definition: enum.h:94
Definition: enum.h:60
#define CGAL_NTS
#define CGAL_kernel_assertion(EX)

Here is the call graph for this function:

CGAL_KERNEL_MEDIUM_INLINE bool equal_directionC2 ( const FT &  dx1,
const FT &  dy1,
const FT &  dx2,
const FT &  dy2 
)

Definition at line 192 of file predicates/kernel_ftC2.h.

References CGAL_NTS, sign(), sign_of_determinant2x2(), and ZERO.

194 {
195  return CGAL_NTS sign(dx1) == CGAL_NTS sign(dx2)
196  && CGAL_NTS sign(dy1) == CGAL_NTS sign(dy2)
197  && sign_of_determinant2x2(dx1, dy1, dx2, dy2) == ZERO;
198 }
static SURF_BEGIN_NAMESPACE double sign(double x)
CGAL_BEGIN_NAMESPACE Sign sign_of_determinant2x2(const FT &a00, const FT &a01, const FT &a10, const FT &a11)
Definition: enum.h:60
#define CGAL_NTS

Here is the call graph for this function:

CGAL_BEGIN_NAMESPACE CGAL_KERNEL_MEDIUM_INLINE bool equal_lineC2 ( const FT &  l1a,
const FT &  l1b,
const FT &  l1c,
const FT &  l2a,
const FT &  l2b,
const FT &  l2c 
)

Definition at line 60 of file predicates/kernel_ftC2.h.

References CGAL_NTS, sign(), sign_of_determinant2x2(), and ZERO.

62 {
63  if (sign_of_determinant2x2(l1a, l1b, l2a, l2b) != ZERO)
64  return false; // Not parallel.
65  CGAL::Sign s1a = CGAL_NTS sign(l1a);
66  if (s1a != ZERO)
67  return s1a == CGAL_NTS sign(l2a)
68  && sign_of_determinant2x2(l1a, l1c, l2a, l2c) == ZERO;
69  return CGAL_NTS sign(l1b) == CGAL_NTS sign(l2b)
70  && sign_of_determinant2x2(l1b, l1c, l2b, l2c) == ZERO;
71 }
static SURF_BEGIN_NAMESPACE double sign(double x)
CGAL_BEGIN_NAMESPACE Sign sign_of_determinant2x2(const FT &a00, const FT &a01, const FT &a10, const FT &a11)
Sign
Definition: enum.h:57
Definition: enum.h:60
#define CGAL_NTS

Here is the call graph for this function:

bool has_larger_dist_to_pointC2 ( const FT &  px,
const FT &  py,
const FT &  qx,
const FT &  qy,
const FT &  rx,
const FT &  ry 
)
inline

Definition at line 341 of file predicates/kernel_ftC2.h.

References cmp_dist_to_pointC2(), and LARGER.

344 {
345  return cmp_dist_to_pointC2(px,py,qx,qy,rx,ry) == LARGER;
346 }
Comparison_result cmp_dist_to_pointC2(const FT &px, const FT &py, const FT &qx, const FT &qy, const FT &rx, const FT &ry)
Definition: enum.h:98

Here is the call graph for this function:

bool has_larger_signed_dist_to_directionC2 ( const FT &  la,
const FT &  lb,
const FT &  px,
const FT &  py,
const FT &  qx,
const FT &  qy 
)
inline

Definition at line 374 of file predicates/kernel_ftC2.h.

References cmp_signed_dist_to_directionC2(), and LARGER.

377 {
378  return cmp_signed_dist_to_directionC2(la,lb,px,py,qx,qy) == LARGER;
379 }
Comparison_result cmp_signed_dist_to_directionC2(const FT &la, const FT &lb, const FT &px, const FT &py, const FT &qx, const FT &qy)
Definition: enum.h:98

Here is the call graph for this function:

bool has_larger_signed_dist_to_lineC2 ( const FT &  px,
const FT &  py,
const FT &  qx,
const FT &  qy,
const FT &  rx,
const FT &  ry,
const FT &  sx,
const FT &  sy 
)
inline

Definition at line 408 of file predicates/kernel_ftC2.h.

References cmp_signed_dist_to_lineC2(), and LARGER.

412 {
413  return cmp_signed_dist_to_lineC2(px,py,qx,qy,rx,ry,sx,sy) == LARGER;
414 }
Comparison_result cmp_signed_dist_to_lineC2(const FT &px, const FT &py, const FT &qx, const FT &qy, const FT &rx, const FT &ry, const FT &sx, const FT &sy)
Definition: enum.h:98

Here is the call graph for this function:

bool has_smaller_dist_to_pointC2 ( const FT &  px,
const FT &  py,
const FT &  qx,
const FT &  qy,
const FT &  rx,
const FT &  ry 
)
inline

Definition at line 352 of file predicates/kernel_ftC2.h.

References cmp_dist_to_pointC2(), and SMALLER.

355 {
356  return cmp_dist_to_pointC2(px,py,qx,qy,rx,ry) == SMALLER;
357 }
Definition: enum.h:96
Comparison_result cmp_dist_to_pointC2(const FT &px, const FT &py, const FT &qx, const FT &qy, const FT &rx, const FT &ry)

Here is the call graph for this function:

bool has_smaller_signed_dist_to_directionC2 ( const FT &  la,
const FT &  lb,
const FT &  px,
const FT &  py,
const FT &  qx,
const FT &  qy 
)
inline

Definition at line 385 of file predicates/kernel_ftC2.h.

References cmp_signed_dist_to_directionC2(), and SMALLER.

388 {
389  return cmp_signed_dist_to_directionC2(la,lb,px,py,qx,qy) == SMALLER;
390 }
Definition: enum.h:96
Comparison_result cmp_signed_dist_to_directionC2(const FT &la, const FT &lb, const FT &px, const FT &py, const FT &qx, const FT &qy)

Here is the call graph for this function:

bool has_smaller_signed_dist_to_lineC2 ( const FT &  px,
const FT &  py,
const FT &  qx,
const FT &  qy,
const FT &  rx,
const FT &  ry,
const FT &  sx,
const FT &  sy 
)
inline

Definition at line 420 of file predicates/kernel_ftC2.h.

References cmp_signed_dist_to_lineC2(), and SMALLER.

424 {
425  return cmp_signed_dist_to_lineC2(px,py,qx,qy,rx,ry,sx,sy) == SMALLER;
426 }
Definition: enum.h:96
Comparison_result cmp_signed_dist_to_lineC2(const FT &px, const FT &py, const FT &qx, const FT &qy, const FT &rx, const FT &ry, const FT &sx, const FT &sy)

Here is the call graph for this function:

Orientation orientationC2 ( const FT &  px,
const FT &  py,
const FT &  qx,
const FT &  qy,
const FT &  rx,
const FT &  ry 
)
inline

Definition at line 245 of file predicates/kernel_ftC2.h.

References sign_of_determinant2x2().

Referenced by coplanar_orientationC3(), leftturn(), orientation(), rightturn(), and side_of_bounded_circleC2().

248 {
249  return Orientation (sign_of_determinant2x2(px-rx, py-ry,
250  qx-rx, qy-ry));
251 }
Sign Orientation
Definition: enum.h:64
CGAL_BEGIN_NAMESPACE Sign sign_of_determinant2x2(const FT &a00, const FT &a01, const FT &a10, const FT &a11)

Here is the call graph for this function:

Here is the caller graph for this function:

CGAL_KERNEL_LARGE_INLINE Bounded_side side_of_bounded_circleC2 ( const FT &  px,
const FT &  py,
const FT &  qx,
const FT &  qy,
const FT &  rx,
const FT &  ry,
const FT &  tx,
const FT &  ty 
)

Definition at line 315 of file predicates/kernel_ftC2.h.

References orientationC2(), and side_of_oriented_circleC2().

Referenced by side_of_bounded_circle().

319 {
320  // Note: if the code of these is inlined, and if they are implemented
321  // in a good way, some CSE can be done by the compiler.
322  return Bounded_side( side_of_oriented_circleC2(px,py,qx,qy,rx,ry,tx,ty)
323  * orientationC2(px,py,qx,qy,rx,ry) );
324 }
Orientation orientationC2(const FT &px, const FT &py, const FT &qx, const FT &qy, const FT &rx, const FT &ry)
CGAL_KERNEL_LARGE_INLINE Oriented_side side_of_oriented_circleC2(const FT &px, const FT &py, const FT &qx, const FT &qy, const FT &rx, const FT &ry, const FT &tx, const FT &ty)
Bounded_side
Definition: enum.h:86

Here is the call graph for this function:

Here is the caller graph for this function:

CGAL_KERNEL_LARGE_INLINE Oriented_side side_of_oriented_circleC2 ( const FT &  px,
const FT &  py,
const FT &  qx,
const FT &  qy,
const FT &  rx,
const FT &  ry,
const FT &  tx,
const FT &  ty 
)

Definition at line 286 of file predicates/kernel_ftC2.h.

References sign_of_determinant2x2().

Referenced by side_of_bounded_circleC2(), and side_of_oriented_circle().

290 {
291  // Oriented_side(
292  // sign_of_determinant4x4(px, py, px*px + py*py, 1,
293  // qx, qy, qx*qx + qy*qy, 1,
294  // rx, ry, rx*rx + ry*ry, 1,
295  // tx, ty, tx*tx + ty*ty, 1));
296  // We first translate so that t is the new origin.
297  FT ptx = px-tx;
298  FT pty = py-ty;
299  FT qtx = qx-tx;
300  FT qty = qy-ty;
301  FT rtx = rx-tx;
302  FT rty = ry-ty;
303 // The usual 3x3 formula can be simplified a little bit to a 2x2.
304 // sign_of_determinant3x3(ptx, pty, square(ptx) + square(pty),
305 // qtx, qty, square(qtx) + square(qty),
306 // rtx, rty, square(rtx) + square(rty)));
308  ptx*qty - pty*qtx, qtx*(qx-px) + qty*(qy-py),
309  ptx*rty - pty*rtx, rtx*(rx-px) + rty*(ry-py)));
310 }
CGAL_BEGIN_NAMESPACE Sign sign_of_determinant2x2(const FT &a00, const FT &a01, const FT &a10, const FT &a11)
Oriented_side
Definition: enum.h:78

Here is the call graph for this function:

Here is the caller graph for this function:

Oriented_side side_of_oriented_lineC2 ( const FT &  a,
const FT &  b,
const FT &  c,
const FT &  x,
const FT &  y 
)
inline

Definition at line 431 of file predicates/kernel_ftC2.h.

References CGAL_NTS, and sign().

433 {
434  return Oriented_side(CGAL_NTS sign(a*x+b*y+c));
435 }
static SURF_BEGIN_NAMESPACE double sign(double x)
void int int REAL REAL * y
Definition: read.cpp:74
Oriented_side
Definition: enum.h:78
void int int REAL * x
Definition: read.cpp:74
#define CGAL_NTS

Here is the call graph for this function: