65 lines
1.4 KiB
C++
65 lines
1.4 KiB
C++
/* -----------------------------------------------------------------------------
|
|
GSFramework
|
|
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
|
|
----------------------------------------------------------------------------- */
|
|
|
|
|
|
#ifndef __NIIMPORT__
|
|
#define __NIIMPORT__
|
|
|
|
|
|
#include "core/resource_factory_event_interface.h"
|
|
#include "nstring/nstring.h"
|
|
|
|
|
|
namespace GS {
|
|
|
|
namespace S3D {
|
|
class Scene;
|
|
class Group;
|
|
|
|
//
|
|
struct IImport
|
|
{
|
|
struct Config
|
|
{
|
|
enum PathExistsPolicy
|
|
{
|
|
Skip = 0,
|
|
Overwrite,
|
|
Rename
|
|
};
|
|
|
|
sIResourceFactoryEvent event_handler;
|
|
|
|
String base_path;
|
|
|
|
float scale;
|
|
int frame_per_second;
|
|
|
|
bool import_animation;
|
|
|
|
PathExistsPolicy exists_policy_geometry,
|
|
exists_policy_material,
|
|
exists_policy_texture;
|
|
|
|
Config() : scale(1.f), frame_per_second(24), import_animation(true), exists_policy_geometry(Skip), exists_policy_material(Skip), exists_policy_texture(Skip) {}
|
|
};
|
|
|
|
/// Helper function to determine an imported resource path.
|
|
bool GetOutputPath(String &out, const String &base, const char *name, const char *dflt, const char *ext, Config::PathExistsPolicy = Config::Skip) const;
|
|
|
|
/// Test importer on a file.
|
|
virtual bool TestImport(const char *uri) = 0;
|
|
/// Import scene from file.
|
|
virtual bool ImportScene(Scene *, const char *uri, const Config &, Group ** = 0) = 0;
|
|
|
|
virtual ~IImport() {}
|
|
};
|
|
|
|
} // S3D
|
|
} // GS
|
|
|
|
|
|
#endif // __NIIMPORT__
|