// NeL - MMORPG Framework
// Copyright (C) 2015 Winch Gate Property Limited
// Author: Jan Boon
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
#ifndef NL_SCENE_CONTEXT_H
#define NL_SCENE_CONTEXT_H
#include
#include "mesh_utils.h"
#include "scene_meta.h"
#include
#include
#include
#include
#include
#ifndef NL_NODE_INTERNAL_TYPE
#define NL_NODE_INTERNAL_TYPE void
#endif
#ifndef NL_SCENE_INTERNAL_TYPE
#define NL_SCENE_INTERNAL_TYPE void
#endif
namespace NL3D {
class IShape;
class CMaterial;
}
struct CNodeContext
{
CNodeContext() :
InternalNode(NULL),
IsBone(false)
{
}
const NL_NODE_INTERNAL_TYPE *InternalNode;
bool IsBone;
// NLMISC::CMatrix Transform; // TODO
NLMISC::CSmartPtr Shape;
};
typedef std::map TNodeContextMap;
struct CMeshUtilsContext
{
CMeshUtilsContext(const CMeshUtilsSettings &settings) : Settings(settings), InternalScene(NULL)
{
}
const CMeshUtilsSettings &Settings;
NLPIPELINE::CToolLogger ToolLogger;
const NL_SCENE_INTERNAL_TYPE *InternalScene;
CSceneMeta SceneMeta;
TNodeContextMap Nodes; // Impl note: Should never end up containing the scene root node.
// std::map MeshNames; // Maps meshes to a node name ********************* todo ***************
};
#endif /* NL_SCENE_CONTEXT_H */
/* end of file */