Misc minor changes

Indentation, comments, whitespace, etc.
This commit is contained in:
Mael Rouxel-Labbé 2017-10-22 23:28:37 +02:00
parent 57142bd545
commit 41f5c47394
12 changed files with 170 additions and 155 deletions

View File

@ -27,7 +27,6 @@
#include <CGAL/license/Convex_hull_2.h>
#include <CGAL/Point_2.h>
#include <CGAL/predicates_on_points_2.h>
#include <CGAL/distance_predicates_2.h>

View File

@ -650,7 +650,6 @@ Labeled_mesh_domain_3<F,BGT,Null>::Construct_initial_points::operator()(
typedef Random_points_on_sphere_3<Point_3> Random_points_on_sphere_3;
typedef Random_points_in_sphere_3<Point_3> Random_points_in_sphere_3;
const FT squared_radius = BGT().compute_squared_radius_3_object()(
r_domain_.bounding_sphere(r_domain_.bbox_));

View File

@ -960,7 +960,7 @@ public:
private:
// -----------------------------------
// Usefull Functors
// Useful Functors
// -----------------------------------
/**
* @class Get_all_facets
@ -1089,7 +1089,7 @@ private:
/**
* @class Update_c3t3
*
* A functor which updates c3t3 w.r.t the domain.
* A functor which updates c3t3 w.r.t. the domain.
*/
class Update_c3t3
{

View File

@ -27,7 +27,6 @@
#include <CGAL/license/Mesh_3.h>
#include <CGAL/Mesh_3/config.h>
#include <CGAL/convex_hull_2.h>
@ -45,34 +44,32 @@ template <typename C3T3,
typename SizingField = Uniform_sizing_field<typename C3T3::Triangulation> >
class Lloyd_move
{
typedef typename C3T3::Triangulation Tr;
typedef typename Tr::Geom_traits Gt;
typedef typename Tr::Cell_handle Cell_handle;
typedef typename Tr::Vertex_handle Vertex_handle;
typedef typename Tr::Edge Edge;
typedef typename Tr::Facet Facet;
typedef typename Tr::Weighted_point Weighted_point;
typedef typename Tr::Bare_point Bare_point;
typedef typename std::vector<Cell_handle> Cell_vector;
typedef typename std::vector<Vertex_handle> Vertex_vector;
typedef typename std::vector<Facet> Facet_vector;
typedef typename Gt::FT FT;
typedef typename Gt::Vector_3 Vector_3;
typedef typename Gt::Tetrahedron_3 Tetrahedron_3;
typedef typename Gt::Plane_3 Plane_3;
typedef typename Gt::Point_2 Point_2;
typedef typename Gt::Aff_transformation_3 Aff_transformation_3;
typedef typename C3T3::Triangulation Tr;
typedef typename Tr::Geom_traits Gt;
typedef typename Tr::Vertex_handle Vertex_handle;
typedef typename Tr::Edge Edge;
typedef typename Tr::Facet Facet;
typedef typename Tr::Cell_handle Cell_handle;
typedef typename Tr::Bare_point Bare_point;
typedef typename std::vector<Facet> Facet_vector;
typedef typename std::vector<Cell_handle> Cell_vector;
typedef typename Gt::FT FT;
typedef typename Gt::Point_2 Point_2;
typedef typename Gt::Vector_3 Vector_3;
typedef typename Gt::Tetrahedron_3 Tetrahedron_3;
typedef typename Gt::Plane_3 Plane_3;
typedef typename Gt::Aff_transformation_3 Aff_transformation_3;
public:
typedef SizingField Sizing_field;
typedef SizingField Sizing_field;
/**
* @brief Return move to apply on \c v according to Lloyd optimization
* function
* @brief Return the move to apply on \c v according to Lloyd optimization
* function.
*/
Vector_3 operator()(const Vertex_handle& v,
const Cell_vector& incident_cells,
@ -112,7 +109,7 @@ public:
private:
/**
* Project_on_plane defines operator() to project point object on plane.
* Project_on_plane defines `operator()` to project a point object on the plane `plane`.
*/
struct Project_on_plane
{
@ -130,7 +127,7 @@ private:
};
/**
* To_2d defines operator() to transform Bare_point into Point_2
* `To_2d` defines `operator()` to transform from `Bare_point` to `Point_2`.
*/
struct To_2d
{
@ -142,24 +139,24 @@ private:
private:
const Aff_transformation_3& to_2d_;
};
/**
* To_3d defines operator() to transform Point_2 into Bare_point
* `To_3d` defines `operator()` to transform from `Point_2` to `Bare_point`.
*/
struct To_3d
{
To_3d(const Aff_transformation_3& to_3d) : to_3d_(to_3d) {}
Bare_point operator()(const Point_2& p) const
{ return to_3d_.transform((Bare_point(p.x(),p.y(),0))); }
private:
const Aff_transformation_3& to_3d_;
};
/**
* Return move for inside vertex \c v
* Return the move for the inside vertex \c v.
*/
Vector_3 lloyd_move_inside_domain(const Vertex_handle& v,
const Cell_vector& incident_cells,
@ -202,7 +199,7 @@ private:
}
/**
* Return move for on boundary vertex \c v
* Return the move for the on-boundary vertex \c v.
*/
Vector_3 lloyd_move_on_boundary(const Vertex_handle& v,
const C3T3& c3t3,
@ -221,7 +218,7 @@ private:
return CGAL::NULL_VECTOR;
break;
}
case 2: // centroid
case 2: // segment centroid
{
const Bare_point& a = points.front();
const Bare_point& b = points.back();
@ -245,8 +242,8 @@ private:
}
/**
* Returns a vector containing surface delaunay ball center of surface
* facets incident to vertex \c v
* Returns a vector containing the surface delaunay ball centers of the surface
* facets that are incident to vertex \c v.
*/
std::vector<Bare_point> extract_lloyd_boundary_points(const Vertex_handle& v,
const C3T3& c3t3) const
@ -254,10 +251,10 @@ private:
Facet_vector incident_facets;
incident_facets.reserve(64);
c3t3.triangulation().finite_incident_facets(v,std::back_inserter(incident_facets));
std::vector<Bare_point> points;
points.reserve(64);
// Get c3t3's facets incident to v, and add their surface delaunay ball
// center to output
for ( typename Facet_vector::iterator fit = incident_facets.begin() ;
@ -269,12 +266,12 @@ private:
points.push_back(fit->first->get_facet_surface_center(fit->second));
}
return points;
}
/**
* Return move from \c v to centroid of segment [a,b]
* Return the move from \c v to the centroid of the segment [a,b].
*/
Vector_3 centroid_segment_move(const Vertex_handle& v,
const Bare_point& a,
@ -282,22 +279,22 @@ private:
const C3T3& c3t3,
const Sizing_field& sizing_field) const
{
typename Gt::Construct_point_3 cp =
c3t3.triangulation().geom_traits().construct_point_3_object();
typename Gt::Construct_vector_3 vector =
c3t3.triangulation().geom_traits().construct_vector_3_object();
typename Gt::Construct_point_3 wp2p =
c3t3.triangulation().geom_traits().construct_point_3_object();
const Bare_point& p = wp2p(v->point());
const Bare_point& p = cp(v->point());
FT da = density_1d(a,v,sizing_field);
FT db = density_1d(b,v,sizing_field);
CGAL_assertion( !is_zero(da+db) );
CGAL_assertion( !is_zero(da+db) );
return ( (vector(p,a)*da + vector(p,b)*db) / (da+db) );
}
/**
* Return move from \c v to centroid of triangle [a,b,c]
* Return the move from \c v to the centroid of triangle [a,b,c].
*/
Vector_3 centroid_triangle_move(const Vertex_handle& v,
const Bare_point& a,
@ -308,11 +305,11 @@ private:
{
typename Gt::Construct_vector_3 vector =
c3t3.triangulation().geom_traits().construct_vector_3_object();
typename Gt::Construct_point_3 wp2p =
typename Gt::Construct_point_3 cp =
c3t3.triangulation().geom_traits().construct_point_3_object();
const Bare_point& p = wp2p(v->point());
const Bare_point& p = cp(v->point());
FT da = density_2d<true>(a,v,sizing_field);
FT db = density_2d<false>(b,v,sizing_field);
FT dc = density_2d<false>(c,v,sizing_field);
@ -322,9 +319,9 @@ private:
}
/**
* compute approximate centroid of intersection between 3D voronoi cell and
* boundary. The input is the set of intersection points between Voronoi
* edges and the boundary.
* Compute the approximate centroid of the intersection between the 3D voronoi
* cell and the boundary. The input is the set of intersection points between
* Voronoi edges and the boundary.
*/
template <typename ForwardIterator>
Vector_3 centroid_general_move(const Vertex_handle& v,
@ -334,7 +331,7 @@ private:
const Sizing_field& sizing_field) const
{
CGAL_assertion(std::distance(first,last) > 3);
// Fit plane using point-based PCA: compute least square fitting plane
Plane_3 plane;
Bare_point point;
@ -345,16 +342,16 @@ private:
// Project all points to the plane
std::transform(first, last, first, Project_on_plane(plane, c3t3));
CGAL_assertion(std::distance(first,last) > 3);
// Get 2D-3D transformations
Aff_transformation_3 to_3d = compute_to_3d_transform(plane, *first, c3t3);
Aff_transformation_3 to_2d = to_3d.inverse();
// Transform to 2D
std::vector<Point_2> points_2d;
points_2d.reserve(std::distance(first,last));
std::transform(first, last, std::back_inserter(points_2d), To_2d(to_2d));
// Compute 2D convex hull
CGAL_assertion(points_2d.size() > 3);
std::vector<Point_2> ch_2d;
@ -362,21 +359,21 @@ private:
// as it triggers filter failures unnecessarily
CGAL::ch_graham_andrew(points_2d.begin(),points_2d.end(),
std::back_inserter(ch_2d));
// Lift back convex hull to 3D
// Lift back convex hull to 3D
std::vector<Bare_point> polygon_3d;
polygon_3d.reserve(ch_2d.size());
std::transform(ch_2d.begin(), ch_2d.end(),
std::back_inserter(polygon_3d), To_3d(to_3d));
// Compute centroid using quadrature sizing
return centroid_3d_polygon_move(v, polygon_3d.begin(), polygon_3d.end(),
c3t3, sizing_field);
}
/**
* Return move from \c v to centroid of polygon[first,last]
* Polygon has to be convex
* Return the move from \c v to the centroid of polygon[first,last].
* The polygon has to be convex.
*/
template <typename ForwardIterator>
Vector_3 centroid_3d_polygon_move(const Vertex_handle& v,
@ -386,7 +383,7 @@ private:
const Sizing_field& sizing_field) const
{
CGAL_precondition(std::distance(first,last) >= 3);
typename Gt::Construct_vector_3 vector =
c3t3.triangulation().geom_traits().construct_vector_3_object();
typename Gt::Construct_centroid_3 centroid =
@ -398,7 +395,7 @@ private:
// Vertex current position
const Bare_point& vertex_position = cp(v->point());
// Use as reference point to triangulate
const Bare_point& a = *first++;
const Bare_point* b = &(*first++);
@ -435,7 +432,7 @@ private:
}
/**
* Returns the transformation from reference_point to plane
* Return the transformation from `reference_point` to `plane`.
*/
Aff_transformation_3 compute_to_3d_transform(const Plane_3& plane,
const Bare_point& reference_point,
@ -461,7 +458,7 @@ private:
}
/**
* returns density_1d
* Return density_1d
*/
template <typename Sizing_field>
FT density_1d(const Bare_point& p,
@ -476,7 +473,7 @@ private:
}
/**
* returns density_2d
* Return density_2d
*/
template <bool use_v, typename Sizing_field>
FT density_2d(const Bare_point& p,
@ -491,7 +488,7 @@ private:
}
/**
* returns density_3d
* Return density_3d
*/
template <typename Sizing_field>
FT density_3d(const Bare_point& p,
@ -506,8 +503,8 @@ private:
}
/**
* Turns around edge \c edge and add values computed from tets made by
* v->point() and circumcenters of the cells incident to \c edge
* Turn around the edge \c edge and add the values computed from tets made by
* v->point() and the circumcenters of cells incident to \c edge.
*
* Note that this function abundantly uses dual() calls and using a cell base
* which stores the circumcenter thus improves its efficiency.
@ -526,7 +523,7 @@ private:
typename Gt::Compute_volume_3 volume = tr.geom_traits().compute_volume_3_object();
typename Gt::Construct_centroid_3 centroid = tr.geom_traits().construct_centroid_3_object();
typename Gt::Construct_vector_3 vector = tr.geom_traits().construct_vector_3_object();
typename Gt::Construct_point_3 wp2p = tr.geom_traits().construct_point_3_object();
typename Gt::Construct_point_3 cp = tr.geom_traits().construct_point_3_object();
// <PERIODIC>
typename Gt::Construct_tetrahedron_3 tetrahedron =
@ -540,22 +537,22 @@ private:
Cell_circulator done = current_cell;
// a & b are fixed points
const Bare_point& a = wp2p(v->point());
const Bare_point& a = cp(v->point());
// <PERIODIC>
const Bare_point b = tr.dual(current_cell);
const Bare_point a_b = wp2p(tr.point(current_cell, current_cell->index(v)));
const Bare_point a_b = cp(tr.point(current_cell, current_cell->index(v)));
Vector_3 ba = Vector_3(a_b, b);
current_cell++;
++current_cell;
// </PERIODIC>
CGAL_assertion(current_cell != done);
// c & d are moving points
// <PERIODIC>
Bare_point c = tr.dual(current_cell);
Bare_point a_c = wp2p(tr.point(current_cell, current_cell->index(v)));
Bare_point a_c = cp(tr.point(current_cell, current_cell->index(v)));
Vector_3 ca = Vector_3(a_c, c);
current_cell++;
++current_cell;
// </PERIODIC>
CGAL_assertion(current_cell != done);
@ -564,9 +561,9 @@ private:
{
// <PERIODIC>
const Bare_point d = tr.dual(current_cell);
const Bare_point a_d = wp2p(tr.point(current_cell, current_cell->index(v)));
const Bare_point a_d = cp(tr.point(current_cell, current_cell->index(v)));
Vector_3 da = Vector_3(a_d, d);
current_cell++;
++current_cell;
Tetrahedron_3 tet = tetrahedron(a, translate(a, ba), translate(a, ca), translate(a, da));
@ -575,10 +572,10 @@ private:
// Compute mass
FT density = density_3d(tet_centroid, current_cell, sizing_field);
FT abs_volume = CGAL::abs(volume(a,b,c,d));
FT abs_volume = CGAL::abs(volume(tet));
FT mass = abs_volume * density;
move = move + mass * vector(a,tet_centroid);
move = move + mass * vector(a, tet_centroid);
sum_masses += mass;
c = d;

View File

@ -27,7 +27,6 @@
#include <CGAL/license/Mesh_3.h>
#include <CGAL/Mesh_3/config.h>
#include <CGAL/Mesh_3/Uniform_sizing_field.h>
@ -36,32 +35,29 @@
namespace CGAL {
namespace Mesh_3 {
template <typename C3T3,
typename SizingField = Uniform_sizing_field<typename C3T3::Triangulation> >
class Odt_move
{
typedef typename C3T3::Triangulation Tr;
typedef typename Tr::Geom_traits Gt;
typedef typename Tr::Cell_handle Cell_handle;
typedef typename Tr::Vertex_handle Vertex_handle;
typedef typename Tr::Facet Facet;
typedef typename Tr::Weighted_point Weighted_point;
typedef typename Tr::Bare_point Bare_point;
typedef typename std::vector<Cell_handle> Cell_vector;
typedef typename std::vector<Vertex_handle> Vertex_vector;
typedef typename std::vector<Facet> Facet_vector;
typedef typename Gt::FT FT;
typedef typename Gt::Vector_3 Vector_3;
typedef typename C3T3::Triangulation Tr;
typedef typename Tr::Geom_traits Gt;
typedef typename Tr::Vertex_handle Vertex_handle;
typedef typename Tr::Facet Facet;
typedef typename Tr::Cell_handle Cell_handle;
typedef typename Tr::Bare_point Bare_point;
typedef typename std::vector<Facet> Facet_vector;
typedef typename std::vector<Cell_handle> Cell_vector;
typedef typename Gt::FT FT;
typedef typename Gt::Vector_3 Vector_3;
public:
typedef SizingField Sizing_field;
typedef SizingField Sizing_field;
Vector_3 operator()(const Vertex_handle& v,
const Cell_vector& incident_cells,

View File

@ -1606,8 +1606,8 @@ compute_facet_properties(const Facet& facet,
// Trick to have canonical vector : thus, we compute always the same
// intersection
Segment_3 segment = ( compare_xyz(p1, p2)== CGAL::SMALLER )
? construct_segment(p1, p2)
: construct_segment(p2, p1);
? construct_segment(p1, p2)
: construct_segment(p2, p1);
// If facet is on surface, compute intersection point and return true
#ifndef CGAL_MESH_3_NO_LONGER_CALLS_DO_INTERSECT_3

View File

@ -182,7 +182,7 @@ no_topological_change(const Tr& tr,
if(c->is_facet_visited(j))
continue;
// Set facet and it's mirror's one visited
// Set facet and its mirrored version as visited
Cell_handle cj = c->neighbor(j);
int mj = tr.mirror_index(c, j);
c->set_facet_visited(j);
@ -349,8 +349,8 @@ inside_protecting_balls(const Tr& tr,
}
/// This function well_oriented is called by no_topological_change after a
/// v->set_point(p)
/// This function well_oriented is called by no_topological_change after the
/// position of the vertex has been (tentatively) modified.
template<typename Tr>
bool
Triangulation_helpers<Tr>::

View File

@ -57,48 +57,51 @@ class Periodic_3_regular_triangulation_3_mesher_3
: public Periodic_3_regular_triangulation_3<Gt, Tds>
{
public:
typedef Sequential_tag Concurrency_tag;
typedef void Lock_data_structure;
typedef Sequential_tag Concurrency_tag;
typedef void Lock_data_structure;
void *get_lock_data_structure() const { return 0; }
void set_lock_data_structure(void *) const { }
typedef Periodic_3_regular_triangulation_3<Gt, Tds> Base;
typedef Periodic_3_regular_triangulation_3<Gt, Tds> Base;
typedef Gt Geom_traits;
typedef Tds Triangulation_data_structure;
typedef Gt Geom_traits;
typedef Tds Triangulation_data_structure;
typedef typename Base::Cell_iterator Finite_cells_iterator;
typedef typename Base::Facet_iterator Finite_facets_iterator;
typedef typename Base::Edge_iterator Finite_edges_iterator;
typedef typename Base::Vertex_iterator Finite_vertices_iterator;
typedef typename Base::Cell_iterator Finite_cells_iterator;
typedef typename Base::Facet_iterator Finite_facets_iterator;
typedef typename Base::Edge_iterator Finite_edges_iterator;
typedef typename Base::Vertex_iterator Finite_vertices_iterator;
typedef typename Base::Vertex_handle Vertex_handle;
typedef typename Base::Cell_handle Cell_handle;
typedef typename Base::Facet Facet;
typedef typename Base::Edge Edge;
typedef typename Base::Vertex_handle Vertex_handle;
typedef typename Base::Edge Edge;
typedef typename Base::Facet Facet;
typedef typename Base::Cell_handle Cell_handle;
typedef typename Base::FT FT;
typedef typename Base::FT FT;
typedef typename Base::Bare_point Bare_point;
typedef typename Base::Weighted_point Weighted_point;
typedef typename Base::Periodic_bare_point Periodic_bare_point;
typedef typename Base::Periodic_weighted_point Periodic_weighted_point;
typedef typename Base::Bare_point Bare_point;
typedef typename Base::Weighted_point Weighted_point;
typedef typename Base::Periodic_bare_point Periodic_bare_point;
typedef typename Base::Periodic_weighted_point Periodic_weighted_point;
typedef typename Base::Locate_type Locate_type;
typedef typename Base::Locate_type Locate_type;
typedef typename Base::Segment Segment;
typedef typename Base::Periodic_segment Periodic_segment;
typedef typename Base::Segment Segment;
typedef typename Base::Periodic_segment Periodic_segment;
typedef typename Base::Tetrahedron Tetrahedron;
typedef typename Base::Periodic_tetrahedron Periodic_tetrahedron;
typedef typename Base::Triangle Triangle;
typedef typename Base::Periodic_triangle Periodic_triangle;
typedef typename Base::Tetrahedron Tetrahedron;
typedef typename Base::Periodic_tetrahedron Periodic_tetrahedron;
typedef typename Base::Offset Offset;
typedef typename Base::Iso_cuboid Iso_cuboid;
typedef typename Base::Conflict_tester Conflict_tester;
typedef typename Base::Covering_sheets Covering_sheets;
typedef typename Base::Offset Offset;
typedef typename Base::Iso_cuboid Iso_cuboid;
typedef typename Base::Conflict_tester Conflict_tester;
typedef typename Base::Covering_sheets Covering_sheets;
typedef typename Gt::Ray_3 Ray;
typedef typename Gt::Vector_3 Vector_3;
typedef typename Gt::Ray_3 Ray;
using Base::construct_point;
using Base::construct_weighted_point;

View File

@ -229,7 +229,7 @@ void init_domain(C3T3& c3t3, MD& oracle)
typename Tr::Geom_traits::Construct_point_3 wp2p =
tr.geom_traits().construct_point_3_object();
// At this point, the triangulation contains the dummy point.
// At this point, the triangulation contains the dummy points.
// Mark them all as corners so they are kept throughout the refinement.
// [ Does that really matter ? @fixme ]

View File

@ -154,8 +154,6 @@ void refine_periodic_3_mesh_3_impl(C3T3& c3t3,
// Perturbation
if ( perturb )
{
std::cout << "perturb" << std::endl;
double perturb_time_limit = refine_time;
if ( perturb.is_time_limit_set() )
@ -169,7 +167,6 @@ void refine_periodic_3_mesh_3_impl(C3T3& c3t3,
dump_c3t3(c3t3, mesh_options.dump_after_perturb_prefix);
}
#if 1 // regular stuff is not yet supported by periodic triangulations
// Exudation
if ( exude )
{
@ -184,7 +181,6 @@ void refine_periodic_3_mesh_3_impl(C3T3& c3t3,
dump_c3t3(c3t3, mesh_options.dump_after_perturb_prefix);
}
#endif
}
} // end namespace CGAL

View File

@ -62,16 +62,16 @@ template < class Gt,
class Periodic_3_regular_triangulation_3
: public Periodic_3_triangulation_3<Gt, Tds>
{
typedef Periodic_3_regular_triangulation_3<Gt, Tds> Self;
typedef Periodic_3_regular_triangulation_3<Gt, Tds> Self;
public:
typedef Periodic_3_triangulation_3<Gt, Tds> Tr_Base;
typedef Periodic_3_triangulation_3<Gt, Tds> Tr_Base;
typedef Gt Geometric_traits;
typedef Geometric_traits Geom_traits;
typedef Tds Triangulation_data_structure;
typedef Gt Geometric_traits;
typedef Geometric_traits Geom_traits;
typedef Tds Triangulation_data_structure;
typedef typename Gt::FT FT;
typedef typename Gt::FT FT;
typedef typename Tr_Base::Periodic_segment_3 Periodic_segment_3;
typedef typename Tr_Base::Periodic_triangle_3 Periodic_triangle_3;
@ -158,6 +158,7 @@ public:
using Tr_Base::facets_end;
using Tr_Base::cells_begin;
using Tr_Base::cells_end;
using Tr_Base::construct_point;
using Tr_Base::construct_periodic_point;
#endif
@ -801,6 +802,13 @@ public:
Vertex_handle nearest_power_vertex(const Bare_point& p, Cell_handle start) const
{
CGAL_triangulation_precondition(p.x() < domain().xmax());
CGAL_triangulation_precondition(p.y() < domain().ymax());
CGAL_triangulation_precondition(p.z() < domain().zmax());
CGAL_triangulation_precondition(p.x() >= domain().xmin());
CGAL_triangulation_precondition(p.y() >= domain().ymin());
CGAL_triangulation_precondition(p.z() >= domain().zmin());
if(number_of_vertices() == 0)
return Vertex_handle();
@ -809,9 +817,11 @@ public:
typename Gt::Construct_weighted_point_3 p2wp =
geom_traits().construct_weighted_point_3_object();
Cell_handle c = locate(p2wp(p), lt, li, lj, start);
if(lt == Tr_Base::VERTEX)
return c->vertex(li);
const Conflict_tester tester(p2wp(p), this);
Offset o = combine_offsets(Offset(), get_location_offset(tester, c));

View File

@ -415,9 +415,9 @@ public:
// Offset converters
int off_to_int(const Offset& off) const
{
CGAL_triangulation_assertion( off.x()==0 || off.x() ==1 );
CGAL_triangulation_assertion( off.y()==0 || off.y() ==1 );
CGAL_triangulation_assertion( off.z()==0 || off.z() ==1 );
CGAL_triangulation_assertion( off.x() == 0 || off.x() == 1 );
CGAL_triangulation_assertion( off.y() == 0 || off.y() == 1 );
CGAL_triangulation_assertion( off.z() == 0 || off.z() == 1 );
int i = ((off.x()&1)<<2) + ((off.y()&1)<<1) + ((off.z()&1));
return i;
}
@ -754,10 +754,9 @@ public:
return cp(pp.first, pp.second);
}
// The following functions return the "real" position in space (unrestrained
// The following functions return the "real" position in space (unconstrained
// to the original periodic domain) of the vertices v and c->vertex(idx),
// respectively
template <class ConstructPoint>
Point point(Vertex_handle v, ConstructPoint cp) const {
return point(periodic_point(v), cp);
@ -2165,6 +2164,13 @@ exact_periodic_locate
(const Point& p, const Offset& o_p, Offset& lo,
Locate_type& lt, int& li, int& lj, Cell_handle start) const
{
CGAL_triangulation_precondition(p.x() < domain().xmax());
CGAL_triangulation_precondition(p.y() < domain().ymax());
CGAL_triangulation_precondition(p.z() < domain().zmax());
CGAL_triangulation_precondition(p.x() >= domain().xmin());
CGAL_triangulation_precondition(p.y() >= domain().ymin());
CGAL_triangulation_precondition(p.z() >= domain().zmin());
int cumm_off = 0;
Offset off_query = o_p;
if(number_of_vertices() == 0) {
@ -2342,6 +2348,13 @@ inexact_periodic_locate(const Point& p, const Offset& o_p,
Cell_handle start,
int n_of_turns) const
{
CGAL_triangulation_precondition(p.x() < domain().xmax());
CGAL_triangulation_precondition(p.y() < domain().ymax());
CGAL_triangulation_precondition(p.z() < domain().zmax());
CGAL_triangulation_precondition(p.x() >= domain().xmin());
CGAL_triangulation_precondition(p.y() >= domain().ymin());
CGAL_triangulation_precondition(p.z() >= domain().zmin());
int cumm_off = 0;
Offset off_query = o_p;
if(number_of_vertices() == 0) {
@ -4036,7 +4049,9 @@ inline void Periodic_3_triangulation_3<GT, TDS>::get_vertex(
off = combine_offsets(Offset(),int_to_off(ch->offset(i)));
vh = ch->vertex(i);
if(is_1_cover()) return;
if(is_1_cover())
return;
Vertex_handle vh_i = vh;
get_vertex(vh_i, vh, off);
return;