Texture coord name change! "TCoord" and "Texture" are BAD. "TexCoord" is GOOD.
This commit is contained in:
parent
84946de883
commit
e1f61a9f6f
|
@ -24,6 +24,9 @@
|
|||
History
|
||||
|
||||
$Log: not supported by cvs2svn $
|
||||
Revision 1.1 2004/06/03 13:16:32 ganovelli
|
||||
created
|
||||
|
||||
****************************************************************************/
|
||||
#ifndef __VCGLIB_TETRAIMPORTERPLY
|
||||
#define __VCGLIB_TETRAIMPORTERPLY
|
||||
|
@ -76,9 +79,9 @@ struct LoadPly_TetraAux
|
|||
int v[512];
|
||||
int flags;
|
||||
float q;
|
||||
float tcoord[32];
|
||||
unsigned char ntcoord;
|
||||
int tcoordind;
|
||||
float texcoord[32];
|
||||
unsigned char ntexcoord;
|
||||
int texcoordind;
|
||||
float colors[32];
|
||||
unsigned char ncolors;
|
||||
|
||||
|
@ -161,9 +164,9 @@ static const PropDescriptor &TetraDesc(int i)
|
|||
{"tetra", "vertex_indices", ply::T_INT, ply::T_INT, offsetof(LoadPly_TetraAux,v), 1,0,ply::T_UCHAR,ply::T_UCHAR,offsetof(LoadPly_TetraAux,size) },
|
||||
{"tetra", "flags", ply::T_INT, ply::T_INT, offsetof(LoadPly_TetraAux,flags), 0,0,0,0,0},
|
||||
{"tetra", "quality", ply::T_FLOAT, ply::T_FLOAT, offsetof(LoadPly_TetraAux,q), 0,0,0,0,0},
|
||||
{"tetra", "texcoord", ply::T_FLOAT, ply::T_FLOAT, offsetof(LoadPly_TetraAux,tcoord), 1,0,ply::T_UCHAR,ply::T_UCHAR,offsetof(LoadPly_TetraAux,ntcoord) },
|
||||
{"tetra", "texcoord", ply::T_FLOAT, ply::T_FLOAT, offsetof(LoadPly_TetraAux,texcoord), 1,0,ply::T_UCHAR,ply::T_UCHAR,offsetof(LoadPly_TetraAux,ntexcoord) },
|
||||
{"tetra", "color", ply::T_FLOAT, ply::T_FLOAT, offsetof(LoadPly_TetraAux,colors), 1,0,ply::T_UCHAR,ply::T_UCHAR,offsetof(LoadPly_TetraAux,ncolors) },
|
||||
{"tetra", "texnumber", ply::T_INT, ply::T_INT, offsetof(LoadPly_TetraAux,tcoordind), 0,0,0,0,0},
|
||||
{"tetra", "texnumber", ply::T_INT, ply::T_INT, offsetof(LoadPly_TetraAux,texcoordind), 0,0,0,0,0},
|
||||
{"tetra", "red" , ply::T_UCHAR, ply::T_UCHAR, offsetof(LoadPly_TetraAux,r), 0,0,0,0,0},
|
||||
{"tetra", "green", ply::T_UCHAR, ply::T_UCHAR, offsetof(LoadPly_TetraAux,g), 0,0,0,0,0},
|
||||
{"tetra", "blue" , ply::T_UCHAR, ply::T_UCHAR, offsetof(LoadPly_TetraAux,b), 0,0,0,0,0},
|
||||
|
|
|
@ -25,6 +25,9 @@
|
|||
History
|
||||
|
||||
$Log: not supported by cvs2svn $
|
||||
Revision 1.6 2006/11/30 22:48:06 cignoni
|
||||
Corrected bug in exporting mesh with deleted vertices
|
||||
|
||||
Revision 1.5 2006/11/08 15:48:50 cignoni
|
||||
Corrected management of capabilities and masks
|
||||
|
||||
|
@ -185,8 +188,8 @@ namespace io {
|
|||
typedef typename SaveMeshType::VertexType VertexType;
|
||||
|
||||
//int: old index vertex
|
||||
//TCoord2: textcoord with vertex's index i
|
||||
typedef std::pair<int,vcg::TCoord2<float> > Key;
|
||||
//TexCoord2: tex coord with vertex's index i
|
||||
typedef std::pair<int,vcg::TexCoord2<float> > Key;
|
||||
|
||||
/*
|
||||
enum of all the types of error
|
||||
|
@ -327,7 +330,7 @@ namespace io {
|
|||
std::vector<int> VertRemap; // VertRemap[i] keep the final position of m.vert[i] inside the 3ds vertex list. used for remapping the pointers to vertex in the faces
|
||||
int count = 1;
|
||||
int nface = 0;
|
||||
if(HasPerWedgeTexture(m) && (mask & vcg::tri::io::Mask::IOM_WEDGTEXCOORD) )
|
||||
if(HasPerWedgeTexCoord(m) && (mask & vcg::tri::io::Mask::IOM_WEDGTEXCOORD) )
|
||||
{
|
||||
FaceIterator fi;
|
||||
for(fi=m.face.begin(); fi!=m.face.end(); ++fi) if( !(*fi).IsD() )
|
||||
|
@ -335,7 +338,7 @@ namespace io {
|
|||
for(unsigned int k=0;k<3;k++)
|
||||
{
|
||||
int i = GetIndexVertex(m, (*fi).V(k));
|
||||
vcg::TCoord2<float> t = (*fi).WT(k);
|
||||
vcg::TexCoord2<float> t = (*fi).WT(k);
|
||||
if(!m.vert[i].IsD())
|
||||
{
|
||||
if(AddDuplexVertexCoord(ListOfDuplexVert,Key(i,t)))
|
||||
|
@ -356,7 +359,7 @@ namespace io {
|
|||
|
||||
int number_vertex_to_duplicate = 0;
|
||||
|
||||
if(HasPerWedgeTexture(m) && (mask & MeshModel::IOM_WEDGTEXCOORD ))
|
||||
if(HasPerWedgeTexCoord(m) && (mask & MeshModel::IOM_WEDGTEXCOORD ))
|
||||
number_vertex_to_duplicate = (count-1) - m.vn;
|
||||
|
||||
Lib3dsFile *file = lib3ds_file_new();//creates new file
|
||||
|
@ -370,13 +373,13 @@ namespace io {
|
|||
|
||||
lib3ds_mesh_new_point_list(mesh, m.vn + number_vertex_to_duplicate);// set number of vertexs
|
||||
|
||||
if(HasPerWedgeTexture(m) && (mask & vcg::tri::io::Mask::IOM_WEDGTEXCOORD ))
|
||||
if(HasPerWedgeTexCoord(m) && (mask & vcg::tri::io::Mask::IOM_WEDGTEXCOORD ))
|
||||
lib3ds_mesh_new_texel_list(mesh,m.vn + number_vertex_to_duplicate); //set number of textures
|
||||
|
||||
int v_index = 0;
|
||||
VertexIterator vi;
|
||||
//saves vert
|
||||
if(HasPerWedgeTexture(m) && (mask & MeshModel::IOM_WEDGTEXCOORD ))
|
||||
if(HasPerWedgeTexCoord(m) && (mask & MeshModel::IOM_WEDGTEXCOORD ))
|
||||
{
|
||||
for(unsigned int i=0; i< VectorOfVertexType.size();i++)
|
||||
{
|
||||
|
@ -419,11 +422,11 @@ namespace io {
|
|||
FaceIterator fi;
|
||||
for(fi=m.face.begin(); fi!=m.face.end(); ++fi) if( !(*fi).IsD() )
|
||||
{
|
||||
vcg::TCoord2<float> t0,t1,t2;
|
||||
vcg::TexCoord2<float> t0,t1,t2;
|
||||
int i0 = GetIndexVertex(m, (*fi).V(0));
|
||||
int i1 = GetIndexVertex(m, (*fi).V(1));
|
||||
int i2 = GetIndexVertex(m, (*fi).V(2));
|
||||
if(HasPerWedgeTexture(m) && (mask & MeshModel::IOM_WEDGTEXCOORD ) )
|
||||
if(HasPerWedgeTexCoord(m) && (mask & MeshModel::IOM_WEDGTEXCOORD ) )
|
||||
{
|
||||
t0 = (*fi).WT(0);
|
||||
t1 = (*fi).WT(1);
|
||||
|
@ -431,7 +434,7 @@ namespace io {
|
|||
}
|
||||
|
||||
Lib3dsFace face;
|
||||
if(HasPerWedgeTexture(m) && (mask & MeshModel::IOM_WEDGTEXCOORD ))
|
||||
if(HasPerWedgeTexCoord(m) && (mask & MeshModel::IOM_WEDGTEXCOORD ))
|
||||
{
|
||||
face.points[0] = GetIndexDuplexVertex(ListOfDuplexVert,Key(i0,t0));
|
||||
face.points[1] = GetIndexDuplexVertex(ListOfDuplexVert,Key(i1,t1));
|
||||
|
@ -445,7 +448,7 @@ namespace io {
|
|||
}
|
||||
|
||||
//saves coord textures
|
||||
if(HasPerWedgeTexture(m) && (mask & MeshModel::IOM_WEDGTEXCOORD ) )
|
||||
if(HasPerWedgeTexCoord(m) && (mask & MeshModel::IOM_WEDGTEXCOORD ) )
|
||||
{
|
||||
mesh->texelL[face.points[0]][0] = t0.u();
|
||||
mesh->texelL[face.points[0]][1] = t0.v();
|
||||
|
@ -502,7 +505,7 @@ namespace io {
|
|||
}
|
||||
|
||||
//texture
|
||||
if(HasPerWedgeTexture(m) && (mask & MeshModel::IOM_WEDGTEXCOORD ) )
|
||||
if(HasPerWedgeTexCoord(m) && (mask & MeshModel::IOM_WEDGTEXCOORD ) )
|
||||
strcpy(material->texture1_map.name,materials[materials.size()-1].map_Kd.c_str());
|
||||
|
||||
lib3ds_file_insert_material(file,material);//inserts the material inside the file
|
||||
|
|
|
@ -25,6 +25,9 @@
|
|||
History
|
||||
|
||||
$Log: not supported by cvs2svn $
|
||||
Revision 1.8 2007/03/08 11:27:52 ganovelli
|
||||
added include to tcoord2
|
||||
|
||||
Revision 1.7 2007/02/16 21:12:13 m_di_benedetto
|
||||
Commented out strange abort in WriteMaterials()
|
||||
|
||||
|
@ -92,7 +95,7 @@
|
|||
|
||||
#include <wrap/callback.h>
|
||||
#include <vcg/complex/trimesh/allocate.h>
|
||||
#include <vcg/space/tcoord2.h>
|
||||
#include <vcg/space/texcoord2.h>
|
||||
#include <wrap/io_trimesh/io_mask.h>
|
||||
#include "io_material.h"
|
||||
#include <iostream>
|
||||
|
@ -229,7 +232,7 @@ namespace io {
|
|||
|
||||
//faces + texture coords
|
||||
FaceIterator fi;
|
||||
std::map<vcg::TCoord2<float>,int> CoordIndexTexture;
|
||||
std::map<vcg::TexCoord2<float>,int> CoordIndexTexture;
|
||||
unsigned int material_num = 0;
|
||||
int mem_index = 0; //var temporany
|
||||
/*int*/ value = 1;//tmp
|
||||
|
@ -259,7 +262,7 @@ namespace io {
|
|||
unsigned int MAX = 3;
|
||||
for(unsigned int k=0;k<MAX;k++)
|
||||
{
|
||||
if(m.HasPerWedgeTexture() && mask & vcg::tri::io::Mask::IOM_WEDGTEXCOORD)
|
||||
if(m.HasPerWedgeTexCoord() && mask & vcg::tri::io::Mask::IOM_WEDGTEXCOORD)
|
||||
{
|
||||
if(AddNewTextureCoord(CoordIndexTexture,(*fi).WT(k),value))
|
||||
{
|
||||
|
@ -339,7 +342,7 @@ namespace io {
|
|||
/*
|
||||
returns index of the texture coord
|
||||
*/
|
||||
inline static int GetIndexVertexTexture(std::map<vcg::TCoord2<float>,int> &m, const vcg::TCoord2<float> &wt)
|
||||
inline static int GetIndexVertexTexture(std::map<vcg::TexCoord2<float>,int> &m, const vcg::TexCoord2<float> &wt)
|
||||
{
|
||||
int index = m[wt];
|
||||
if(index!=0){return index;}
|
||||
|
@ -376,7 +379,7 @@ namespace io {
|
|||
adds a new index to the coordinate of Texture if it is the first time
|
||||
which is otherwise met not execute anything
|
||||
*/
|
||||
inline static bool AddNewTextureCoord(std::map<vcg::TCoord2<float>,int> &m, const vcg::TCoord2<float> &wt,int value)
|
||||
inline static bool AddNewTextureCoord(std::map<vcg::TexCoord2<float>,int> &m, const vcg::TexCoord2<float> &wt,int value)
|
||||
{
|
||||
int index = m[wt];
|
||||
if(index==0){m[wt]=value;return true;}
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
History
|
||||
|
||||
$Log: not supported by cvs2svn $
|
||||
Revision 1.11 2006/12/07 00:37:58 cignoni
|
||||
Corrected bug in the management of deleted vertices
|
||||
|
||||
****************************************************************************/
|
||||
|
||||
/**
|
||||
|
@ -65,7 +68,7 @@ namespace vcg {
|
|||
|
||||
if( m.HasPerVertexNormal() && (mask & io::Mask::IOM_VERTNORMAL)) fprintf(fpout,"N");
|
||||
if( m.HasPerVertexColor() && (mask & io::Mask::IOM_VERTCOLOR)) fprintf(fpout,"C");
|
||||
if( m.HasPerVertexTexture() && (mask & io::Mask::IOM_VERTTEXCOORD)) fprintf(fpout,"ST");
|
||||
if( m.HasPerVertexTexCoord() && (mask & io::Mask::IOM_VERTTEXCOORD)) fprintf(fpout,"ST");
|
||||
fprintf(fpout,"OFF\n");
|
||||
fprintf(fpout,"%d %d 0\n", m.vn, m.fn); // note that as edge number we simply write zero
|
||||
typename SaveMeshType::FaceIterator fi;
|
||||
|
@ -89,7 +92,7 @@ namespace vcg {
|
|||
if( m.HasPerVertexNormal() && (mask & io::Mask::IOM_VERTNORMAL) )
|
||||
fprintf(fpout,"%g %g %g\n", vp->N()[0],vp->N()[1],vp->N()[2]);
|
||||
|
||||
if( m.HasPerVertexTexture() && (mask & io::Mask::IOM_VERTTEXCOORD) )
|
||||
if( m.HasPerVertexTexCoord() && (mask & io::Mask::IOM_VERTTEXCOORD) )
|
||||
fprintf(fpout,"%g %g\n",vp->T().u(),vp->T().v());
|
||||
|
||||
vp->UberFlags()=j; // Trucco! Nascondi nei flags l'indice del vertice non deletato!
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
History
|
||||
|
||||
$Log: not supported by cvs2svn $
|
||||
Revision 1.22 2007/02/18 08:01:07 cignoni
|
||||
Added missing typename
|
||||
|
||||
Revision 1.21 2007/02/14 16:07:41 ganovelli
|
||||
added HasPerFaceFlag
|
||||
|
||||
|
@ -192,7 +195,7 @@ static int Save(SaveMeshType &m, const char * filename, bool binary, PlyInfo &p
|
|||
for(i=0; i < static_cast<int>(m.textures.size()); ++i)
|
||||
fprintf(fpout,"comment %s %s\n", TFILE, (const char *)(m.textures[i].c_str()) );
|
||||
|
||||
if(m.textures.size()>1 && (m.HasPerWedgeTexture() || m.HasPerVertexTexture())) multit = true;
|
||||
if(m.textures.size()>1 && (m.HasPerWedgeTexCoord() || m.HasPerVertexTexCoord())) multit = true;
|
||||
}
|
||||
|
||||
if((pi.mask & Mask::IOM_CAMERA))
|
||||
|
@ -274,8 +277,8 @@ static int Save(SaveMeshType &m, const char * filename, bool binary, PlyInfo &p
|
|||
);
|
||||
}
|
||||
|
||||
if( ( m.HasPerVertexTexture() && pi.mask & Mask::IOM_VERTTEXCOORD ) ||
|
||||
( m.HasPerWedgeTexture() && pi.mask & Mask::IOM_WEDGTEXCOORD ) )
|
||||
if( ( m.HasPerVertexTexCoord() && pi.mask & Mask::IOM_VERTTEXCOORD ) ||
|
||||
( m.HasPerWedgeTexCoord() && pi.mask & Mask::IOM_WEDGTEXCOORD ) )
|
||||
{
|
||||
fprintf(fpout,
|
||||
"property list uchar float texcoord\n"
|
||||
|
@ -502,7 +505,7 @@ static int Save(SaveMeshType &m, const char * filename, bool binary, PlyInfo &p
|
|||
if(m.HasPerVertexFlags()&&( pi.mask & Mask::IOM_FACEFLAGS) )
|
||||
fwrite(&(fp->Flags()),sizeof(int),1,fpout);
|
||||
|
||||
if( m.HasPerVertexTexture() && (pi.mask & Mask::IOM_VERTTEXCOORD) )
|
||||
if( m.HasPerVertexTexCoord() && (pi.mask & Mask::IOM_VERTTEXCOORD) )
|
||||
{
|
||||
fwrite(&b6,sizeof(char),1,fpout);
|
||||
float t[6];
|
||||
|
@ -513,7 +516,7 @@ static int Save(SaveMeshType &m, const char * filename, bool binary, PlyInfo &p
|
|||
}
|
||||
fwrite(t,sizeof(float),6,fpout);
|
||||
}
|
||||
else if( m.HasPerWedgeTexture() && (pi.mask & Mask::IOM_WEDGTEXCOORD) )
|
||||
else if( m.HasPerWedgeTexCoord() && (pi.mask & Mask::IOM_WEDGTEXCOORD) )
|
||||
{
|
||||
fwrite(&b6,sizeof(char),1,fpout);
|
||||
float t[6];
|
||||
|
@ -578,7 +581,7 @@ static int Save(SaveMeshType &m, const char * filename, bool binary, PlyInfo &p
|
|||
if(m.HasPerVertexFlags()&&( pi.mask & Mask::IOM_FACEFLAGS ))
|
||||
fprintf(fpout,"%d ",fp->Flags());
|
||||
|
||||
if( m.HasPerVertexTexture() && (pi.mask & Mask::IOM_VERTTEXCOORD) )
|
||||
if( m.HasPerVertexTexCoord() && (pi.mask & Mask::IOM_VERTTEXCOORD) )
|
||||
{
|
||||
fprintf(fpout,"6 ");
|
||||
for(int k=0;k<3;++k)
|
||||
|
@ -587,7 +590,7 @@ static int Save(SaveMeshType &m, const char * filename, bool binary, PlyInfo &p
|
|||
,fp->V(k)->T().v()
|
||||
);
|
||||
}
|
||||
else if( m.HasPerWedgeTexture() && (pi.mask & Mask::IOM_WEDGTEXCOORD) )
|
||||
else if( m.HasPerWedgeTexCoord() && (pi.mask & Mask::IOM_WEDGTEXCOORD) )
|
||||
{
|
||||
fprintf(fpout,"6 ");
|
||||
for(int k=0;k<3;++k)
|
||||
|
|
|
@ -93,7 +93,7 @@ namespace io {
|
|||
if (!srcnodetext.isNull())
|
||||
{
|
||||
assert((ii * 2 < geosrcverttext.size()) && (ii * 2 + 1 < geosrcverttext.size()));
|
||||
m.vert[vv].T() = vcg::TCoord2<float>();
|
||||
m.vert[vv].T() = vcg::TexCoord2<float>();
|
||||
m.vert[vv].T().u() = geosrcverttext[ii * 2].toFloat();
|
||||
m.vert[vv].T().v() = geosrcverttext[ii * 2 + 1].toFloat();
|
||||
}
|
||||
|
@ -170,7 +170,7 @@ namespace io {
|
|||
{
|
||||
indtx = face.at(jj + offtx).toInt();
|
||||
assert(indtx * 2 < wt.size());
|
||||
m.face[ff].WT(0) = vcg::TCoord2<float>();
|
||||
m.face[ff].WT(0) = vcg::TexCoord2<float>();
|
||||
m.face[ff].WT(0).u() = wt.at(indtx * 2).toFloat();
|
||||
m.face[ff].WT(0).v() = wt.at(indtx * 2 + 1).toFloat();
|
||||
m.face[ff].WT(0).n() = 1;
|
||||
|
@ -199,7 +199,7 @@ namespace io {
|
|||
{
|
||||
indtx = face.at(jj + offtx).toInt();
|
||||
assert(indtx * 2 < wt.size());
|
||||
m.face[ff].WT(1) = vcg::TCoord2<float>();
|
||||
m.face[ff].WT(1) = vcg::TexCoord2<float>();
|
||||
m.face[ff].WT(1).u() = wt.at(indtx * 2).toFloat();
|
||||
m.face[ff].WT(1).v() = wt.at(indtx * 2 + 1).toFloat();
|
||||
m.face[ff].WT(1).n() = 1;
|
||||
|
@ -227,7 +227,7 @@ namespace io {
|
|||
{
|
||||
indtx = face.at(jj + offtx).toInt();
|
||||
assert(indtx * 2 < wt.size());
|
||||
m.face[ff].WT(2) = vcg::TCoord2<float>();
|
||||
m.face[ff].WT(2) = vcg::TexCoord2<float>();
|
||||
m.face[ff].WT(2).u() = wt.at(indtx * 2).toFloat();
|
||||
m.face[ff].WT(2).v() = wt.at(indtx * 2 + 1).toFloat();
|
||||
m.face[ff].WT(2).n() = 1;
|
||||
|
@ -249,7 +249,7 @@ namespace io {
|
|||
else return E_NOMESH;
|
||||
}
|
||||
|
||||
static void GetTexture(const QDomDocument& doc,AdditionalInfoDAE* inf)
|
||||
static void GetTexCoord(const QDomDocument& doc,AdditionalInfoDAE* inf)
|
||||
{
|
||||
QDomNodeList txlst = doc.elementsByTagName("library_images");
|
||||
for(int img = 0;img < txlst.size();++img)
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
History
|
||||
|
||||
$Log: not supported by cvs2svn $
|
||||
Revision 1.19 2006/03/29 08:50:10 corsini
|
||||
Fix bug in texture coordinates reading
|
||||
|
||||
Revision 1.18 2006/03/29 08:15:46 corsini
|
||||
Fix several bugs
|
||||
Add LoadMask
|
||||
|
@ -397,7 +400,7 @@ namespace vcg
|
|||
k++;
|
||||
|
||||
// Store texture coordinates
|
||||
if (VertexType::HasTexture())
|
||||
if (VertexType::HasTexCoord())
|
||||
{
|
||||
//...TODO...
|
||||
}
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
History
|
||||
|
||||
$Log: not supported by cvs2svn $
|
||||
Revision 1.34 2007/03/03 02:28:59 cignoni
|
||||
Removed initialization of a single face in the main parsing loop. Single face cannot exist anymore with OCF. Moved into the tristrip parsing section.
|
||||
|
||||
Revision 1.33 2007/02/14 15:30:13 ganovelli
|
||||
added treatment of HasPerVertexFlags absent
|
||||
|
||||
|
@ -183,9 +186,9 @@ struct LoadPly_FaceAux
|
|||
int v[512];
|
||||
int flags;
|
||||
float q;
|
||||
float tcoord[32];
|
||||
unsigned char ntcoord;
|
||||
int tcoordind;
|
||||
float texcoord[32];
|
||||
unsigned char ntexcoord;
|
||||
int texcoordind;
|
||||
float colors[32];
|
||||
unsigned char ncolors;
|
||||
|
||||
|
@ -271,9 +274,9 @@ static const PropDescriptor &FaceDesc(int i)
|
|||
{"face", "vertex_indices", ply::T_INT, ply::T_INT, offsetof(LoadPly_FaceAux,v), 1,0,ply::T_UCHAR,ply::T_UCHAR,offsetof(LoadPly_FaceAux,size) ,0},
|
||||
{"face", "flags", ply::T_INT, ply::T_INT, offsetof(LoadPly_FaceAux,flags), 0,0,0,0,0 ,0},
|
||||
{"face", "quality", ply::T_FLOAT, ply::T_FLOAT, offsetof(LoadPly_FaceAux,q), 0,0,0,0,0 ,0},
|
||||
{"face", "texcoord", ply::T_FLOAT, ply::T_FLOAT, offsetof(LoadPly_FaceAux,tcoord), 1,0,ply::T_UCHAR,ply::T_UCHAR,offsetof(LoadPly_FaceAux,ntcoord) ,0},
|
||||
{"face", "texcoord", ply::T_FLOAT, ply::T_FLOAT, offsetof(LoadPly_FaceAux,texcoord), 1,0,ply::T_UCHAR,ply::T_UCHAR,offsetof(LoadPly_FaceAux,ntexcoord) ,0},
|
||||
{"face", "color", ply::T_FLOAT, ply::T_FLOAT, offsetof(LoadPly_FaceAux,colors), 1,0,ply::T_UCHAR,ply::T_UCHAR,offsetof(LoadPly_FaceAux,ncolors) ,0},
|
||||
{"face", "texnumber", ply::T_INT, ply::T_INT, offsetof(LoadPly_FaceAux,tcoordind), 0,0,0,0,0 ,0},
|
||||
{"face", "texnumber", ply::T_INT, ply::T_INT, offsetof(LoadPly_FaceAux,texcoordind), 0,0,0,0,0 ,0},
|
||||
{"face", "red" , ply::T_UCHAR, ply::T_UCHAR, offsetof(LoadPly_FaceAux,r), 0,0,0,0,0 ,0},
|
||||
{"face", "green", ply::T_UCHAR, ply::T_UCHAR, offsetof(LoadPly_FaceAux,g), 0,0,0,0,0 ,0},
|
||||
{"face", "blue" , ply::T_UCHAR, ply::T_UCHAR, offsetof(LoadPly_FaceAux,b), 0,0,0,0,0 ,0},
|
||||
|
@ -491,7 +494,7 @@ static int Open( OpenMeshType &m, const char * filename, PlyInfo &pi )
|
|||
}
|
||||
|
||||
|
||||
if( FaceType::HasWedgeTexture() )
|
||||
if( FaceType::HasWedgeTexCoord() )
|
||||
{
|
||||
if( pf.AddToRead(FaceDesc(3))!=-1 )
|
||||
{
|
||||
|
@ -697,9 +700,9 @@ static int Open( OpenMeshType &m, const char * filename, PlyInfo &pi )
|
|||
{
|
||||
for(int k=0;k<3;++k)
|
||||
{
|
||||
(*fi).WT(k).u() = fa.tcoord[k*2+0];
|
||||
(*fi).WT(k).v() = fa.tcoord[k*2+1];
|
||||
if(multit) (*fi).WT(k).n() = fa.tcoordind;
|
||||
(*fi).WT(k).u() = fa.texcoord[k*2+0];
|
||||
(*fi).WT(k).v() = fa.texcoord[k*2+1];
|
||||
if(multit) (*fi).WT(k).n() = fa.texcoordind;
|
||||
else (*fi).WT(k).n()=0; // safely intialize texture index
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,6 +24,9 @@
|
|||
History
|
||||
|
||||
$Log: not supported by cvs2svn $
|
||||
Revision 1.6 2006/05/21 06:58:55 cignoni
|
||||
Added ClampMask function
|
||||
|
||||
Revision 1.5 2006/01/10 13:20:42 cignoni
|
||||
Changed ply::PlyMask to io::Mask
|
||||
|
||||
|
@ -98,7 +101,7 @@ enum {
|
|||
// if( mask & IOM_VERTFLAGS ) strcat(str,"flag,");
|
||||
// if( mask & IOM_VERTCOLOR ) strcat(str,"color,");
|
||||
// if( mask & IOM_VERTQUALITY ) strcat(str,"quality,");
|
||||
// if( mask & IOM_VERTTEXCOORD ) strcat(str,"tcoord,");
|
||||
// if( mask & IOM_VERTTEXCOORD ) strcat(str,"texcoord,");
|
||||
// if( mask & IOM_VERTNORMAL ) strcat(str,"normal,");
|
||||
//
|
||||
// strcat(str," F:");
|
||||
|
@ -109,7 +112,7 @@ enum {
|
|||
//
|
||||
// strcat(str," W:");
|
||||
// if( mask & IOM_WEDGCOLOR ) strcat(str,"color,");
|
||||
// if( mask & IOM_WEDGTEXCOORD ) strcat(str,"tcoord,");
|
||||
// if( mask & IOM_WEDGTEXCOORD ) strcat(str,"texcoord,");
|
||||
// if( mask & IOM_WEDGNORMAL ) strcat(str,"normal,");
|
||||
//
|
||||
// if( mask & IOM_CAMERA ) strcat(str," camera");
|
||||
|
@ -118,7 +121,7 @@ template <class MeshType>
|
|||
static void ClampMask(MeshType &m, int &mask)
|
||||
{
|
||||
if( (mask & IOM_FACECOLOR) && !HasPerFaceColor(m) ) mask = mask & (~IOM_FACECOLOR);
|
||||
if( (mask & IOM_WEDGTEXCOORD) && !HasPerWedgeTexture(m) ) mask = mask & (~IOM_WEDGTEXCOORD);
|
||||
if( (mask & IOM_WEDGTEXCOORD) && !HasPerWedgeTexCoord(m) ) mask = mask & (~IOM_WEDGTEXCOORD);
|
||||
if( (mask & IOM_WEDGNORMAL) && !m.HasPerWedgeNormal() ) mask = mask & (~IOM_WEDGNORMAL);
|
||||
if( (mask & IOM_VERTCOLOR) && !m.HasPerVertexColor() ) mask = mask & (~IOM_VERTCOLOR);
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
#include <QtCore/QStringList>
|
||||
|
||||
#include<vcg/space/point3.h>
|
||||
#include<vcg/space/tcoord2.h>
|
||||
#include<vcg/space/texcoord2.h>
|
||||
#include<vcg/space/color4.h>
|
||||
#include <wrap/callback.h>
|
||||
|
||||
|
@ -270,4 +270,4 @@ namespace io {
|
|||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue