collider
This commit is contained in:
parent
8ddc136531
commit
92d4c9429d
@ -126,6 +126,7 @@ namespace mc
|
||||
{
|
||||
node->name
|
||||
});
|
||||
childs[node->name] = node;
|
||||
#else
|
||||
A8_ABORT();
|
||||
#endif
|
||||
|
@ -870,19 +870,46 @@ void MapInstance::LoadHouse()
|
||||
map_service_->AddTriangle(&tri);
|
||||
}//end for i
|
||||
} else if (c->type == mc::kBoxCollider) {
|
||||
mc::BoxCollider* box_collider = (mc::BoxCollider*)c;
|
||||
std::vector<glm::vec3> new_points;
|
||||
mc::RotateBounds(box_collider->center,
|
||||
box_collider->size,
|
||||
node->transform.local_rotation,
|
||||
new_points
|
||||
);
|
||||
box_collider->triangles.reserve(2 * 8);
|
||||
mc::BoxCollider* box_collider = (mc::BoxCollider*)c;
|
||||
if (node->name == "") {
|
||||
printf("node->name %f,%f,%f %f,%f,%f\n",
|
||||
node->name.c_str(),
|
||||
box_collider->center.x,
|
||||
box_collider->center.y,
|
||||
box_collider->center.z,
|
||||
box_collider->size.x,
|
||||
box_collider->size.y
|
||||
box_collider->size.z);
|
||||
}
|
||||
std::vector<glm::vec3> new_points;
|
||||
mc::RotateBounds(box_collider->center,
|
||||
box_collider->size,
|
||||
node->transform.local_rotation,
|
||||
new_points
|
||||
);
|
||||
box_collider->triangles.reserve(2 * 6);
|
||||
for (int i = 0; i < 12; ++i) {
|
||||
auto& tri = a8::FastAppend(box_collider->triangles);
|
||||
tri.node = node;
|
||||
tri.vert0 = new_points[box_tri_arr[i][0]];
|
||||
tri.vert1 = new_points[box_tri_arr[i][1]];
|
||||
tri.vert2 = new_points[box_tri_arr[i][2]];
|
||||
tri.min_y = tri.vert0.y;
|
||||
tri.max_y = tri.vert0.y;
|
||||
for (int ii = 1; ii < 3; ++ii) {
|
||||
float y = new_points[box_tri_arr[i][ii]].y;
|
||||
if (y < tri.min_y) {
|
||||
tri.min_y = y;
|
||||
}
|
||||
if (y > tri.max_y) {
|
||||
}
|
||||
} //endif ii
|
||||
tri.min_y -= 1.0f;
|
||||
tri.max_y += 1.0f;
|
||||
map_service_->AddTriangle(&tri);
|
||||
}//endif
|
||||
}//end forc
|
||||
}//endif
|
||||
}//end forc
|
||||
}
|
||||
things_.push_back(node);
|
||||
}
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user