Saving mesh data

Provided that you are using a TriMesh class to store 3D geometry, we will show you how to save it in a file.

Getting ready

We are assuming that you are using a 3D model stored in TriMesh object. Sample application loading 3D geometry can be found in Cinder samples directory in the folder: OBJLoaderDemo.

How to do it…

We will implement saving a 3D mesh data.

  1. Include necessary headers:
    #include "cinder/ObjLoader.h"
    #include "cinder/Utilities.h"
  2. Implement your keyDown method as follows:
    if( event.getChar() == 's' ) {
      fs::path path = getSaveFilePath(getDocumentsDirectory() / fs::path("mesh.trimesh") );
      if( ! path.empty() ) {
        mMesh.write( writeFile( path ) );
            }
    }
      else if( event.getChar() == 'o' ) {
      fs::path path = getSaveFilePath(getDocumentsDirectory() / fs::path("mesh.obj") );
      if( ! path.empty() ) {
      ObjLoader::write( writeFile( path ), mMesh );
        }
    }

How it works…

In Cinder we are using a TriMesh class to store 3D geometry. Using TriMesh we can store and manipulate geometry loaded from 3D model files or add each vertices with code.

Every time you hit the S key on the keyboard, a saving dialog pops up to ask you where to save binary data of the TriMesh object. When you press the O key, the OBJ format file will be saved into your documents folder. If you don't have to exchange data with other software, binary data saving and loading is usually faster.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.138.204.186