Example #1
0
bool CSceneObject::GetSummaryInfo(SSceneSummary* inf)
{
	inherited::GetSummaryInfo	(inf);
	CEditableObject* E 	= GetReference(); R_ASSERT(E);
	if (IsStatic()||IsMUStatic()){
        for(SurfaceIt 	s_it=E->m_Surfaces.begin(); s_it!=E->m_Surfaces.end(); s_it++){
			float area			= 0.f;
			float pixel_area	= 0.f;
            for(EditMeshIt m = E->Meshes().begin();m!=E->Meshes().end();m++){
            	area			+= (*m)->CalculateSurfaceArea(*s_it,true);
                pixel_area		+= (*m)->CalculateSurfacePixelArea(*s_it,true);
            }
            inf->AppendTexture(ChangeFileExt(AnsiString(*(*s_it)->m_Texture),"").LowerCase().c_str(),SSceneSummary::sttBase,area,pixel_area,E->m_LibName.c_str());
        }
        if (m_Flags.is(CEditableObject::eoUsingLOD)){
            inf->AppendTexture(E->GetLODTextureName().c_str(),SSceneSummary::sttLOD,0,0,"$LOD$");
            inf->lod_objects.insert	(E->m_LibName.c_str());
            inf->object_lod_ref_cnt++;
        }
        if (m_Flags.is(CEditableObject::eoMultipleUsage)){
            inf->mu_objects.insert(E->m_LibName.c_str());
            inf->object_mu_ref_cnt++;
        }

        inf->face_cnt		+= E->GetFaceCount	();
        inf->vert_cnt		+= E->GetVertexCount();
    }
	if (m_Flags.is(CEditableObject::eoHOM)){
    	inf->hom_face_cnt	+= E->GetFaceCount	();
    	inf->hom_vert_cnt	+= E->GetVertexCount();
    }
    if (m_Flags.is(CEditableObject::eoSoundOccluder)){
    	inf->snd_occ_face_cnt += E->GetFaceCount();
    	inf->snd_occ_vert_cnt += E->GetVertexCount();
    }
    inf->AppendObject	(E->GetName());
	return true;
}