diff --git a/wrap/io_trimesh/export_ply.h b/wrap/io_trimesh/export_ply.h index 3bac072b..b8f859de 100644 --- a/wrap/io_trimesh/export_ply.h +++ b/wrap/io_trimesh/export_ply.h @@ -24,6 +24,9 @@ History $Log: not supported by cvs2svn $ +Revision 1.7 2004/07/15 10:54:48 ganovelli +std added + Revision 1.6 2004/05/28 14:11:13 ganovelli changes to comply io_mask moving in vcg::ply namesp @@ -147,8 +150,8 @@ static bool Save(SaveMeshType &m, const char * filename, bool binary, PlyInfo & //if(textures.size()>1 && (HasPerWedgeTexture() || HasPerVertexTexture())) multit = true; } - //if( (pi.mask & PLYMask::PM_CAMERA) && camera.IsValid() ) - /*{ + if( (pi.mask & ply::PLYMask::PM_CAMERA) && m.shot.IsValid()) + { fprintf(fpout, "element camera 1\n" "property float view_px\n" @@ -175,7 +178,7 @@ static bool Save(SaveMeshType &m, const char * filename, bool binary, PlyInfo & "property float k3\n" "property float k4\n" ); - }*/ + } fprintf(fpout, "element vertex %d\n" @@ -268,68 +271,68 @@ static bool Save(SaveMeshType &m, const char * filename, bool binary, PlyInfo & fprintf(fpout, "end_header\n" ); // Salvataggio camera - //if( (pi.mask & ply::PLYMask::PM_CAMERA) && camera.IsValid() ) - //{ - //if(binary) - //{ - // float t[17]; + if( (pi.mask & ply::PLYMask::PM_CAMERA) && m.shot.IsValid() ) + { + if(binary) + { + float t[17]; - // t[ 0] = camera.view_p[0]; - // t[ 1] = camera.view_p[1]; - // t[ 2] = camera.view_p[2]; - // t[ 3] = camera.x_axis[0]; - // t[ 4] = camera.x_axis[1]; - // t[ 5] = camera.x_axis[2]; - // t[ 6] = camera.y_axis[0]; - // t[ 7] = camera.y_axis[1]; - // t[ 8] = camera.y_axis[2]; - // t[ 9] = camera.z_axis[0]; - // t[10] = camera.z_axis[1]; - // t[11] = camera.z_axis[2]; - // t[12] = camera.f; - // t[13] = camera.s[0]; - // t[14] = camera.s[1]; - // t[15] = camera.c[0]; - // t[16] = camera.c[1]; - // fwrite(t,sizeof(float),17,fpout); + t[ 0] = -m.shot.similarity.tra[0]; + t[ 1] = -m.shot.similarity.tra[1]; + t[ 2] = -m.shot.similarity.tra[2]; + t[ 3] = m.shot.similarity.rot[0][0]; + t[ 4] = m.shot.similarity.rot[0][1]; + t[ 5] = m.shot.similarity.rot[0][2]; + t[ 6] = m.shot.similarity.rot[1][0]; + t[ 7] = m.shot.similarity.rot[1][1]; + t[ 8] = m.shot.similarity.rot[1][2]; + t[ 9] = m.shot.similarity.rot[2][0]; + t[10] = m.shot.similarity.rot[2][1]; + t[11] = m.shot.similarity.rot[2][2]; + t[12] = m.shot.camera.f; + t[13] = m.shot.camera.s[0]; + t[14] = m.shot.camera.s[1]; + t[15] = m.shot.camera.c[0]; + t[16] = m.shot.camera.c[1]; + fwrite(t,sizeof(float),17,fpout); - // fwrite( camera.viewport,sizeof(int),2,fpout ); + fwrite( &m.shot.camera.viewport[0],sizeof(int),2,fpout ); - // t[ 0] = camera.k[0]; - // t[ 1] = camera.k[1]; - // t[ 2] = camera.k[2]; - // t[ 3] = camera.k[3]; - // fwrite(t,sizeof(float),4,fpout); - //} - //else - //{ - // fprintf(fpout,"%g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %d %d %g %g %g %g\n" - // ,camera.view_p[0] - // ,camera.view_p[1] - // ,camera.view_p[2] - // ,camera.x_axis[0] - // ,camera.x_axis[1] - // ,camera.x_axis[2] - // ,camera.y_axis[0] - // ,camera.y_axis[1] - // ,camera.y_axis[2] - // ,camera.z_axis[0] - // ,camera.z_axis[1] - // ,camera.z_axis[2] - // ,camera.f - // ,camera.s[0] - // ,camera.s[1] - // ,camera.c[0] - // ,camera.c[1] - // ,camera.viewport[0] - // ,camera.viewport[1] - // ,camera.k[0] - // ,camera.k[1] - // ,camera.k[2] - // ,camera.k[3] - // ); - //} - //} + t[ 0] = m.shot.camera.k[0]; + t[ 1] = m.shot.camera.k[1]; + t[ 2] = m.shot.camera.k[2]; + t[ 3] = m.shot.camera.k[3]; + fwrite(t,sizeof(float),4,fpout); + } + else + { + fprintf(fpout,"%g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %d %d %g %g %g %g\n" + ,-m.shot.similarity.tra[0] + ,-m.shot.similarity.tra[1] + ,-m.shot.similarity.tra[2] + ,m.shot.similarity.rot[0][0] + ,m.shot.similarity.rot[0][1] + ,m.shot.similarity.rot[0][2] + ,m.shot.similarity.rot[1][0] + ,m.shot.similarity.rot[1][1] + ,m.shot.similarity.rot[1][2] + ,m.shot.similarity.rot[2][0] + ,m.shot.similarity.rot[2][1] + ,m.shot.similarity.rot[2][2] + ,m.shot.camera.f + ,m.shot.camera.s[0] + ,m.shot.camera.s[1] + ,m.shot.camera.c[0] + ,m.shot.camera.c[1] + ,m.shot.camera.viewport[0] + ,m.shot.camera.viewport[1] + ,m.shot.camera.k[0] + ,m.shot.camera.k[1] + ,m.shot.camera.k[2] + ,m.shot.camera.k[3] + ); + } + } int j; diff --git a/wrap/io_trimesh/import_ply.h b/wrap/io_trimesh/import_ply.h index ff962edb..63eddf2e 100644 --- a/wrap/io_trimesh/import_ply.h +++ b/wrap/io_trimesh/import_ply.h @@ -24,6 +24,10 @@ History $Log: not supported by cvs2svn $ +Revision 1.8 2004/06/23 15:36:43 cignoni +Restructured management of error, now the standard open for any mesh type return the error code, the default success value is zero +Any import class has a method ErrorMsg that give a verbal description of an error code. + Revision 1.7 2004/06/11 17:09:41 ganovelli inclusion of vector..minorchanges @@ -463,29 +467,40 @@ static int Open( OpenMeshType &m, const char * filename, PlyInfo &pi ) return pi.status; } //camera.valid = true; - //camera.view_p[0] = ca.view_px; - //camera.view_p[1] = ca.view_py; - //camera.view_p[2] = ca.view_pz; - //camera.x_axis[0] = ca.x_axisx; - //camera.x_axis[1] = ca.x_axisy; - //camera.x_axis[2] = ca.x_axisz; - //camera.y_axis[0] = ca.y_axisx; - //camera.y_axis[1] = ca.y_axisy; - //camera.y_axis[2] = ca.y_axisz; - //camera.z_axis[0] = ca.z_axisx; - //camera.z_axis[1] = ca.z_axisy; - //camera.z_axis[2] = ca.z_axisz; - //camera.f = ca.focal; - //camera.s[0] = ca.scalex; - //camera.s[1] = ca.scaley; - //camera.c[0] = ca.centerx; - //camera.c[1] = ca.centery; - //camera.viewport[0] = ca.viewportx; - //camera.viewport[1] = ca.viewporty; - //camera.k[0] = ca.k1; - //camera.k[1] = ca.k2; - //camera.k[2] = ca.k3; - //camera.k[3] = ca.k4; + + // extrinsic + // view point + m.shot.similarity.tra[0] = -ca.view_px; + m.shot.similarity.tra[1] = -ca.view_py; + m.shot.similarity.tra[2] = -ca.view_pz; + + // axis (i.e. rotation). + m.shot.similarity.rot.SetIdentity(); + m.shot.similarity.rot[0][0] = ca.x_axisx; + m.shot.similarity.rot[0][1] = ca.x_axisy; + m.shot.similarity.rot[0][2] = ca.x_axisz; + + m.shot.similarity.rot[1][0] = ca.y_axisx; + m.shot.similarity.rot[1][1] = ca.y_axisy; + m.shot.similarity.rot[1][2] = ca.y_axisz; + + m.shot.similarity.rot[2][0] = ca.z_axisx; + m.shot.similarity.rot[2][1] = ca.z_axisy; + m.shot.similarity.rot[2][2] = ca.z_axisz; + + //intrinsic + m.shot.camera.f = ca.focal; + m.shot.camera.s[0] = ca.scalex; + m.shot.camera.s[1] = ca.scaley; + m.shot.camera.c[0] = ca.centerx; + m.shot.camera.c[1] = ca.centery; + m.shot.camera.viewport[0] = ca.viewportx; + m.shot.camera.viewport[1] = ca.viewporty; + m.shot.camera.k[0] = ca.k1; + m.shot.camera.k[1] = ca.k2; + m.shot.camera.k[2] = ca.k3; + m.shot.camera.k[3] = ca.k4; + } } else if( !strcmp( pf.ElemName(i),"vertex" ) )