This commit is contained in:
aozhiwei 2023-03-30 21:38:43 +08:00
parent 8ddc136531
commit 92d4c9429d
2 changed files with 38 additions and 10 deletions

View File

@ -126,6 +126,7 @@ namespace mc
{
node->name
});
childs[node->name] = node;
#else
A8_ABORT();
#endif

View File

@ -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);
}
};