remove dynamic_cast's from COB loader.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@655 67173fc5-114c-0410-ac8e-9d2fd5bffc1fpull/1/head
parent
a391303910
commit
d1bebeba8e
|
@ -152,22 +152,22 @@ void COBImporter::InternReadFile( const std::string& pFile,
|
||||||
|
|
||||||
// sort faces by material indices
|
// sort faces by material indices
|
||||||
for_each(boost::shared_ptr< Node >& n,scene.nodes) {
|
for_each(boost::shared_ptr< Node >& n,scene.nodes) {
|
||||||
try {
|
if (n->type == Node::TYPE_MESH) {
|
||||||
Mesh& mesh = dynamic_cast<Mesh&>(*n.get());
|
Mesh& mesh = (Mesh&)(*n.get());
|
||||||
for_each(Face& f,mesh.faces) {
|
for_each(Face& f,mesh.faces) {
|
||||||
mesh.temp_map[f.material].push_back(&f);
|
mesh.temp_map[f.material].push_back(&f);
|
||||||
}
|
}
|
||||||
} catch (std::bad_cast&) {}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// count meshes
|
// count meshes
|
||||||
for_each(boost::shared_ptr< Node >& n,scene.nodes) {
|
for_each(boost::shared_ptr< Node >& n,scene.nodes) {
|
||||||
try {
|
if (n->type == Node::TYPE_MESH) {
|
||||||
Mesh& mesh = dynamic_cast<Mesh&>(*n.get());
|
Mesh& mesh = (Mesh&)(*n.get());
|
||||||
if (mesh.vertex_positions.size() && mesh.texture_coords.size()) {
|
if (mesh.vertex_positions.size() && mesh.texture_coords.size()) {
|
||||||
pScene->mNumMeshes += mesh.temp_map.size();
|
pScene->mNumMeshes += mesh.temp_map.size();
|
||||||
}
|
}
|
||||||
} catch (std::bad_cast&) {}
|
}
|
||||||
}
|
}
|
||||||
pScene->mMeshes = new aiMesh*[pScene->mNumMeshes]();
|
pScene->mMeshes = new aiMesh*[pScene->mNumMeshes]();
|
||||||
pScene->mMaterials = new aiMaterial*[pScene->mNumMeshes]();
|
pScene->mMaterials = new aiMaterial*[pScene->mNumMeshes]();
|
||||||
|
@ -228,7 +228,7 @@ aiNode* COBImporter::BuildNodes(const Node& root,const Scene& scin,aiScene* fill
|
||||||
// Note to everybody believing Voodoo is appropriate here:
|
// Note to everybody believing Voodoo is appropriate here:
|
||||||
// I know polymorphism, run as fast as you can ;-)
|
// I know polymorphism, run as fast as you can ;-)
|
||||||
if (Node::TYPE_MESH == root.type) {
|
if (Node::TYPE_MESH == root.type) {
|
||||||
const Mesh& ndmesh = dynamic_cast<const Mesh&>(root);
|
const Mesh& ndmesh = (const Mesh&)(root);
|
||||||
if (ndmesh.vertex_positions.size() && ndmesh.texture_coords.size()) {
|
if (ndmesh.vertex_positions.size() && ndmesh.texture_coords.size()) {
|
||||||
|
|
||||||
typedef std::pair<unsigned int,Mesh::FaceRefList> Entry;
|
typedef std::pair<unsigned int,Mesh::FaceRefList> Entry;
|
||||||
|
@ -349,7 +349,7 @@ aiNode* COBImporter::BuildNodes(const Node& root,const Scene& scin,aiScene* fill
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (Node::TYPE_LIGHT == root.type) {
|
else if (Node::TYPE_LIGHT == root.type) {
|
||||||
const Light& ndlight = dynamic_cast<const Light&>(root);
|
const Light& ndlight = (const Light&)(root);
|
||||||
aiLight* outlight = fill->mLights[fill->mNumLights++] = new aiLight();
|
aiLight* outlight = fill->mLights[fill->mNumLights++] = new aiLight();
|
||||||
|
|
||||||
outlight->mName.Set(ndlight.name);
|
outlight->mName.Set(ndlight.name);
|
||||||
|
@ -362,7 +362,7 @@ aiNode* COBImporter::BuildNodes(const Node& root,const Scene& scin,aiScene* fill
|
||||||
outlight->mType = ndlight.ltype==Light::SPOT ? aiLightSource_SPOT : aiLightSource_DIRECTIONAL;
|
outlight->mType = ndlight.ltype==Light::SPOT ? aiLightSource_SPOT : aiLightSource_DIRECTIONAL;
|
||||||
}
|
}
|
||||||
else if (Node::TYPE_CAMERA == root.type) {
|
else if (Node::TYPE_CAMERA == root.type) {
|
||||||
const Camera& ndcam = dynamic_cast<const Camera&>(root);
|
const Camera& ndcam = (const Camera&)(root);
|
||||||
aiCamera* outcam = fill->mCameras[fill->mNumCameras++] = new aiCamera();
|
aiCamera* outcam = fill->mCameras[fill->mNumCameras++] = new aiCamera();
|
||||||
|
|
||||||
outcam->mName.Set(ndcam.name);
|
outcam->mName.Set(ndcam.name);
|
||||||
|
@ -659,7 +659,7 @@ void COBImporter::ReadLght_Ascii(Scene& out, LineSplitter& splitter, const Chunk
|
||||||
}
|
}
|
||||||
|
|
||||||
out.nodes.push_back(boost::shared_ptr<Light>(new Light()));
|
out.nodes.push_back(boost::shared_ptr<Light>(new Light()));
|
||||||
Light& msh = dynamic_cast<Light&>(*out.nodes.back().get());
|
Light& msh = (Light&)(*out.nodes.back().get());
|
||||||
msh = nfo;
|
msh = nfo;
|
||||||
|
|
||||||
ReadBasicNodeInfo_Ascii(msh,++splitter,nfo);
|
ReadBasicNodeInfo_Ascii(msh,++splitter,nfo);
|
||||||
|
@ -715,7 +715,7 @@ void COBImporter::ReadCame_Ascii(Scene& out, LineSplitter& splitter, const Chunk
|
||||||
}
|
}
|
||||||
|
|
||||||
out.nodes.push_back(boost::shared_ptr<Camera>(new Camera()));
|
out.nodes.push_back(boost::shared_ptr<Camera>(new Camera()));
|
||||||
Camera& msh = dynamic_cast<Camera&>(*out.nodes.back().get());
|
Camera& msh = (Camera&)(*out.nodes.back().get());
|
||||||
msh = nfo;
|
msh = nfo;
|
||||||
|
|
||||||
ReadBasicNodeInfo_Ascii(msh,++splitter,nfo);
|
ReadBasicNodeInfo_Ascii(msh,++splitter,nfo);
|
||||||
|
@ -733,7 +733,7 @@ void COBImporter::ReadBone_Ascii(Scene& out, LineSplitter& splitter, const Chunk
|
||||||
}
|
}
|
||||||
|
|
||||||
out.nodes.push_back(boost::shared_ptr<Bone>(new Bone()));
|
out.nodes.push_back(boost::shared_ptr<Bone>(new Bone()));
|
||||||
Bone& msh = dynamic_cast<Bone&>(*out.nodes.back().get());
|
Bone& msh = (Bone&)(*out.nodes.back().get());
|
||||||
msh = nfo;
|
msh = nfo;
|
||||||
|
|
||||||
ReadBasicNodeInfo_Ascii(msh,++splitter,nfo);
|
ReadBasicNodeInfo_Ascii(msh,++splitter,nfo);
|
||||||
|
@ -749,7 +749,7 @@ void COBImporter::ReadGrou_Ascii(Scene& out, LineSplitter& splitter, const Chunk
|
||||||
}
|
}
|
||||||
|
|
||||||
out.nodes.push_back(boost::shared_ptr<Group>(new Group()));
|
out.nodes.push_back(boost::shared_ptr<Group>(new Group()));
|
||||||
Group& msh = dynamic_cast<Group&>(*out.nodes.back().get());
|
Group& msh = (Group&)(*out.nodes.back().get());
|
||||||
msh = nfo;
|
msh = nfo;
|
||||||
|
|
||||||
ReadBasicNodeInfo_Ascii(msh,++splitter,nfo);
|
ReadBasicNodeInfo_Ascii(msh,++splitter,nfo);
|
||||||
|
@ -763,7 +763,7 @@ void COBImporter::ReadPolH_Ascii(Scene& out, LineSplitter& splitter, const Chunk
|
||||||
}
|
}
|
||||||
|
|
||||||
out.nodes.push_back(boost::shared_ptr<Mesh>(new Mesh()));
|
out.nodes.push_back(boost::shared_ptr<Mesh>(new Mesh()));
|
||||||
Mesh& msh = dynamic_cast<Mesh&>(*out.nodes.back().get());
|
Mesh& msh = (Mesh&)(*out.nodes.back().get());
|
||||||
msh = nfo;
|
msh = nfo;
|
||||||
|
|
||||||
ReadBasicNodeInfo_Ascii(msh,++splitter,nfo);
|
ReadBasicNodeInfo_Ascii(msh,++splitter,nfo);
|
||||||
|
@ -1019,7 +1019,7 @@ void COBImporter::ReadPolH_Binary(COB::Scene& out, StreamReaderLE& reader, const
|
||||||
const chunk_guard cn(nfo,reader);
|
const chunk_guard cn(nfo,reader);
|
||||||
|
|
||||||
out.nodes.push_back(boost::shared_ptr<Mesh>(new Mesh()));
|
out.nodes.push_back(boost::shared_ptr<Mesh>(new Mesh()));
|
||||||
Mesh& msh = dynamic_cast<Mesh&>(*out.nodes.back().get());
|
Mesh& msh = (Mesh&)(*out.nodes.back().get());
|
||||||
msh = nfo;
|
msh = nfo;
|
||||||
|
|
||||||
ReadBasicNodeInfo_Binary(msh,reader,nfo);
|
ReadBasicNodeInfo_Binary(msh,reader,nfo);
|
||||||
|
@ -1209,7 +1209,7 @@ void COBImporter::ReadCame_Binary(COB::Scene& out, StreamReaderLE& reader, const
|
||||||
const chunk_guard cn(nfo,reader);
|
const chunk_guard cn(nfo,reader);
|
||||||
|
|
||||||
out.nodes.push_back(boost::shared_ptr<Camera>(new Camera()));
|
out.nodes.push_back(boost::shared_ptr<Camera>(new Camera()));
|
||||||
Camera& msh = dynamic_cast<Camera&>(*out.nodes.back().get());
|
Camera& msh = (Camera&)(*out.nodes.back().get());
|
||||||
msh = nfo;
|
msh = nfo;
|
||||||
|
|
||||||
ReadBasicNodeInfo_Binary(msh,reader,nfo);
|
ReadBasicNodeInfo_Binary(msh,reader,nfo);
|
||||||
|
@ -1232,7 +1232,7 @@ void COBImporter::ReadLght_Binary(COB::Scene& out, StreamReaderLE& reader, const
|
||||||
const chunk_guard cn(nfo,reader);
|
const chunk_guard cn(nfo,reader);
|
||||||
|
|
||||||
out.nodes.push_back(boost::shared_ptr<Light>(new Light()));
|
out.nodes.push_back(boost::shared_ptr<Light>(new Light()));
|
||||||
Light& msh = dynamic_cast<Light&>(*out.nodes.back().get());
|
Light& msh = (Light&)(*out.nodes.back().get());
|
||||||
msh = nfo;
|
msh = nfo;
|
||||||
|
|
||||||
ReadBasicNodeInfo_Binary(msh,reader,nfo);
|
ReadBasicNodeInfo_Binary(msh,reader,nfo);
|
||||||
|
@ -1248,7 +1248,7 @@ void COBImporter::ReadGrou_Binary(COB::Scene& out, StreamReaderLE& reader, const
|
||||||
const chunk_guard cn(nfo,reader);
|
const chunk_guard cn(nfo,reader);
|
||||||
|
|
||||||
out.nodes.push_back(boost::shared_ptr<Group>(new Group()));
|
out.nodes.push_back(boost::shared_ptr<Group>(new Group()));
|
||||||
Group& msh = dynamic_cast<Group&>(*out.nodes.back().get());
|
Group& msh = (Group&)(*out.nodes.back().get());
|
||||||
msh = nfo;
|
msh = nfo;
|
||||||
|
|
||||||
ReadBasicNodeInfo_Binary(msh,reader,nfo);
|
ReadBasicNodeInfo_Binary(msh,reader,nfo);
|
||||||
|
|
Loading…
Reference in New Issue