Subject: CGAL users discussion list
List archive
- From: tina rumi <>
- To:
- Subject: Re: [cgal-discuss] error in using CGAL::grid_simplify_point_set
- Date: Tue, 8 Dec 2009 15:10:45 -0500
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=wKVipXd/E+AcYLQKY8wJmqK8JH9bsh2mZ2DSHwxfJT0K+WzJ9oacUKmvmTZtefCi+w OqarGquHfZ0sjj2rhJW0AynV9kQLtU2PD0XhBg0BvTCL4J14+JeI+ZvSDoY2xS0/PlOe LvBqS7IopMrP+Jdf0gu+KwMGWGLz+2N7lYLOk=
Hi Nad,
Thanks a lot for your help. I am getting another error when I am running your code. here is the error that I got:
1>Compiling...
1>cloud_points.cpp
1>c:\cgal\cgal-3.5\include\cgal\grid_simplify_point_set.h(61) : error C2039: 'x' : is not a member of 'std::pair<_Ty1,_Ty2>'
1> with
1> [
1> _Ty1=Point,
1> _Ty2=Vector
1> ]
1> c:\cgal\cgal-3.5\include\cgal\grid_simplify_point_set.h(59) : while compiling class template member function 'bool CGAL::CGALi::Less_epsilon_points_3<Point_3>::operator ()(const Point_3 &,const Point_3 &) const'
1> with
1> [
1> Point_3=Enriched_point
1> ]
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\set(48) : see reference to class template instantiation 'CGAL::CGALi::Less_epsilon_points_3<Point_3>' being compiled
1> with
1> [
1> Point_3=Enriched_point
1> ]
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xtree(22) : see reference to class template instantiation 'std::_Tset_traits<_Kty,_Pr,_Alloc,_Mfl>' being compiled
1> with
1> [
1> _Kty=Enriched_point,
1> _Pr=CGAL::CGALi::Less_epsilon_points_3<Enriched_point>,
1> _Alloc=std::allocator<PointVectorPair>,
1> _Mfl=false
1> ]
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xtree(63) : see reference to class template instantiation 'std::_Tree_nod<_Traits>' being compiled
1> with
1> [
1> _Traits=std::_Tset_traits<Enriched_point,CGAL::CGALi::Less_epsilon_points_3<Enriched_point>,std::allocator<PointVectorPair>,false>
1> ]
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xtree(89) : see reference to class template instantiation 'std::_Tree_ptr<_Traits>' being compiled
1> with
1> [
1> _Traits=std::_Tset_traits<Enriched_point,CGAL::CGALi::Less_epsilon_points_3<Enriched_point>,std::allocator<PointVectorPair>,false>
1> ]
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xtree(107) : see reference to class template instantiation 'std::_Tree_val<_Traits>' being compiled
1> with
1> [
1> _Traits=std::_Tset_traits<Enriched_point,CGAL::CGALi::Less_epsilon_points_3<Enriched_point>,std::allocator<PointVectorPair>,false>
1> ]
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\set(57) : see reference to class template instantiation 'std::_Tree<_Traits>' being compiled
1> with
1> [
1> _Traits=std::_Tset_traits<Enriched_point,CGAL::CGALi::Less_epsilon_points_3<Enriched_point>,std::allocator<PointVectorPair>,false>
1> ]
1> c:\cgal\cgal-3.5\include\cgal\grid_simplify_point_set.h(99) : see reference to class template instantiation 'std::set<_Kty,_Pr>' being compiled
1> with
1> [
1> _Kty=Enriched_point,
1> _Pr=CGAL::CGALi::Less_epsilon_points_3<Enriched_point>
1> ]
1> c:\cgal\cgal-3.5\include\cgal\grid_simplify_point_set.h(154) : see reference to class template instantiation 'CGAL::Epsilon_point_set_3<Point_3>' being compiled
1> with
1> [
1> Point_3=Enriched_point
1> ]
1> c:\cgal\cgal-3.5\include\cgal\grid_simplify_point_set.h(190) : see reference to function template instantiation 'ForwardIterator CGAL::grid_simplify_point_set<ForwardIterator,PointPMap,CGAL::Filtered_kernel<CK>>(ForwardIterator,ForwardIterator,PointPMap,double,const Kernel &)' being compiled
1> with
1> [
1> ForwardIterator=std::_Vector_iterator<PointVectorPair,std::allocator<PointVectorPair>>,
1> PointPMap=CGAL::First_of_pair_property_map<PointVectorPair>,
1> CK=CGAL::Simple_cartesian<double>,
1> Kernel=CGAL::Filtered_kernel<CGAL::Simple_cartesian<double>>
1> ]
1> f:\fingerprint\codes\cloud_points\cloud_points\cloud_points.cpp(203) : see reference to function template instantiation 'ForwardIterator CGAL::grid_simplify_point_set<std::_Vector_iterator<_Ty,_Alloc>,CGAL::First_of_pair_property_map<Pair>>(ForwardIterator,ForwardIterator,PointPMap,double)' being compiled
1> with
1> [
1> ForwardIterator=std::_Vector_iterator<PointVectorPair,std::allocator<PointVectorPair>>,
1> _Ty=PointVectorPair,
1> _Alloc=std::allocator<PointVectorPair>,
1> Pair=PointVectorPair,
1> PointPMap=CGAL::First_of_pair_property_map<PointVectorPair>
1> ]
1>c:\cgal\cgal-3.5\include\cgal\grid_simplify_point_set.h(62) : error C2039: 'y' : is not a member of 'std::pair<_Ty1,_Ty2>'
1> with
1> [
1> _Ty1=Point,
1> _Ty2=Vector
1> ]
1>c:\cgal\cgal-3.5\include\cgal\grid_simplify_point_set.h(63) : error C2039: 'z' : is not a member of 'std::pair<_Ty1,_Ty2>'
1> with
1> [
1> _Ty1=Point,
1> _Ty2=Vector
1> ]
1>c:\cgal\cgal-3.5\include\cgal\grid_simplify_point_set.h(63) : error C2661: 'std::pair<_Ty1,_Ty2>::pair' : no overloaded function takes 3 arguments
1> with
1> [
1> _Ty1=Point,
1> _Ty2=Vector
1> ]
1>c:\cgal\cgal-3.5\include\cgal\grid_simplify_point_set.h(64) : error C2039: 'x' : is not a member of 'std::pair<_Ty1,_Ty2>'
1> with
1> [
1> _Ty1=Point,
1> _Ty2=Vector
1> ]
1>c:\cgal\cgal-3.5\include\cgal\grid_simplify_point_set.h(65) : error C2039: 'y' : is not a member of 'std::pair<_Ty1,_Ty2>'
1> with
1> [
1> _Ty1=Point,
1> _Ty2=Vector
1> ]
1>c:\cgal\cgal-3.5\include\cgal\grid_simplify_point_set.h(66) : error C2039: 'z' : is not a member of 'std::pair<_Ty1,_Ty2>'
1> with
1> [
1> _Ty1=Point,
1> _Ty2=Vector
1> ]
1>c:\cgal\cgal-3.5\include\cgal\grid_simplify_point_set.h(66) : error C2661: 'std::pair<_Ty1,_Ty2>::pair' : no overloaded function takes 3 arguments
1> with
1> [
1> _Ty1=Point,
1> _Ty2=Vector
1> ]
1>Build log was saved at "file://f:\fingerprint\codes\cloud_points\cloud_points\Debug\BuildLog.htm"
1>cloud_points - 8 error(s), 0 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
Thank you,
Tina
On Tue, Dec 8, 2009 at 12:57 PM, Nader SALMAN <> wrote:
A correction , here you go :PointList points // Type of input point set
// kernel
typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
// Simple geometric types
typedef Kernel::FT FT;
typedef Kernel::Point_3 Point;
typedef Kernel::Vector_3 Vector;
// Point with normal vector stored in a std::pair.
typedef std::pair<Point, Vector> PointVectorPair;
typedef std::vector<PointVectorPair> PointList;
// simplification by clustering using erase-remove idiom
double cell_size = 0.001;PointList::iterator unwanted_points_begin = CGAL::grid_simplify_point_set(points.begin(), points.end(), CGAL::First_of_pair_property_map<PointVectorPair>(), cell_size);
// delete unwanted points
points.erase(unwanted_points_begin , points.end());
PointList(points).swap(points);
// Optional: after erase(), use Scott Meyer's "swap trick" to trim excess capacity
Sorry for the earlier message,
Cheers,
Nad.
Nader SALMAN
Nader SALMAN a écrit :Hi Tina,
thank you for your interest in CGAl and for using the PSP package.
here is how you should do it in general :
// kernel
typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
// Simple geometric types
typedef Kernel::FT FT;
typedef Kernel::Point_3 Point;
typedef Kernel::Vector_3 Vector;
// Point with normal vector stored in a std::pair.
typedef std::pair<Point, Vector> PointVectorPair;
typedef std::vector<PointVectorPair> PointList;
CGAL::grid_simplify_point_set(points.begin(), points.end(),
CGAL::First_of_pair_property_map<PointVectorPair>(),
cell_size);
in your case it would be :
// simplification by clustering using erase-remove idiom
double cell_size = 0.001;
points.erase(CGAL::grid_simplify_point_set(points.begin(), points.end(), CGAL::First_of_pair_property_map<PointVectorPair>(), cell_size), points.end());
// Optional: after erase(), use Scott Meyer's "swap trick" to trim excess capacity
std::vector<Point>(points).swap(points);
Hope this helped!
Cheers,
Nad.
Nader SALMAN Geometrica Lab, Byron Y308 INRIA Sophia Antipolis (FRANCE) Tel: +33(0)4 9238 7161 Fax: +33(0)4 9715 5395 http://www-sop.inria.fr/members/Nader.Salman
tina rumi a écrit :Hi all,
I am trying to use following function:
points.erase(CGAL::grid_simplify_point_set(points.begin(), points.end(), cell_size),
points.end());
the type that I am using for points is :
// types
typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
typedef Kernel::Point_3 Point;
typedef Kernel::Vector_3 Vector;
// Point with normal vector stored in a std::pair.
typedef std::pair<Point, Vector> PointVectorPair;
std::list<PointVectorPair> points;
but it caused error. I want to keep this type for points. Do you have any suggestion to fix it.
Thank you,
Tina
- [cgal-discuss] error in using CGAL::grid_simplify_point_set, tina rumi, 12/08/2009
- Re: [cgal-discuss] error in using CGAL::grid_simplify_point_set, Nader SALMAN, 12/08/2009
- Re: [cgal-discuss] error in using CGAL::grid_simplify_point_set, Nader SALMAN, 12/08/2009
- Re: [cgal-discuss] error in using CGAL::grid_simplify_point_set, tina rumi, 12/08/2009
- Re: [cgal-discuss] error in using CGAL::grid_simplify_point_set, tina rumi, 12/08/2009
- Re: [cgal-discuss] error in using CGAL::grid_simplify_point_set, Laurent Saboret, 12/09/2009
- Re: [cgal-discuss] error in using CGAL::grid_simplify_point_set, Nader Salman, 12/09/2009
- Re: [cgal-discuss] error in using CGAL::grid_simplify_point_set, tina rumi, 12/09/2009
- Re: [cgal-discuss] error in using CGAL::grid_simplify_point_set, Nader SALMAN, 12/10/2009
- Re: [cgal-discuss] error in using CGAL::grid_simplify_point_set, tina rumi, 12/10/2009
- Re: [cgal-discuss] error in using CGAL::grid_simplify_point_set, Nader SALMAN, 12/11/2009
- Re: [cgal-discuss] error in using CGAL::grid_simplify_point_set, tina rumi, 12/11/2009
- Re: [cgal-discuss] error in using CGAL::grid_simplify_point_set, tina rumi, 12/09/2009
- Re: [cgal-discuss] error in using CGAL::grid_simplify_point_set, Nader Salman, 12/09/2009
- Re: [cgal-discuss] error in using CGAL::grid_simplify_point_set, tina rumi, 12/08/2009
- Re: [cgal-discuss] error in using CGAL::grid_simplify_point_set, Nader SALMAN, 12/08/2009
- Re: [cgal-discuss] error in using CGAL::grid_simplify_point_set, Nader SALMAN, 12/08/2009
Archive powered by MHonArc 2.6.16.