76 lines
1.2 KiB
C++
76 lines
1.2 KiB
C++
/* -----------------------------------------------------------------------------
|
|
GSFramework
|
|
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
|
|
----------------------------------------------------------------------------- */
|
|
|
|
|
|
#ifndef __NPROJECTSCENEINSTANCE__
|
|
#define __NPROJECTSCENEINSTANCE__
|
|
|
|
|
|
#include "nstring/nstring.h"
|
|
|
|
|
|
namespace GS {
|
|
namespace S2D { class Scene; }
|
|
namespace S3D { class Scene; }
|
|
namespace Core {
|
|
|
|
// Project scene instance.
|
|
class ProjectSceneInstance
|
|
{
|
|
friend class Project;
|
|
|
|
public:
|
|
|
|
enum Type
|
|
{
|
|
Type_Scene3d = 0,
|
|
Type_Scene2d
|
|
};
|
|
|
|
protected:
|
|
|
|
bool active;
|
|
Type type;
|
|
|
|
public:
|
|
|
|
union
|
|
{
|
|
void *instance;
|
|
S2D::Scene *instance_2d;
|
|
S3D::Scene *instance_3d;
|
|
};
|
|
|
|
String GetPath() const;
|
|
|
|
Type GetType() const { return type; }
|
|
bool IsActive() const { return active; }
|
|
|
|
void Free();
|
|
|
|
~ProjectSceneInstance();
|
|
|
|
protected:
|
|
|
|
ProjectSceneInstance(S3D::Scene *inst)
|
|
{
|
|
active = true;
|
|
type = Type_Scene3d;
|
|
instance_3d = inst;
|
|
}
|
|
ProjectSceneInstance(S2D::Scene *inst)
|
|
{
|
|
active = true;
|
|
type = Type_Scene2d;
|
|
instance_2d = inst;
|
|
}
|
|
};
|
|
|
|
} // Core
|
|
} // GS
|
|
|
|
|
|
#endif // __NPROJECTSCENEINSTANCE__
|