\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL - Surface Mesh
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
CGAL Namespace Reference

Namespaces

 Box_intersection_d
 
 cpp11
 
 IO
 
 Properties
 
 Scale_space_reconstruction_3
 
 Shape_detection_3
 
 Surface_mesh_parameterization
 

Classes

class  Aff_transformation_2
 
class  Aff_transformation_3
 
class  Identity_transformation
 
class  Reflection
 
class  Rotation
 
class  Scaling
 
class  Translation
 
class  Bbox_2
 
class  Bbox_3
 
class  Cartesian
 
class  Cartesian_converter
 
class  Circle_2
 
class  Circle_3
 
class  Ambient_dimension
 
class  Dimension_tag
 
class  Dynamic_dimension_tag
 
class  Feature_dimension
 
class  Direction_2
 
class  Direction_3
 
class  Exact_predicates_exact_constructions_kernel
 
class  Exact_predicates_exact_constructions_kernel_with_kth_root
 
class  Exact_predicates_exact_constructions_kernel_with_root_of
 
class  Exact_predicates_exact_constructions_kernel_with_sqrt
 
class  Exact_predicates_inexact_constructions_kernel
 
class  Filtered_kernel_adaptor
 
class  Filtered_kernel
 
class  Filtered_predicate
 
class  Homogeneous
 
class  Homogeneous_converter
 
class  Iso_cuboid_3
 
class  Iso_rectangle_2
 
class  Kernel_traits
 
class  Line_2
 
class  Line_3
 
class  Null_vector
 
class  Origin
 
class  Plane_3
 
class  Point_2
 
class  Point_3
 
class  Projection_traits_xy_3
 
class  Projection_traits_xz_3
 
class  Projection_traits_yz_3
 
class  Ray_2
 
class  Ray_3
 
class  Segment_2
 
class  Segment_3
 
class  Simple_cartesian
 
class  Simple_homogeneous
 
class  Sphere_3
 
class  Tetrahedron_3
 
class  Triangle_2
 
class  Triangle_3
 
class  Vector_2
 
class  Vector_3
 
class  Weighted_point_2
 
class  Weighted_point_3
 
struct  Construct_array
 
class  CC_safe_handle
 
class  Compact_container_base
 
class  Compact_container
 
class  Compact_container_traits
 
class  Compact
 
class  Fast
 
class  Concurrent_compact_container_traits
 
class  Concurrent_compact_container
 
class  Default
 
class  Fourtuple
 
class  Cast_function_object
 
class  Compare_to_less
 
class  Creator_1
 
class  Creator_2
 
class  Creator_3
 
class  Creator_4
 
class  Creator_5
 
class  Creator_uniform_2
 
class  Creator_uniform_3
 
class  Creator_uniform_4
 
class  Creator_uniform_5
 
class  Creator_uniform_6
 
class  Creator_uniform_7
 
class  Creator_uniform_8
 
class  Creator_uniform_9
 
class  Creator_uniform_d
 
class  Dereference
 
class  Get_address
 
class  Identity
 
class  Project_facet
 
class  Project_next
 
class  Project_next_opposite
 
class  Project_normal
 
class  Project_opposite_prev
 
class  Project_plane
 
class  Project_point
 
class  Project_prev
 
class  Project_vertex
 
class  In_place_list_base
 
class  In_place_list
 
class  Const_oneset_iterator
 
class  Counting_iterator
 
class  Dispatch_or_drop_output_iterator
 
class  Dispatch_output_iterator
 
class  Emptyset_iterator
 
class  Filter_iterator
 
class  Insert_iterator
 
class  Inverse_index
 
class  Join_input_iterator_1
 
class  Join_input_iterator_2
 
class  Join_input_iterator_3
 
class  N_step_adaptor
 
class  Oneset_iterator
 
class  Random_access_adaptor
 
class  Random_access_value_adaptor
 
class  Iterator_range
 
class  Location_policy
 
class  Multiset
 
class  Object
 
class  Sixtuple
 
class  Spatial_lock_grid_3
 
class  Boolean_tag
 
struct  Null_functor
 
struct  Sequential_tag
 
struct  Parallel_tag
 
class  Null_tag
 
class  Threetuple
 
class  Twotuple
 
class  Uncertain
 
class  Quadruple
 
class  Triple
 
struct  value_type_traits
 
struct  value_type_traits< std::back_insert_iterator< Container > >
 
struct  value_type_traits< std::insert_iterator< Container > >
 
struct  value_type_traits< std::front_insert_iterator< Container > >
 
class  Algebraic_structure_traits
 
class  Euclidean_ring_tag
 
class  Field_tag
 
class  Field_with_kth_root_tag
 
class  Field_with_root_of_tag
 
class  Field_with_sqrt_tag
 
class  Integral_domain_tag
 
class  Integral_domain_without_division_tag
 
class  Unique_factorization_domain_tag
 
class  Coercion_traits
 
class  Fraction_traits
 
class  Real_embeddable_traits
 
class  Circulator_from_container
 
class  Circulator_from_iterator
 
class  Circulator_traits
 
class  Container_from_circulator
 
struct  Circulator_tag
 
struct  Iterator_tag
 
struct  Forward_circulator_tag
 
struct  Bidirectional_circulator_tag
 
struct  Random_access_circulator_tag
 
struct  Circulator_base
 
struct  Forward_circulator_base
 
struct  Bidirectional_circulator_base
 
struct  Random_access_circulator_base
 
class  Forward_circulator_ptrbase
 
class  Bidirectional_circulator_ptrbase
 
class  Random_access_circulator_ptrbase
 
class  Color
 
class  Input_rep
 
class  Output_rep
 
class  Istream_iterator
 
class  Ostream_iterator
 
class  Verbose_ostream
 
class  HalfedgeDS_const_decorator
 
class  HalfedgeDS_decorator
 
class  HalfedgeDS_default
 
class  HalfedgeDS_face_base
 
class  HalfedgeDS_face_min_base
 
class  HalfedgeDS_halfedge_base
 
class  HalfedgeDS_halfedge_min_base
 
class  HalfedgeDS_items_2
 
class  HalfedgeDS_items_decorator
 
class  HalfedgeDS_list
 
class  HalfedgeDS_min_items
 
class  HalfedgeDS_vector
 
class  HalfedgeDS_vertex_base
 
class  HalfedgeDS_vertex_min_base
 
class  Handle_hash_function
 
class  Memory_sizer
 
class  Modifier_base
 
class  Profile_counter
 
class  Real_timer
 
class  Timer
 
class  Union_find
 
class  Unique_hash_map
 
class  Polyhedron_3
 
class  Polyhedron_incremental_builder_3
 
class  Polyhedron_items_3
 
class  Polyhedron_min_items_3
 
class  Polyhedron_traits_3
 
class  Polyhedron_traits_with_normals_3
 
class  HalfedgeDS_face_max_base_with_id
 
class  HalfedgeDS_halfedge_max_base_with_id
 
class  HalfedgeDS_vertex_max_base_with_id
 
class  Linear_cell_complex_bgl_min_items
 
class  Linear_cell_complex_for_bgl_combinatorial_map_helper
 
class  Polyhedron_items_with_id_3
 
class  Triangulation_vertex_base_with_id_2
 
class  Halfedge_around_source_iterator
 
class  Halfedge_around_target_iterator
 
class  Halfedge_around_face_iterator
 
class  Halfedge_around_target_circulator
 
class  Halfedge_around_source_circulator
 
class  Face_around_target_circulator
 
class  Halfedge_around_face_circulator
 
class  Face_around_face_iterator
 
class  Face_around_face_circulator
 
class  Face_around_target_iterator
 
class  Vertex_around_face_iterator
 
class  Vertex_around_target_circulator
 
class  Vertex_around_target_iterator
 
struct  Graph_with_descriptor_with_graph
 
struct  Graph_with_descriptor_with_graph_property_map
 
struct  Face_filtered_graph
 
class  Dual
 
class  Seam_mesh
 
class  AABB_polyhedron_segment_primitive
 
class  AABB_face_graph_triangle_primitive
 
class  AABB_traits
 
class  AABB_polyhedron_triangle_primitive
 
struct  AABB_primitive
 
class  AABB_segment_primitive
 
class  AABB_tree
 
class  AABB_halfedge_graph_segment_primitive
 
class  AABB_triangle_primitive
 
class  SM_edge_weight_pmap
 
class  SM_index_pmap
 
class  Surface_mesh
 This class is a data structure that can be used as halfedge data structure or polyhedral surface. It is an alternative to the classes HalfedgeDS and Polyhedron_3 defined in the packages Halfedge Data Structures and 3D Polyhedral Surface. The main difference is that it is indexed based and not pointer based, and that the mechanism for adding information to vertices, halfedges, edges, and faces is much simpler and done at runtime and not at compile time. When elements are removed, they are only marked as removed, and a garbage collection function must be called to really remove them. More...
 

Functions

template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::vertices_size_type 
num_vertices (const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::edges_size_type 
num_edges (const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::degree_size_type 
degree (typename boost::graph_traits< CGAL::Surface_mesh< P > >::vertex_descriptor v, const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::degree_size_type 
degree (typename boost::graph_traits< CGAL::Surface_mesh< P > >::face_descriptor f, const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::degree_size_type 
out_degree (typename boost::graph_traits< CGAL::Surface_mesh< P > >::vertex_descriptor v, const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::degree_size_type 
in_degree (typename boost::graph_traits< CGAL::Surface_mesh< P > >::vertex_descriptor v, const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::vertex_descriptor 
source (typename boost::graph_traits< CGAL::Surface_mesh< P > >::edge_descriptor e, const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::vertex_descriptor 
source (typename boost::graph_traits< CGAL::Surface_mesh< P > >::halfedge_descriptor h, const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::vertex_descriptor 
target (typename boost::graph_traits< CGAL::Surface_mesh< P > >::edge_descriptor e, const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::vertex_descriptor 
target (typename boost::graph_traits< CGAL::Surface_mesh< P > >::halfedge_descriptor h, const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
Iterator_range< typename
boost::graph_traits
< CGAL::Surface_mesh< P >
>::vertex_iterator > 
vertices (const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
Iterator_range< typename
boost::graph_traits
< CGAL::Surface_mesh< P >
>::edge_iterator > 
edges (const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
Iterator_range< typename
boost::graph_traits
< CGAL::Surface_mesh< P >
>::in_edge_iterator > 
in_edges (typename boost::graph_traits< CGAL::Surface_mesh< P > >::vertex_descriptor v, const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
Iterator_range< typename
boost::graph_traits
< CGAL::Surface_mesh< P >
>::out_edge_iterator > 
out_edges (typename boost::graph_traits< CGAL::Surface_mesh< P > >::vertex_descriptor v, const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
std::pair< typename
boost::graph_traits
< CGAL::Surface_mesh< P >
>::edge_descriptor, bool > 
edge (typename boost::graph_traits< CGAL::Surface_mesh< P > >::vertex_descriptor u, typename boost::graph_traits< CGAL::Surface_mesh< P > >::vertex_descriptor v, const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::halfedge_descriptor 
next (typename boost::graph_traits< CGAL::Surface_mesh< P > >::halfedge_descriptor h, const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::halfedge_descriptor 
prev (typename boost::graph_traits< CGAL::Surface_mesh< P > >::halfedge_descriptor h, const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::halfedge_descriptor 
opposite (typename boost::graph_traits< CGAL::Surface_mesh< P > >::halfedge_descriptor h, const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::edge_descriptor 
edge (typename boost::graph_traits< CGAL::Surface_mesh< P > >::halfedge_descriptor h, const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::halfedge_descriptor 
halfedge (typename boost::graph_traits< CGAL::Surface_mesh< P > >::edge_descriptor e, const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::halfedge_descriptor 
halfedge (typename boost::graph_traits< CGAL::Surface_mesh< P > >::vertex_descriptor v, const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
std::pair< typename
boost::graph_traits
< CGAL::Surface_mesh< P >
>::halfedge_descriptor, bool > 
halfedge (typename boost::graph_traits< CGAL::Surface_mesh< P > >::vertex_descriptor u, typename boost::graph_traits< CGAL::Surface_mesh< P > >::vertex_descriptor v, const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
Iterator_range< typename
boost::graph_traits
< CGAL::Surface_mesh< P >
>::halfedge_iterator > 
halfedges (const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::halfedges_size_type 
num_halfedges (const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
void set_next (typename boost::graph_traits< CGAL::Surface_mesh< P > >::halfedge_descriptor h1, typename boost::graph_traits< CGAL::Surface_mesh< P > >::halfedge_descriptor h2, CGAL::Surface_mesh< P > &sm)
 
template<typename P >
void set_target (typename boost::graph_traits< CGAL::Surface_mesh< P > >::halfedge_descriptor h, typename boost::graph_traits< CGAL::Surface_mesh< P > >::vertex_descriptor v, CGAL::Surface_mesh< P > &sm)
 
template<typename P >
void set_halfedge (typename boost::graph_traits< CGAL::Surface_mesh< P > >::vertex_descriptor v, typename boost::graph_traits< CGAL::Surface_mesh< P > >::halfedge_descriptor h, CGAL::Surface_mesh< P > &sm)
 
template<typename P >
void collect_garbage (CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::edge_descriptor 
add_edge (CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::halfedge_descriptor 
halfedge (typename boost::graph_traits< CGAL::Surface_mesh< P > >::face_descriptor f, const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::face_descriptor 
face (typename boost::graph_traits< CGAL::Surface_mesh< P > >::halfedge_descriptor h, const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
void set_face (typename boost::graph_traits< CGAL::Surface_mesh< P > >::halfedge_descriptor h, typename boost::graph_traits< CGAL::Surface_mesh< P > >::face_descriptor f, CGAL::Surface_mesh< P > &sm)
 
template<typename P >
void set_halfedge (typename boost::graph_traits< CGAL::Surface_mesh< P > >::face_descriptor f, typename boost::graph_traits< CGAL::Surface_mesh< P > >::halfedge_descriptor h, CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::faces_size_type 
num_faces (const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
Iterator_range< typename
boost::graph_traits
< CGAL::Surface_mesh< P >
>::face_iterator > 
faces (const CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::vertex_descriptor 
add_vertex (CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::vertex_descriptor 
add_vertex (const typename boost::graph_traits< CGAL::Surface_mesh< P > >::vertex_property_type &p, CGAL::Surface_mesh< P > &sm)
 
template<typename P >
void reserve (CGAL::Surface_mesh< P > &sm, typename boost::graph_traits< CGAL::Surface_mesh< P > >::vertices_size_type nv, typename boost::graph_traits< CGAL::Surface_mesh< P > >::edges_size_type ne, typename boost::graph_traits< CGAL::Surface_mesh< P > >::faces_size_type nf)
 
template<typename P >
void remove_vertex (typename boost::graph_traits< CGAL::Surface_mesh< P > >::vertex_descriptor v, CGAL::Surface_mesh< P > &sm)
 
template<typename P >
void remove_edge (typename boost::graph_traits< CGAL::Surface_mesh< P > >::vertex_descriptor u, typename boost::graph_traits< CGAL::Surface_mesh< P > >::vertex_descriptor v, CGAL::Surface_mesh< P > &sm)
 
template<typename P >
void remove_edge (typename boost::graph_traits< CGAL::Surface_mesh< P > >::edge_descriptor e, CGAL::Surface_mesh< P > &sm)
 
template<typename P >
void remove_edge (typename boost::graph_traits< CGAL::Surface_mesh< P > >::edge_iterator eiter, CGAL::Surface_mesh< P > &sm)
 
template<typename P >
void remove_face (typename boost::graph_traits< CGAL::Surface_mesh< P > >::face_descriptor f, CGAL::Surface_mesh< P > &sm)
 
template<typename P >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::face_descriptor 
add_face (CGAL::Surface_mesh< P > &sm)
 
template<typename P , typename InputIterator >
boost::graph_traits
< CGAL::Surface_mesh< P >
>::face_descriptor 
add_face (InputIterator begin, InputIterator end, CGAL::Surface_mesh< P > &sm)
 
template<typename P >
bool is_valid (const CGAL::Surface_mesh< P > &sm, bool verbose=false)
 
template<typename P >
void normalize_border (const CGAL::Surface_mesh< P > &)
 
template<typename Point >
boost::property_map
< CGAL::Surface_mesh< Point >
, boost::edge_weight_t >
::const_type 
get (boost::edge_weight_t, const CGAL::Surface_mesh< Point > &sm)
 
template<typename Point >
CGAL::Kernel_traits< Point >
::type::FT 
get (boost::edge_weight_t, const CGAL::Surface_mesh< Point > &sm, const SM_Edge_index &e)
 
template<typename Point >
CGAL::SM_index_pmap< Point,
SM_Vertex_index > 
get (const boost::vertex_index_t &, const CGAL::Surface_mesh< Point > &)
 
template<typename Point >
CGAL::SM_index_pmap< Point,
SM_Face_index > 
get (const boost::face_index_t &, const CGAL::Surface_mesh< Point > &)
 
template<typename Point >
CGAL::SM_index_pmap< Point,
SM_Edge_index > 
get (const boost::edge_index_t &, const CGAL::Surface_mesh< Point > &)
 
template<typename Point >
CGAL::SM_index_pmap< Point,
SM_Halfedge_index > 
get (const boost::halfedge_index_t &, const CGAL::Surface_mesh< Point > &)
 
template<typename Point >
boost::lazy_disable_if
< boost::is_const< Point >
, internal::Get_vertex_point_map_for_Surface_mesh_return_type
< Point >>::type 
get (CGAL::vertex_point_t, const CGAL::Surface_mesh< Point > &g)
 
 CGAL_SM_INTRINSIC_PROPERTY (boost::uint32_t, boost::vertex_index_t, SM_Vertex_index) CGAL_SM_INTRINSIC_PROPERTY(boost
 
template<typename K >
bool read_off (Surface_mesh< K > &mesh, const std::string &filename)
 
template<typename K >
bool write_off (const Surface_mesh< K > &mesh, const std::string &filename)
 
template<typename K >
bool read_mesh (Surface_mesh< K > &mesh, const std::string &filename)
 
template<typename K >
bool write_mesh (const Surface_mesh< K > &mesh, const std::string &filename)
 
template<class P , class Writer >
void generic_print_surface_mesh (std::ostream &out, const Surface_mesh< P > &M, Writer &writer)