History

Merge pull request #12796 from MiladNazeri/feature/add-findByName

added Entities.findbyName

John Conklin II committed 8 years ago

Commit cb7b0362 parents 282d319 988dca42 files · +45 −0Browse files

Showing the changes to libraries/entities/src/EntityScriptingInterface.cpp (1 of 2 files). Show all

Unified · Split

libraries/entities/src/EntityScriptingInterface.cpp+30−0
@@ -766,6 +766,36 @@ QVector<QUuid> EntityScriptingInterface::findEntitiesByType(const QString entity · 765 unmodified lines
766766 return result;
767767 }
768768
769+QVector<QUuid> EntityScriptingInterface::findEntitiesByName(const QString entityName, const glm::vec3& center, float radius, bool caseSensitiveSearch) const {
770+
771+ QVector<QUuid> result;
772+ if (_entityTree) {
773+ QVector<EntityItemPointer> entities;
774+ _entityTree->withReadLock([&] {
775+ _entityTree->findEntities(center, radius, entities);
776+ });
777+
778+ if (caseSensitiveSearch) {
779+ foreach(EntityItemPointer entity, entities) {
780+ if (entity->getName() == entityName) {
781+ result << entity->getEntityItemID();
782+ }
783+ }
784+
785+ } else {
786+ QString entityNameLowerCase = entityName.toLower();
787+
788+ foreach(EntityItemPointer entity, entities) {
789+ QString entityItemLowerCase = entity->getName().toLower();
790+ if (entityItemLowerCase == entityNameLowerCase) {
791+ result << entity->getEntityItemID();
792+ }
793+ }
794+ }
795+ }
796+ return result;
797+}
798+
769799 RayToEntityIntersectionResult EntityScriptingInterface::findRayIntersection(const PickRay& ray, bool precisionPicking,
770800 const QScriptValue& entityIdsToInclude, const QScriptValue& entityIdsToDiscard, bool visibleOnly, bool collidableOnly) {
771801 QVector<EntityItemID> entitiesToInclude = qVectorEntityItemIDFromScriptValue(entityIdsToInclude);