History

support additional .extraInfo for ray intersections

humbletim committed 8 years ago

Commit a146b771 parent 61711f344 files · +181 −116Browse files

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

Unified · Split

libraries/entities/src/EntityScriptingInterface.cpp+7−7
@@ -778,13 +778,12 @@ RayToEntityIntersectionResult EntityScriptingInterface::findRayIntersectionWorke · 777 unmodified lines
778778 RayToEntityIntersectionResult result;
779779 if (_entityTree) {
780780 OctreeElementPointer element;
781− EntityItemPointer intersectedEntity = NULL;
782− result.intersects = _entityTree->findRayIntersection(ray.origin, ray.direction,
781+ result.entityID = _entityTree->findRayIntersection(ray.origin, ray.direction,
783782 entityIdsToInclude, entityIdsToDiscard, visibleOnly, collidableOnly, precisionPicking,
784783 element, result.distance, result.face, result.surfaceNormal,
785− (void**)&intersectedEntity, lockType, &result.accurate);
786− if (result.intersects && intersectedEntity) {
787− result.entityID = intersectedEntity->getEntityItemID();
784+ result.extraInfo, lockType, &result.accurate);
785+ result.intersects = !result.entityID.isNull();
786+ if (result.intersects) {
788787 result.intersection = ray.origin + (ray.direction * result.distance);
789788 }
790789 }
@@ -950,8 +949,7 @@ RayToEntityIntersectionResult::RayToEntityIntersectionResult() : · 159 unmodified lines
950949 accurate(true), // assume it's accurate
951950 entityID(),
952951 distance(0),
953− face(),
954− entity(NULL)
952+ face()
955953 {
956954 }
957955
@@ -998,6 +996,7 @@ QScriptValue RayToEntityIntersectionResultToScriptValue(QScriptEngine* engine, c · 40 unmodified lines
998996
999997 QScriptValue surfaceNormal = vec3toScriptValue(engine, value.surfaceNormal);
1000998 obj.setProperty("surfaceNormal", surfaceNormal);
999+ obj.setProperty("extraInfo", engine->toScriptValue(value.extraInfo));
10011000 return obj;
10021001 }
10031002
@@ -1033,6 +1032,7 @@ void RayToEntityIntersectionResultFromScriptValue(const QScriptValue& object, Ra · 29 unmodified lines
10331032 if (surfaceNormal.isValid()) {
10341033 vec3FromScriptValue(surfaceNormal, value.surfaceNormal);
10351034 }
1035+ value.extraInfo = object.property("extraInfo").toVariant().toMap();
10361036 }
10371037
10381038 bool EntityScriptingInterface::polyVoxWorker(QUuid entityID, std::function<bool(PolyVoxEntityItem&)> actor) {