From 53aba67bf19e31423e2fc651c1cf17ecce0aeb4d Mon Sep 17 00:00:00 2001 From: Dmitry Anisimov Date: Fri, 21 Feb 2014 00:25:05 +0100 Subject: [PATCH] Update 21.02.14 More or less ready version of the Barycentric_coordinates_2 package for the first CGAL submission. --- .../Barycentric_coordinates_2.txt | 153 ++++++++---------- .../fig/dh_notations.png | Bin 0 -> 11648 bytes .../discrete_harmonic_coordinates_example.png | Bin 0 -> 4077 bytes .../fig/mean_value_coordinates_example.png | Bin 0 -> 10119 bytes .../fig/mv_notations.png | Bin 0 -> 6120 bytes .../fig/projection.png | Bin 0 -> 3857 bytes .../fig/segment_coordinates_example.png | Bin 0 -> 2624 bytes .../fig/triangle_coordinates_example.png | Bin 0 -> 7035 bytes .../fig/wp_notations.png | Bin 0 -> 10609 bytes .../fig/zero_set.png | Bin 0 -> 12160 bytes 10 files changed, 64 insertions(+), 89 deletions(-) create mode 100644 Barycentric_coordinates_2/doc/Barycentric_coordinates_2/fig/dh_notations.png create mode 100644 Barycentric_coordinates_2/doc/Barycentric_coordinates_2/fig/discrete_harmonic_coordinates_example.png create mode 100644 Barycentric_coordinates_2/doc/Barycentric_coordinates_2/fig/mean_value_coordinates_example.png create mode 100644 Barycentric_coordinates_2/doc/Barycentric_coordinates_2/fig/mv_notations.png create mode 100644 Barycentric_coordinates_2/doc/Barycentric_coordinates_2/fig/projection.png create mode 100644 Barycentric_coordinates_2/doc/Barycentric_coordinates_2/fig/segment_coordinates_example.png create mode 100644 Barycentric_coordinates_2/doc/Barycentric_coordinates_2/fig/triangle_coordinates_example.png create mode 100644 Barycentric_coordinates_2/doc/Barycentric_coordinates_2/fig/wp_notations.png create mode 100644 Barycentric_coordinates_2/doc/Barycentric_coordinates_2/fig/zero_set.png diff --git a/Barycentric_coordinates_2/doc/Barycentric_coordinates_2/Barycentric_coordinates_2.txt b/Barycentric_coordinates_2/doc/Barycentric_coordinates_2/Barycentric_coordinates_2.txt index be72d546670..1133964c85c 100755 --- a/Barycentric_coordinates_2/doc/Barycentric_coordinates_2/Barycentric_coordinates_2.txt +++ b/Barycentric_coordinates_2/doc/Barycentric_coordinates_2/Barycentric_coordinates_2.txt @@ -54,14 +54,6 @@ We also do this for Segment and Triangle coordinates - `Barycentric_coordinates::Seg_coordinates_2` and - `Barycentric_coordinates::Tri_coordinates_2`. -The last five classes are intended to parallel the computation of coordinates for multiple points. These classes are parameterized by `CGAL::Polygon_2` class, they require a container with points, and they return an `std::vector` with coordinates - -- `Barycentric_coordinates::Segment_coordinates_parallel_2`, -- `Barycentric_coordinates::Triangle_coordinates_parallel_2`, -- `Barycentric_coordinates::Wachspress_coordinates_parallel_2`, -- `Barycentric_coordinates::Mean_value_coordinates_parallel_2`, and -- `Barycentric_coordinates::Discrete_harmonic_coordinates_parallel_2`. - \subsection gbc_int_compute_weights Computation of the weight functions Since all the closed-form generalized barycentric coordinates are normalized weight functions (See \ref gbc_theory section for more information), the base class is able to compute weights directly without normalization for a strictly interior query point. To do so, you can use the following function @@ -121,7 +113,7 @@ In the following example we create a random strictly convex polygon with 1000 ra \cgalExample{Barycentric_coordinates_2/Wachspress_coordinates_example.cpp} \subsection dh_example Discrete Harmonic coordinates example -In this example we are going to compute the set of Discrete Harmonic coordinates for a set of green (interior), red (boundary), and blue (exterior) points with respect to the unit square. We will also show how to accelerate computations using additional parameters of the function `compute()`. The used kernel is exact, and we use `std::list` as an output container. Since all the points are symmetric, it is easy to debug the correctness of the obtained coordinate values. Output iterator is `std::back_insert_iterator`. +In this example we are going to compute the set of Discrete Harmonic coordinates for a set of interior, boundary, and exterior points with respect to the unit square. We will also show how to accelerate computations using additional parameters of the function `compute()`. The used kernel is exact, and we use `std::list` as an output container. Since all the points are symmetric, it is easy to debug the correctness of the obtained coordinate values. Output iterator is `std::back_insert_iterator`. \anchor dh_coord_example \cgalFigureBegin{dh__example,discrete_harmonic_coordinates_example.png} @@ -166,7 +158,7 @@ Example's point pattern. Segment coordinates can be computed exactly if an exact data type is chosen. The segment itself, with respect to which we compute coordinates, must be not degenerate. If the both conditions are satisfied, the computation never breaks down. But, we have to do some clarification here. To compute coordinate functions, the user must be positive about a query point being exactly on the line \f$L\f$ supporting the segment. Since in many applications it is not the case, and a query point may lie very close but not exactly on this line, the class is able to handle this situation. \cgalFigureBegin{projection,projection.png} -Scalar projection \f$p'\f$ of the vector \f$p\f$ on the vector \f$q\f$. +Scalar projection \f$p'\f$ of the vector \f$p\f$ on the vector \f$q\f$. \cgalFigureEnd Let us imagine that some query point \f$v\f$ does not lie exactly on the line \f$L\f$, but it is of some distance \f$d\f$ away as it is shown in the figure above. If we want to compute Segment barycentric coordinate \f$b_1(v)\f$ with respect to the vertex \f$v_1\f$, we, first, find a scalar projection \f$p'\f$ of the vector \f$p\f$ on the vector \f$q\f$ and then normalize it by the length of \f$q\f$. It gives us Segment barycentric coordinate \f$b_1(v') = b_1(v)\f$ if \f$v\f$ lied exactly on the line. @@ -250,7 +242,7 @@ Since \f$\bar{w}_i\f$ is always positive, we have to append to it the proper sig Apart the most important requirement on barycentric coordinates to be as much as possible precise, it is very important for them to be as fast as possible to evaluate. These coordinate functions are used in many applications where they must be computed for millions of points and, thus, the real time usage of coordinates is crucial. When writing the code, we tried to fulfil this important requirement, and in this section we present the reader a few results about the computational time of the implemented coordinate functions. -The structure of the speed test that we run for all the functions consists of computing coordinate (or weight) values at \f$10^6-10^9\f$ strictly interior points with respect to some polygon (triangle or segment). At each iteration of the loop we create a query point, pass it to the function, and compute all the related coordinates. We run this loop 10 times in a row, and the time presented in the Table 1 is the arithmetic mean of all the trials. A typical example of the performed test for Triangle coordinates can be found below. This example also shows how to construct your own iterator and pass it to our class. In our example we create an iterator that writes coordinate values for each new query point over coordinate values of the previous point in the fixed-size standard C++ array, so that memory is allocated only once. +The structure of the speed test that we run for all the functions consists of computing coordinate (or weight) values at \f$10^8-10^{10}\f$ strictly interior points with respect to some polygon (triangle or segment). At each iteration of the loop we create a query point, pass it to the function, and compute all the related coordinates. We run this loop 10 times in a row, and the time presented in the Table 1 is the arithmetic mean of all the trials. A typical example of the performed test for Triangle coordinates can be found below. This example also shows how to construct your own iterator and pass it to our class. In our example we create an iterator that writes coordinate values for each new query point over coordinate values of the previous point in the fixed-size standard C++ array, so that memory is allocated only once. \cgalExample{Barycentric_coordinates_2/Triangle_coordinates_speed_test.cpp} @@ -260,175 +252,155 @@ The machine that has been used in all the tests is MacBook Pro 2011 with 2 GHz I - + - + + - - + + + - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - + - + + - - - + + + + - - - + + + + - - - + + + + - + - + - - + + + + + + - + - - - - - - - - - - - - - + + - - - + + + + - - - + + + + - - - + + + + - +
Time to compute Segment and Triangle coordinatesTime to compute Segment and Triangle coordinates (seconds)
Type of coordinates Number of points Number of coordinate valuesTime in secondsTime \f$O(n)\f$ algorithm
Segment coordinates\f$10^9\f$\f$2\cdot 10^9\f$\f$10^{10}\f$\f$2\cdot 10^{10}\f$ 13.86494708
Triangle coordinates\f$10^9\f$\f$3\cdot 10^9\f$\f$10^{10}\f$\f$3\cdot 10^{10}\f$ 13.91510820
Time to compute coordinate functions on a unit squareTime to compute weight functions on a unit square (seconds)
Type of coordinates Number of points Number of coordinate valuesTime in seconds
Wachspress coordinates\f$10^9\f$\f$4\cdot 10^9\f$
Discrete Harmonic coordinates\f$10^9\f$\f$4\cdot 10^9\f$
Mean Value coordinates\f$10^9\f$\f$4\cdot 10^9\f$
Time to compute weight functions on a unit square
Type of weightsNumber of pointsNumber of weight valuesTime in secondsTime \f$O(n)\f$ algorithm
Wachspress weights \f$10^9\f$ \f$4\cdot 10^9\f$ 47.25240803
Discrete Harmonic weights \f$10^9\f$ \f$4\cdot 10^9\f$ 58.56583214
Mean Value weights \f$10^9\f$ \f$4\cdot 10^9\f$ 97.41971302
Time to compute coordinate functions on a strictly convex polygon with 16 verticesTime to compute coordinate functions on a unit square (seconds)
Type of coordinates Number of points Number of coordinate valuesTime in secondsTime \f$O(n^2)\f$ algorithmTime \f$O(n)\f$ algorithm
Wachspress coordinates\f$10^8\f$\f$16\cdot 10^8\f$\f$10^9\f$\f$4\cdot 10^9\f$48.6475379564.24326611
Discrete Harmonic coordinates\f$10^8\f$\f$16\cdot 10^8\f$\f$10^9\f$\f$4\cdot 10^9\f$61.9383294078.09849691
Mean Value coordinates\f$10^8\f$\f$16\cdot 10^8\f$\f$10^9\f$\f$4\cdot 10^9\f$99.83270693113.8180611
Time to compute weight functions on a strictly convex polygon with 16 verticesTime to compute weight functions on a strictly convex polygon with 16 vertices (seconds)
Type of weightsType of coordinates Number of pointsNumber of weight valuesTime in secondsNumber of coordinate valuesTime \f$O(n)\f$ algorithm
Wachspress weights \f$10^8\f$ \f$16\cdot 10^8\f$ 20.44883299
Discrete Harmonic weights \f$10^8\f$ \f$16\cdot 10^8\f$ 22.88397408
Mean Value weights \f$10^8\f$ \f$16\cdot 10^8\f$ 39.10448194
Parallel computation along segment, triangle, and unit squareTime to compute coordinate functions on a strictly convex polygon with 16 vertices (seconds)
Type of coordinates Number of points Number of coordinate valuesTime in seconds
Segment coordinates\f$10^6\f$\f$2\cdot 10^6\f$
Triangle coordinates\f$10^6\f$\f$3\cdot 10^6\f$Time \f$O(n^2)\f$ algorithmTime \f$O(n)\f$ algorithm
Wachspress coordinates\f$10^6\f$\f$4\cdot 10^6\f$\f$10^8\f$\f$16\cdot 10^8\f$37.8885359823.22868419
Discrete Harmonic coordinates\f$10^6\f$\f$4\cdot 10^6\f$\f$10^8\f$\f$16\cdot 10^8\f$39.6991670125.71915221
Mean Value coordinates\f$10^6\f$\f$4\cdot 10^6\f$\f$10^8\f$\f$16\cdot 10^8\f$58.9169349741.49101996
Table 1Table 1

@@ -474,7 +446,7 @@ Some statistics about current implementation of the package can be found in the Classes -16 +11 Enumerations @@ -482,7 +454,7 @@ Some statistics about current implementation of the package can be found in the Lines of code - +2590 Supported kernels @@ -518,7 +490,7 @@ Some statistics about current implementation of the package can be found in the Number of speed tests -19 +18 Table 2 @@ -555,7 +527,7 @@ Wachspress coordinates with respect to \f$v_2 = (1.0,\ 1.0)\f$. The colour bar i Another type of generalized barycentric coordinates proposed by Pinkall and Polthier in 1993 \cite cgal:pp-cdmsc-93 and by Eck et al. in 1995 \cite cgal:bc:eddhls-maam-95 in the context of a \ref chapsurface_mesh_parameterization "triangle mesh parameterization" is called Discrete Harmonic coordinates. These coordinates are defined, similar to the Wachspress approach, for an arbitrary strictly convex polygon and inherit all the properties of Triangle coordinates apart the positivity inside a polygon because they can be negative in some regions of some irregular polygons. Another interesting property of these coordinate functions is that they coincide with Wachspress coordinates for any polygon whose vertices lie on a circle. -To plot the Discrete Harmonic coordinates we take \ref dh_coord_example "the unit square" \f$[v_0, \dots, v_3]\f$ used with Wachspress coordinates and plot the function with respect to the same vertex \f$v_2\f$. Since a unit square is a regular polygon that is its vertices lie on a circle, we get the plot identical to the \ref wp_plot "Wachspress one". +To plot Discrete Harmonic coordinates we take \ref dh_coord_example "the unit square" \f$[v_0, \dots, v_3]\f$ used with Wachspress coordinates and plot the function with respect to the same vertex \f$v_2\f$. Since a unit square is a regular polygon that is its vertices lie on a circle, we get the plot identical to the \ref wp_plot "Wachspress one". The last type of generalized barycentric coordinates, we want to discuss, is Mean Value coordinates \cite cgal:f-mvc-03 proposed by M. Floater in 2003. Based on the Mean Value theorem these coordinates, unlike Wachspress and Discrete Harmonic ones, are defined for an arbitrary simple polygon, inherit all the properties of Triangle coordinates for any convex polygon, and lack the only positivity property for some concave ones. It is proven by Hormann and Floater that these coordinates are positive only inside the kernel of a star-shaped polygon \cite cgal:bc:hf-mvcapp-06. The same as for Discrete Harmonic coordinates, Mean Value weights are often used in the context of a \ref chapsurface_mesh_parameterization "triangle mesh parameterization." @@ -567,6 +539,9 @@ Mean Value coordinates with respect to \f$v_7\f$. The colour bar indicates the r \b Family: All the coordinates discussed in this section and implemented in the package come from one and the same family of generalized barycentric coordinates named 3-Point Family of Coordinates \cite cgal:bc:fhk-gcbcocp-06. +\section gbc_acknowledgments Acknowledgments +The authors wish to thank Teseo Schneider and Randolf Schaerfig for helpful comments and discussions. + */ } \ No newline at end of file diff --git a/Barycentric_coordinates_2/doc/Barycentric_coordinates_2/fig/dh_notations.png b/Barycentric_coordinates_2/doc/Barycentric_coordinates_2/fig/dh_notations.png new file mode 100644 index 0000000000000000000000000000000000000000..c2f669322b7ff451bfe5d1b356b54549193a0810 GIT binary patch literal 11648 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 bEjFcJ71%@^be-A;@IE$Y?JTNJyT|?m;jcEH literal 0 HcmV?d00001 diff --git a/Barycentric_coordinates_2/doc/Barycentric_coordinates_2/fig/mean_value_coordinates_example.png b/Barycentric_coordinates_2/doc/Barycentric_coordinates_2/fig/mean_value_coordinates_example.png new file mode 100644 index 0000000000000000000000000000000000000000..7ce00fcd046927b98a332fff8ae50eb013292e2a GIT binary patch literal 10119 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 literal 0 HcmV?d00001 diff --git a/Barycentric_coordinates_2/doc/Barycentric_coordinates_2/fig/triangle_coordinates_example.png b/Barycentric_coordinates_2/doc/Barycentric_coordinates_2/fig/triangle_coordinates_example.png new file mode 100644 index 0000000000000000000000000000000000000000..a4e6eff4523c02d91058b9a42397d37141ac18c0 GIT binary patch literal 7035 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