Я пытаюсь упростить логику, используемую для вычисления смещения моих свойств вершин.
Существует следующий дикт, который объявляет свойства вершин и pyglm
типы:
__vertex_props__ = {
'position': glm.vec3,
'normal': glm.vec3,
'tex_coord': glm.vec2
}
, и в результате я хочу создать dict, связывающий смещения c каждого из реквизитов:
{'position': 0, 'normal': 12, 'tex_coord': 12}
Мне удалось создать эту формулу, чтобы добиться этого:
OFFSETOF = dict([(next(iter(__vertex_props__.keys())), 0)] + [(prop[0], int(glm.sizeof(__vertex_props__[list(__vertex_props__)[i-1]]))) for i, prop in enumerate(__vertex_props__.items()) if i > 0])
И мне интересно, есть ли более простой способ добиться того же результата.