Files
Webcam/include/engine/import/import_interface.h
2026-06-22 11:49:35 +02:00

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__