Subject: CGAL users discussion list
List archive
- From: "J. Scheurich" <>
- To:
- Subject: Re: [cgal-discuss] How to read .OFF file color information ?
- Date: Sat, 25 Jan 2020 10:06:46 +0000
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
- Autocrypt: ; keydata= mDMEXh1qZxYJKwYBBAHaRw8BAQdAnDvPncAfJyzZ1Gqfe9FAo+qv1kLiruHdfRa9G7T3ojq0 HUouIFNjaGV1cmljaCA8bXVmdGkxMUB3ZWIuZGU+iJYEExYIAD4WIQQ0fd/NRbtl/Kcuut6W vYE4WACw3QUCXh1qZwIbAwUJCWYBgAULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCWvYE4 WACw3SZ7AP9Sm9tp6TzzzZKCMe/VAR3v02XCXCg5dVywM1K8w/xTowD9FQXY0xWZNpgVVOJR oFsqTLi8q7DKgHRuXZZ+st274wO4OAReHWpnEgorBgEEAZdVAQUBAQdA9Of412y6u4PmDumH 5Rzxkr8BoGV28QAxtOKrhDB340MDAQgHiH4EGBYIACYWIQQ0fd/NRbtl/Kcuut6WvYE4WACw 3QUCXh1qZwIbDAUJCWYBgAAKCRCWvYE4WACw3QozAQD0Jmrx+TARFCtjkFTSFjKpVRSMaSn4 5BDWoN7w0DFjRQEA5/pBpvxfQ9J+sNf5bwP+7WP13Yn7+cbn5oeWqSTU3wc=
- Ironport-phdr: 9a23:3Zcd+B95nqotvv9uRHKM819IXTAuvvDOBiVQ1KB41egcTK2v8tzYMVDF4r011RmVBNmdsa0P0rOe8/i5HzBZutDZ6DFKWacPfidNsd8RkQ0kDZzNImzAB9muURYHGt9fXkRu5XCxPBsdMs//Y1rPvi/6tmZKSV3wOgVvO+v6BJPZgdip2OCu4Z3TZBhDiCagbb9oIxi6sArcutMIjYZgJao91wbFqWZMd+hK2G9kP12ekwvy68uq4JJv7yFcsO89+sBdVqn3Y742RqFCAjQ8NGA16szrtR3dQgaK+3ARTGYYnAdWDgbc9B31UYv/vSX8tupmxSmVJtb2QqwuWTSj9KhkVhnlgzoaOjEj8WHXjstwjL9HoB+kuhdyzZLYbJ2TOfFjeK7WYNEUSndbXstJSiJPHI28YYsMAeQPM+lXoIvyqEcBoxalGQmjH/nixiNUinL436A31fkqHwHc3AwnGtIDqHrYotHvOKwPTO660KnIwiveb/NM2Dfy9IjIfh48qvyLWLJwbMTRyVUuFw/Yk1mdsoLkMC2O2egXrmeU8fNtWOSygGAprAFxpyKgxsYqioTRiIIV0U3E+T9nz4koON21TlNwb928EJZIqS2WKpV6Ttk8T212uis20KAKtJ6hcCUF0JgqxwTTZ+GIfoWJ+B7vSeKcLSliiH57Zr6zmRC/+lW6xOLmTMm7ylNKozJFktbSsnAN0ATe6s2ASvtg4ketwziO2B7I5e1ePE87i7LXK58nwrEuipoeqVrPEjLolEnskqOaaEcp9vK15+nneLnrqYeQN4puhQH/NqQulNa/AeM9MgUWWmib5Oq81KHi/UHkXblHlfM3nbfCv5zAOMsUuLa1AxVJ3YY79xa/EzCm3cwEknkINl1FfAuLgJXoO1HVPP/4EOy/g0+3nTdwx/HGO6XhDY/XInjClrfhZ7d95FRGxAo919AMr65TX7oOKfa2Vk7qv8HDFTc4NRa1yqDpEoZTzIQbDCitROeiO6PfrEWJ7eJla72JeYEJuW+kA+co7bjigClqyhcmYaC10M5POziDFfN8LhDBOCu+spI6CW4P+zEGYqnvgVyGXyRUYibgQK82oD02Wtv/UdXzA7u1ibnE5x+VW4VMbzAUFV2GV3vlJd3dBqU8LRmKK8okqQQqELisT4h4jkOrsxLmjaVqJKzY939AuA==
> Your test data does not have any color per vertex, they are all per
> face. In the SO message you refer to, it is written
> "[...] If there are colors per face you can access it similarly but by
> searching for the property map called "f:color". [...]"
>
> So you should use a property map like that :
> SurfaceMesh::Property_map<SurfaceMesh::Face_index, CGAL::Color>
> fcolors =
> mesh->property_map<SurfaceMesh::Face_index, CGAL::Color >
> ("f:color").first;
I changed the test program to Face_Index, but still get "color do not
exist" 8-(
$ cat readoff.cpp
// compile: g++ -g -O0 readoff.cpp -lCGAL
// test data: https://people.sc.fsu.edu/~jburkardt/data/off/facecube.off
// output:
// $ ./a.out
// facecube.off: Success
// color do not exist
#include <CGAL/Simple_cartesian.h>
typedef CGAL::Simple_cartesian<double> Kernel;
#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/Surface_mesh.h>
#include <CGAL/Polygon_mesh_processing/corefinement.h>
#include <CGAL/Polygon_mesh_processing/self_intersections.h>
#include <CGAL/Polygon_mesh_processing/triangulate_faces.h>
#include <CGAL/boost/graph/dijkstra_shortest_paths.h>
#include <CGAL/exceptions.h>
#include <CGAL/IO/Color.h>
#include <boost/graph/prim_minimum_spanning_tree.hpp>
#include <boost/foreach.hpp>
typedef Kernel::Point_3 Point;
typedef CGAL::Surface_mesh<Point> Surface;
typedef CGAL::Surface_mesh<Point> SurfaceMesh;
typedef CGAL::Color Color;
typedef Surface::Vertex_index vertex_index;
typedef boost::graph_traits<Surface>::vertex_descriptor
vertex_descriptor;
typedef boost::graph_traits<Surface>::face_descriptor face_descriptor;
typedef boost::graph_traits<Surface>::halfedge_descriptor
halfedge_descriptor;
std::vector<Point> verts;
std::vector<Color> cols;
int main(int argc, char **argv)
{
const char *filename = "facecube.off";
std::ifstream input(filename);
SurfaceMesh *mesh = new SurfaceMesh();
if (!input || !(input >> *mesh)) {
perror(filename);
}
SurfaceMesh::Property_map<SurfaceMesh::Face_index, CGAL::Color>
vcolors =
mesh->property_map<SurfaceMesh::Face_index, CGAL::Color >
("v:color").first;
bool colorExists = mesh->property_map
<SurfaceMesh::Face_index, CGAL::Color>("v:color").second;
if (colorExists )
printf("color exists\n");
else
printf("color do not exist\n");
}
Any idears ?
so long
MUFTI
- [cgal-discuss] How to read .OFF file color information ?, J. Scheurich, 01/20/2020
- Re: [cgal-discuss] How to read .OFF file color information ?, Sebastien Loriot (GeometryFactory), 01/21/2020
- Re: [cgal-discuss] How to read .OFF file color information ?, J. Scheurich, 01/22/2020
- Re: [cgal-discuss] How to read .OFF file color information ?, Maxime Gimeno, 01/24/2020
- Re: [cgal-discuss] How to read .OFF file color information ?, J. Scheurich, 01/25/2020
- Re: [cgal-discuss] How to read .OFF file color information ?, Maxime Gimeno, 01/27/2020
- Re: [cgal-discuss] How to read .OFF file color information ?, J. Scheurich, 01/25/2020
- Re: [cgal-discuss] How to read .OFF file color information ?, Sebastien Loriot (GeometryFactory), 01/21/2020
Archive powered by MHonArc 2.6.18.