def vertex_tangent_skin_half(v, vw): return struct.pack('<HHHHHHHHHHHHHHHHBBBBHHHH', half_float(v.position[0]), half_float(v.position[1]), half_float(v.position[2]), 0, half_float(v.normal[0]), half_float(v.normal[1]), half_float(v.normal[2]), 0, half_float(v.tangent[0]), half_float(v.tangent[1]), half_float(v.tangent[2]), 0, half_float(v.uv0[0]), half_float(v.uv0[1]), half_float(v.uv1[0]), half_float(v.uv1[1]), vw.bones[0], vw.bones[1], vw.bones[2], vw.bones[3], half_float(vw.weights[0]), half_float(vw.weights[1]), half_float(vw.weights[2]), half_float(vw.weights[3]))
def vertex_tangent_half(v): return struct.pack('<HHHHHHHHHHHHHHHH', half_float(v.position[0]), half_float(v.position[1]), half_float(v.position[2]), 0, half_float(v.normal[0]), half_float(v.normal[1]), half_float(v.normal[2]), 0, half_float(v.tangent[0]), half_float(v.tangent[1]), half_float(v.tangent[2]), 0, half_float(v.uv0[0]), half_float(v.uv0[1]), half_float(v.uv1[0]), half_float(v.uv1[1]))