diff --git a/code/nel/tools/pipeline/max/builtin/animatable.cpp b/code/nel/tools/pipeline/max/builtin/animatable.cpp index c2214b076..0a3abed4b 100644 --- a/code/nel/tools/pipeline/max/builtin/animatable.cpp +++ b/code/nel/tools/pipeline/max/builtin/animatable.cpp @@ -123,7 +123,7 @@ const ISceneClassDesc *CAnimatable::classDesc() const return &AnimatableClassDesc; } -void CAnimatable::toStringLocal(std::ostream &ostream, const std::string &pad) const +void CAnimatable::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const { CSceneClass::toStringLocal(ostream, pad); if (m_AppData && m_AppData->entries().size() != 0) diff --git a/code/nel/tools/pipeline/max/builtin/animatable.h b/code/nel/tools/pipeline/max/builtin/animatable.h index 1d513ecdd..74f09fa8e 100644 --- a/code/nel/tools/pipeline/max/builtin/animatable.h +++ b/code/nel/tools/pipeline/max/builtin/animatable.h @@ -74,7 +74,7 @@ public: virtual void init(); virtual bool inherits(const NLMISC::CClassId classId) const; virtual const ISceneClassDesc *classDesc() const; - virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "") const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; // public STORAGE::CAppData *appData(); diff --git a/code/nel/tools/pipeline/max/builtin/base_object.cpp b/code/nel/tools/pipeline/max/builtin/base_object.cpp index 9ff09abf0..2dfa30fbd 100644 --- a/code/nel/tools/pipeline/max/builtin/base_object.cpp +++ b/code/nel/tools/pipeline/max/builtin/base_object.cpp @@ -96,7 +96,7 @@ const ISceneClassDesc *CBaseObject::classDesc() const return &BaseObjectClassDesc; } -void CBaseObject::toStringLocal(std::ostream &ostream, const std::string &pad) const +void CBaseObject::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const { CReferenceTarget::toStringLocal(ostream, pad); } diff --git a/code/nel/tools/pipeline/max/builtin/base_object.h b/code/nel/tools/pipeline/max/builtin/base_object.h index 5ecffce5d..ecd5bdb68 100644 --- a/code/nel/tools/pipeline/max/builtin/base_object.h +++ b/code/nel/tools/pipeline/max/builtin/base_object.h @@ -67,7 +67,7 @@ public: virtual void init(); virtual bool inherits(const NLMISC::CClassId classId) const; virtual const ISceneClassDesc *classDesc() const; - virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "") const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; protected: // inherited diff --git a/code/nel/tools/pipeline/max/builtin/editable_patch.cpp b/code/nel/tools/pipeline/max/builtin/editable_patch.cpp index 477e3bb22..27f427a02 100644 --- a/code/nel/tools/pipeline/max/builtin/editable_patch.cpp +++ b/code/nel/tools/pipeline/max/builtin/editable_patch.cpp @@ -94,7 +94,7 @@ const ISceneClassDesc *CEditablePatch::classDesc() const return &EditablePatchClassDesc; } -void CEditablePatch::toStringLocal(std::ostream &ostream, const std::string &pad) const +void CEditablePatch::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const { CPatchObject::toStringLocal(ostream, pad); } diff --git a/code/nel/tools/pipeline/max/builtin/editable_patch.h b/code/nel/tools/pipeline/max/builtin/editable_patch.h index c79473650..60ed8dc4d 100644 --- a/code/nel/tools/pipeline/max/builtin/editable_patch.h +++ b/code/nel/tools/pipeline/max/builtin/editable_patch.h @@ -66,7 +66,7 @@ public: virtual void init(); virtual bool inherits(const NLMISC::CClassId classId) const; virtual const ISceneClassDesc *classDesc() const; - virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "") const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; protected: // inherited diff --git a/code/nel/tools/pipeline/max/builtin/geom_object.cpp b/code/nel/tools/pipeline/max/builtin/geom_object.cpp index 7df140675..992c0cef6 100644 --- a/code/nel/tools/pipeline/max/builtin/geom_object.cpp +++ b/code/nel/tools/pipeline/max/builtin/geom_object.cpp @@ -43,16 +43,21 @@ namespace PIPELINE { namespace MAX { namespace BUILTIN { +#define PMB_GEOM_UNKNOWN0900_CHUNK_ID 0x0900 #define PMB_GEOM_BUFFERS_CHUNK_ID 0x08fe -CGeomObject::CGeomObject(CScene *scene) : CObject(scene) +CGeomObject::CGeomObject(CScene *scene) : CObject(scene), m_Unknown0900(NULL), m_GeomBuffers(NULL) { } CGeomObject::~CGeomObject() { - + if (!m_ChunksOwnsPointers) + { + m_Unknown0900 = NULL; + m_GeomBuffers = NULL; + } } const ucstring CGeomObject::DisplayName = ucstring("GeomObject"); @@ -65,7 +70,18 @@ const CGeomObjectSuperClassDesc GeomObjectSuperClassDesc(&GeomObjectClassDesc); void CGeomObject::parse(uint16 version, uint filter) { - CObject::parse(version); + if (filter == 0) + { + CObject::parse(version); + } + else if (filter == PMB_GEOM_OBJECT_PARSE_FILTER) + { + if (!m_ChunksOwnsPointers) + { + m_Unknown0900 = getChunk(PMB_GEOM_UNKNOWN0900_CHUNK_ID); + m_GeomBuffers = static_cast(getChunk(PMB_GEOM_BUFFERS_CHUNK_ID)); + } + } } void CGeomObject::clean() @@ -75,11 +91,21 @@ void CGeomObject::clean() void CGeomObject::build(uint16 version, uint filter) { - CObject::build(version); + if (filter == 0) + { + CObject::build(version); + } + else if (filter == PMB_GEOM_OBJECT_PARSE_FILTER) + { + if (m_Unknown0900) putChunk(PMB_GEOM_UNKNOWN0900_CHUNK_ID, m_Unknown0900); + if (m_GeomBuffers) putChunk(PMB_GEOM_UNKNOWN0900_CHUNK_ID, m_GeomBuffers); + } } void CGeomObject::disown() { + m_Unknown0900 = NULL; + m_GeomBuffers = NULL; CObject::disown(); } @@ -99,7 +125,7 @@ const ISceneClassDesc *CGeomObject::classDesc() const return &GeomObjectClassDesc; } -void CGeomObject::toStringLocal(std::ostream &ostream, const std::string &pad) const +void CGeomObject::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const { CObject::toStringLocal(ostream, pad); } @@ -108,6 +134,8 @@ IStorageObject *CGeomObject::createChunkById(uint16 id, bool container) { switch (id) { + case PMB_GEOM_UNKNOWN0900_CHUNK_ID: + return new CStorageArray(); case PMB_GEOM_BUFFERS_CHUNK_ID: return new STORAGE::CGeomBuffers(); } diff --git a/code/nel/tools/pipeline/max/builtin/geom_object.h b/code/nel/tools/pipeline/max/builtin/geom_object.h index 3ae4e21db..59512bb57 100644 --- a/code/nel/tools/pipeline/max/builtin/geom_object.h +++ b/code/nel/tools/pipeline/max/builtin/geom_object.h @@ -36,9 +36,16 @@ // Project includes #include "object.h" +/// Must be passed to the parse and build functions by +/// inheriting classes to parse the actual geom object. +#define PMB_GEOM_OBJECT_PARSE_FILTER 0x432a4da6 + namespace PIPELINE { namespace MAX { namespace BUILTIN { +namespace STORAGE { + class CGeomBuffers; +} /** * \brief CGeomGeomObject @@ -67,12 +74,19 @@ public: virtual void init(); virtual bool inherits(const NLMISC::CClassId classId) const; virtual const ISceneClassDesc *classDesc() const; - virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "") const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; + + // read access + inline STORAGE::CGeomBuffers *geomBuffers() const { return m_GeomBuffers; } protected: // inherited virtual IStorageObject *createChunkById(uint16 id, bool container); +private: + IStorageObject *m_Unknown0900; + STORAGE::CGeomBuffers *m_GeomBuffers; + }; /* class CGeomObject */ typedef CSceneClassDesc CGeomObjectClassDesc; diff --git a/code/nel/tools/pipeline/max/builtin/i_node.cpp b/code/nel/tools/pipeline/max/builtin/i_node.cpp index 594417537..b24825c26 100644 --- a/code/nel/tools/pipeline/max/builtin/i_node.cpp +++ b/code/nel/tools/pipeline/max/builtin/i_node.cpp @@ -97,7 +97,7 @@ const ISceneClassDesc *INode::classDesc() const return &NodeClassDesc; } -void INode::toStringLocal(std::ostream &ostream, const std::string &pad) const +void INode::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const { CReferenceTarget::toStringLocal(ostream, pad); // Print the implied connected children diff --git a/code/nel/tools/pipeline/max/builtin/i_node.h b/code/nel/tools/pipeline/max/builtin/i_node.h index 87ce8b406..1e033a5ca 100644 --- a/code/nel/tools/pipeline/max/builtin/i_node.h +++ b/code/nel/tools/pipeline/max/builtin/i_node.h @@ -67,7 +67,7 @@ public: virtual void init(); virtual bool inherits(const NLMISC::CClassId classId) const; virtual const ISceneClassDesc *classDesc() const; - virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "") const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; // node interface virtual INode *parent(); diff --git a/code/nel/tools/pipeline/max/builtin/node_impl.cpp b/code/nel/tools/pipeline/max/builtin/node_impl.cpp index 98cbc4df8..4adc4bc4f 100644 --- a/code/nel/tools/pipeline/max/builtin/node_impl.cpp +++ b/code/nel/tools/pipeline/max/builtin/node_impl.cpp @@ -129,7 +129,7 @@ const ISceneClassDesc *CNodeImpl::classDesc() const return &NodeImplClassDesc; } -void CNodeImpl::toStringLocal(std::ostream &ostream, const std::string &pad) const +void CNodeImpl::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const { INode::toStringLocal(ostream, pad); ostream << "\n" << pad << "NodeVersion: " << m_NodeVersion; diff --git a/code/nel/tools/pipeline/max/builtin/node_impl.h b/code/nel/tools/pipeline/max/builtin/node_impl.h index 505736705..69a70fd7d 100644 --- a/code/nel/tools/pipeline/max/builtin/node_impl.h +++ b/code/nel/tools/pipeline/max/builtin/node_impl.h @@ -66,7 +66,7 @@ public: virtual void init(); virtual bool inherits(const NLMISC::CClassId classId) const; virtual const ISceneClassDesc *classDesc() const; - virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "") const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; // node interface virtual INode *parent(); diff --git a/code/nel/tools/pipeline/max/builtin/object.cpp b/code/nel/tools/pipeline/max/builtin/object.cpp index 15669e183..d44df1c13 100644 --- a/code/nel/tools/pipeline/max/builtin/object.cpp +++ b/code/nel/tools/pipeline/max/builtin/object.cpp @@ -96,7 +96,7 @@ const ISceneClassDesc *CObject::classDesc() const return &ObjectClassDesc; } -void CObject::toStringLocal(std::ostream &ostream, const std::string &pad) const +void CObject::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const { CBaseObject::toStringLocal(ostream, pad); } diff --git a/code/nel/tools/pipeline/max/builtin/object.h b/code/nel/tools/pipeline/max/builtin/object.h index 69f4598c0..0beddb361 100644 --- a/code/nel/tools/pipeline/max/builtin/object.h +++ b/code/nel/tools/pipeline/max/builtin/object.h @@ -67,7 +67,7 @@ public: virtual void init(); virtual bool inherits(const NLMISC::CClassId classId) const; virtual const ISceneClassDesc *classDesc() const; - virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "") const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; protected: // inherited diff --git a/code/nel/tools/pipeline/max/builtin/patch_object.cpp b/code/nel/tools/pipeline/max/builtin/patch_object.cpp index 7a8979328..fecba7640 100644 --- a/code/nel/tools/pipeline/max/builtin/patch_object.cpp +++ b/code/nel/tools/pipeline/max/builtin/patch_object.cpp @@ -94,7 +94,7 @@ const ISceneClassDesc *CPatchObject::classDesc() const return &PatchObjectClassDesc; } -void CPatchObject::toStringLocal(std::ostream &ostream, const std::string &pad) const +void CPatchObject::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const { CGeomObject::toStringLocal(ostream, pad); } diff --git a/code/nel/tools/pipeline/max/builtin/patch_object.h b/code/nel/tools/pipeline/max/builtin/patch_object.h index 78b8b166d..78b6524cc 100644 --- a/code/nel/tools/pipeline/max/builtin/patch_object.h +++ b/code/nel/tools/pipeline/max/builtin/patch_object.h @@ -36,6 +36,10 @@ // Project includes #include "geom_object.h" +/// Must be passed to the parse and build functions by +/// inheriting classes to parse the actual patch object. +#define PMB_PATCH_OBJECT_PARSE_FILTER 0x2a611c9 + namespace PIPELINE { namespace MAX { namespace BUILTIN { @@ -66,7 +70,7 @@ public: virtual void init(); virtual bool inherits(const NLMISC::CClassId classId) const; virtual const ISceneClassDesc *classDesc() const; - virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "") const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; protected: // inherited diff --git a/code/nel/tools/pipeline/max/builtin/poly_object.cpp b/code/nel/tools/pipeline/max/builtin/poly_object.cpp index a55747940..bfda7611c 100644 --- a/code/nel/tools/pipeline/max/builtin/poly_object.cpp +++ b/code/nel/tools/pipeline/max/builtin/poly_object.cpp @@ -94,7 +94,7 @@ const ISceneClassDesc *CPolyObject::classDesc() const return &PolyObjectClassDesc; } -void CPolyObject::toStringLocal(std::ostream &ostream, const std::string &pad) const +void CPolyObject::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const { CGeomObject::toStringLocal(ostream, pad); } diff --git a/code/nel/tools/pipeline/max/builtin/poly_object.h b/code/nel/tools/pipeline/max/builtin/poly_object.h index 86029338a..23b3c09f9 100644 --- a/code/nel/tools/pipeline/max/builtin/poly_object.h +++ b/code/nel/tools/pipeline/max/builtin/poly_object.h @@ -36,6 +36,10 @@ // Project includes #include "geom_object.h" +/// Must be passed to the parse and build functions by +/// inheriting classes to parse the actual poly object. +#define PMB_POLY_OBJECT_PARSE_FILTER 0x127d3a04 + namespace PIPELINE { namespace MAX { namespace BUILTIN { @@ -66,7 +70,7 @@ public: virtual void init(); virtual bool inherits(const NLMISC::CClassId classId) const; virtual const ISceneClassDesc *classDesc() const; - virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "") const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; protected: // inherited diff --git a/code/nel/tools/pipeline/max/builtin/reference_maker.cpp b/code/nel/tools/pipeline/max/builtin/reference_maker.cpp index 99a2121b4..4b684d543 100644 --- a/code/nel/tools/pipeline/max/builtin/reference_maker.cpp +++ b/code/nel/tools/pipeline/max/builtin/reference_maker.cpp @@ -224,7 +224,7 @@ const ISceneClassDesc *CReferenceMaker::classDesc() const return &ReferenceMakerClassDesc; } -void CReferenceMaker::toStringLocal(std::ostream &ostream, const std::string &pad) const +void CReferenceMaker::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const { CAnimatable::toStringLocal(ostream, pad); uint nb = nbReferences(); diff --git a/code/nel/tools/pipeline/max/builtin/reference_maker.h b/code/nel/tools/pipeline/max/builtin/reference_maker.h index 0e0af9059..b32c0c97b 100644 --- a/code/nel/tools/pipeline/max/builtin/reference_maker.h +++ b/code/nel/tools/pipeline/max/builtin/reference_maker.h @@ -68,7 +68,7 @@ public: virtual void init(); virtual bool inherits(const NLMISC::CClassId classId) const; virtual const ISceneClassDesc *classDesc() const; - virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "") const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; // child classes should inherit, default implementation stores in a vector /// Get a reference diff --git a/code/nel/tools/pipeline/max/builtin/reference_target.cpp b/code/nel/tools/pipeline/max/builtin/reference_target.cpp index a7d629660..a571b524b 100644 --- a/code/nel/tools/pipeline/max/builtin/reference_target.cpp +++ b/code/nel/tools/pipeline/max/builtin/reference_target.cpp @@ -96,7 +96,7 @@ const ISceneClassDesc *CReferenceTarget::classDesc() const return &ReferenceTargetClassDesc; } -void CReferenceTarget::toStringLocal(std::ostream &ostream, const std::string &pad) const +void CReferenceTarget::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const { CReferenceMaker::toStringLocal(ostream, pad); } diff --git a/code/nel/tools/pipeline/max/builtin/reference_target.h b/code/nel/tools/pipeline/max/builtin/reference_target.h index 4e0a274f2..69ad6ee34 100644 --- a/code/nel/tools/pipeline/max/builtin/reference_target.h +++ b/code/nel/tools/pipeline/max/builtin/reference_target.h @@ -68,7 +68,7 @@ public: virtual void init(); virtual bool inherits(const NLMISC::CClassId classId) const; virtual const ISceneClassDesc *classDesc() const; - virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "") const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; protected: // inherited diff --git a/code/nel/tools/pipeline/max/builtin/root_node.cpp b/code/nel/tools/pipeline/max/builtin/root_node.cpp index 20db5c841..b9c76b1c0 100644 --- a/code/nel/tools/pipeline/max/builtin/root_node.cpp +++ b/code/nel/tools/pipeline/max/builtin/root_node.cpp @@ -94,7 +94,7 @@ const ISceneClassDesc *CRootNode::classDesc() const return &RootNodeClassDesc; } -void CRootNode::toStringLocal(std::ostream &ostream, const std::string &pad) const +void CRootNode::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const { INode::toStringLocal(ostream, pad); } diff --git a/code/nel/tools/pipeline/max/builtin/root_node.h b/code/nel/tools/pipeline/max/builtin/root_node.h index 2ab828c01..df673a532 100644 --- a/code/nel/tools/pipeline/max/builtin/root_node.h +++ b/code/nel/tools/pipeline/max/builtin/root_node.h @@ -66,7 +66,7 @@ public: virtual void init(); virtual bool inherits(const NLMISC::CClassId classId) const; virtual const ISceneClassDesc *classDesc() const; - virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "") const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; // node interface virtual const ucstring &userName() const; diff --git a/code/nel/tools/pipeline/max/builtin/scene_impl.cpp b/code/nel/tools/pipeline/max/builtin/scene_impl.cpp index 03a234c15..75c9fa5cf 100644 --- a/code/nel/tools/pipeline/max/builtin/scene_impl.cpp +++ b/code/nel/tools/pipeline/max/builtin/scene_impl.cpp @@ -106,7 +106,7 @@ const ISceneClassDesc *CSceneImpl::classDesc() const return &SceneImplClassDesc; } -void CSceneImpl::toStringLocal(std::ostream &ostream, const std::string &pad) const +void CSceneImpl::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const { CReferenceMaker::toStringLocal(ostream, pad); } diff --git a/code/nel/tools/pipeline/max/builtin/scene_impl.h b/code/nel/tools/pipeline/max/builtin/scene_impl.h index 00c2b51d8..437f0c7ea 100644 --- a/code/nel/tools/pipeline/max/builtin/scene_impl.h +++ b/code/nel/tools/pipeline/max/builtin/scene_impl.h @@ -69,7 +69,7 @@ public: virtual void init(); virtual bool inherits(const NLMISC::CClassId classId) const; virtual const ISceneClassDesc *classDesc() const; - virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "") const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; // reference maker virtual CReferenceMaker *getReference(uint index) const; diff --git a/code/nel/tools/pipeline/max/builtin/track_view_node.cpp b/code/nel/tools/pipeline/max/builtin/track_view_node.cpp index 0da7796f8..3a4b8978b 100644 --- a/code/nel/tools/pipeline/max/builtin/track_view_node.cpp +++ b/code/nel/tools/pipeline/max/builtin/track_view_node.cpp @@ -131,7 +131,7 @@ const ISceneClassDesc *CTrackViewNode::classDesc() const return &TrackViewNodeClassDesc; } -void CTrackViewNode::toStringLocal(std::ostream &ostream, const std::string &pad) const +void CTrackViewNode::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const { CReferenceTarget::toStringLocal(ostream, pad); if (m_Empty0140) ostream << "\n" << pad << "Empty 0x0140 "; diff --git a/code/nel/tools/pipeline/max/builtin/track_view_node.h b/code/nel/tools/pipeline/max/builtin/track_view_node.h index a3f076cb7..4aca39c0d 100644 --- a/code/nel/tools/pipeline/max/builtin/track_view_node.h +++ b/code/nel/tools/pipeline/max/builtin/track_view_node.h @@ -75,7 +75,7 @@ public: virtual void init(); virtual bool inherits(const NLMISC::CClassId classId) const; virtual const ISceneClassDesc *classDesc() const; - virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "") const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; // reference maker virtual CReferenceMaker *getReference(uint index) const; diff --git a/code/nel/tools/pipeline/max/builtin/tri_object.cpp b/code/nel/tools/pipeline/max/builtin/tri_object.cpp index a19bc335a..daddfa5bd 100644 --- a/code/nel/tools/pipeline/max/builtin/tri_object.cpp +++ b/code/nel/tools/pipeline/max/builtin/tri_object.cpp @@ -60,7 +60,17 @@ const CTriObjectClassDesc TriObjectClassDesc(&DllPluginDescBuiltin); void CTriObject::parse(uint16 version, uint filter) { - CGeomObject::parse(version); + if (filter == 0) + { + CGeomObject::parse(version); + } + else if (filter == PMB_TRI_OBJECT_PARSE_FILTER) + { + if (!m_ChunksOwnsPointers) + { + + } + } } void CTriObject::clean() @@ -70,7 +80,14 @@ void CTriObject::clean() void CTriObject::build(uint16 version, uint filter) { - CGeomObject::build(version); + if (filter == 0) + { + CGeomObject::build(version); + } + else if (filter == PMB_TRI_OBJECT_PARSE_FILTER) + { + + } } void CTriObject::disown() @@ -94,7 +111,7 @@ const ISceneClassDesc *CTriObject::classDesc() const return &TriObjectClassDesc; } -void CTriObject::toStringLocal(std::ostream &ostream, const std::string &pad) const +void CTriObject::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const { CGeomObject::toStringLocal(ostream, pad); } diff --git a/code/nel/tools/pipeline/max/builtin/tri_object.h b/code/nel/tools/pipeline/max/builtin/tri_object.h index 2b852feba..fafdab2a0 100644 --- a/code/nel/tools/pipeline/max/builtin/tri_object.h +++ b/code/nel/tools/pipeline/max/builtin/tri_object.h @@ -36,6 +36,10 @@ // Project includes #include "geom_object.h" +/// Must be passed to the parse and build functions by +/// inheriting classes to parse the actual tri object. +#define PMB_TRI_OBJECT_PARSE_FILTER 0x38f55e43 + namespace PIPELINE { namespace MAX { namespace BUILTIN { @@ -66,7 +70,7 @@ public: virtual void init(); virtual bool inherits(const NLMISC::CClassId classId) const; virtual const ISceneClassDesc *classDesc() const; - virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "") const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; protected: // inherited diff --git a/code/nel/tools/pipeline/max/scene_class.cpp b/code/nel/tools/pipeline/max/scene_class.cpp index 283b5210b..4e2cc6d5b 100644 --- a/code/nel/tools/pipeline/max/scene_class.cpp +++ b/code/nel/tools/pipeline/max/scene_class.cpp @@ -232,7 +232,7 @@ const ISceneClassDesc *CSceneClass::classDesc() const return static_cast(&SceneClassDesc); } -void CSceneClass::toStringLocal(std::ostream &ostream, const std::string &pad) const +void CSceneClass::toStringLocal(std::ostream &ostream, const std::string &pad, uint filter) const { // Nothing to do here... } diff --git a/code/nel/tools/pipeline/max/scene_class.h b/code/nel/tools/pipeline/max/scene_class.h index 2bafc763f..1918478d4 100644 --- a/code/nel/tools/pipeline/max/scene_class.h +++ b/code/nel/tools/pipeline/max/scene_class.h @@ -112,7 +112,7 @@ public: /// Return the class description of the inheriting class virtual const ISceneClassDesc *classDesc() const; /// Create a readable representation of this class - virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "") const; + virtual void toStringLocal(std::ostream &ostream, const std::string &pad = "", uint filter = 0) const; //@} public: