//---------------------------------------------------------------------
    MeshSerializer::MeshSerializer()
		:mListener(0)
    {
		// Init implementations
		// String identifiers have not always been 100% unified with OGRE version
		
		// Note MUST be added in reverse order so latest is first in the list
		mVersionData.push_back(OGRE_NEW MeshVersionData(
			MESH_VERSION_1_8, "[MeshSerializer_v1.8]", 
			OGRE_NEW MeshSerializerImpl()));

		mVersionData.push_back(OGRE_NEW MeshVersionData(
			MESH_VERSION_1_7, "[MeshSerializer_v1.41]", 
			OGRE_NEW MeshSerializerImpl_v1_41()));

		mVersionData.push_back(OGRE_NEW MeshVersionData(
			MESH_VERSION_1_4, "[MeshSerializer_v1.40]", 
			OGRE_NEW MeshSerializerImpl_v1_4()));

		mVersionData.push_back(OGRE_NEW MeshVersionData(
			MESH_VERSION_1_0, "[MeshSerializer_v1.30]", 
			OGRE_NEW MeshSerializerImpl_v1_3()));
		mVersionData.push_back(OGRE_NEW MeshVersionData(
			MESH_VERSION_LEGACY, "[MeshSerializer_v1.20]", 
			OGRE_NEW MeshSerializerImpl_v1_2()));

		mVersionData.push_back(OGRE_NEW MeshVersionData(
			MESH_VERSION_LEGACY, "[MeshSerializer_v1.10]", 
			OGRE_NEW MeshSerializerImpl_v1_1()));
		
    }
    //---------------------------------------------------------------------
    MeshSerializer::MeshSerializer()
		:mListener(0)
    {
        // Set up map
        mImplementations.insert(
            MeshSerializerImplMap::value_type("[MeshSerializer_v1.10]", 
            OGRE_NEW MeshSerializerImpl_v1_1() ) );

        mImplementations.insert(
            MeshSerializerImplMap::value_type("[MeshSerializer_v1.20]", 
            OGRE_NEW MeshSerializerImpl_v1_2() ) );

        mImplementations.insert(
            MeshSerializerImplMap::value_type("[MeshSerializer_v1.30]", 
            OGRE_NEW MeshSerializerImpl_v1_3() ) );

        mImplementations.insert(
            MeshSerializerImplMap::value_type(msCurrentVersion, 
            OGRE_NEW MeshSerializerImpl() ) );
    }
    //---------------------------------------------------------------------
    MeshSerializer::MeshSerializer()
		:mListener(0)
    {
		// Init implementations
		// String identifiers have not always been 100% unified with OGRE version
		
		// Note MUST be added in reverse order so latest is first in the list

        // This one is a little ugly, 1.10 is used for version 1.1 legacy meshes.
        // So bump up to 1.100
		mVersionData.push_back(OGRE_NEW MeshVersionData(
			MESH_VERSION_1_10, "[MeshSerializer_v1.100]", 
			OGRE_NEW MeshSerializerImpl()));

		mVersionData.push_back(OGRE_NEW MeshVersionData(
			MESH_VERSION_1_8, "[MeshSerializer_v1.8]", 
			OGRE_NEW MeshSerializerImpl_v1_8()));

		mVersionData.push_back(OGRE_NEW MeshVersionData(
			MESH_VERSION_1_7, "[MeshSerializer_v1.41]", 
			OGRE_NEW MeshSerializerImpl_v1_41()));

		mVersionData.push_back(OGRE_NEW MeshVersionData(
			MESH_VERSION_1_4, "[MeshSerializer_v1.40]", 
			OGRE_NEW MeshSerializerImpl_v1_4()));

		mVersionData.push_back(OGRE_NEW MeshVersionData(
			MESH_VERSION_1_0, "[MeshSerializer_v1.30]", 
			OGRE_NEW MeshSerializerImpl_v1_3()));
		mVersionData.push_back(OGRE_NEW MeshVersionData(
			MESH_VERSION_LEGACY, "[MeshSerializer_v1.20]", 
			OGRE_NEW MeshSerializerImpl_v1_2()));

		mVersionData.push_back(OGRE_NEW MeshVersionData(
			MESH_VERSION_LEGACY, "[MeshSerializer_v1.10]", 
			OGRE_NEW MeshSerializerImpl_v1_1()));
		
    }