transformToUnitCube returns bool (false when transform instance can't be found)
This commit is contained in:
@@ -11,7 +11,7 @@ extern "C"
|
|||||||
EMSCRIPTEN_KEEPALIVE double4x4 TransformManager_getLocalTransform(TTransformManager *tTransformManager, EntityId entityId);
|
EMSCRIPTEN_KEEPALIVE double4x4 TransformManager_getLocalTransform(TTransformManager *tTransformManager, EntityId entityId);
|
||||||
EMSCRIPTEN_KEEPALIVE double4x4 TransformManager_getWorldTransform(TTransformManager *tTransformManager, EntityId entityId);
|
EMSCRIPTEN_KEEPALIVE double4x4 TransformManager_getWorldTransform(TTransformManager *tTransformManager, EntityId entityId);
|
||||||
EMSCRIPTEN_KEEPALIVE void TransformManager_setTransform(TTransformManager *tTransformManager, EntityId entityId, double4x4 transform);
|
EMSCRIPTEN_KEEPALIVE void TransformManager_setTransform(TTransformManager *tTransformManager, EntityId entityId, double4x4 transform);
|
||||||
EMSCRIPTEN_KEEPALIVE void TransformManager_transformToUnitCube(TTransformManager *tTransformManager, EntityId entityId, Aabb3 boundingBox);
|
EMSCRIPTEN_KEEPALIVE bool TransformManager_transformToUnitCube(TTransformManager *tTransformManager, EntityId entityId, Aabb3 boundingBox);
|
||||||
EMSCRIPTEN_KEEPALIVE void TransformManager_setParent(TTransformManager *tTransformManager, EntityId child, EntityId parent, bool preserveScaling);
|
EMSCRIPTEN_KEEPALIVE void TransformManager_setParent(TTransformManager *tTransformManager, EntityId child, EntityId parent, bool preserveScaling);
|
||||||
EMSCRIPTEN_KEEPALIVE EntityId TransformManager_getParent(TTransformManager *tTransformManager, EntityId child);
|
EMSCRIPTEN_KEEPALIVE EntityId TransformManager_getParent(TTransformManager *tTransformManager, EntityId child);
|
||||||
EMSCRIPTEN_KEEPALIVE EntityId TransformManager_getAncestor(TTransformManager *tTransformManager, EntityId childEntityId);
|
EMSCRIPTEN_KEEPALIVE EntityId TransformManager_getAncestor(TTransformManager *tTransformManager, EntityId childEntityId);
|
||||||
|
|||||||
@@ -62,14 +62,15 @@ extern "C"
|
|||||||
transformManager->setTransform(transformInstance, convert_double4x4_to_mat4(transform));
|
transformManager->setTransform(transformInstance, convert_double4x4_to_mat4(transform));
|
||||||
}
|
}
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE void TransformManager_transformToUnitCube(TTransformManager *tTransformManager, EntityId entityId, Aabb3 boundingBox) {
|
EMSCRIPTEN_KEEPALIVE bool TransformManager_transformToUnitCube(TTransformManager *tTransformManager, EntityId entityId, Aabb3 boundingBox) {
|
||||||
|
|
||||||
auto *transformManager = reinterpret_cast<filament::TransformManager*>(tTransformManager);
|
auto *transformManager = reinterpret_cast<filament::TransformManager*>(tTransformManager);
|
||||||
const auto &entity = utils::Entity::import(entityId);
|
const auto &entity = utils::Entity::import(entityId);
|
||||||
auto transformInstance = transformManager->getInstance(entity);
|
auto transformInstance = transformManager->getInstance(entity);
|
||||||
if (!transformInstance || !transformInstance.isValid())
|
if (!transformInstance || !transformInstance.isValid())
|
||||||
{
|
{
|
||||||
return;
|
Log("Failed to find valid transform for instance");
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto center = filament::math::float3 { boundingBox.centerX, boundingBox.centerY, boundingBox.centerZ };
|
auto center = filament::math::float3 { boundingBox.centerX, boundingBox.centerY, boundingBox.centerZ };
|
||||||
@@ -78,6 +79,7 @@ extern "C"
|
|||||||
auto scaleFactor = 2.0f / maxExtent;
|
auto scaleFactor = 2.0f / maxExtent;
|
||||||
auto transform = math::mat4f::scaling(scaleFactor) * math::mat4f::translation(-center);
|
auto transform = math::mat4f::scaling(scaleFactor) * math::mat4f::translation(-center);
|
||||||
transformManager->setTransform(transformInstance, transform);
|
transformManager->setTransform(transformInstance, transform);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE void TransformManager_setParent(TTransformManager *tTransformManager, EntityId childId, EntityId parentId, bool preserveScaling)
|
EMSCRIPTEN_KEEPALIVE void TransformManager_setParent(TTransformManager *tTransformManager, EntityId childId, EntityId parentId, bool preserveScaling)
|
||||||
|
|||||||
Reference in New Issue
Block a user