Add flip flag for collision triangles

This commit is contained in:
Jack Andersen 2017-12-08 19:15:26 -10:00
parent 0423e38676
commit a60a02a31e
4 changed files with 7 additions and 3 deletions

View File

@ -329,7 +329,10 @@ def cookcol(writebuf, mesh_obj):
edge_idxs = [] edge_idxs = []
for loopi in p.loop_indices: for loopi in p.loop_indices:
edge_idxs.append(copy_mesh.loops[loopi].edge_index) edge_idxs.append(copy_mesh.loops[loopi].edge_index)
writebuf(struct.pack('IIII', edge_idxs[0], edge_idxs[1], edge_idxs[2], p.material_index)) l0 = copy_mesh.loops[p.loop_indices[0]]
e0 = copy_mesh.edges[l0.edge_index]
flip = l0.vertex_index != e0.vertices[0]
writebuf(struct.pack('IIIIb', edge_idxs[0], edge_idxs[1], edge_idxs[2], p.material_index, flip))
# Delete copied mesh from scene # Delete copied mesh from scene
bpy.context.scene.objects.unlink(copy_obj) bpy.context.scene.objects.unlink(copy_obj)

2
hecl/extern/boo vendored

@ -1 +1 @@
Subproject commit 1259255f34f3b5bf370fd8b1a87d52a3de87ec57 Subproject commit 2db777eead15d599d774820b8065c8125bfa2907

View File

@ -671,6 +671,7 @@ public:
{ {
uint32_t edges[3]; uint32_t edges[3];
uint32_t matIdx; uint32_t matIdx;
bool flip;
Triangle(BlenderConnection& conn); Triangle(BlenderConnection& conn);
}; };
std::vector<Triangle> trianges; std::vector<Triangle> trianges;

View File

@ -1092,7 +1092,7 @@ BlenderConnection::DataStream::ColMesh::Edge::Edge(BlenderConnection& conn)
BlenderConnection::DataStream::ColMesh::Triangle::Triangle(BlenderConnection& conn) BlenderConnection::DataStream::ColMesh::Triangle::Triangle(BlenderConnection& conn)
{ {
conn._readBuf(this, 16); conn._readBuf(this, 17);
} }
BlenderConnection::DataStream::World::Area::Dock::Dock(BlenderConnection& conn) BlenderConnection::DataStream::World::Area::Dock::Dock(BlenderConnection& conn)