mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 19:36:45 +02:00
fix collision shape for scaled models
This commit is contained in:
parent
ab3548cac0
commit
f444b70fdc
1 changed files with 5 additions and 5 deletions
|
@ -713,7 +713,7 @@ void RenderableModelEntityItem::computeShapeInfo(ShapeInfo& info) {
|
||||||
ShapeInfo::TriangleIndices& triangleIndices = info.getTriangleIndices();
|
ShapeInfo::TriangleIndices& triangleIndices = info.getTriangleIndices();
|
||||||
auto& meshes = _model->getGeometry()->getGeometry()->getMeshes();
|
auto& meshes = _model->getGeometry()->getGeometry()->getMeshes();
|
||||||
|
|
||||||
glm::vec3 modelOffset = _model->getOffset();
|
glm::vec3 scaledModelOffset = _model->getOffset() * _model->getScale();
|
||||||
for (auto& mesh : meshes) {
|
for (auto& mesh : meshes) {
|
||||||
const gpu::BufferView& vertices = mesh->getVertexBuffer();
|
const gpu::BufferView& vertices = mesh->getVertexBuffer();
|
||||||
const gpu::BufferView& indices = mesh->getIndexBuffer();
|
const gpu::BufferView& indices = mesh->getIndexBuffer();
|
||||||
|
@ -730,16 +730,16 @@ void RenderableModelEntityItem::computeShapeInfo(ShapeInfo& info) {
|
||||||
++vertexItr;
|
++vertexItr;
|
||||||
}
|
}
|
||||||
|
|
||||||
// scale points and shift by modelOffset
|
// scale and shift
|
||||||
glm::vec3 extentsSize = extents.size();
|
glm::vec3 extentsSize = extents.size();
|
||||||
glm::vec3 scale = dimensions / extents.size();
|
glm::vec3 scaleToFit = dimensions / extents.size();
|
||||||
for (int i = 0; i < 3; ++i) {
|
for (int i = 0; i < 3; ++i) {
|
||||||
if (extentsSize[i] < 1.0e-6f) {
|
if (extentsSize[i] < 1.0e-6f) {
|
||||||
scale[i] = 1.0f;
|
scaleToFit[i] = 1.0f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (int i = 0; i < points.size(); ++i) {
|
for (int i = 0; i < points.size(); ++i) {
|
||||||
points[i] = (points[i] * scale) + modelOffset;
|
points[i] = (points[i] * scaleToFit) + scaledModelOffset;
|
||||||
}
|
}
|
||||||
|
|
||||||
// copy triangleIndices
|
// copy triangleIndices
|
||||||
|
|
Loading…
Reference in a new issue