4 * \date 2012-08-22 08:58GMT
5 * \author Jan Boon (Kaetemi)
10 * Copyright (C) 2012 by authors
12 * This file is part of RYZOM CORE PIPELINE.
13 * RYZOM CORE PIPELINE is free software: you can redistribute it
14 * and/or modify it under the terms of the GNU Affero General Public
15 * License as published by the Free Software Foundation, either
16 * version 3 of the License, or (at your option) any later version.
18 * RYZOM CORE PIPELINE is distributed in the hope that it will be
19 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
20 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Affero General Public License for more details.
23 * You should have received a copy of the GNU Affero General Public
24 * License along with RYZOM CORE PIPELINE. If not, see
25 * <http://www.gnu.org/licenses/>.
28 #ifndef PIPELINE_TRI_OBJECT_H
29 #define PIPELINE_TRI_OBJECT_H
30 #include <nel/misc/types_nl.h>
37 #include "geom_object.h"
39 /// Must be passed to the parse and build functions by
40 /// inheriting classes to parse the actual tri object.
41 #define PMB_TRI_OBJECT_PARSE_FILTER 0x38f55e43
49 * \date 2012-08-22 08:58GMT
50 * \author Jan Boon (Kaetemi)
53 class CTriObject
: public CGeomObject
56 CTriObject(CScene
*scene
);
57 virtual ~CTriObject();
60 static const ucstring DisplayName
;
61 static const char *InternalName
;
62 static const NLMISC::CClassId ClassId
;
63 static const TSClassId SuperClassId
;
66 virtual void parse(uint16 version
, uint filter
= 0);
68 virtual void build(uint16 version
, uint filter
= 0);
69 virtual void disown();
71 virtual bool inherits(const NLMISC::CClassId classId
) const;
72 virtual const ISceneClassDesc
*classDesc() const;
73 virtual void toStringLocal(std::ostream
&ostream
, const std::string
&pad
= "", uint filter
= 0) const;
77 virtual IStorageObject
*createChunkById(uint16 id
, bool container
);
79 }; /* class CTriObject */
81 typedef CSceneClassDesc
<CTriObject
> CTriObjectClassDesc
;
82 extern const CTriObjectClassDesc TriObjectClassDesc
;
84 } /* namespace BUILTIN */
86 } /* namespace PIPELINE */
88 #endif /* #ifndef PIPELINE_TRI_OBJECT_H */