mirror of https://github.com/CGAL/cgal
Use boost::range_value / boost::property_traits
This commit is contained in:
parent
34ddacd5e7
commit
0003c95223
|
|
@ -17,6 +17,8 @@
|
|||
|
||||
#include <CGAL/boost/graph/iterator.h>
|
||||
|
||||
#include <boost/range/value_type.hpp>
|
||||
|
||||
#ifdef CGAL_LINKED_WITH_3MF
|
||||
#include <Model/COM/NMR_DLLInterfaces.h>
|
||||
#endif
|
||||
|
|
@ -406,9 +408,10 @@ int read_triangle_soups_from_3mf(const std::string& fname,
|
|||
ColorRanges& all_colors,
|
||||
std::vector<std::string>& names)
|
||||
{
|
||||
typedef typename PointRanges::value_type PointRange;
|
||||
typedef typename PolygonRanges::value_type PolygonRange;
|
||||
typedef typename ColorRanges::value_type ColorRange;
|
||||
typedef typename boost::range_value<PointRanges>::type PointRange;
|
||||
typedef typename boost::range_value<PolygonRanges>::type PolygonRange;
|
||||
typedef typename boost::range_value<ColorRanges>::type ColorRange;
|
||||
|
||||
return read_from_3mf<PointRanges,PolygonRanges,ColorRanges,
|
||||
PointRange, PolygonRange, ColorRange>
|
||||
(fname, all_points, all_polygons, all_colors, names,
|
||||
|
|
|
|||
|
|
@ -12,13 +12,16 @@
|
|||
#ifndef CGAL_IO_READ_3MF_H
|
||||
#define CGAL_IO_READ_3MF_H
|
||||
|
||||
#ifdef CGAL_LINKED_WITH_3MF
|
||||
|
||||
#include <CGAL/IO/Color.h>
|
||||
|
||||
#include <CGAL/Kernel_traits.h>
|
||||
|
||||
#include <boost/range/value_type.hpp>
|
||||
|
||||
#ifdef CGAL_LINKED_WITH_3MF
|
||||
#include <Model/COM/NMR_DLLInterfaces.h>
|
||||
#endif
|
||||
|
||||
#include <algorithm>
|
||||
#include <functional>
|
||||
|
|
@ -26,6 +29,8 @@
|
|||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#ifdef CGAL_LINKED_WITH_3MF
|
||||
|
||||
namespace CGAL {
|
||||
namespace transform_nmr_internal {
|
||||
|
||||
|
|
@ -54,9 +59,9 @@ bool extract_soups (NMR::PLib3MFModelMeshObject *pMeshObject,
|
|||
ColorRange& colors,
|
||||
std::string& name)
|
||||
{
|
||||
typedef typename PointRange::value_type Point_3;
|
||||
typedef typename PolygonRange::value_type Polygon;
|
||||
typedef typename Kernel_traits<Point_3>::Kernel Kernel;
|
||||
typedef typename boost::range_value<PointRange>::type Point_3;
|
||||
typedef typename boost::range_value<PolygonRange>::type Polygon;
|
||||
typedef typename Kernel_traits<Point_3>::Kernel Kernel;
|
||||
|
||||
HRESULT hResult;
|
||||
DWORD nNeededChars;
|
||||
|
|
|
|||
|
|
@ -43,14 +43,15 @@ bool read_GOCAD(std::istream& is,
|
|||
const CGAL_BGL_NP_CLASS&,
|
||||
bool verbose = true)
|
||||
{
|
||||
typedef typename boost::range_value<PointRange>::type Point;
|
||||
typedef typename boost::range_value<PolygonRange>::type Poly;
|
||||
|
||||
if(!is)
|
||||
{
|
||||
if(verbose)
|
||||
std::cerr<<"File doesn't exist."<<std::endl;
|
||||
return false;
|
||||
}
|
||||
typedef typename boost::range_value<PointRange>::type Point;
|
||||
typedef typename boost::range_value<PolygonRange>::type Poly;
|
||||
|
||||
set_ascii_mode(is); // GOCAD is ASCII only
|
||||
|
||||
|
|
|
|||
|
|
@ -49,9 +49,8 @@ bool read_OBJ(std::istream& is,
|
|||
std::cerr<<"File doesn't exist."<<std::endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
typedef typename boost::range_value<PointRange>::type Point;
|
||||
typedef typename CGAL::Kernel_traits<Point>::Kernel Kernel;
|
||||
typedef typename Kernel::Vector_3 Normal;
|
||||
|
||||
set_ascii_mode(is); // obj is ASCII only
|
||||
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
#include <CGAL/property_map.h>
|
||||
#include <CGAL/iterator.h>
|
||||
|
||||
#include <boost/range/value_type.hpp>
|
||||
#include <boost/utility/enable_if.hpp>
|
||||
|
||||
#include <fstream>
|
||||
|
|
@ -50,12 +51,10 @@ bool read_PLY(std::istream& is,
|
|||
ColorOutputIterator vc_out,
|
||||
HUVOutputIterator huvs_out,
|
||||
bool verbose = true,
|
||||
typename std::enable_if<
|
||||
CGAL::is_iterator<ColorOutputIterator>::value
|
||||
>::type* =0)
|
||||
typename std::enable_if<CGAL::is_iterator<ColorOutputIterator>::value>::type* = nullptr)
|
||||
{
|
||||
typedef typename PointRange::value_type Point_3;
|
||||
typedef CGAL::Color Color_rgb;
|
||||
typedef typename boost::range_value<PointRange>::type Point_3;
|
||||
typedef CGAL::Color Color_rgb;
|
||||
|
||||
if(!is.good())
|
||||
{
|
||||
|
|
@ -300,7 +299,8 @@ bool read_PLY(std::istream& is,
|
|||
#endif
|
||||
)
|
||||
{
|
||||
typedef typename PointRange::value_type Point_3;
|
||||
typedef typename boost::range_value<PointRange>::type Point_3;
|
||||
|
||||
if(!is.good())
|
||||
{
|
||||
if(verbose)
|
||||
|
|
@ -454,8 +454,8 @@ bool write_PLY(std::ostream& out,
|
|||
#endif
|
||||
)
|
||||
{
|
||||
typedef typename PointRange::value_type Point_3;
|
||||
typedef typename PolygonRange::value_type Polygon_3;
|
||||
typedef typename boost::range_value<PointRange>::type Point_3;
|
||||
typedef typename boost::range_value<PolygonRange>::type Polygon_3;
|
||||
|
||||
if(!out.good())
|
||||
{
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
#include <CGAL/is_iterator.h>
|
||||
|
||||
#include <boost/cstdint.hpp>
|
||||
#include <boost/range/value_type.hpp>
|
||||
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
|
|
@ -71,10 +72,9 @@ template <> struct Convert_FT<float> { typedef float type; };
|
|||
template <typename PointOrVectorMap>
|
||||
struct Get_FT_from_map
|
||||
{
|
||||
typedef typename Convert_FT
|
||||
<typename Kernel_traits
|
||||
<typename boost::property_traits
|
||||
<PointOrVectorMap>::value_type>::Kernel::FT>::type type;
|
||||
typedef typename Convert_FT<typename Kernel_traits<
|
||||
typename boost::property_traits<
|
||||
PointOrVectorMap>::value_type>::Kernel::FT>::type type;
|
||||
};
|
||||
|
||||
template <typename PointMap>
|
||||
|
|
@ -630,7 +630,8 @@ template <typename OutputValueType,
|
|||
void process_properties(PLY_element& element, OutputValueType& new_element,
|
||||
std::tuple<PropertyMap, Constructor, PLY_property<T>...>&& current)
|
||||
{
|
||||
typedef typename PropertyMap::value_type PmapValueType;
|
||||
typedef typename boost::property_traits<PropertyMap>::value_type PmapValueType;
|
||||
|
||||
std::tuple<T...> values;
|
||||
Filler<sizeof...(T)-1>::fill(element, values, current);
|
||||
PmapValueType new_value = call_functor<PmapValueType>(std::get<1>(current), values);
|
||||
|
|
@ -648,7 +649,8 @@ void process_properties(PLY_element& element, OutputValueType& new_element,
|
|||
NextPropertyBinder&& next,
|
||||
PropertyMapBinders&& ... properties)
|
||||
{
|
||||
typedef typename PropertyMap::value_type PmapValueType;
|
||||
typedef typename boost::property_traits<PropertyMap>::value_type PmapValueType;
|
||||
|
||||
std::tuple<T...> values;
|
||||
Filler<sizeof...(T)-1>::fill(element, values, current);
|
||||
PmapValueType new_value = call_functor<PmapValueType>(std::get<1>(current), values);
|
||||
|
|
@ -692,8 +694,9 @@ bool read_PLY_faces(std::istream& in,
|
|||
CGAL::is_iterator<ColorOutputIterator>::value
|
||||
>::type* =0)
|
||||
{
|
||||
typedef typename PolygonRange::value_type Polygon_3;
|
||||
typedef CGAL::Color Color_rgb;
|
||||
typedef typename boost::range_value<PolygonRange>::type Polygon_3;
|
||||
typedef CGAL::Color Color_rgb;
|
||||
|
||||
bool has_colors = false;
|
||||
std::string rtag = "r", gtag = "g", btag = "b";
|
||||
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@ void simple_property_write(std::ostream& stream,
|
|||
stream << no_char_character(get(map.first, *it));
|
||||
else
|
||||
{
|
||||
typename PropertyMap::value_type value = get(map.first, *it);
|
||||
typename boost::property_traits<PropertyMap>::reference value = get(map.first, *it);
|
||||
stream.write(reinterpret_cast<char*>(&value), sizeof(value));
|
||||
}
|
||||
}
|
||||
|
|
@ -255,7 +255,7 @@ public:
|
|||
|
||||
template <typename Index,
|
||||
typename PropertyMap,
|
||||
typename Type = typename PropertyMap::value_type>
|
||||
typename Type = typename boost::property_traits<PropertyMap>::value_type>
|
||||
class Simple_property_printer
|
||||
: public Abstract_property_printer<Index>
|
||||
{
|
||||
|
|
@ -279,8 +279,10 @@ template <typename Index, typename PropertyMap>
|
|||
class Char_property_printer
|
||||
: public Abstract_property_printer<Index>
|
||||
{
|
||||
typedef typename PropertyMap::value_type Type;
|
||||
typedef typename boost::property_traits<PropertyMap>::value_type Type;
|
||||
|
||||
PropertyMap m_pmap;
|
||||
|
||||
public:
|
||||
Char_property_printer(const PropertyMap& pmap) : m_pmap(pmap) { }
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue