def write(self, writer, base_address):
pos = writer.tell()
writer.seek(0, io.SEEK_END)
end_position = writer.tell()
if self.is_leaf:
# Write the offset back at this nodes address.
writer.seek(pos)
writer.write_uint32((end_position - base_address - 2) | 0x80000000)
writer.seek(end_position + 4)
# Write the triangle indices and terminate the list with 0xFFFF.
writer.write_uint16s(self.indices)
writer.write_uint16(0xFFFF)
else:
writer.seek(pos)
writer.write_uint32(end_position - base_address)
writer.seek(end_position + 4)
base = writer.tell()
writer.write_uint32s([0x00000000] * 8)
writer.seek(base)
for node in self.branches:
node.write(writer, base)
writer.seek(pos + 4)
评论列表
文章目录