- added color float support for the OM OFF reader/writer
- added corresponding unittests - small fix for the PLY writer Note that for reading binary OFF files with color floats, the user has to set the flag, that floats are expected closes #1410 git-svn-id: http://www.openmesh.org/svnrepo/OpenMesh/trunk@818 fdac6126-5c0c-442c-9429-916003d36597
This commit is contained in:
@@ -4,10 +4,10 @@
|
||||
* Copyright (C) 2001-2012 by Computer Graphics Group, RWTH Aachen *
|
||||
* www.openmesh.org *
|
||||
* *
|
||||
*---------------------------------------------------------------------------*
|
||||
*---------------------------------------------------------------------------*
|
||||
* This file is part of OpenMesh. *
|
||||
* *
|
||||
* OpenMesh is free software: you can redistribute it and/or modify *
|
||||
* OpenMesh is free software: you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU Lesser General Public License as *
|
||||
* published by the Free Software Foundation, either version 3 of *
|
||||
* the License, or (at your option) any later version with the *
|
||||
@@ -30,10 +30,10 @@
|
||||
* License along with OpenMesh. If not, *
|
||||
* see <http://www.gnu.org/licenses/>. *
|
||||
* *
|
||||
\*===========================================================================*/
|
||||
\*===========================================================================*/
|
||||
|
||||
/*===========================================================================*\
|
||||
* *
|
||||
* *
|
||||
* $Revision$ *
|
||||
* $Date$ *
|
||||
* *
|
||||
@@ -108,6 +108,12 @@ public:
|
||||
// set vertex color
|
||||
virtual void set_color(VertexHandle _vh, const Vec4uc& _color) = 0;
|
||||
|
||||
// set vertex color
|
||||
virtual void set_color(VertexHandle _vh, const Vec3f& _color) = 0;
|
||||
|
||||
// set vertex color
|
||||
virtual void set_color(VertexHandle _vh, const Vec4f& _color) = 0;
|
||||
|
||||
// set vertex texture coordinate
|
||||
virtual void set_texcoord(VertexHandle _vh, const Vec2f& _texcoord) = 0;
|
||||
|
||||
@@ -116,10 +122,16 @@ public:
|
||||
|
||||
// set edge color
|
||||
virtual void set_color(EdgeHandle _eh, const Vec3uc& _color) = 0;
|
||||
|
||||
|
||||
// set edge color
|
||||
virtual void set_color(EdgeHandle _eh, const Vec4uc& _color) = 0;
|
||||
|
||||
|
||||
// set edge color
|
||||
virtual void set_color(EdgeHandle _eh, const Vec3f& _color) = 0;
|
||||
|
||||
// set edge color
|
||||
virtual void set_color(EdgeHandle _eh, const Vec4f& _color) = 0;
|
||||
|
||||
// set face normal
|
||||
virtual void set_normal(FaceHandle _fh, const Vec3f& _normal) = 0;
|
||||
|
||||
@@ -129,6 +141,12 @@ public:
|
||||
// set face color
|
||||
virtual void set_color(FaceHandle _fh, const Vec4uc& _color) = 0;
|
||||
|
||||
// set face color
|
||||
virtual void set_color(FaceHandle _fh, const Vec3f& _color) = 0;
|
||||
|
||||
// set face color
|
||||
virtual void set_color(FaceHandle _fh, const Vec4f& _color) = 0;
|
||||
|
||||
// Store a property in the mesh mapping from an int to a texture file
|
||||
// Use set_face_texindex to set the index for each face
|
||||
virtual void add_texture_information( int _id , std::string _name ) = 0;
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
* Copyright (C) 2001-2012 by Computer Graphics Group, RWTH Aachen *
|
||||
* www.openmesh.org *
|
||||
* *
|
||||
*---------------------------------------------------------------------------*
|
||||
*---------------------------------------------------------------------------*
|
||||
* This file is part of OpenMesh. *
|
||||
* *
|
||||
* OpenMesh is free software: you can redistribute it and/or modify *
|
||||
* OpenMesh is free software: you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU Lesser General Public License as *
|
||||
* published by the Free Software Foundation, either version 3 of *
|
||||
* the License, or (at your option) any later version with the *
|
||||
@@ -30,10 +30,10 @@
|
||||
* License along with OpenMesh. If not, *
|
||||
* see <http://www.gnu.org/licenses/>. *
|
||||
* *
|
||||
\*===========================================================================*/
|
||||
\*===========================================================================*/
|
||||
|
||||
/*===========================================================================*\
|
||||
* *
|
||||
* *
|
||||
* $Revision$ *
|
||||
* $Date$ *
|
||||
* *
|
||||
@@ -103,7 +103,7 @@ public:
|
||||
{
|
||||
VHandles::const_iterator it, it2, end(_indices.end());
|
||||
|
||||
|
||||
|
||||
// test for valid vertex indices
|
||||
for (it=_indices.begin(); it!=end; ++it)
|
||||
if (! mesh_.is_valid_handle(*it))
|
||||
@@ -177,6 +177,17 @@ public:
|
||||
mesh_.set_color(_vh, color_cast<Color>(_color));
|
||||
}
|
||||
|
||||
virtual void set_color(VertexHandle _vh, const Vec4f& _color)
|
||||
{
|
||||
if (mesh_.has_vertex_colors())
|
||||
mesh_.set_color(_vh, color_cast<Color>(_color));
|
||||
}
|
||||
|
||||
virtual void set_color(VertexHandle _vh, const Vec3f& _color)
|
||||
{
|
||||
if (mesh_.has_vertex_colors())
|
||||
mesh_.set_color(_vh, color_cast<Color>(_color));
|
||||
}
|
||||
|
||||
virtual void set_texcoord(VertexHandle _vh, const Vec2f& _texcoord)
|
||||
{
|
||||
@@ -191,19 +202,31 @@ public:
|
||||
}
|
||||
|
||||
// edge attributes
|
||||
|
||||
|
||||
virtual void set_color(EdgeHandle _eh, const Vec4uc& _color)
|
||||
{
|
||||
if (mesh_.has_edge_colors())
|
||||
mesh_.set_color(_eh, color_cast<Color>(_color));
|
||||
}
|
||||
|
||||
|
||||
virtual void set_color(EdgeHandle _eh, const Vec3uc& _color)
|
||||
{
|
||||
if (mesh_.has_edge_colors())
|
||||
mesh_.set_color(_eh, color_cast<Color>(_color));
|
||||
}
|
||||
|
||||
virtual void set_color(EdgeHandle _eh, const Vec4f& _color)
|
||||
{
|
||||
if (mesh_.has_edge_colors())
|
||||
mesh_.set_color(_eh, color_cast<Color>(_color));
|
||||
}
|
||||
|
||||
virtual void set_color(EdgeHandle _eh, const Vec3f& _color)
|
||||
{
|
||||
if (mesh_.has_edge_colors())
|
||||
mesh_.set_color(_eh, color_cast<Color>(_color));
|
||||
}
|
||||
|
||||
// face attributes
|
||||
|
||||
virtual void set_normal(FaceHandle _fh, const Vec3f& _normal)
|
||||
@@ -224,6 +247,18 @@ public:
|
||||
mesh_.set_color(_fh, color_cast<Color>(_color));
|
||||
}
|
||||
|
||||
virtual void set_color(FaceHandle _fh, const Vec3f& _color)
|
||||
{
|
||||
if (mesh_.has_face_colors())
|
||||
mesh_.set_color(_fh, color_cast<Color>(_color));
|
||||
}
|
||||
|
||||
virtual void set_color(FaceHandle _fh, const Vec4f& _color)
|
||||
{
|
||||
if (mesh_.has_face_colors())
|
||||
mesh_.set_color(_fh, color_cast<Color>(_color));
|
||||
}
|
||||
|
||||
virtual void add_face_texcoords( FaceHandle _fh, VertexHandle _vh, const std::vector<Vec2f>& _face_texcoords)
|
||||
{
|
||||
// get first halfedge handle
|
||||
@@ -297,7 +332,7 @@ public:
|
||||
vhandles[j] = mesh_.add_vertex(p);
|
||||
// DO STORE p, reference may not work since vertex array
|
||||
// may be relocated after adding a new vertex !
|
||||
|
||||
|
||||
// Mark vertices of failed face as non-manifold
|
||||
if (mesh_.has_vertex_status()) {
|
||||
mesh_.status(vhandles[j]).set_fixed_nonmanifold(true);
|
||||
@@ -306,11 +341,11 @@ public:
|
||||
|
||||
// add face
|
||||
FaceHandle fh = mesh_.add_face(vhandles);
|
||||
|
||||
|
||||
// Mark failed face as non-manifold
|
||||
if (mesh_.has_face_status())
|
||||
mesh_.status(fh).set_fixed_nonmanifold(true);
|
||||
|
||||
|
||||
// Mark edges of failed face as non-two-manifold
|
||||
if (mesh_.has_edge_status()) {
|
||||
typename Mesh::FaceEdgeIter fe_it = mesh_.fe_iter(fh);
|
||||
|
||||
Reference in New Issue
Block a user