@@ -135,6 +135,17 @@ AABB editor::SceneRender::getAABB(Entity entity, bool local){
135135}
136136
137137AABB editor::SceneRender::getFamilyAABB (Entity entity, float offset){
138+ Signature signature = scene->getSignature (entity);
139+ if (!signature.test (scene->getComponentId <Transform>())) {
140+ AABB entityAABB = getAABB (entity, false );
141+ if (!entityAABB.isNull () && !entityAABB.isInfinite ()) {
142+ Vector3 min = entityAABB.getMinimum () - Vector3 (offset);
143+ Vector3 max = entityAABB.getMaximum () + Vector3 (offset);
144+ entityAABB.setExtents (min, max);
145+ }
146+ return entityAABB;
147+ }
148+
138149 auto transforms = scene->getComponentArray <Transform>();
139150 size_t index = transforms->getIndex (entity);
140151
@@ -263,6 +274,15 @@ OBB editor::SceneRender::getOBB(Entity entity, bool local){
263274}
264275
265276OBB editor::SceneRender::getFamilyOBB (Entity entity, float offset){
277+ Signature signature = scene->getSignature (entity);
278+ if (!signature.test (scene->getComponentId <Transform>())) {
279+ OBB entityOBB = getOBB (entity, false );
280+ if (!entityOBB.isNull ()) {
281+ entityOBB.setHalfExtents (entityOBB.getHalfExtents () + Vector3 (offset));
282+ }
283+ return entityOBB;
284+ }
285+
266286 auto transforms = scene->getComponentArray <Transform>();
267287 size_t index = transforms->getIndex (entity);
268288
0 commit comments