LPCSTR CEditableObject::GenerateSurfaceName(const char* base_name) { static string1024 nm; strcpy(nm, base_name); if (FindSurfaceByName(nm)){ DWORD idx=0; do{ sprintf(nm,"%s_%d",base_name,idx); idx++; }while(FindSurfaceByName(nm)); } return nm; }
int CEditableObject::GetSurfFaceCount(const char* surf_name){ int cnt=0; CSurface* surf = FindSurfaceByName(surf_name); for(EditMeshIt m = m_Meshes.begin();m!=m_Meshes.end();m++) cnt+=(*m)->GetSurfFaceCount(surf); return cnt; }
CSurface* CEditableObject::CreateSurface(LPCSTR m_name, SXRShaderData& d) { CSurface* S = FindSurfaceByName(m_name); if (!S){ S = new CSurface(); S->SetName (m_name); if (!ParseMAMaterial(S,d)){ xr_delete(S); return 0; } m_Surfaces.push_back(S); } return S; }