如何在sketchup中获取组的Material?

how to get the Material of group in sketchup?

我已经完成了遍历一组中的实体,获取所有面孔,然后获取每张面孔的 material。但是,如果material属于一个组,那么脸上就没有material了。在这种情况下,如何获得组的 material?我用的是CAPI.

我找到答案了,将组对象转化为实体,然后通过SUTextureWriterLoadEntity方法获取实体的纹理。

SUGroupRef _group;
long EntityTextureId = 0;    
SUTextureWriterLoadEntity(m_uvWrite, SUGroupToEntity(_group), &EntityTextureId)

一张脸可以有正面 material(和背面 material),并且仍然可以与一组 material 在一起。事实上这很常见。在这种情况下,人脸 material 优先于组 material.

SU_RESULT SUFaceGetFrontMaterial(SUFaceRef face, SUMaterialRef* material);
SU_RESULT SUFaceGetBackMaterial(SUFaceRef face, SUMaterialRef* material);

此外,还有一种更直接的方法可以获取组的material。

SUDrawingElementRef draw = SUGroupToDrawingElement(group);
SUMaterialRef material = SU_INVALID;
SUDrawingElementGetMaterial(draw, &material);