writeOFF.cpp 850 B

1234567891011121314151617181920212223242526272829
  1. #include "writeOFF.h"
  2. // write mesh to an ascii off file
  3. template <typename DerivedV, typename DerivedF>
  4. IGL_INLINE bool igl::writeOFF(
  5. const std::string fname,
  6. const Eigen::PlainObjectBase<DerivedV>& V,
  7. const Eigen::PlainObjectBase<DerivedF>& F)
  8. {
  9. FILE *fp = fopen (fname.c_str(), "w");
  10. if (!fp)
  11. {
  12. fprintf (stderr, "writeOFF(): could not open file %s", fname.c_str());
  13. return false;
  14. }
  15. fprintf (fp, "OFF\n%d %d 0\n", (int) V.rows(), (int) F.rows());
  16. for (unsigned i = 0; i < V.rows(); i++)
  17. fprintf (fp, "%f %f %f\n", V(i,0), V(i,1), V(i,2));
  18. for (unsigned i = 0; i < F.rows(); i++)
  19. fprintf (fp, "3 %d %d %d\n", F(i,0), F(i,1), F(i,2));
  20. fclose (fp);
  21. return true;
  22. }