// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // Copyright (C) 2015 Winch Gate Property Limited // Author: Jan Boon <jan.boon@kaetemi.be> // // 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 <http://www.gnu.org/licenses/>. #ifndef NL_SCENE_CONTEXT_H #define NL_SCENE_CONTEXT_H #include <nel/misc/types_nl.h> #include "mesh_utils.h" #include "scene_meta.h" #include <nel/misc/sstring.h> #include <nel/pipeline/tool_logger.h> #include <nel/misc/smart_ptr.h> #include <nel/misc/matrix.h> #include <nel/3d/shape.h> #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<NL3D::IShape> Shape; }; typedef std::map<NLMISC::CSString, CNodeContext> 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<const aiMesh *, NLMISC::CSString> MeshNames; // Maps meshes to a node name ********************* todo *************** }; #endif /* NL_SCENE_CONTEXT_H */ /* end of file */