Showing the changes to libraries/entities/src/EntityScriptingInterface.cpp (1 of 50 files). Show all
Unified · Split
| @@ -871,6 +871,30 @@ RayToEntityIntersectionResult EntityScriptingInterface::findRayIntersectionWorke · 870 unmodified lines | ||
| 871 | 871 | return result; |
| 872 | 872 | } |
| 873 | 873 | |
| 874 | +ParabolaToEntityIntersectionResult EntityScriptingInterface::findParabolaIntersectionVector(const PickParabola& parabola, bool precisionPicking, | |
| 875 | + const QVector<EntityItemID>& entityIdsToInclude, const QVector<EntityItemID>& entityIdsToDiscard, bool visibleOnly, bool collidableOnly) { | |
| 876 | + PROFILE_RANGE(script_entities, __FUNCTION__); | |
| 877 | + | |
| 878 | + return findParabolaIntersectionWorker(parabola, Octree::Lock, precisionPicking, entityIdsToInclude, entityIdsToDiscard, visibleOnly, collidableOnly); | |
| 879 | +} | |
| 880 | + | |
| 881 | +ParabolaToEntityIntersectionResult EntityScriptingInterface::findParabolaIntersectionWorker(const PickParabola& parabola, | |
| 882 | + Octree::lockType lockType, bool precisionPicking, const QVector<EntityItemID>& entityIdsToInclude, | |
| 883 | + const QVector<EntityItemID>& entityIdsToDiscard, bool visibleOnly, bool collidableOnly) { | |
| 884 | + | |
| 885 | + | |
| 886 | + ParabolaToEntityIntersectionResult result; | |
| 887 | + if (_entityTree) { | |
| 888 | + OctreeElementPointer element; | |
| 889 | + result.entityID = _entityTree->findParabolaIntersection(parabola, | |
| 890 | + entityIdsToInclude, entityIdsToDiscard, visibleOnly, collidableOnly, precisionPicking, | |
| 891 | + element, result.intersection, result.distance, result.parabolicDistance, result.face, result.surfaceNormal, | |
| 892 | + result.extraInfo, lockType, &result.accurate); | |
| 893 | + result.intersects = !result.entityID.isNull(); | |
| 894 | + } | |
| 895 | + return result; | |
| 896 | +} | |
| 897 | + | |
| 874 | 898 | bool EntityScriptingInterface::reloadServerScripts(QUuid entityID) { |
| 875 | 899 | auto client = DependencyManager::get<EntityScriptClient>(); |
| 876 | 900 | return client->reloadServerScript(entityID); |
| @@ -1025,15 +1049,6 @@ bool EntityScriptingInterface::getDrawZoneBoundaries() const { · 148 unmodified lines | ||
| 1025 | 1049 | return ZoneEntityItem::getDrawZoneBoundaries(); |
| 1026 | 1050 | } |
| 1027 | 1051 | |
| 1028 | −RayToEntityIntersectionResult::RayToEntityIntersectionResult() : | |
| 1029 | − intersects(false), | |
| 1030 | − accurate(true), // assume it's accurate | |
| 1031 | − entityID(), | |
| 1032 | − distance(0), | |
| 1033 | − face() | |
| 1034 | −{ | |
| 1035 | −} | |
| 1036 | − | |
| 1037 | 1052 | QScriptValue RayToEntityIntersectionResultToScriptValue(QScriptEngine* engine, const RayToEntityIntersectionResult& value) { |
| 1038 | 1053 | PROFILE_RANGE(script_entities, __FUNCTION__); |
| 1039 | 1054 | |