Fix game:addSpawnShapesByZone
[ryzomcore.git] / nel / tools / 3d / mesh_utils / scene_context.h
blob80ff558bd43b6be7eb7c7e04f84dab787c017dcf
1 // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
2 // Copyright (C) 2015 Winch Gate Property Limited
3 //
4 // This source file has been modified by the following contributors:
5 // Copyright (C) 2016 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
6 //
7 // This program is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU Affero General Public License as
9 // published by the Free Software Foundation, either version 3 of the
10 // License, or (at your option) any later version.
12 // This program is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU Affero General Public License for more details.
17 // You should have received a copy of the GNU Affero General Public License
18 // along with this program. If not, see <http://www.gnu.org/licenses/>.
20 // Author: Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
22 #ifndef NL_SCENE_CONTEXT_H
23 #define NL_SCENE_CONTEXT_H
24 #include <nel/misc/types_nl.h>
26 #include "mesh_utils.h"
27 #include "scene_meta.h"
29 #include <nel/misc/sstring.h>
30 #include <nel/pipeline/tool_logger.h>
31 #include <nel/misc/smart_ptr.h>
32 #include <nel/misc/matrix.h>
34 #include <nel/3d/shape.h>
36 #ifndef NL_NODE_INTERNAL_TYPE
37 #define NL_NODE_INTERNAL_TYPE void
38 #endif
39 #ifndef NL_SCENE_INTERNAL_TYPE
40 #define NL_SCENE_INTERNAL_TYPE void
41 #endif
43 namespace NL3D {
44 class IShape;
45 class CMaterial;
48 struct CNodeContext
50 CNodeContext() :
51 InternalNode(NULL),
52 IsBone(false)
57 const NL_NODE_INTERNAL_TYPE *InternalNode;
58 bool IsBone;
60 // NLMISC::CMatrix Transform; // TODO
61 NLMISC::CSmartPtr<NL3D::IShape> Shape;
64 typedef std::map<NLMISC::CSString, CNodeContext> TNodeContextMap;
65 struct CMeshUtilsContext
67 CMeshUtilsContext(const CMeshUtilsSettings &settings) : Settings(settings), InternalScene(NULL)
72 const CMeshUtilsSettings &Settings;
74 NLPIPELINE::CToolLogger ToolLogger;
76 const NL_SCENE_INTERNAL_TYPE *InternalScene;
77 CSceneMeta SceneMeta;
79 TNodeContextMap Nodes; // Impl note: Should never end up containing the scene root node.
80 // std::map<const aiMesh *, NLMISC::CSString> MeshNames; // Maps meshes to a node name ********************* todo ***************
83 #endif /* NL_SCENE_CONTEXT_H */
85 /* end of file */