如何在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);
我已经完成了遍历一组中的实体,获取所有面孔,然后获取每张面孔的 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);