Generates a PLY property handler to read 3D normal vectors.
Vectors are constructed from the input using 3 PLY properties of type FT and named nx, ny and nz. FT is float if the points use CGAL::Simple_cartesian<float> and double otherwise.
Generates a PLY property handler to write 3D normal vectors.
Vectors are written as 3 PLY properties of type FT and named nx, ny and nz. FT is float if the vectors use CGAL::Simple_cartesian<float> and double otherwise.
Generates a PLY property handler to read 3D points.
Points are constructed from the input using 3 PLY properties of type FT and named x, y and z. FT is float if the points use CGAL::Simple_cartesian<float> and double otherwise.
Generates a PLY property handler to write 3D points.
Points are written as 3 PLY properties of type FT and named x, y and z. FT is float if the points use CGAL::Simple_cartesian<float> and double otherwise.
Potential additional point properties and faces are ignored.
Attention
When reading a binary file, the flag std::ios::binary flag must be set during the creation of the ifstream.
Template Parameters
OutputIteratorValueType
type of objects that can be put in PointOutputIterator. It must be a model of DefaultConstructible and defaults to value_type_traits<PointOutputIterator>::type. It can be omitted when the default is fine.
Potential additional point properties and faces are ignored.
Template Parameters
OutputIteratorValueType
type of objects that can be put in PointOutputIterator. It must be a model of DefaultConstructible and defaults to value_type_traits<PointOutputIterator>::type. It can be omitted when the default is fine.
reads user-selected points properties from a .ply stream (ASCII or binary).
Potential additional point properties and faces are ignored.
Properties are handled through a variadic list of property handlers. A PropertyHandler can either be:
A std::pair<PropertyMap, PLY_property<T> > if the user wants to read a PLY property as a scalar value T (for example, storing an int PLY property into an int variable).
A std::tuple<PropertyMap, Constructor, PLY_property<T>...> if the user wants to use one or several PLY properties to construct a complex object (for example, storing 3 uchar PLY properties into a Color object that can for example be a std::array<unsigned char, 3>). In that case, the second element of the tuple should be a functor that constructs the value type of PropertyMap from N objects of types T.
Attention
When reading a binary file, the flag std::ios::binary flag must be set during the creation of the ifstream.
Template Parameters
OutputIteratorValueType
type of objects that can be put in PointOutputIterator. It must be a model of DefaultConstructible and defaults to value_type_traits<PointOutputIterator>::type. It can be omitted when the default is fine.
Properties are handled through a variadic list of property handlers. A PropertyHandler can either be:
A std::pair<PropertyMap, PLY_property<T> > if the user wants to write a scalar value T as a PLY property (for example, writing an int variable as an int PLY property).
A std::tuple<PropertyMap, PLY_property<T>...> if the user wants to write a complex object as several PLY properties. In that case, a specialization of Output_rep must be provided for PropertyMap::value_type that handles both ASCII and binary output (see CGAL::IO::get_mode()).
Attention
When writing to a binary file, the flag std::ios::binary flag must be set during the creation of the ofstream.
Template Parameters
PointRange
is a model of ConstRange. The value type of its iterator is the key type of the PropertyMap objects provided within the PropertyHandler parameter.