1 // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
2 // Copyright (C) 2015 Winch Gate Property Limited
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU Affero General Public License as
6 // published by the Free Software Foundation, either version 3 of the
7 // License, or (at your option) any later version.
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU Affero General Public License for more details.
14 // You should have received a copy of the GNU Affero General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
17 // Author: Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
19 #ifndef NL_SCENE_META_H
20 #define NL_SCENE_META_H
21 #include <nel/misc/types_nl.h>
23 #include <nel/misc/sstring.h>
24 #include <nel/misc/smart_ptr.h>
26 #include <nel/3d/material.h>
40 TMeshCollisionInt
= 2,
41 TMeshCollisionExt
= 3,
50 TBoneForce
= 1, // Force this node to be part of a skeleton
51 TBoneRoot
= 2, // Make this node the skeleton root, it will be exported using the scene name. There can only be one (editor should keep track and disable)
58 bool AddToIG
; // Add this node to an instance group
62 std::string InstanceShape
;
63 std::string InstanceName
;
64 std::string InstanceGroupName
;
67 // std::vector<NLMISC::CSString> Materials; // In case there's an issue with nameless materials in some format... Map to material entirely in the meta editor.
69 void serial(NLMISC::IStream
&s
);
74 TSkelLocal
= 0, // Export smallest skeleton possible from connected bones
75 TSkelRoot
= 1, // Export skeleton from a direct child node in the scene root node
76 TSkelFull
= 2, // Include all connected child nodes in the skeleton
79 typedef std::map
<NLMISC::CSString
, NLMISC::CSmartPtr
<NL3D::CMaterial
> > TMaterialMap
;
90 bool ExportDefaultIG
; // Export a default instance group from nodes the scene that do not have an instance group set
93 std::map
<NLMISC::CSString
, CNodeMeta
> Nodes
;
94 TMaterialMap Materials
;
96 const std::string
&metaFilePath() const { return m_MetaFilePath
; }
98 bool load(const std::string
&filePath
);
100 void serial(NLMISC::IStream
&s
);
103 std::string m_MetaFilePath
;
107 #endif /* NL_SCENE_META_H */