mirror of https://github.com/CGAL/cgal
commit
c5a809ad30
|
|
@ -46,7 +46,7 @@ class Root_for_circles_2_2 {
|
|||
Root_for_circles_2_2(const Root_of_2& r1, const Root_of_2& r2)
|
||||
: x_(r1), y_(r2)
|
||||
{
|
||||
// When it is an interval this assertion dont compile
|
||||
// When it is an interval this assertion doesn't compile
|
||||
//CGAL_assertion((r1.is_rational() || r2.is_rational()) ||
|
||||
// (r1.gamma() == r2.gamma()));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -134,13 +134,13 @@ def main(argv):
|
|||
avg_diff_str = str(format(abs(avg_diff_to_goal), '.2f'))
|
||||
if key == "Mean_Min_Angle_(degree)" or key == "Mean_Max_Angle_(degree)":
|
||||
if avg_diff_to_goal < 0 :
|
||||
title += "\nIn average we loose "
|
||||
title += "\nIn average we lose "
|
||||
else :
|
||||
title += "\nIn average we gain "
|
||||
title += avg_diff_str + "° toward 60°"
|
||||
elif key == "Mean_Radius_Ratio" or key == "Mean_Edge_Ratio" or key == "Mean_Aspect_Ratio" :
|
||||
if avg_diff_to_goal < 0 :
|
||||
title += "\nIn average we loose "
|
||||
title += "\nIn average we lose "
|
||||
else :
|
||||
title += "\nIn average we gain "
|
||||
title += avg_diff_str + " of ratio toward 1"
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@
|
|||
or at least issues warnings about returning a reference to temporary
|
||||
variable. Can you prompt the INRIA people to fix this?
|
||||
(I personally think that we should remove this example from our test-suite,
|
||||
but if the INRIA people believe that it's place is there, they should at
|
||||
but if the INRIA people believe that its place is there, they should at
|
||||
least properly maintain it ...)
|
||||
- There is a problem with the examples that use CORE on Darwin (platform #10).
|
||||
Other Darwin platforms seem fine. Do we want to investigate? (perhaps it's
|
||||
|
|
|
|||
|
|
@ -232,7 +232,7 @@ protected: // methods
|
|||
// Assumes that clippingRect is valid.
|
||||
std::vector< X_monotone_curve_2 > visibleParts( X_monotone_curve_2 curve );
|
||||
|
||||
// keep only the intersection points ie. throw out overlapping curve segments
|
||||
// keep only the intersection points i.e. throw out overlapping curve segments
|
||||
void filterIntersectionPoints( std::vector< CGAL::Object >& res );
|
||||
|
||||
protected: // members
|
||||
|
|
|
|||
|
|
@ -1999,7 +1999,7 @@ operates in two-dimensional surfaces (not restricted to the plane),
|
|||
(ii) accepts various families of \f$x\f$-monotone curves (not only
|
||||
line segments), and (iii) handles overlaps. (Observe that the original
|
||||
algorithm did not handle overlaps. Handling overlaps is difficult,
|
||||
especially for polyline, as two polylines may overlap in more then one
|
||||
especially for polyline, as two polylines may overlap in more than one
|
||||
connected component.) The generic implementation serves as the
|
||||
foundation of a family of concrete operations described in the rest of
|
||||
this section, such as aggregately constructing an arrangement induced
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ locate(const Arrangement_on_surface_2<GeometryTraits_2, TopologyTraits>& arr,
|
|||
*
|
||||
* If the type Bgt2 is the same as the type Gt2, use a reference to Gt2
|
||||
* to avoid constructing a new one. Otherwise, instantiate a local variable
|
||||
* of the former and provide the later as a single parameter to the
|
||||
* of the former and provide the latter as a single parameter to the
|
||||
* constructor.
|
||||
*
|
||||
* Use the form 'A a(*b);' and not ''A a = b;' to handle the case where A has
|
||||
|
|
|
|||
|
|
@ -241,7 +241,7 @@ overlay(const Arrangement_on_surface_2<GeometryTraitsA_2, TopologyTraitsA>& arr1
|
|||
* If the type Ovl_gt2 is the same as the type
|
||||
* GeomTraits, use a reference to GeomTraits to avoid constructing a new one.
|
||||
* Otherwise, instantiate a local variable of the former and provide
|
||||
* the later as a single parameter to the constructor.
|
||||
* the latter as a single parameter to the constructor.
|
||||
*
|
||||
* Use the form 'A a(*b);' and not ''A a = b;' to handle the case where A has
|
||||
* only an implicit constructor, (which takes *b as a parameter).
|
||||
|
|
|
|||
|
|
@ -1992,10 +1992,10 @@ public:
|
|||
determines according to pre defined conditions whether the
|
||||
current Trapezoidal_decomposition_2<Traits> needs update
|
||||
Postconditions:
|
||||
The output is true iff the depth of the Trapezoidal Tree is more then
|
||||
The output is true iff the depth of the Trapezoidal Tree is more than
|
||||
DepthThreshold times log of the X_curve count or the Trapezoidal Tree's
|
||||
size
|
||||
is more then SizeThreshold times the log of the last count.
|
||||
is more than SizeThreshold times the log of the last count.
|
||||
*/
|
||||
bool set_with_guarantees(bool u)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -281,7 +281,7 @@ is_in_face(const Face* f, const Point_2& p, const Vertex* v) const
|
|||
// -----------
|
||||
// cv1 coincide with the identification curve. In this case we
|
||||
// consider the identification to be on the right. All (interior)
|
||||
// points are smaller then the right boundary.
|
||||
// points are smaller than the right boundary.
|
||||
rc1 = SMALLER;
|
||||
rc2 = cmp_x_pt_ce(p, cv2, ARR_MAX_END);
|
||||
}
|
||||
|
|
@ -294,7 +294,7 @@ is_in_face(const Face* f, const Point_2& p, const Vertex* v) const
|
|||
// -----------
|
||||
// cv2 coincide with the identification curve. In this case we
|
||||
// consider the identification to be on the left. All (interior)
|
||||
// points are larger then the left boundary.
|
||||
// points are larger than the left boundary.
|
||||
rc1 = cmp_x_pt_ce(p, cv1, ARR_MAX_END);
|
||||
rc2 = LARGER;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -117,7 +117,7 @@ decompose(const Arrangement_on_surface_2<GeometryTraits_2, TopologyTraits>& arr,
|
|||
*
|
||||
* If the type Vgt2 is the same as the type Gt2, use a
|
||||
* reference to Gt2 to avoid constructing a new one. Otherwise,
|
||||
* instantiate a local variable of the former and provide the later as a
|
||||
* instantiate a local variable of the former and provide the latter as a
|
||||
* single parameter to the constructor.
|
||||
*
|
||||
* Use the form 'A a(*b);' and not ''A a = b;' to handle the case where A has
|
||||
|
|
|
|||
|
|
@ -264,7 +264,7 @@ insert_empty(Arrangement_on_surface_2<GeometryTraits_2, TopologyTraits>& arr,
|
|||
* If the type C_visitor::Geometry_traits_2 is the same as the type
|
||||
* GeometryTraits_2, use a reference to GeometryTraits_2 to avoid constructing
|
||||
* a new one. Otherwise, instantiate a local variable of the former and
|
||||
* provide the later as a single parameter to the constructor.
|
||||
* provide the latter as a single parameter to the constructor.
|
||||
*
|
||||
* Use the form 'A a(*b);' and not ''A a = b;' to handle the case where A has
|
||||
* only an implicit constructor, (which takes *b as a parameter).
|
||||
|
|
@ -319,7 +319,7 @@ void insert_empty(Arrangement_on_surface_2<GeometryTraits_2, TopologyTraits>&
|
|||
* If the type C_visitor::Geometry_traits_2 is the same as the type
|
||||
* GeometryTraits_2, use a reference to GeometryTraits_2 to avoid constructing
|
||||
* a new one. Otherwise, instantiate a local variable of the former and
|
||||
* provide the later as a single parameter to the constructor.
|
||||
* provide the latter as a single parameter to the constructor.
|
||||
*
|
||||
* Use the form 'A a(*b);' and not ''A a = b;' to handle the case where A has
|
||||
* only an implicit constructor, (which takes *b as a parameter).
|
||||
|
|
@ -372,7 +372,7 @@ void insert_non_empty(Arrangement_on_surface_2<GeometryTraits_2,
|
|||
* If the type Igt2 is the same as the type
|
||||
* GeometryTraits_2, use a reference to GeometryTraits_2 to avoid constructing
|
||||
* a new one. Otherwise, instantiate a local variable of the former and
|
||||
* provide the later as a single parameter to the constructor.
|
||||
* provide the latter as a single parameter to the constructor.
|
||||
*
|
||||
* Use the form 'A a(*b);' and not ''A a = b;' to handle the case where A has
|
||||
* only an implicit constructor, (which takes *b as a parameter).
|
||||
|
|
@ -972,7 +972,7 @@ non_intersecting_insert_non_empty(Arrangement_on_surface_2<GeometryTraits_2,
|
|||
* If the type Nxi_visitor::Geometry_traits_2 is the same as the type
|
||||
* GeometryTraits_2, use a reference to GeometryTraits_2 to avoid constructing
|
||||
* a new one. Otherwise, instantiate a local variable of the former and
|
||||
* provide the later as a single parameter to the constructor.
|
||||
* provide the latter as a single parameter to the constructor.
|
||||
*
|
||||
* Use the form 'A a(*b);' and not ''A a = b;' to handle the case where A has
|
||||
* only an implicit constructor, (which takes *b as a parameter).
|
||||
|
|
|
|||
|
|
@ -563,7 +563,7 @@ template <typename InputStream_>
|
|||
bool IO_base_test<Base_geom_traits>::read_segment(InputStream_& is,
|
||||
Subcurve_2& seg)
|
||||
{
|
||||
//we dont need to check this type as it has already been checked in the
|
||||
//we don't need to check this type as it has already been checked in the
|
||||
//IO_test.h
|
||||
char type;
|
||||
is >> type;
|
||||
|
|
@ -600,7 +600,7 @@ template <typename InputStream_>
|
|||
bool IO_base_test<Base_geom_traits>::read_xsegment(InputStream_& is,
|
||||
X_monotone_subcurve_2& xseg)
|
||||
{
|
||||
//we dont need to check this type as it has already been checked in the
|
||||
//we don't need to check this type as it has already been checked in the
|
||||
//IO_test.h
|
||||
char type;
|
||||
is >> type;
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ int main(int argc, char* argv[])
|
|||
|
||||
std::cout << argv[2]
|
||||
<< " was generated successfully"
|
||||
<< ", dont forget to add it to test_construction.cmd"
|
||||
<< ", don't forget to add it to test_construction.cmd"
|
||||
<< std::endl;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -540,7 +540,7 @@ template <class Traits_, class TopTraits_, class ValidationPolicy>
|
|||
}
|
||||
|
||||
//insert non-sipmle poloygons with holes (non incident edges may have
|
||||
// common vertex, but they dont intersect at their interior
|
||||
// common vertex, but they don't intersect at their interior
|
||||
template <class Traits_, class TopTraits_, class ValidationPolicy>
|
||||
void Gps_on_surface_base_2<Traits_, TopTraits_, ValidationPolicy>::
|
||||
_insert(const Polygon_with_holes_2 & pgn, Arrangement_on_surface_2 & arr)
|
||||
|
|
|
|||
|
|
@ -407,7 +407,7 @@ is_crossover_outer_boundary(const typename Traits_2::Polygon_with_holes_2& pgn,
|
|||
Vertex_const_handle cver;
|
||||
Point_2 second_point;
|
||||
if (cmp_endpoints(*next) == SMALLER) {
|
||||
// next curve's minimum is the joint vertex. Look if it's max exists in
|
||||
// next curve's minimum is the joint vertex. Look if its max exists in
|
||||
// the arrangement and insert lexicographically
|
||||
second_point = max_functor(*next);
|
||||
obj = pl.locate(second_point);
|
||||
|
|
@ -639,8 +639,7 @@ bool are_holes_and_boundary_pairwise_disjoint
|
|||
typedef typename Polygon_set_2::Arrangement_on_surface_2
|
||||
Arrangement_2;
|
||||
|
||||
/* Should be perfored more efficeintly than using sweep and than
|
||||
* difference().
|
||||
/* Should be perfored more efficiently than using sweep and then difference().
|
||||
*
|
||||
* Use sweep to find intersections on the interior of curves (not on vertices)
|
||||
* and overlapping edges which are not allowed (note that 0/1 dimension
|
||||
|
|
@ -758,7 +757,7 @@ bool are_holes_and_boundary_pairwise_disjoint
|
|||
/* A valid polygon with holes is :
|
||||
* 1 - Has empty or closed boundary and all the holes are closed
|
||||
* 2 - The PWH is relatively simple polygon (holes are simple...)
|
||||
* 3 - Has it's boundary oriented counterclockwise and the holes oriented
|
||||
* 3 - Has its boundary oriented counterclockwise and the holes oriented
|
||||
* clockwise
|
||||
* 4 - All the segments (boundary and holes) do not cross or intersect in their
|
||||
* relative interior
|
||||
|
|
|
|||
|
|
@ -227,7 +227,7 @@ int main(int argc, char *argv[])
|
|||
write_complement_to_file(out, p1);
|
||||
write_complement_to_file(out, p2);
|
||||
std::cout<<argv[3] <<
|
||||
" was generated successfully, dont forget to add it to test_bop.cmd"
|
||||
" was generated successfully, don't forget to add it to test_bop.cmd"
|
||||
<< std::endl;
|
||||
|
||||
return (0);
|
||||
|
|
@ -239,7 +239,7 @@ int main(int argc, char *argv[])
|
|||
write_complement_to_file(out, p1);
|
||||
write_complement_to_file(out, pwh2);
|
||||
std::cout<<argv[3] <<
|
||||
" was generated successfully, dont forget to add it to test_bop.cmd"
|
||||
" was generated successfully, don't forget to add it to test_bop.cmd"
|
||||
<< std::endl;
|
||||
|
||||
return (0);
|
||||
|
|
@ -251,7 +251,7 @@ int main(int argc, char *argv[])
|
|||
write_complement_to_file(out, pwh1);
|
||||
write_complement_to_file(out, p2);
|
||||
std::cout<<argv[3] <<
|
||||
" was generated successfully, dont forget to add it to test_bop.cmd"
|
||||
" was generated successfully, don't forget to add it to test_bop.cmd"
|
||||
<< std::endl;
|
||||
|
||||
return (0);
|
||||
|
|
@ -263,7 +263,7 @@ int main(int argc, char *argv[])
|
|||
write_complement_to_file(out, pwh1);
|
||||
write_complement_to_file(out, pwh2);
|
||||
std::cout<<argv[3] <<
|
||||
" was generated successfully, dont forget to add it to test_bop.cmd"
|
||||
" was generated successfully, don't forget to add it to test_bop.cmd"
|
||||
<< std::endl;
|
||||
|
||||
return (0);
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ specialization of the algorithm for the case when the center
|
|||
coordinates and radii of the input spheres are floating-point numbers.
|
||||
This specialized algorithm uses floating-point arithmetic only, is
|
||||
very fast and especially tuned for stability and robustness. Still,
|
||||
it's output may be incorrect in some (rare) cases; termination is
|
||||
its output may be incorrect in some (rare) cases; termination is
|
||||
guaranteed.
|
||||
|
||||
When default constructed, an instance of type
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ namespace CGAL {
|
|||
//
|
||||
// E* = { y | (y - c)^T M'/alpha (y - c) + mu <= 0 }.
|
||||
//
|
||||
// Expanding the later and comparing with the original form we
|
||||
// Expanding the latter and comparing with the original form we
|
||||
// obtain
|
||||
//
|
||||
// c = - M'^{-1} m
|
||||
|
|
|
|||
|
|
@ -268,7 +268,7 @@ as follows:
|
|||
A note on performance: The algorithm sorts and partitions the input
|
||||
sequences. It is clearly costly to copy a large box compared to a
|
||||
simple pointer. However, the algorithm benefits from memory locality
|
||||
in the later stages when it copies the boxes, while the pointers would
|
||||
in the latter stages when it copies the boxes, while the pointers would
|
||||
refer to boxes that become wildly scattered in memory. These two
|
||||
effects, copying costs and memory locality, counteract each other. For
|
||||
small box sizes, i.e., small dimension, memory locality wins and one
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ public:
|
|||
// the array seq is not used!
|
||||
// Hence, one must test these special cases
|
||||
Polynomial<NT> * seq; // array of polynomials of length "len+1"
|
||||
Polynomial<NT> g;//GCD of input polynomial P and it's derivative P'
|
||||
Polynomial<NT> g;//GCD of input polynomial P and its derivative P'
|
||||
NT cont;//Content of the square-free part of input polynomial P
|
||||
//Thus P = g * cont * seq[0]
|
||||
static const int N_STOP_ITER = 10000; // Stop IterE after this many iterations.
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ In std::cerr :
|
|||
Only the time needed to compute it. (it is useful to benchmark a lot of cases and redirect it on a .txt)
|
||||
|
||||
ATTENTION:
|
||||
1) dont use ./example a b
|
||||
1) don't use ./example a b
|
||||
with 5 <= a <= 8 and 0 <= b <= 8, we cannot use the Circulartraits to handle the files
|
||||
2) The files have to be put on a folder name DXF where the program is located
|
||||
|
||||
|
|
|
|||
|
|
@ -656,7 +656,7 @@ public:
|
|||
return CGAL::CircularFunctors::circular_arc_bbox<CK>(*this);
|
||||
}
|
||||
|
||||
// Dont use this function, it is only for internal use
|
||||
// Don't use this function, it is only for internal use
|
||||
void _setx_info(unsigned short int v_is_x_monotone,
|
||||
unsigned short int v_two_end_points_on_upper_part,
|
||||
unsigned short int v_is_complementary_x_monotone) const {
|
||||
|
|
|
|||
|
|
@ -155,13 +155,13 @@ template < class SK > \
|
|||
const Circular_arc_point_3 &c1) const
|
||||
{ return SphericalFunctors::equal<SK>(Circular_arc_point_3(c0), c1); }
|
||||
|
||||
// Our Line_arc_3 dont have orientation
|
||||
// Our Line_arc_3 doesn't have orientation
|
||||
result_type
|
||||
operator() (const Line_arc_3 &l0,
|
||||
const Line_arc_3 &l1) const
|
||||
{ return SphericalFunctors::equal<SK>(l0, l1); }
|
||||
|
||||
// Our Circular_arc_3 dont have orientation (as parameter)
|
||||
// Our Circular_arc_3 doesn't have orientation (as parameter)
|
||||
result_type
|
||||
operator() (const Circular_arc_3 &c0,
|
||||
const Circular_arc_3 &c1) const
|
||||
|
|
|
|||
|
|
@ -471,7 +471,7 @@ namespace CGAL {
|
|||
return std::transform(solutions.begin(), solutions.end(), res, internal::pair_transform<SK>());
|
||||
}
|
||||
|
||||
// At the moment we dont need those functions
|
||||
// At the moment we don't need those functions
|
||||
// But in the future maybe (some make_x_monotone? etc..)
|
||||
template <class SK>
|
||||
typename SK::Circular_arc_point_3
|
||||
|
|
|
|||
|
|
@ -654,7 +654,7 @@ void _test_bounded_side(SK sk) {
|
|||
}
|
||||
}
|
||||
|
||||
// we dont need to test bounded_side(Circle, Circular_arc_point) because
|
||||
// we don't need to test bounded_side(Circle, Circular_arc_point) because
|
||||
// bounded_side(Circle, Circular_arc_point) = bounded_side(Sphere, Circular_arc_point) +
|
||||
// has_on_3(supporting_plane, circular_arc_point) which has already been tested
|
||||
std::cout << "Testing bounded_side(Circle, Circular_arc_point)..." << std::endl;
|
||||
|
|
|
|||
|
|
@ -969,7 +969,7 @@ namespace CGAL {
|
|||
{ return mnb_used_marks; }
|
||||
|
||||
/** Test if a given mark is reserved.
|
||||
* @return true iff the mark is reserved (ie in used).
|
||||
* @return true iff the mark is reserved (i.e. in used).
|
||||
*/
|
||||
bool is_reserved(size_type amark) const
|
||||
{
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@
|
|||
* darts have the same info.
|
||||
*
|
||||
* internal::Test_is_same_attribute_functor<Map1, Map2> to test if two
|
||||
* i-attributes of two darts are isomorphic (ie they have the same info).
|
||||
* i-attributes of two darts are isomorphic (i.e. they have the same info).
|
||||
*
|
||||
* internal::Test_is_same_attribute_point_functor<Map1, Map2, i> to test if
|
||||
* the point of two i-attributes are equal.
|
||||
|
|
@ -208,7 +208,7 @@ template<typename CMap>
|
|||
struct Test_is_valid_attribute_functor
|
||||
{
|
||||
/** Test the validity of a i-cell-attribute.
|
||||
* ie all the darts belonging to a i-cell are linked to the same attribute.
|
||||
* In other words, all the darts belonging to a i-cell are linked to the same attribute.
|
||||
* @param adart a dart.
|
||||
* @param amark a mark used to mark darts of the i-cell.
|
||||
* @return true iff all the darts of the i-cell link to the same attribute.
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ public:
|
|||
Simplex_iterator(Delaunay* x, Base_iterator y,
|
||||
Delaunay_voronoi_kind z = NEAREST) : Base_iterator(y), DT(x)
|
||||
/* if the facet is not nil we set the current marker to
|
||||
the facet and insert all it's neighbors into the
|
||||
the facet and insert all its neighbors into the
|
||||
candidates stack */
|
||||
{ CGAL_assertion(base() != Base_iterator());
|
||||
tf = (z == NEAREST ? lower_hull : upper_hull);
|
||||
|
|
@ -262,7 +262,7 @@ public:
|
|||
Simplex_const_iterator(const Delaunay* x, Base_iterator y,
|
||||
Delaunay_voronoi_kind z = NEAREST) : Base_iterator(y), DT(x)
|
||||
/* if the facet is not nil we set the current marker to
|
||||
the facet and insert all it's neighbors into the
|
||||
the facet and insert all its neighbors into the
|
||||
candidates stack */
|
||||
{ CGAL_assertion(base() != Base_iterator());
|
||||
tf = (z == NEAREST ? lower_hull : upper_hull);
|
||||
|
|
|
|||
|
|
@ -288,7 +288,7 @@ for more information.
|
|||
On some platforms, linking with `libunwind` was responsible for an increase of the runtime of the final application.
|
||||
If you experience such an issue, we recommend to compile \ceres without `glog` support.
|
||||
|
||||
\attention In the master branch of \ceres `glog` was dropped as a dependecy and `abseil` was added instead. It is not compatible with \visualstudio 2017 or earlier versions.
|
||||
\attention In the master branch of \ceres `glog` was dropped as a dependency and `abseil` was added instead. It is not compatible with \visualstudio 2017 or earlier versions.
|
||||
|
||||
\subsection thirdpartyGLPK GLPK
|
||||
|
||||
|
|
|
|||
|
|
@ -222,7 +222,7 @@ ALIASES = "cgal=%CGAL" \
|
|||
# language is one of the parsers supported by doxygen: IDL, Java, JavaScript,
|
||||
# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice,
|
||||
# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran:
|
||||
# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser
|
||||
# FortranFree, unknown formatted Fortran: Fortran. In the latter case the parser
|
||||
# tries to guess whether the code is fixed or free formatted code, this is the
|
||||
# default for Fortran type files). For instance to make doxygen treat .inc files
|
||||
# as Fortran files (default is PHP), and .f files as C (default is Fortran),
|
||||
|
|
|
|||
|
|
@ -98,14 +98,14 @@ $(document).ready(function() {
|
|||
if(window.location.href.includes("doc.cgal.org")){
|
||||
var url='https://doc.cgal.org/latest/Manual/menu_version.js';
|
||||
var script = document.createElement("script"); // Make a script DOM node
|
||||
script.src = url; // Set it's src to the provided URL
|
||||
script.src = url; // Set its src to the provided URL
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
else
|
||||
{
|
||||
var url='../Manual/menu_version.js';
|
||||
var script = document.createElement("script"); // Make a script DOM node
|
||||
script.src = url; // Set it's src to the provided URL
|
||||
script.src = url; // Set its src to the provided URL
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -213,7 +213,7 @@ ALIASES = "cgal=%CGAL" \
|
|||
# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
|
||||
# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
|
||||
# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
|
||||
# Fortran. In the later case the parser tries to guess whether the code is fixed
|
||||
# Fortran. In the latter case the parser tries to guess whether the code is fixed
|
||||
# or free formatted code, this is the default for Fortran type files), VHDL. For
|
||||
# instance to make doxygen treat .inc files as Fortran files (default is PHP),
|
||||
# and .f files as C (default is Fortran), use: inc=Fortran f=C.
|
||||
|
|
|
|||
|
|
@ -98,14 +98,14 @@ $(document).ready(function() {
|
|||
if(window.location.href.includes("doc.cgal.org")){
|
||||
var url='https://doc.cgal.org/latest/Manual/menu_version.js';
|
||||
var script = document.createElement("script"); // Make a script DOM node
|
||||
script.src = url; // Set it's src to the provided URL
|
||||
script.src = url; // Set its src to the provided URL
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
else
|
||||
{
|
||||
var url='../Manual/menu_version.js';
|
||||
var script = document.createElement("script"); // Make a script DOM node
|
||||
script.src = url; // Set it's src to the provided URL
|
||||
script.src = url; // Set its src to the provided URL
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -222,7 +222,7 @@ ALIASES = "cgal=%CGAL" \
|
|||
# language is one of the parsers supported by doxygen: IDL, Java, JavaScript,
|
||||
# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice,
|
||||
# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran:
|
||||
# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser
|
||||
# FortranFree, unknown formatted Fortran: Fortran. In the latter case the parser
|
||||
# tries to guess whether the code is fixed or free formatted code, this is the
|
||||
# default for Fortran type files). For instance to make doxygen treat .inc files
|
||||
# as Fortran files (default is PHP), and .f files as C (default is Fortran),
|
||||
|
|
|
|||
|
|
@ -98,14 +98,14 @@ $(document).ready(function() {
|
|||
if(window.location.href.includes("doc.cgal.org")){
|
||||
var url='https://doc.cgal.org/latest/Manual/menu_version.js';
|
||||
var script = document.createElement("script"); // Make a script DOM node
|
||||
script.src = url; // Set it's src to the provided URL
|
||||
script.src = url; // Set its src to the provided URL
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
else
|
||||
{
|
||||
var url='../Manual/menu_version.js';
|
||||
var script = document.createElement("script"); // Make a script DOM node
|
||||
script.src = url; // Set it's src to the provided URL
|
||||
script.src = url; // Set its src to the provided URL
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ namespace CGAL {
|
|||
//****************************************************************************
|
||||
/* Class CMap_dart_iterator_basic_of_two_alpha<Ai,delta>: to iterate
|
||||
* on the darts of the orbit <Ai,Ai+delta>: Ai<Ai+delta<=dimension.
|
||||
* This general case if for delta>1 (ie at most 4 darts).
|
||||
* This general case if for delta>1 (i.e. at most 4 darts).
|
||||
* Basic classes do not guaranty correct marks (i.e. do not unmark darts in
|
||||
* the destructor, possible problem with the rewind). If you are not sure,
|
||||
* use CMap_dart_iterator_basic_of_two_alpha.
|
||||
|
|
@ -445,7 +445,7 @@ namespace CGAL {
|
|||
/* Class CMap_dart_iterator_basic_of_three_alpha<Ai,delta1,delta2>: to iterate
|
||||
* on the darts of the orbit <Ai,Ai+delta1,Ai+delta2>:
|
||||
* Ai<Ai+delta1<Ai+delta2<=dimension.
|
||||
* This general case if for delta1>1 and delta2>1 (ie at most 8 darts).
|
||||
* This general case if for delta1>1 and delta2>1 (i.e. at most 8 darts).
|
||||
* Basic classes do not guaranty correct marks (i.e. do not unmark darts in
|
||||
* the destructor, possible problem with the rewind). If you are not sure,
|
||||
* use CMap_dart_iterator_basic_of_two_alpha.
|
||||
|
|
|
|||
|
|
@ -876,7 +876,7 @@ namespace CGAL {
|
|||
{ return mnb_used_marks; }
|
||||
|
||||
/** Test if a given mark is reserved.
|
||||
* @return true iff the mark is reserved (ie in used).
|
||||
* @return true iff the mark is reserved (i.e. in used).
|
||||
*/
|
||||
bool is_reserved(size_type amark) const
|
||||
{
|
||||
|
|
|
|||
|
|
@ -141,7 +141,7 @@
|
|||
<item>
|
||||
<widget class="QDoubleSpinBox" name="oversampling">
|
||||
<property name="toolTip">
|
||||
<string>Antialiases image (when larger then 1.0)</string>
|
||||
<string>Antialiases image (when larger than 1.0)</string>
|
||||
</property>
|
||||
<property name="prefix">
|
||||
<string>x </string>
|
||||
|
|
|
|||
|
|
@ -1111,7 +1111,7 @@ template <class Interval>
|
|||
Interval_skip_list<Interval>::removeMarkers(IntervalSLnode<Interval>* left,
|
||||
const Interval& I)
|
||||
{
|
||||
// Remove markers for interval I, which has left as it's left
|
||||
// Remove markers for interval I, which has left as its left
|
||||
// endpoint, following a staircase pattern.
|
||||
|
||||
// Interval_handle res=0, tmp=0; // af: assignment not possible with std::list
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ typedef Line_3<K> Line_2;
|
|||
/// constructors required to build the dual Voronoi diagram. The
|
||||
/// functors operate on the 2D projection of their arguments. They
|
||||
/// come with preconditions that projections of the arguments are
|
||||
/// non-degenerate, eg. a line segment does not project on a single
|
||||
/// non-degenerate, e.g. a line segment does not project on a single
|
||||
/// point, two points do not project on the same point, etc. In the
|
||||
/// following, we specify the choice of the `z`-coordinate in case a
|
||||
/// new point is constructed.
|
||||
|
|
|
|||
|
|
@ -369,7 +369,7 @@ void _test_bounded_side(const K &k) {
|
|||
}
|
||||
}
|
||||
|
||||
// we dont need to test bounded_side(Circle, Circular_arc_point) because
|
||||
// we don't need to test bounded_side(Circle, Circular_arc_point) because
|
||||
// bounded_side(Circle, Circular_arc_point) = bounded_side(Sphere, Circular_arc_point) +
|
||||
// has_on_3(supporting_plane, circular_arc_point) which has already been tested
|
||||
std::cout << "Testing bounded_side(Circle, Point)..." << std::endl;
|
||||
|
|
|
|||
|
|
@ -187,7 +187,7 @@ bool CGAL_Lab_polyhedron_slicer_plugin::on_Update_plane_button_clicked() {
|
|||
{ print_message("Error: center coordinates not convertible to double."); return false; }
|
||||
|
||||
// set center
|
||||
bool oldState = mf->blockSignals(true); // dont let it signal, it will invoke plane_manipulated_frame_modified otherwise
|
||||
bool oldState = mf->blockSignals(true); // don't let it signal, it will invoke plane_manipulated_frame_modified otherwise
|
||||
mf->setPosition(center_x, center_y, center_z);
|
||||
mf->blockSignals(oldState);
|
||||
|
||||
|
|
@ -206,7 +206,7 @@ bool CGAL_Lab_polyhedron_slicer_plugin::on_Update_plane_button_clicked() {
|
|||
CGAL::qglviewer::Quaternion orientation_from_bases;
|
||||
orientation_from_bases.setFromRotatedBasis(base_1, base_2, other);
|
||||
|
||||
oldState = mf->blockSignals(true); // dont let it signal, it will invoke plane_manipulated_frame_modified otherwise
|
||||
oldState = mf->blockSignals(true); // don't let it signal, it will invoke plane_manipulated_frame_modified otherwise
|
||||
mf->setOrientation(orientation_from_bases);
|
||||
mf->blockSignals(oldState);
|
||||
|
||||
|
|
|
|||
|
|
@ -1164,7 +1164,7 @@ bool Scene::dropMimeData(const QMimeData * /*data*/,
|
|||
return true;
|
||||
}
|
||||
|
||||
//todo : if a group is selected, don't treat it's children.
|
||||
//todo : if a group is selected, don't treat its children.
|
||||
bool Scene::sort_lists(QVector<QList<int> >&sorted_lists, bool up)
|
||||
{
|
||||
QVector<int> group_found;
|
||||
|
|
|
|||
|
|
@ -250,7 +250,7 @@ unspecified_type no_features();
|
|||
* enables the meshing algorithm
|
||||
* to mesh the input surface only and not take the volume into account.
|
||||
*
|
||||
* When this option is enabled, the ouput mesh has no cells in the 3D complex,
|
||||
* When this option is enabled, the output mesh has no cells in the 3D complex,
|
||||
* only facets, edges and vertices.
|
||||
* Full-3D optimization steps such as mesh perturbation and mesh exudation are automatically disabled.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -3756,7 +3756,7 @@ fill_modified_vertices(InputIterator cells_begin,
|
|||
OutputIterator out) const
|
||||
{
|
||||
Vertex_set already_inserted_vertices;
|
||||
// Dont insert vertex in out
|
||||
// Don't insert vertex in out
|
||||
already_inserted_vertices.insert(vertex);
|
||||
|
||||
for ( InputIterator it = cells_begin ; it != cells_end ; ++it )
|
||||
|
|
|
|||
|
|
@ -1697,7 +1697,7 @@ compute_facet_properties(const Facet& facet,
|
|||
#ifdef CGAL_MESH_3_NO_LONGER_CALLS_DO_INTERSECT_3
|
||||
// In the following, std::get<2>(intersect) == 0 is a way to
|
||||
// test "intersect == Intersection()" (aka empty intersection), but
|
||||
// the later does not work.
|
||||
// the latter does not work.
|
||||
Surface_patch surface =
|
||||
(dimension(intersect) == 0) ? Surface_patch() :
|
||||
Surface_patch(
|
||||
|
|
|
|||
|
|
@ -669,7 +669,7 @@ of the offset approximation for degenerate polygons such as line segments. This
|
|||
enhancement was developed by Efi Fogel, who also developed a new decomposition
|
||||
strategy, which can handle polygons with holes, essentially enabling the
|
||||
computation of Minkowski sum of two polygons with holes using the decomposition
|
||||
approach. The later was introduced with release 4.6. Ron Wein, Efi Fogel,
|
||||
approach. The latter was introduced with release 4.6. Ron Wein, Efi Fogel,
|
||||
Ophir Setter, Andreas Fabri, and Laurent Rineau helped maintaining the package
|
||||
applying bug fixes and other improvements. In particular, Andreas Fabri and
|
||||
Laurent Rineau helped tracing and solving several bugs in the approximated
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ compute_fitness(const typename Traits::Matrix& R, // rotation matrix
|
|||
CGAL_assertion(points.size() >= 3);
|
||||
|
||||
FT xmin, ymin, zmin, xmax, ymax, zmax;
|
||||
//cast from double to float looses data, so cast with {} is not allowed
|
||||
//cast from double to float loses data, so cast with {} is not allowed
|
||||
//cast from double to exact types also works
|
||||
xmin = ymin = zmin = FT((std::numeric_limits<double>::max)());
|
||||
xmax = ymax = zmax = FT(std::numeric_limits<double>::lowest());
|
||||
|
|
@ -83,7 +83,7 @@ compute_fitness_if_smaller(const typename Traits::Matrix& R, // rotation matrix
|
|||
CGAL_assertion(points.size() >= 3);
|
||||
|
||||
FT xmin, ymin, zmin, xmax, ymax, zmax;
|
||||
//cast from double to float looses data, so cast with {} is not allowed
|
||||
//cast from double to float loses data, so cast with {} is not allowed
|
||||
//cast from double to exact types also works
|
||||
xmin = ymin = zmin = FT((std::numeric_limits<double>::max)());
|
||||
xmax = ymax = zmax = FT(std::numeric_limits<double>::lowest());
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ compute_2D_deviation(const PointRange& points,
|
|||
if(theta > 0.25 * CGAL_PI) // @todo is there a point to this
|
||||
theta = 0.5 * CGAL_PI - theta;
|
||||
|
||||
//cast from double to float looses data, so cast with {} is not allowed
|
||||
//cast from double to float loses data, so cast with {} is not allowed
|
||||
//cast from double to exact types also works
|
||||
return std::make_pair(pol.area(), FT(theta));
|
||||
}
|
||||
|
|
@ -125,7 +125,7 @@ void optimize_along_OBB_axes(typename Traits::Matrix& rot,
|
|||
rotated_points.reserve(points.size());
|
||||
|
||||
FT xmin, ymin, zmin, xmax, ymax, zmax;
|
||||
//cast from double to float looses data, so cast with {} is not allowed
|
||||
//cast from double to float loses data, so cast with {} is not allowed
|
||||
//cast from double to exact types also works
|
||||
xmin = ymin = zmin = FT((std::numeric_limits<double>::max)());
|
||||
xmax = ymax = zmax = FT(std::numeric_limits<double>::lowest());
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ public:
|
|||
Vertex& get_best_vertex()
|
||||
{
|
||||
std::size_t simplex_id = static_cast<std::size_t>(-1), vertex_id = static_cast<std::size_t>(-1);
|
||||
//cast from double to float looses data, so cast with {} is not allowed
|
||||
//cast from double to float loses data, so cast with {} is not allowed
|
||||
//cast from double to exact types also works
|
||||
FT best_fitness = FT((std::numeric_limits<double>::max)());
|
||||
for(std::size_t i=0, ps=m_simplices.size(); i<ps; ++i)
|
||||
|
|
|
|||
|
|
@ -234,7 +234,7 @@ public:
|
|||
/*!
|
||||
If `sample_size == 0`, the simplification is performed using an exhaustive priority queue.
|
||||
If `sample_size` is strictly positive the simplification is performed using a
|
||||
multiple choice approach, ie, a best-choice selection in a random sample of
|
||||
multiple choice approach, i.e., a best-choice selection in a random sample of
|
||||
edge collapse operators, of size `sample_size`. A typical value for the sample
|
||||
size is 15, but this value must be enlarged when targeting a very coarse simplification.
|
||||
\param sample_size If `sample_size != 0`, the size of the random sample replaces the priority queue.
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ _test_cls_periodic_3_triangulation_3(const PeriodicTriangulation &,
|
|||
const char* covering_test_filename,
|
||||
bool ex = false,
|
||||
bool hom = false,
|
||||
bool test_input_ouput = true)
|
||||
bool test_input_output = true)
|
||||
{
|
||||
typedef PeriodicTriangulation P3T3;
|
||||
|
||||
|
|
@ -633,7 +633,7 @@ _test_cls_periodic_3_triangulation_3(const PeriodicTriangulation &,
|
|||
|
||||
|
||||
// There are problems with the IO of exact number types in binary mode.
|
||||
if(test_input_ouput)
|
||||
if(test_input_output)
|
||||
{
|
||||
std::cout << "I/O" << std::endl;
|
||||
std::cout << " ASCII" << std::endl;
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ public:
|
|||
void before_edge_split(halfedge_descriptor h, const Triangle_mesh& tm);
|
||||
/// called when a new split is done. The target of `hnew` is a new split vertex. There is only one call per edge.
|
||||
void edge_split(halfedge_descriptor hnew, const Triangle_mesh& tm);
|
||||
/// called when the split of the halfedge `h` passed at the later call to `before_edge_split()` is finished.
|
||||
/// called when the split of the halfedge `h` passed at the latter call to `before_edge_split()` is finished.
|
||||
void after_edge_split();
|
||||
/// called when a new edge has been added to triangulate a face. The face triangulated is `f_split`
|
||||
/// in the last call to `before_subface_creations(f_split, tm)`. There is only one call per edge.
|
||||
|
|
|
|||
|
|
@ -995,7 +995,7 @@ private:
|
|||
return 0;
|
||||
}
|
||||
if (o1 * o2 * o3 == 0){
|
||||
return 2; // means we dont know
|
||||
return 2; // means we don't know
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -1233,7 +1233,7 @@ private:
|
|||
}
|
||||
// this was for a fast float check
|
||||
if (inter == 2)
|
||||
{ //we dont know if point exist or if inside of triangle
|
||||
{ //we don't know if point exist or if inside of triangle
|
||||
cut[cutp[i]] = true;
|
||||
cut[cutp[j]] = true;
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -241,11 +241,11 @@ void test_triangulate_refine_and_fair_hole(const std::string file_name) {
|
|||
}
|
||||
|
||||
template <class Polyhedron>
|
||||
void test_ouput_iterators_triangulate_hole(const std::string file_name) {
|
||||
void test_output_iterators_triangulate_hole(const std::string file_name) {
|
||||
typedef typename boost::graph_traits<Polyhedron>::halfedge_descriptor Halfedge_handle;
|
||||
typedef typename boost::graph_traits<Polyhedron>::face_descriptor Facet_handle;
|
||||
|
||||
std::cout << "test_ouput_iterators_triangulate_hole:" << std::endl;
|
||||
std::cout << "test_output_iterators_triangulate_hole:" << std::endl;
|
||||
std::cout << " File: "<< file_name << std::endl;
|
||||
|
||||
Polyhedron poly, poly_2;
|
||||
|
|
@ -273,11 +273,11 @@ void test_ouput_iterators_triangulate_hole(const std::string file_name) {
|
|||
}
|
||||
|
||||
template <class Polyhedron>
|
||||
void test_ouput_iterators_triangulate_and_refine_hole(const std::string file_name) {
|
||||
void test_output_iterators_triangulate_and_refine_hole(const std::string file_name) {
|
||||
typedef typename boost::graph_traits<Polyhedron>::halfedge_descriptor Halfedge_handle;
|
||||
typedef typename boost::graph_traits<Polyhedron>::face_descriptor Facet_handle;
|
||||
typedef typename boost::graph_traits<Polyhedron>::vertex_descriptor Vertex_handle;
|
||||
std::cout << "test_ouput_iterators_triangulate_and_refine_hole:" << std::endl;
|
||||
std::cout << "test_output_iterators_triangulate_and_refine_hole:" << std::endl;
|
||||
std::cout << " File: "<< file_name << std::endl;
|
||||
|
||||
Polyhedron poly, poly_2;
|
||||
|
|
@ -403,8 +403,8 @@ typedef CGAL::Surface_mesh<typename Kernel::Point_3> Polyhedron;
|
|||
test_triangulate_hole<Polyhedron>(it->c_str());
|
||||
test_triangulate_and_refine_hole<Polyhedron>(it->c_str());
|
||||
test_triangulate_refine_and_fair_hole<Polyhedron>(it->c_str());
|
||||
test_ouput_iterators_triangulate_and_refine_hole<Polyhedron>(it->c_str());
|
||||
test_ouput_iterators_triangulate_hole<Polyhedron>(it->c_str());
|
||||
test_output_iterators_triangulate_and_refine_hole<Polyhedron>(it->c_str());
|
||||
test_output_iterators_triangulate_hole<Polyhedron>(it->c_str());
|
||||
test_triangulate_hole_weight<Polyhedron>(it->c_str(), 0);
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -248,8 +248,8 @@ void test_triangulate_refine_and_fair_hole(const std::string file_name, bool use
|
|||
std::cout << " Done!" << std::endl;
|
||||
}
|
||||
|
||||
void test_ouput_iterators_triangulate_hole(const std::string file_name, bool use_cdt) {
|
||||
std::cout << "test_ouput_iterators_triangulate_hole:" << std::endl;
|
||||
void test_output_iterators_triangulate_hole(const std::string file_name, bool use_cdt) {
|
||||
std::cout << "test_output_iterators_triangulate_hole:" << std::endl;
|
||||
std::cout << " File: "<< file_name << std::endl;
|
||||
|
||||
Polyhedron poly, poly_2;
|
||||
|
|
@ -280,8 +280,8 @@ void test_ouput_iterators_triangulate_hole(const std::string file_name, bool use
|
|||
std::cout << " Done!" << std::endl;
|
||||
}
|
||||
|
||||
void test_ouput_iterators_triangulate_and_refine_hole(const std::string file_name, bool use_cdt) {
|
||||
std::cout << "test_ouput_iterators_triangulate_and_refine_hole:" << std::endl;
|
||||
void test_output_iterators_triangulate_and_refine_hole(const std::string file_name, bool use_cdt) {
|
||||
std::cout << "test_output_iterators_triangulate_and_refine_hole:" << std::endl;
|
||||
std::cout << " File: "<< file_name << std::endl;
|
||||
|
||||
Polyhedron poly, poly_2;
|
||||
|
|
@ -407,10 +407,10 @@ int main()
|
|||
test_triangulate_and_refine_hole(it->c_str(), false);
|
||||
test_triangulate_refine_and_fair_hole(it->c_str(), true);
|
||||
test_triangulate_refine_and_fair_hole(it->c_str(), false);
|
||||
test_ouput_iterators_triangulate_and_refine_hole(it->c_str(), true);
|
||||
test_ouput_iterators_triangulate_and_refine_hole(it->c_str(), false);
|
||||
test_ouput_iterators_triangulate_hole(it->c_str(), true);
|
||||
test_ouput_iterators_triangulate_hole(it->c_str(), false);
|
||||
test_output_iterators_triangulate_and_refine_hole(it->c_str(), true);
|
||||
test_output_iterators_triangulate_and_refine_hole(it->c_str(), false);
|
||||
test_output_iterators_triangulate_hole(it->c_str(), true);
|
||||
test_output_iterators_triangulate_hole(it->c_str(), false);
|
||||
test_triangulate_hole_weight(it->c_str(), true, 0);
|
||||
test_triangulate_hole_weight(it->c_str(), false, 0);
|
||||
std::cout << "------------------------------------------------" << std::endl;
|
||||
|
|
|
|||
|
|
@ -175,7 +175,7 @@ public:
|
|||
const int orient)
|
||||
{
|
||||
if (s == 1) {
|
||||
// Dont multiply by (1-s) as this will zero the equation
|
||||
// Don't multiply by (1-s) as this will zero the equation
|
||||
Q[1] = Q[3] = Q[4] = 0;
|
||||
Q[0] = Q[2] = Q[5] = orient;
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ contour offset instead of two contour offsets, one of them corresponding to the
|
|||
|
||||
Simply using `2*offset` as the separation is incorrect since `offset` is the distance
|
||||
between an offset line and its original, not between an offset vertex and its original.
|
||||
The later, which is calculated by this function and needed to place the frame sufficiently
|
||||
The latter, which is calculated by this function and needed to place the frame sufficiently
|
||||
away from the polygon, can be thousands of times larger than `offset`.
|
||||
|
||||
If the result is <I>absent</I>, any attempt to construct an exterior offset polygon at distance `offset` will fail.
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ typedef IO_rep_is_not_specialized_aux<void> IO_rep_is_not_specialized;
|
|||
|
||||
The purpose of `Output_rep` is to provide a way to control output formatting that works independently of the object's stream output operator.
|
||||
|
||||
If you dont specialize `Output_rep` for `T`, `T`'s stream output operator is called from within `Output_rep`, by default. If you want another behavior for your type `T`, you have to provide a specialization for that type. Furthermore, you can provide specializations with a second template parameter (a formatting tag). The second template parameter defaults to `Null_tag` and means *default behavior*.
|
||||
If you don't specialize `Output_rep` for `T`, `T`'s stream output operator is called from within `Output_rep`, by default. If you want another behavior for your type `T`, you have to provide a specialization for that type. Furthermore, you can provide specializations with a second template parameter (a formatting tag). The second template parameter defaults to `Null_tag` and means *default behavior*.
|
||||
|
||||
Specializations of `Output_rep` should provide the following features:
|
||||
|
||||
|
|
|
|||
|
|
@ -1280,7 +1280,7 @@ protected:
|
|||
else
|
||||
{// there is at least a hole around the vertex
|
||||
// we set the 0-th dart just after a hole
|
||||
// then we add 1 to the next dart if we dont cross a hole
|
||||
// then we add 1 to the next dart if we don't cross a hole
|
||||
// and we add deg(v)+1 if we cross a hole
|
||||
dh=it;
|
||||
while(!get_local_map().is_marked(dh, m_mark_perforated))
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ namespace Surface_sweep_2 {
|
|||
*
|
||||
* The algorithm is also extended to support the following degenerate cases:
|
||||
* - vertical segments
|
||||
* - multiple (more then two) curves intersecting at one point
|
||||
* - multiple (more than two) curves intersecting at one point
|
||||
* - curves beginning and ending on other curves.
|
||||
* - overlapping curves
|
||||
*
|
||||
|
|
|
|||
|
|
@ -480,7 +480,7 @@ void Surface_sweep_2<Vis>::_remove_curve_from_status_line(Subcurve* leftCurve,
|
|||
leftCurve->set_hint(this->m_statusLine.end());
|
||||
|
||||
if (! remove_for_good) {
|
||||
// the subcurve is not removed for good, so we dont need to intersect
|
||||
// the subcurve is not removed for good, so we don't need to intersect
|
||||
// its neighbors after its removal.
|
||||
CGAL_SS_PRINT_ERASE(*sliter);
|
||||
this->m_statusLine.erase(sliter);
|
||||
|
|
|
|||
|
|
@ -162,7 +162,7 @@ public:
|
|||
public:
|
||||
// The face_iterator_base_begin gives the possibility to iterate over all
|
||||
// faces in the container independently of the dimension.
|
||||
// public for the need of file_ouput() of Constrained triangulation
|
||||
// public for the need of file_output() of Constrained triangulation
|
||||
// should be made private later
|
||||
|
||||
Face_iterator face_iterator_base_begin() const {
|
||||
|
|
|
|||
|
|
@ -1736,7 +1736,7 @@ create_star_3(Vertex_handle v, Cell_handle c, int li, int prev_ind2)
|
|||
Cell_handle nnn = n->neighbor(next_around_edge(jj2, jj1));
|
||||
int zzz = nnn->index(vvv);
|
||||
if (nnn == cur) {
|
||||
// Neighbor relation is reciprocal, ie
|
||||
// Neighbor relation is reciprocal, i.e.
|
||||
// the cell we are looking for is not yet created.
|
||||
nnn = create_star_3(v, nnn, zz, zzz);
|
||||
}
|
||||
|
|
@ -1794,7 +1794,7 @@ recursive_create_star_3(Vertex_handle v, Cell_handle c, int li,
|
|||
Cell_handle nnn = n->neighbor(next_around_edge(jj2, jj1));
|
||||
int zzz = nnn->index(vvv);
|
||||
if (nnn == cur) {
|
||||
// Neighbor relation is reciprocal, ie
|
||||
// Neighbor relation is reciprocal, i.e.
|
||||
// the cell we are looking for is not yet created.
|
||||
nnn = recursive_create_star_3(v, nnn, zz, zzz,depth+1);
|
||||
}
|
||||
|
|
@ -1855,7 +1855,7 @@ non_recursive_create_star_3(Vertex_handle v, Cell_handle c, int li, int prev_ind
|
|||
Cell_handle nnn = n->neighbor(next_around_edge(jj2, jj1));
|
||||
int zzz = nnn->index(vvv);
|
||||
if (nnn == cur) {
|
||||
// Neighbor relation is reciprocal, ie
|
||||
// Neighbor relation is reciprocal, i.e.
|
||||
// the cell we are looking for is not yet created.
|
||||
//re-run the loop
|
||||
adjacency_info_stack.push( iAdjacency_info(zzz,cnew,ii,c,li,prev_ind2) );
|
||||
|
|
@ -2344,7 +2344,7 @@ flip( Cell_handle c, int i )
|
|||
int in = n->index(c);
|
||||
|
||||
// checks that the facet is flippable,
|
||||
// ie the future edge does not already exist
|
||||
// i.e. the future edge does not already exist
|
||||
if (is_edge(c->vertex(i), n->vertex(in)))
|
||||
return false;
|
||||
|
||||
|
|
@ -2367,7 +2367,7 @@ flip_flippable(Cell_handle c, int i )
|
|||
int in = n->index(c);
|
||||
|
||||
// checks that the facet is flippable,
|
||||
// ie the future edge does not already exist
|
||||
// i.e. the future edge does not already exist
|
||||
CGAL_expensive_precondition( !is_edge(c->vertex(i),
|
||||
n->vertex(in)));
|
||||
flip_really(c,i,n,in);
|
||||
|
|
@ -2429,7 +2429,7 @@ flip( Cell_handle c, int i, int j )
|
|||
&& (number_of_vertices() >= 6) );
|
||||
CGAL_expensive_precondition( is_cell(c) );
|
||||
|
||||
// checks that the edge is flippable ie degree 3
|
||||
// checks that the edge is flippable, i.e. degree 3
|
||||
int degree = 0;
|
||||
Cell_circulator ccir = incident_cells(c,i,j);
|
||||
Cell_circulator cdone = ccir;
|
||||
|
|
@ -2479,7 +2479,7 @@ flip_flippable( Cell_handle c, int i, int j )
|
|||
&& (number_of_vertices() >= 6) );
|
||||
CGAL_expensive_precondition( is_cell(c) );
|
||||
|
||||
// checks that the edge is flippable ie degree 3
|
||||
// checks that the edge is flippable, i.e. degree 3
|
||||
CGAL_precondition_code( int degree = 0; );
|
||||
CGAL_precondition_code
|
||||
( Cell_circulator ccir = incident_cells(c,i,j); );
|
||||
|
|
|
|||
|
|
@ -286,7 +286,7 @@ public:
|
|||
virtual QVector4D* clipBox() const =0;
|
||||
virtual bool isClipping() const = 0;
|
||||
//! A vector indicating the scaling factors to apply to the scene when displaying it.
|
||||
//! It can be useful when a scene is very large along one of it's coordinates, making it hard to visualize it.
|
||||
//! It can be useful when a scene is very large along one of its coordinates, making it hard to visualize it.
|
||||
virtual const QVector3D& scaler() const = 0;
|
||||
|
||||
virtual void showEntireScene() = 0;
|
||||
|
|
|
|||
|
|
@ -2040,7 +2040,7 @@ void Viewer::mouseReleaseEvent(QMouseEvent *event)
|
|||
} else {
|
||||
displayMessage( tr("No point is selected.") );
|
||||
}
|
||||
} else { /* select multiple points, ie. selection window > 1 */
|
||||
} else { /* select multiple points, i.e. selection window > 1 */
|
||||
// define selection window
|
||||
if( m_rectSel.width() < 10 )
|
||||
setSelectRegionWidth( 10 );
|
||||
|
|
|
|||
|
|
@ -1542,7 +1542,7 @@ side_of_circle(Cell_handle c, int i, const Point& p, bool perturb) const
|
|||
if(dimension() == 2)
|
||||
{
|
||||
CGAL_precondition(i == 3);
|
||||
// the triangulation is supposed to be valid, ie the facet
|
||||
// the triangulation is supposed to be valid, i.e. the facet
|
||||
// with vertices 0 1 2 in this order is positively oriented
|
||||
if(! c->has_vertex(infinite_vertex(), i3))
|
||||
return coplanar_side_of_bounded_circle(c->vertex(0)->point(),
|
||||
|
|
|
|||
|
|
@ -2148,7 +2148,7 @@ side_of_power_circle(Cell_handle c, int i, const Weighted_point& p,
|
|||
if(dimension() == 2)
|
||||
{
|
||||
CGAL_precondition(i == 3);
|
||||
// the triangulation is supposed to be valid, ie the facet
|
||||
// the triangulation is supposed to be valid, i.e. the facet
|
||||
// with vertices 0 1 2 in this order is positively oriented
|
||||
if(! c->has_vertex(infinite_vertex(), i3))
|
||||
return Bounded_side(side_of_oriented_power_circle(c->vertex(0)->point(),
|
||||
|
|
|
|||
|
|
@ -401,7 +401,7 @@ public:
|
|||
return FT(0);
|
||||
|
||||
FT weight = FT(0);
|
||||
if (is_border_edge(he, m_pmesh)) // ie, opp(he, pmesh) is a border halfedge
|
||||
if (is_border_edge(he, m_pmesh)) // i.e., opp(he, pmesh) is a border halfedge
|
||||
{
|
||||
const halfedge_descriptor h1 = next(he, m_pmesh);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue