MCPcopy Create free account
hub / github.com/OGRECave/ogre-next / importMesh

Method importMesh

OgreMain/src/OgreMeshSerializer.cpp:150–202  ·  view source on GitHub ↗

---------------------------------------------------------------------

Source from the content-addressed store, hash-verified

148 }
149 //---------------------------------------------------------------------
150 void MeshSerializer::importMesh( DataStreamPtr &stream, Mesh *pDest )
151 {
152 determineEndianness( stream );
153
154 // Read header and determine the version
155 unsigned short headerID;
156
157 // Read header ID
158 readShorts( stream, &headerID, 1 );
159
160 if( headerID != HEADER_CHUNK_ID )
161 {
162 OGRE_EXCEPT( Exception::ERR_INTERNAL_ERROR, "File header not found",
163 "MeshSerializer::importMesh" );
164 }
165 // Read version
166 String ver = readString( stream );
167 // Jump back to start
168 stream->seek( 0 );
169
170 // Find the implementation to use
171 MeshSerializerImpl *impl = 0;
172 for( MeshVersionDataList::iterator i = mVersionData.begin(); i != mVersionData.end(); ++i )
173 {
174 if( ( *i )->versionString == ver )
175 {
176 impl = ( *i )->impl;
177 break;
178 }
179 }
180 if( !impl )
181 {
182 OGRE_EXCEPT( Exception::ERR_INTERNAL_ERROR,
183 "Cannot find serializer implementation for "
184 "mesh version " +
185 ver,
186 "MeshSerializer::importMesh" );
187 }
188
189 // Call implementation
190 impl->importMesh( stream, pDest, mListener );
191 // Warn on old version of mesh
192 if( ver != mVersionData[0]->versionString )
193 {
194 LogManager::getSingleton().logMessage(
195 "WARNING: " + pDest->getName() + " is an older format (" + ver +
196 "); you should upgrade it as soon as possible" + " using the OgreMeshTool tool.",
197 LML_CRITICAL );
198 }
199
200 if( mListener )
201 mListener->processMeshCompleted( pDest );
202 }
203 //---------------------------------------------------------------------
204 void MeshSerializer::setListener( MeshSerializerListener *listener ) { mListener = listener; }
205 //-------------------------------------------------------------------------

Callers 2

loadImplMethod · 0.45
loadImplMethod · 0.45

Calls 5

seekMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
logMessageMethod · 0.45
getNameMethod · 0.45

Tested by

no test coverage detected