bool quadtree::add(gameObject *obj) { auto tc = obj->get<textureComponent>(); if (tc) { auto pos = tc->getPosition(); auto size = tc->getSize(); if (_bound.intersects(sf::FloatRect(pos, size))) { if ((_objectsInNode.size() < _maxGameObjects && !_isBranch) || !(_level != _maxLevel)) { _objectsInNode.push_back(obj); return true; } if (!_nWest) { _isBranch = true; _divide(); } bool added = false; added |= _nWest->add(obj); added |= _nEast->add(obj); added |= _sWest->add(obj); added |= _sEast->add(obj); return added; } } return false; }
QJSValue THREEVector3::divide(QJSValue threeVector3) { THREEVector3 *vec = getAsTHREEVector3(threeVector3); if (!vec) { qDebug() << "THREEVector3::" << __FUNCTION__ << " parameter was not THREEVector3 was " << threeVector3.toQObject(); return m_engine->newQObject(this); } return m_engine->newQObject(_divide(vec)); }