Saving a File using the Input-Output API
The external file loading and saving functions are exposed through the RED::IOTools
class.
// The arrays containing the data to save:
// - RED scene graphes;
// - RED viewpoints.
// - RED animation clip controllers.
RED::Vector< RED::Object* > dag;
RED::Vector< RED::Object* > viewpoints;
RED::Vector< RED::Object* > animations;
// Naming map used to associate the RED object ID to their loaded names.
RED::Map< unsigned int, RED::String > namingTable;
RC_TEST( RED::IOTools::Save( &dag, &viewpoints, &animations, "../resources/scene.fbx", RED::IOOT_ALL,
true, false, RED::IOSU_CM, false, RED::IOFV_DEFAULT, resmgr,
&namingTable, (RED::ProgressCallback)loadingProgressCallback ) );
The RED::IOTools::Save
function allows to save a list of RED::IViewpoint
and a list of scenegraphes given the root (RED::IShape
).
The optional naming map parameter is used to save the RED object names associated with their ID. While the loading operation fills the table, the save operation reads it.
Finally, an optional progress callback can be given. The function will be called regularly during the saving process. The function looks like this:
void savingProgressCallback( const RED::String& iMessage,
float iProgress )
{
// Display the message and a progress bar...
}