bool getentboundingbox(extentity &e, ivec &o, ivec &r) { switch(e.type) { case ET_EMPTY: return false; case ET_MAPMODEL: { LogicEntityPtr entity = LogicSystem::getLogicEntity(e); // INTENSITY model *m = entity.get() ? entity->getModel() : NULL; // INTENSITY if(m) { vec center, radius; m->boundbox(0, center, radius, entity.get()); // INTENSITY: entity rotatebb(center, radius, e.attr1); o = e.o; o.add(center); r = radius; r.add(1); o.sub(r); r.mul(2); break; } } // invisible mapmodels use entselradius default: o = e.o; o.sub(GETIV(entselradius)); r.x = r.y = r.z = GETIV(entselradius)*2; break; } return true; }
bool getentboundingbox(extentity &e, ivec &o, ivec &r) { switch(e.type) { case ET_EMPTY: return false; case ET_MAPMODEL: { model *m = loadmodel(NULL, e.attr[1]); if(m) { vec center, radius; m->boundbox(center, radius); rotatebb(center, radius, e.attr[0]); o = e.o; o.add(center); r = radius; r.add(1); o.sub(r); r.mul(2); break; } } // invisible mapmodels use entselradius default: o = e.o; o.sub(entselradius); r.x = r.y = r.z = entselradius*2; break; } return true; }