Iterating over Material Objects

From C4 Engine Wiki

Jump to: navigation, search

The following code iterates through the nodes belonging to a model and visits each material object used by any geometries in the model.

void IterateMaterials(Model *model)
{
    Node *node = model->GetFirstSubnode();
    while (node)
    {
        if (node->GetNodeType() == kNodeGeometry)
        {
            Geometry *geometry = static_cast<Geometry *>(node);
            long count = geometry->GetMaterialCount();
            for (long index = 0; index < count; index++)
            {
                MaterialObject *material = geometry->GetMaterialObject(index);
                // do something with the material
            }
        }
 
        node = model->GetNextNode(node);
    }
}
Personal tools