123
This commit is contained in:
56
Editor/MaterialEnum.cpp
Normal file
56
Editor/MaterialEnum.cpp
Normal file
@@ -0,0 +1,56 @@
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Crytek Engine Source File.
|
||||
// Copyright (C), Crytek Studios, 2001.
|
||||
// -------------------------------------------------------------------------
|
||||
// File name: MaterialEnum.cpp
|
||||
// Version: v1.00
|
||||
// Created: 7/12/2001 by Timur.
|
||||
// Compilers: Visual C++ 6.0
|
||||
// Description: Enumerate Installed Materials.
|
||||
// -------------------------------------------------------------------------
|
||||
// History:
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "StdAfx.h"
|
||||
#include "MaterialEnum.h"
|
||||
#include "I3DEngine.h"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
CMaterialEnum::CMaterialEnum()
|
||||
{
|
||||
m_bEnumerated = false;
|
||||
}
|
||||
|
||||
CMaterialEnum::~CMaterialEnum()
|
||||
{
|
||||
}
|
||||
|
||||
inline bool StringLess( const CString &s1,const CString &s2 )
|
||||
{
|
||||
return stricmp( s1,s2 ) < 0;
|
||||
}
|
||||
|
||||
//! Enum Materials.
|
||||
int CMaterialEnum::EnumMaterials()
|
||||
{
|
||||
m_materials.clear();
|
||||
I3DEngine *p3DEngine = GetIEditor()->Get3DEngine();
|
||||
if (!p3DEngine)
|
||||
return 0;
|
||||
|
||||
IPhysMaterialEnumerator *pMtls = p3DEngine->GetPhysMaterialEnumerator();
|
||||
if (!pMtls)
|
||||
return 0;
|
||||
|
||||
for (int i = 0; i < pMtls->GetMaterialCount(); i++)
|
||||
{
|
||||
const char *sMaterial = pMtls->GetMaterialNameByIndex(i);
|
||||
if (sMaterial && strlen(sMaterial) > 0)
|
||||
m_materials.push_back(sMaterial);
|
||||
}
|
||||
|
||||
std::sort( m_materials.begin(),m_materials.end(),StringLess );
|
||||
return m_materials.size();
|
||||
}
|
||||
Reference in New Issue
Block a user