History

Merge branch 'master' of github.com:highfidelity/hifi into set-model-entity-joints

Seth Alves committed 10 years ago

Commit fe0a6562 parents 4e312dd 9276c7870 files · +7261 −1565Browse files

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

Unified · Split

libraries/entities/src/EntityScriptingInterface.cpp+10−8
@@ -357,19 +357,21 @@ QVector<QUuid> EntityScriptingInterface::findEntitiesInBox(const glm::vec3& corn · 356 unmodified lines
357357 return result;
358358 }
359359
360−RayToEntityIntersectionResult EntityScriptingInterface::findRayIntersection(const PickRay& ray, bool precisionPicking, const QScriptValue& entityIdsToInclude) {
361− QVector<EntityItemID> entities = qVectorEntityItemIDFromScriptValue(entityIdsToInclude);
362− return findRayIntersectionWorker(ray, Octree::TryLock, precisionPicking, entities);
360+RayToEntityIntersectionResult EntityScriptingInterface::findRayIntersection(const PickRay& ray, bool precisionPicking, const QScriptValue& entityIdsToInclude, const QScriptValue& entityIdsToDiscard) {
361+ QVector<EntityItemID> entitiesToInclude = qVectorEntityItemIDFromScriptValue(entityIdsToInclude);
362+ QVector<EntityItemID> entitiesToDiscard = qVectorEntityItemIDFromScriptValue(entityIdsToDiscard);
363+ return findRayIntersectionWorker(ray, Octree::TryLock, precisionPicking, entitiesToInclude, entitiesToDiscard);
363364 }
364365
365−RayToEntityIntersectionResult EntityScriptingInterface::findRayIntersectionBlocking(const PickRay& ray, bool precisionPicking, const QScriptValue& entityIdsToInclude) {
366− const QVector<EntityItemID>& entities = qVectorEntityItemIDFromScriptValue(entityIdsToInclude);
367− return findRayIntersectionWorker(ray, Octree::Lock, precisionPicking, entities);
366+RayToEntityIntersectionResult EntityScriptingInterface::findRayIntersectionBlocking(const PickRay& ray, bool precisionPicking, const QScriptValue& entityIdsToInclude, const QScriptValue& entityIdsToDiscard) {
367+ const QVector<EntityItemID>& entitiesToInclude = qVectorEntityItemIDFromScriptValue(entityIdsToInclude);
368+ const QVector<EntityItemID> entitiesToDiscard = qVectorEntityItemIDFromScriptValue(entityIdsToDiscard);
369+ return findRayIntersectionWorker(ray, Octree::Lock, precisionPicking, entitiesToInclude, entitiesToDiscard);
368370 }
369371
370372 RayToEntityIntersectionResult EntityScriptingInterface::findRayIntersectionWorker(const PickRay& ray,
371373 Octree::lockType lockType,
372− bool precisionPicking, const QVector<EntityItemID>& entityIdsToInclude) {
374+ bool precisionPicking, const QVector<EntityItemID>& entityIdsToInclude, const QVector<EntityItemID>& entityIdsToDiscard) {
373375
374376
375377 RayToEntityIntersectionResult result;
@@ -377,7 +379,7 @@ RayToEntityIntersectionResult EntityScriptingInterface::findRayIntersectionWorke · 1 unmodified line
377379 OctreeElementPointer element;
378380 EntityItemPointer intersectedEntity = NULL;
379381 result.intersects = _entityTree->findRayIntersection(ray.origin, ray.direction, element, result.distance, result.face,
380− result.surfaceNormal, entityIdsToInclude, (void**)&intersectedEntity, lockType, &result.accurate,
382+ result.surfaceNormal, entityIdsToInclude, entityIdsToDiscard, (void**)&intersectedEntity, lockType, &result.accurate,
381383 precisionPicking);
382384 if (result.intersects && intersectedEntity) {
383385 result.entityID = intersectedEntity->getEntityItemID();