Skip to Content.
Sympa Menu

cgal-discuss - [cgal-discuss] Wrote my own open source .OFF reader

Subject: CGAL users discussion list

List archive

[cgal-discuss] Wrote my own open source .OFF reader


Chronological Thread 
  • From: "J. Scheurich" <>
  • To:
  • Subject: [cgal-discuss] Wrote my own open source .OFF reader
  • Date: Fri, 14 Feb 2020 10:04:25 +0100
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Autocrypt: ; keydata= xsFNBFz/8wEBEADdd6hYb24xM2eNMD4KUeLGA2T8WX8OReRxERr8CxojQ6typf6m5PkBeu9l 8UgHbzS8XZ259tRd1aDUvGGC/5HjvTMwzpeNYjIFx+tSpALhTAfhSYke9RTD2g+fIchkHm+O Q0LF0MnIONqAquMzjNVa7nDoAJfIuhs9BmwWCAq+QVq89FQSitMfOaPNuJ8d7D10yNMBRVlr 5rth3z0vKaVyRV8gtRqaTuvtWjddf7ec7siihx/q8pMytWL/QXMkDQSTVpa7XFnGwEJFlFP5 VDqpBekdzzk+hpSx5UcOWFCxg6w5rdkMbJFmQ9UO81iViiZ52RgCeQjolJJKtppzBwmEbClk aDzVIvtX+4NlhTQzbnFWOf11C6VCJIxaUaobfMJBCw+2ttJPAURnFU5VqdozX4Aby7+Pkt2W QbyBEIiL1eAn9weAalST8fyKV/h3KynHRInCT8FddJaUPoM4k0EIvwZzuFTv9PvQd63Jqv+z JZReFw3t9X5jF6g3oxRL2PCiekz8LbhQdeFG1ievv5gss8MtLLgB2xqhTaUFLqlkDeKFsxhg TeS+XNvwFWUOLpEelC+Amg9FO6BffrE2Pj0SfxTPUBrFC0UFg3NVMxJYccDBv5HeR88oUjvE XWPWueL1tvD8lkzoXHOYT2B5ugix0i+tgwlOSBCAStP2SIF0DQARAQABzTZKw7ZyZyBTY2hl dXJpY2ggKHdoaXRlX2R1bmUgdXBzdHJlYW0pIDxtdWZ0aTExQHdlYi5kZT7CwasEEwEIAD4W IQR2hpB8hhCdijGgBKwwBfmmQSgqgQUCXP/zAQIbLwUJAeEzgAULCQgHAgYVCAkKCwIEFgID AQIeAQIXgAAhCRAwBfmmQSgqgRYhBHaGkHyGEJ2KMaAErDAF+aZBKCqBT20P/io+4xsKXRlf NKXYNJQM990ITD/Jg25fdXQI5ODvuaXcHi/aCfDqZnDHYZLbAZt+yW8+oZmjW7t1hKffRTiw 9ZOxHfo00oAQMcf4reoso3B4/o9qjnhIJ8PA+Lzb0AbHgq7aQ9Alkp9Bx9A2ONNVR22eMmOP GLQ6BWfMM1EAMVAVp4eEqtIYJYaMUdBr4rW+vjFHQUoz7KFhcFlgKoM0EpM20HA4Dufy+svh dg0DU6bKhS1NMSaIUh685lOLvr2E+qw1r92CcM6x/+NphvDJizIV/WTObj/O4gdVDHdj40I6 TM/ya2VcQn7oi1RoDnWaDLMA+fipRZBGsF+Xa2ZvYJ/S9fDkGbUox70xvoNV5Wnxsp5E8uG1 6cyJNKiSvSo53JKuO+F1TqTwU05TRPL+7bpgjXehNFP1zM6jJc+CnPR1RH1tOArQngw5El9c hjmbBAQk6Axbbjxu4e9SY1IYQEI+d97l1KTLkzIO5x8yaX0zsFZbp36kaobS3A9jTZfPGTuS k8bragPXNP2xlGc4E5ylOqXMNL6pwU1j1dTG4lRRQfoKN4YVVFsme3Eef05fGE7Qs6Lj/YcV zUD3ZFTPDUK90wPYzwfpyCCC4M1/fOpW4earBMVBMvDeHHf2oCQSGiyB9c0tl7OqFpHgKcuG rT1THgoH44SatD6d9PB8Uppt
  • Ironport-phdr: 9a23:JfMOnhdHlnKabFfW+b1EYI6wlGMj4u6mDksu8pMizoh2WeGdxcu+bB7h7PlgxGXEQZ/co6odzbaP7+a+CCdZu8jJmUtBWaIPfidNsd8RkQ0kDZzNImzAB9muURYHGt9fXkRu5XCxPBsdMs//Y1rPvi/6tmZKSV3wOgVvO+v6BJPZgdip2OCu4Z3TZBhDiCagbb9oIxi6sArcutMXjIZmJao91wXFr3pVcOlK2G1kIk6ekBn76sqs5pBo7j5eu+gm985OUKX6e7o3QLlFBzk4MG47+dPmuwDbQQSA+nUTXGMWkgFVAwfe9xH1Qo3xsirhueVj3iSRIND7Qqo1WTSm6KdrVQPohSIaPDM37G3blsp9h79drRm8pRJw3pTUbZmLOvR+Y63Tft0USmROUclNWCJMGZ+8b5IVAuYdIepVoYvwql0TphW+HwmsA+bvxydGinHyx6ExzvkvHh3G3AM+AtIOqnXUo8n1NKscTOu4y6zIzSjNb/NK2Dfx9ZXEfwsvoP6SRr18a9fexlc2Gg7Dk16ep4vlPzaP2eQMtWiW9+1gVf+1i24/sQFxpTqvydkwhYnVnI4VzUrE9Sp/zY0oJtO4UFZ2bcC5HJdOrS2WKZV6T8E4T211uCs20LILtYa7cSQQ1ZgqyB/SZ+aaf4WM/B7vTvudLDV2iX9jZbmxnQy98VK6xe35TsS00EhFri5CktTUs3AN0AHT6tSdRvpz4EiuwiyD2B3N5e1cIEA0k7TUK4I5z7Iui5Yfr17PEjHolEj0lqOaa0Up9vKn5uj/Z7XpvJ6cN4t6igHkNaQun9SyAeElMggAQ2ib+Pmw2KD48Ez3XrpFlec6nbTHv5zCP8QUura5AxNJ0oYk8xuwEzim384cnXUeMV1FeQmHgJT0O1HVO/D1Fuy/glSpkDdz3f/KJLzhApPXLnjCirjtZ7h961QPgDY0mNtQ7pYRBrAaK+/oQWfwssbZB1k3KV+a2eHiXZ9fkMslUmKCH7WYO6OY+QuN++wzIrDVTJAYsnDxJq52tLbVkXYllApFLuGS1pwNZSXgR6g0EwCieXPpx+w5PyISpANuHvPnghuOXGwLPivgb+cH/jg+TbmeI8LDS4Sq2efT2SCmAttJa2oABl3eSS65JbXBYO8FbWepGuEklzUFUba7TIpxhw6jvkn2xug+Iw==

Hi,

I wrote my own .OFF reader cause CGALs .OFF reader fails to read

https://wdune.ourproject.org/examples/test.off

which is displayed correctly by "meshlab".

Test program:

// compile:   g++ -g -O0 readoff_vertexcolor.cpp -lCGAL
// test data:  https://wdune.ourproject.org/examples/test.off

#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 = "test.off";
    std::ifstream input(filename);
    SurfaceMesh *mesh = new SurfaceMesh();

    if (!input || !(input >> *mesh)) {
        fprintf(stderr, "program failed cause of: ");
        perror(filename);
    }

   SurfaceMesh::Property_map<SurfaceMesh::Vertex_index, CGAL::Color>
vcolors =
        mesh->property_map<SurfaceMesh::Vertex_index, CGAL::Color >
        ("v:color").first;
       
    bool colorExists = mesh->property_map
        <SurfaceMesh::Vertex_index, CGAL::Color>("v:color").second;

    for (SurfaceMesh::Vertex_index vi : mesh->vertices()) {
        verts.push_back(mesh->point(vi));
        if (colorExists )
            cols.push_back(vcolors[vi]);
    }
}

Program outpit:

$ ./a.out
program failed cause of: test.off: Success

If you are interested in the code, that successfully can read the test
data, see
routine "readOff" in nwdune-0.746/src/NodeIndexedFaceSet.cpp of white_dune.

so long
MUFTI



  • [cgal-discuss] Wrote my own open source .OFF reader, J. Scheurich, 02/14/2020

Archive powered by MHonArc 2.6.18.

Top of Page