History

addressed CR feedback

Thijs Wenker committed 8 years ago

Commit 80beb6c1 parent 1094b673 files · +74 −70Browse files

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

Unified · Split

libraries/entities/src/EntityScriptingInterface.cpp+39−41
@@ -427,51 +427,51 @@ QScriptValue EntityScriptingInterface::getMultipleEntityPropertiesInternal(QScri · 426 unmodified lines
427 EntityPsuedoPropertyFlags psuedoPropertyFlags;427 EntityPsuedoPropertyFlags psuedoPropertyFlags;
428 const auto readExtendedPropertyStringValue = [&](QScriptValue extendedProperty) {428 const auto readExtendedPropertyStringValue = [&](QScriptValue extendedProperty) {
429 const auto extendedPropertyString = extendedProperty.toString();429 const auto extendedPropertyString = extendedProperty.toString();
430 if (extendedPropertyString == QString("id")) {430 if (extendedPropertyString == "id") {
431 psuedoPropertyFlags |= EntityPsuedoPropertyFlag::id;431 psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::ID);
432 } else if (extendedPropertyString == QString("type")) {432 } else if (extendedPropertyString == "type") {
433 psuedoPropertyFlags |= EntityPsuedoPropertyFlag::type;433 psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::Type);
434 } else if (extendedPropertyString == QString("created")) {434 } else if (extendedPropertyString == "created") {
435 psuedoPropertyFlags |= EntityPsuedoPropertyFlag::created;435 psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::Created);
436 } else if (extendedPropertyString == QString("age")) {436 } else if (extendedPropertyString == "age") {
437 psuedoPropertyFlags |= EntityPsuedoPropertyFlag::age;437 psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::Age);
438 } else if (extendedPropertyString == QString("ageAsText")) {438 } else if (extendedPropertyString == "ageAsText") {
439 psuedoPropertyFlags |= EntityPsuedoPropertyFlag::ageAsText;439 psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::AgeAsText);
440 } else if (extendedPropertyString == QString("lastEdited")) {440 } else if (extendedPropertyString == "lastEdited") {
441 psuedoPropertyFlags |= EntityPsuedoPropertyFlag::lastEdited;441 psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::LastEdited);
442 } else if (extendedPropertyString == QString("boundingBox")) {442 } else if (extendedPropertyString == "boundingBox") {
443 psuedoPropertyFlags |= EntityPsuedoPropertyFlag::boundingBox;443 psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::BoundingBox);
444 } else if (extendedPropertyString == QString("originalTextures")) {444 } else if (extendedPropertyString == "originalTextures") {
445 psuedoPropertyFlags |= EntityPsuedoPropertyFlag::originalTextures;445 psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::OriginalTextures);
446 } else if (extendedPropertyString == QString("renderInfo")) {446 } else if (extendedPropertyString == "renderInfo") {
447 psuedoPropertyFlags |= EntityPsuedoPropertyFlag::renderInfo;447 psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::RenderInfo);
448 } else if (extendedPropertyString == QString("clientOnly")) {448 } else if (extendedPropertyString == "clientOnly") {
449 psuedoPropertyFlags |= EntityPsuedoPropertyFlag::clientOnly;449 psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::ClientOnly);
450 } else if (extendedPropertyString == QString("owningAvatarID")) {450 } else if (extendedPropertyString == "owningAvatarID") {
451 psuedoPropertyFlags |= EntityPsuedoPropertyFlag::owningAvatarID;451 psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::OwningAvatarID);
452 }452 }
453 };453 };
454 454
455 if (extendedDesiredProperties.isString()) {455 if (extendedDesiredProperties.isString()) {
456 readExtendedPropertyStringValue(extendedDesiredProperties);456 readExtendedPropertyStringValue(extendedDesiredProperties);
457 psuedoPropertyFlags |= EntityPsuedoPropertyFlag::flagsActive;457 psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::FlagsActive);
458 } else if (extendedDesiredProperties.isArray()) {458 } else if (extendedDesiredProperties.isArray()) {
459 const quint32 length = extendedDesiredProperties.property("length").toInt32();459 const quint32 length = extendedDesiredProperties.property("length").toInt32();
460 for (quint32 i = 0; i < length; i++) {460 for (quint32 i = 0; i < length; i++) {
461 readExtendedPropertyStringValue(extendedDesiredProperties.property(i));461 readExtendedPropertyStringValue(extendedDesiredProperties.property(i));
462 }462 }
463 psuedoPropertyFlags |= EntityPsuedoPropertyFlag::flagsActive;463 psuedoPropertyFlags.set(EntityPsuedoPropertyFlag::FlagsActive);
464 }464 }
465 465
466 EntityPropertyFlags desiredProperties = qScriptValueToValue<EntityPropertyFlags>(extendedDesiredProperties);466 EntityPropertyFlags desiredProperties = qScriptValueToValue<EntityPropertyFlags>(extendedDesiredProperties);
467 bool needsScriptSymantics = desiredProperties.getHasProperty(PROP_POSITION) ||467 bool needsScriptSemantics = desiredProperties.getHasProperty(PROP_POSITION) ||
468 desiredProperties.getHasProperty(PROP_ROTATION) ||468 desiredProperties.getHasProperty(PROP_ROTATION) ||
469 desiredProperties.getHasProperty(PROP_LOCAL_POSITION) ||469 desiredProperties.getHasProperty(PROP_LOCAL_POSITION) ||
470 desiredProperties.getHasProperty(PROP_LOCAL_ROTATION) ||470 desiredProperties.getHasProperty(PROP_LOCAL_ROTATION) ||
471 desiredProperties.getHasProperty(PROP_LOCAL_VELOCITY) ||471 desiredProperties.getHasProperty(PROP_LOCAL_VELOCITY) ||
472 desiredProperties.getHasProperty(PROP_LOCAL_ANGULAR_VELOCITY) ||472 desiredProperties.getHasProperty(PROP_LOCAL_ANGULAR_VELOCITY) ||
473 desiredProperties.getHasProperty(PROP_LOCAL_DIMENSIONS);473 desiredProperties.getHasProperty(PROP_LOCAL_DIMENSIONS);
474 if (needsScriptSymantics) {474 if (needsScriptSemantics) {
475 // if we are explicitly getting position or rotation, we need parent information to make sense of them.475 // if we are explicitly getting position or rotation, we need parent information to make sense of them.
476 desiredProperties.setHasProperty(PROP_PARENT_ID);476 desiredProperties.setHasProperty(PROP_PARENT_ID);
477 desiredProperties.setHasProperty(PROP_PARENT_JOINT_INDEX);477 desiredProperties.setHasProperty(PROP_PARENT_JOINT_INDEX);
@@ -488,7 +488,7 @@ QScriptValue EntityScriptingInterface::getMultipleEntityPropertiesInternal(QScri · 10 unmodified lines
488 const auto& entityID = entityIDs.at(i);488 const auto& entityID = entityIDs.at(i);
489 const EntityItemPointer entity = _entityTree->findEntityByEntityItemID(EntityItemID(entityID));489 const EntityItemPointer entity = _entityTree->findEntityByEntityItemID(EntityItemID(entityID));
490 if (entity) {490 if (entity) {
491 if (!psuedoPropertyFlags && desiredProperties.isEmpty()) {491 if (psuedoPropertyFlags.none() && desiredProperties.isEmpty()) {
492 // these are left out of EntityItem::getEntityProperties so that localPosition and localRotation492 // these are left out of EntityItem::getEntityProperties so that localPosition and localRotation
493 // don't end up in json saves, etc. We still want them here, though.493 // don't end up in json saves, etc. We still want them here, though.
494 EncodeBitstreamParams params; // unknown494 EncodeBitstreamParams params; // unknown
@@ -498,8 +498,8 @@ QScriptValue EntityScriptingInterface::getMultipleEntityPropertiesInternal(QScri · 3 unmodified lines
498 desiredProperties.setHasProperty(PROP_LOCAL_VELOCITY);498 desiredProperties.setHasProperty(PROP_LOCAL_VELOCITY);
499 desiredProperties.setHasProperty(PROP_LOCAL_ANGULAR_VELOCITY);499 desiredProperties.setHasProperty(PROP_LOCAL_ANGULAR_VELOCITY);
500 desiredProperties.setHasProperty(PROP_LOCAL_DIMENSIONS);500 desiredProperties.setHasProperty(PROP_LOCAL_DIMENSIONS);
501 psuedoPropertyFlags = EntityPsuedoPropertyFlag::all;501 psuedoPropertyFlags.set();
502 needsScriptSymantics = true;502 needsScriptSemantics = true;
503 }503 }
504 504
505 auto properties = entity->getProperties(desiredProperties, true);505 auto properties = entity->getProperties(desiredProperties, true);
@@ -512,18 +512,16 @@ QScriptValue EntityScriptingInterface::getMultipleEntityPropertiesInternal(QScri · 6 unmodified lines
512 }512 }
513 QScriptValue finalResult = engine->newArray(resultProperties.size());513 QScriptValue finalResult = engine->newArray(resultProperties.size());
514 quint32 i = 0;514 quint32 i = 0;
515 {515 if (needsScriptSemantics) {
516 if (needsScriptSymantics) {516 PROFILE_RANGE(script_entities, "EntityScriptingInterface::getMultipleEntityProperties>Script Semantics");
517 PROFILE_RANGE(script_entities, "EntityScriptingInterface::getMultipleEntityProperties>Script Semantics");517 foreach(const auto& result, resultProperties) {
518 foreach(auto result, resultProperties) {518 finalResult.setProperty(i++, convertPropertiesToScriptSemantics(result.properties, result.scalesWithParent)
519 finalResult.setProperty(i++, convertPropertiesToScriptSemantics(result.properties, result.scalesWithParent)519 .copyToScriptValue(engine, false, false, false, psuedoPropertyFlags));
520 .copyToScriptValue(engine, false, false, false, psuedoPropertyFlags));520 }
521 }521 } else {
522 } else {522 PROFILE_RANGE(script_entities, "EntityScriptingInterface::getMultipleEntityProperties>Skip Script Semantics");
523 PROFILE_RANGE(script_entities, "EntityScriptingInterface::getMultipleEntityProperties>Skip Script Semantics");523 foreach(const auto& result, resultProperties) {
524 foreach(auto result, resultProperties) {524 finalResult.setProperty(i++, result.properties.copyToScriptValue(engine, false, false, false, psuedoPropertyFlags));
525 finalResult.setProperty(i++, result.properties.copyToScriptValue(engine, false, false, false, psuedoPropertyFlags));
526 }
527 }525 }
528 }526 }
529 return finalResult;527 return finalResult;