mirror of
https://github.com/overte-org/overte.git
synced 2025-08-12 14:14:16 +02:00
don't compute shape info until both render and collision geometries are fully loaded
This commit is contained in:
parent
f969517ab0
commit
8479f0d4c1
1 changed files with 10 additions and 3 deletions
|
@ -297,10 +297,17 @@ bool RenderableModelEntityItem::isReadyToComputeShape() {
|
||||||
// no collision-model url, so we're ready to compute a shape (of type None).
|
// no collision-model url, so we're ready to compute a shape (of type None).
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
if (_model->getURL().isEmpty()) {
|
||||||
|
// we need a render geometry with a scale to proceed, so give up.
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
const QSharedPointer<NetworkGeometry> collisionNetworkGeometry = _model->getCollisionGeometry();
|
const QSharedPointer<NetworkGeometry> collisionNetworkGeometry = _model->getCollisionGeometry();
|
||||||
if (! collisionNetworkGeometry.isNull() && collisionNetworkGeometry->isLoadedWithTextures()) {
|
const QSharedPointer<NetworkGeometry> renderNetworkGeometry = _model->getGeometry();
|
||||||
// we have a _collisionModelURL AND a collisionNetworkGeometry AND it's fully loaded.
|
|
||||||
|
if ((! collisionNetworkGeometry.isNull() && collisionNetworkGeometry->isLoadedWithTextures()) &&
|
||||||
|
(! renderNetworkGeometry.isNull() && renderNetworkGeometry->isLoadedWithTextures())) {
|
||||||
|
// we have both URLs AND both geometries AND they are both fully loaded.
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -309,7 +316,7 @@ bool RenderableModelEntityItem::isReadyToComputeShape() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenderableModelEntityItem::computeShapeInfo(ShapeInfo& info) {
|
void RenderableModelEntityItem::computeShapeInfo(ShapeInfo& info) {
|
||||||
if (_model->getCollisionURL().isEmpty()) {
|
if (_model->getCollisionURL().isEmpty() || _model->getURL().isEmpty()) {
|
||||||
info.setParams(getShapeType(), 0.5f * getDimensions());
|
info.setParams(getShapeType(), 0.5f * getDimensions());
|
||||||
} else {
|
} else {
|
||||||
const QSharedPointer<NetworkGeometry> collisionNetworkGeometry = _model->getCollisionGeometry();
|
const QSharedPointer<NetworkGeometry> collisionNetworkGeometry = _model->getCollisionGeometry();
|
||||||
|
|
Loading…
Reference in a new issue