Skip to content

Commit

Permalink
Removing parallel_different from ABI.
Browse files Browse the repository at this point in the history
Also updating docs / doctests and unit tests after the removal
of `segment_intersection`.
  • Loading branch information
dhermes committed Nov 27, 2017
1 parent 4060590 commit df3e195
Show file tree
Hide file tree
Showing 8 changed files with 288 additions and 625 deletions.
4 changes: 2 additions & 2 deletions docs/algorithm-helpers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ This is to help with the exposition of the computation and
.. autoclass:: bezier._geometric_intersection.Linearization
:members:
.. autofunction:: bezier._geometric_intersection.linearization_error
.. autofunction:: bezier._geometric_intersection._segment_intersection
.. autofunction:: bezier._geometric_intersection._parallel_different
.. autofunction:: bezier._geometric_intersection.segment_intersection
.. autofunction:: bezier._geometric_intersection.parallel_different
.. autofunction:: bezier._curve_helpers._get_curvature
.. autofunction:: bezier._curve_helpers._newton_refine
.. autoclass:: bezier._surface_helpers._IntersectionClassification
Expand Down
3 changes: 0 additions & 3 deletions src/bezier/_curve_intersection.pxd
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,6 @@ cdef extern from "bezier/curve_intersection.h":
void bbox_intersect(
int *num_nodes1, double *nodes1,
int *num_nodes2, double *nodes2, int *enum_)
void parallel_different(
double *start0, double *end0,
double *start1, double *end1, bool_t *result)
void curve_intersections(
int *num_nodes_first, double *nodes_first,
int *num_nodes_second, double *nodes_second,
Expand Down
849 changes: 279 additions & 570 deletions src/bezier/_curve_intersection_speedup.c

Large diffs are not rendered by default.

15 changes: 0 additions & 15 deletions src/bezier/_curve_intersection_speedup.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -82,21 +82,6 @@ def bbox_intersect(double[::1, :] nodes1, double[::1, :] nodes2):
return enum_val


def parallel_different(
double[::1, :] start0, double[::1, :] end0,
double[::1, :] start1, double[::1, :] end1):
cdef bool_t result

bezier._curve_intersection.parallel_different(
&start0[0, 0],
&end0[0, 0],
&start1[0, 0],
&end1[0, 0],
&result,
)
return result


def reset_workspace(int workspace_size):
global WORKSPACE
WORKSPACE = np.empty((2, workspace_size), order='F')
Expand Down
6 changes: 2 additions & 4 deletions src/bezier/_geometric_intersection.py
Original file line number Diff line number Diff line change
Expand Up @@ -374,7 +374,7 @@ def segment_intersection(start0, end0, start1, end1):
import make_images
make_images.segment_intersection2(start0, end0, start1, end1)
Instead, we use :func:`parallel_different() <._parallel_different>`:
Instead, we use :func:`parallel_different`:
.. testsetup:: segment-intersection2-continued
Expand Down Expand Up @@ -424,7 +424,7 @@ def segment_intersection(start0, end0, start1, end1):
return s, t, True


def _parallel_different(start0, end0, start1, end1):
def parallel_different(start0, end0, start1, end1):
r"""Checks if two parallel lines ever meet.
Meant as a back-up when :func:`segment_intersection` fails.
Expand Down Expand Up @@ -1190,11 +1190,9 @@ def from_shape(cls, shape):
# pylint: disable=invalid-name
if _curve_intersection_speedup is None: # pragma: NO COVER
bbox_intersect = _bbox_intersect
parallel_different = _parallel_different
all_intersections = _all_intersections
else:
bbox_intersect = _curve_intersection_speedup.bbox_intersect
parallel_different = _curve_intersection_speedup.parallel_different
all_intersections = _curve_intersection_speedup.all_intersections
atexit.register(
_curve_intersection_speedup.free_curve_intersections_workspace)
Expand Down
3 changes: 1 addition & 2 deletions src/bezier/curve_intersection.f90
Original file line number Diff line number Diff line change
Expand Up @@ -202,8 +202,7 @@ subroutine bbox_intersect( &
end subroutine bbox_intersect

subroutine parallel_different( &
start0, end0, start1, end1, result_) &
bind(c, name='parallel_different')
start0, end0, start1, end1, result_)

real(c_double), intent(in) :: start0(1, 2)
real(c_double), intent(in) :: end0(1, 2)
Expand Down
3 changes: 0 additions & 3 deletions src/bezier/include/bezier/curve_intersection.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,6 @@ void newton_refine_intersect(
void bbox_intersect(
int *num_nodes1, double *nodes1,
int *num_nodes2, double *nodes2, int *enum_);
void parallel_different(
double *start0, double *end0,
double *start1, double *end1, bool *result);
void curve_intersections(
int *num_nodes_first, double *nodes_first,
int *num_nodes_second, double *nodes_second,
Expand Down
30 changes: 4 additions & 26 deletions tests/unit/test__geometric_intersection.py
Original file line number Diff line number Diff line change
Expand Up @@ -242,13 +242,13 @@ def test_degree_weights_on_the_fly(self):
self.assertEqual(error_val, expected)


class Test__segment_intersection(unittest.TestCase):
class Test_segment_intersection(unittest.TestCase):

@staticmethod
def _call_function_under_test(start0, end0, start1, end1):
from bezier import _geometric_intersection

return _geometric_intersection._segment_intersection(
return _geometric_intersection.segment_intersection(
start0, end0, start1, end1)

def _helper(self, intersection, s_val, direction0,
Expand Down Expand Up @@ -290,24 +290,13 @@ def test_parallel(self):
self.assertFalse(success)


@utils.needs_curve_intersection_speedup
class Test_speedup_segment_intersection(Test__segment_intersection):

@staticmethod
def _call_function_under_test(start0, end0, start1, end1):
from bezier import _curve_intersection_speedup

return _curve_intersection_speedup.segment_intersection(
start0, end0, start1, end1)


class Test__parallel_different(unittest.TestCase):
class Test_parallel_different(unittest.TestCase):

@staticmethod
def _call_function_under_test(start0, end0, start1, end1):
from bezier import _geometric_intersection

return _geometric_intersection._parallel_different(
return _geometric_intersection.parallel_different(
start0, end0, start1, end1)

def test_same_line_no_overlap(self):
Expand Down Expand Up @@ -351,17 +340,6 @@ def test_different_line(self):
self._call_function_under_test(start0, end0, start1, end1))


@utils.needs_curve_intersection_speedup
class Test_speedup_parallel_different(Test__parallel_different):

@staticmethod
def _call_function_under_test(start0, end0, start1, end1):
from bezier import _curve_intersection_speedup

return _curve_intersection_speedup.parallel_different(
start0, end0, start1, end1)


class Test_wiggle_pair(unittest.TestCase):

@staticmethod
Expand Down

0 comments on commit df3e195

Please sign in to comment.