mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-09 16:52:10 +02:00
Initial add of the Attribution property
This commit is contained in:
parent
d33d3afb52
commit
8b5ade10b8
7 changed files with 31 additions and 2 deletions
|
@ -57,6 +57,7 @@ void EntityItem::initFromEntityItemID(const EntityItemID& entityItemID) {
|
||||||
_collisionsWillMove = ENTITY_ITEM_DEFAULT_COLLISIONS_WILL_MOVE;
|
_collisionsWillMove = ENTITY_ITEM_DEFAULT_COLLISIONS_WILL_MOVE;
|
||||||
_locked = ENTITY_ITEM_DEFAULT_LOCKED;
|
_locked = ENTITY_ITEM_DEFAULT_LOCKED;
|
||||||
_userData = ENTITY_ITEM_DEFAULT_USER_DATA;
|
_userData = ENTITY_ITEM_DEFAULT_USER_DATA;
|
||||||
|
_attribution = ENTITY_ITEM_DEFAULT_ATTRIBUTION;
|
||||||
}
|
}
|
||||||
|
|
||||||
EntityItem::EntityItem(const EntityItemID& entityItemID) {
|
EntityItem::EntityItem(const EntityItemID& entityItemID) {
|
||||||
|
@ -116,6 +117,7 @@ EntityPropertyFlags EntityItem::getEntityProperties(EncodeBitstreamParams& param
|
||||||
requestedProperties += PROP_COLLISIONS_WILL_MOVE;
|
requestedProperties += PROP_COLLISIONS_WILL_MOVE;
|
||||||
requestedProperties += PROP_LOCKED;
|
requestedProperties += PROP_LOCKED;
|
||||||
requestedProperties += PROP_USER_DATA;
|
requestedProperties += PROP_USER_DATA;
|
||||||
|
requestedProperties += PROP_ATTRIBUTION;
|
||||||
|
|
||||||
return requestedProperties;
|
return requestedProperties;
|
||||||
}
|
}
|
||||||
|
@ -245,6 +247,8 @@ OctreeElement::AppendState EntityItem::appendEntityData(OctreePacketData* packet
|
||||||
propertiesDidntFit,
|
propertiesDidntFit,
|
||||||
propertyCount,
|
propertyCount,
|
||||||
appendState);
|
appendState);
|
||||||
|
|
||||||
|
APPEND_ENTITY_PROPERTY(PROP_ATTRIBUTION, appendValue, getAttribution());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (propertyCount > 0) {
|
if (propertyCount > 0) {
|
||||||
|
@ -550,9 +554,11 @@ int EntityItem::readEntityDataFromBuffer(const unsigned char* data, int bytesLef
|
||||||
READ_ENTITY_PROPERTY_SETTER(PROP_IGNORE_FOR_COLLISIONS, bool, updateIgnoreForCollisions);
|
READ_ENTITY_PROPERTY_SETTER(PROP_IGNORE_FOR_COLLISIONS, bool, updateIgnoreForCollisions);
|
||||||
READ_ENTITY_PROPERTY_SETTER(PROP_COLLISIONS_WILL_MOVE, bool, updateCollisionsWillMove);
|
READ_ENTITY_PROPERTY_SETTER(PROP_COLLISIONS_WILL_MOVE, bool, updateCollisionsWillMove);
|
||||||
READ_ENTITY_PROPERTY(PROP_LOCKED, bool, _locked);
|
READ_ENTITY_PROPERTY(PROP_LOCKED, bool, _locked);
|
||||||
READ_ENTITY_PROPERTY_STRING(PROP_USER_DATA,setUserData);
|
READ_ENTITY_PROPERTY_STRING(PROP_USER_DATA, setUserData);
|
||||||
|
|
||||||
bytesRead += readEntitySubclassDataFromBuffer(dataAt, (bytesLeftToRead - bytesRead), args, propertyFlags, overwriteLocalData);
|
bytesRead += readEntitySubclassDataFromBuffer(dataAt, (bytesLeftToRead - bytesRead), args, propertyFlags, overwriteLocalData);
|
||||||
|
|
||||||
|
READ_ENTITY_PROPERTY_STRING(PROP_ATTRIBUTION, setAttribution);
|
||||||
|
|
||||||
if (overwriteLocalData && (getDirtyFlags() & (EntityItem::DIRTY_POSITION | EntityItem::DIRTY_VELOCITY))) {
|
if (overwriteLocalData && (getDirtyFlags() & (EntityItem::DIRTY_POSITION | EntityItem::DIRTY_VELOCITY))) {
|
||||||
// NOTE: This code is attempting to "repair" the old data we just got from the server to make it more
|
// NOTE: This code is attempting to "repair" the old data we just got from the server to make it more
|
||||||
|
@ -820,6 +826,7 @@ EntityItemProperties EntityItem::getProperties() const {
|
||||||
COPY_ENTITY_PROPERTY_TO_PROPERTIES(collisionsWillMove, getCollisionsWillMove);
|
COPY_ENTITY_PROPERTY_TO_PROPERTIES(collisionsWillMove, getCollisionsWillMove);
|
||||||
COPY_ENTITY_PROPERTY_TO_PROPERTIES(locked, getLocked);
|
COPY_ENTITY_PROPERTY_TO_PROPERTIES(locked, getLocked);
|
||||||
COPY_ENTITY_PROPERTY_TO_PROPERTIES(userData, getUserData);
|
COPY_ENTITY_PROPERTY_TO_PROPERTIES(userData, getUserData);
|
||||||
|
COPY_ENTITY_PROPERTY_TO_PROPERTIES(attribution, getAttribution);
|
||||||
|
|
||||||
properties._defaultSettings = false;
|
properties._defaultSettings = false;
|
||||||
|
|
||||||
|
@ -848,6 +855,7 @@ bool EntityItem::setProperties(const EntityItemProperties& properties) {
|
||||||
SET_ENTITY_PROPERTY_FROM_PROPERTIES(collisionsWillMove, updateCollisionsWillMove);
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(collisionsWillMove, updateCollisionsWillMove);
|
||||||
SET_ENTITY_PROPERTY_FROM_PROPERTIES(locked, setLocked);
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(locked, setLocked);
|
||||||
SET_ENTITY_PROPERTY_FROM_PROPERTIES(userData, setUserData);
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(userData, setUserData);
|
||||||
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(attribution, setAttribution);
|
||||||
|
|
||||||
if (somethingChanged) {
|
if (somethingChanged) {
|
||||||
somethingChangedNotification(); // notify derived classes that something has changed
|
somethingChangedNotification(); // notify derived classes that something has changed
|
||||||
|
|
|
@ -251,6 +251,9 @@ public:
|
||||||
const QString& getUserData() const { return _userData; }
|
const QString& getUserData() const { return _userData; }
|
||||||
void setUserData(const QString& value) { _userData = value; }
|
void setUserData(const QString& value) { _userData = value; }
|
||||||
|
|
||||||
|
const QString& getAttribution() const { return _attribution; }
|
||||||
|
void setAttribution(const QString& value) { _attribution = value; }
|
||||||
|
|
||||||
// TODO: get rid of users of getRadius()...
|
// TODO: get rid of users of getRadius()...
|
||||||
float getRadius() const;
|
float getRadius() const;
|
||||||
|
|
||||||
|
@ -338,6 +341,7 @@ protected:
|
||||||
bool _collisionsWillMove;
|
bool _collisionsWillMove;
|
||||||
bool _locked;
|
bool _locked;
|
||||||
QString _userData;
|
QString _userData;
|
||||||
|
QString _attribution;
|
||||||
|
|
||||||
// NOTE: Damping is applied like this: v *= pow(1 - damping, dt)
|
// NOTE: Damping is applied like this: v *= pow(1 - damping, dt)
|
||||||
//
|
//
|
||||||
|
|
|
@ -70,6 +70,7 @@ EntityItemProperties::EntityItemProperties() :
|
||||||
CONSTRUCT_PROPERTY(emitStrength, ParticleEffectEntityItem::DEFAULT_EMIT_STRENGTH),
|
CONSTRUCT_PROPERTY(emitStrength, ParticleEffectEntityItem::DEFAULT_EMIT_STRENGTH),
|
||||||
CONSTRUCT_PROPERTY(localGravity, ParticleEffectEntityItem::DEFAULT_LOCAL_GRAVITY),
|
CONSTRUCT_PROPERTY(localGravity, ParticleEffectEntityItem::DEFAULT_LOCAL_GRAVITY),
|
||||||
CONSTRUCT_PROPERTY(particleRadius, ParticleEffectEntityItem::DEFAULT_PARTICLE_RADIUS),
|
CONSTRUCT_PROPERTY(particleRadius, ParticleEffectEntityItem::DEFAULT_PARTICLE_RADIUS),
|
||||||
|
CONSTRUCT_PROPERTY(attribution, ENTITY_ITEM_DEFAULT_ATTRIBUTION),
|
||||||
|
|
||||||
_id(UNKNOWN_ENTITY_ID),
|
_id(UNKNOWN_ENTITY_ID),
|
||||||
_idSet(false),
|
_idSet(false),
|
||||||
|
@ -246,6 +247,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
|
||||||
CHECK_PROPERTY_CHANGE(PROP_EMIT_STRENGTH, emitStrength);
|
CHECK_PROPERTY_CHANGE(PROP_EMIT_STRENGTH, emitStrength);
|
||||||
CHECK_PROPERTY_CHANGE(PROP_LOCAL_GRAVITY, localGravity);
|
CHECK_PROPERTY_CHANGE(PROP_LOCAL_GRAVITY, localGravity);
|
||||||
CHECK_PROPERTY_CHANGE(PROP_PARTICLE_RADIUS, particleRadius);
|
CHECK_PROPERTY_CHANGE(PROP_PARTICLE_RADIUS, particleRadius);
|
||||||
|
CHECK_PROPERTY_CHANGE(PROP_ATTRIBUTION, attribution);
|
||||||
|
|
||||||
return changedProperties;
|
return changedProperties;
|
||||||
}
|
}
|
||||||
|
@ -308,6 +310,7 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine) cons
|
||||||
COPY_PROPERTY_TO_QSCRIPTVALUE(emitStrength);
|
COPY_PROPERTY_TO_QSCRIPTVALUE(emitStrength);
|
||||||
COPY_PROPERTY_TO_QSCRIPTVALUE(localGravity);
|
COPY_PROPERTY_TO_QSCRIPTVALUE(localGravity);
|
||||||
COPY_PROPERTY_TO_QSCRIPTVALUE(particleRadius);
|
COPY_PROPERTY_TO_QSCRIPTVALUE(particleRadius);
|
||||||
|
COPY_PROPERTY_TO_QSCRIPTVALUE(attribution);
|
||||||
|
|
||||||
// Sitting properties support
|
// Sitting properties support
|
||||||
QScriptValue sittingPoints = engine->newObject();
|
QScriptValue sittingPoints = engine->newObject();
|
||||||
|
@ -389,6 +392,7 @@ void EntityItemProperties::copyFromScriptValue(const QScriptValue& object) {
|
||||||
COPY_PROPERTY_FROM_QSCRIPTVALUE_FLOAT(emitStrength, setEmitStrength);
|
COPY_PROPERTY_FROM_QSCRIPTVALUE_FLOAT(emitStrength, setEmitStrength);
|
||||||
COPY_PROPERTY_FROM_QSCRIPTVALUE_FLOAT(localGravity, setLocalGravity);
|
COPY_PROPERTY_FROM_QSCRIPTVALUE_FLOAT(localGravity, setLocalGravity);
|
||||||
COPY_PROPERTY_FROM_QSCRIPTVALUE_FLOAT(particleRadius, setParticleRadius);
|
COPY_PROPERTY_FROM_QSCRIPTVALUE_FLOAT(particleRadius, setParticleRadius);
|
||||||
|
COPY_PROPERTY_FROM_QSCRIPTVALUE_STRING(attribution, setAttribution);
|
||||||
|
|
||||||
_lastEdited = usecTimestampNow();
|
_lastEdited = usecTimestampNow();
|
||||||
}
|
}
|
||||||
|
@ -573,6 +577,8 @@ bool EntityItemProperties::encodeEntityEditPacket(PacketType command, EntityItem
|
||||||
APPEND_ENTITY_PROPERTY(PROP_LOCAL_GRAVITY, appendValue, properties.getLocalGravity());
|
APPEND_ENTITY_PROPERTY(PROP_LOCAL_GRAVITY, appendValue, properties.getLocalGravity());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_PARTICLE_RADIUS, appendValue, properties.getParticleRadius());
|
APPEND_ENTITY_PROPERTY(PROP_PARTICLE_RADIUS, appendValue, properties.getParticleRadius());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
APPEND_ENTITY_PROPERTY(PROP_ATTRIBUTION, appendValue, properties.getAttribution());
|
||||||
}
|
}
|
||||||
if (propertyCount > 0) {
|
if (propertyCount > 0) {
|
||||||
int endOfEntityItemData = packetData->getUncompressedByteOffset();
|
int endOfEntityItemData = packetData->getUncompressedByteOffset();
|
||||||
|
@ -803,6 +809,8 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int
|
||||||
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_PARTICLE_RADIUS, float, setParticleRadius);
|
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_PARTICLE_RADIUS, float, setParticleRadius);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
READ_ENTITY_PROPERTY_STRING_TO_PROPERTIES(PROP_ATTRIBUTION, setAttribution);
|
||||||
|
|
||||||
return valid;
|
return valid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -883,6 +891,8 @@ void EntityItemProperties::markAllChanged() {
|
||||||
_emitStrengthChanged = true;
|
_emitStrengthChanged = true;
|
||||||
_localGravityChanged = true;
|
_localGravityChanged = true;
|
||||||
_particleRadiusChanged = true;
|
_particleRadiusChanged = true;
|
||||||
|
|
||||||
|
_attributionChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The maximum bounding cube for the entity, independent of it's rotation.
|
/// The maximum bounding cube for the entity, independent of it's rotation.
|
||||||
|
|
|
@ -103,6 +103,9 @@ enum EntityPropertyList {
|
||||||
PROP_LINE_HEIGHT = PROP_ANIMATION_URL,
|
PROP_LINE_HEIGHT = PROP_ANIMATION_URL,
|
||||||
PROP_BACKGROUND_COLOR = PROP_ANIMATION_FPS,
|
PROP_BACKGROUND_COLOR = PROP_ANIMATION_FPS,
|
||||||
PROP_COLLISION_MODEL_URL,
|
PROP_COLLISION_MODEL_URL,
|
||||||
|
|
||||||
|
// used by Model entities
|
||||||
|
PROP_ATTRIBUTION
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef PropertyFlags<EntityPropertyList> EntityPropertyFlags;
|
typedef PropertyFlags<EntityPropertyList> EntityPropertyFlags;
|
||||||
|
@ -195,6 +198,7 @@ public:
|
||||||
DEFINE_PROPERTY(PROP_EMIT_STRENGTH, EmitStrength, emitStrength, float);
|
DEFINE_PROPERTY(PROP_EMIT_STRENGTH, EmitStrength, emitStrength, float);
|
||||||
DEFINE_PROPERTY(PROP_LOCAL_GRAVITY, LocalGravity, localGravity, float);
|
DEFINE_PROPERTY(PROP_LOCAL_GRAVITY, LocalGravity, localGravity, float);
|
||||||
DEFINE_PROPERTY(PROP_PARTICLE_RADIUS, ParticleRadius, particleRadius, float);
|
DEFINE_PROPERTY(PROP_PARTICLE_RADIUS, ParticleRadius, particleRadius, float);
|
||||||
|
DEFINE_PROPERTY_REF(PROP_ATTRIBUTION, Attribution, attribution, QString);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
float getMaxDimension() const { return glm::max(_dimensions.x, _dimensions.y, _dimensions.z); }
|
float getMaxDimension() const { return glm::max(_dimensions.x, _dimensions.y, _dimensions.z); }
|
||||||
|
@ -322,6 +326,7 @@ inline QDebug operator<<(QDebug debug, const EntityItemProperties& properties) {
|
||||||
DEBUG_PROPERTY_IF_CHANGED(debug, properties, EmitStrength, emitStrength, "");
|
DEBUG_PROPERTY_IF_CHANGED(debug, properties, EmitStrength, emitStrength, "");
|
||||||
DEBUG_PROPERTY_IF_CHANGED(debug, properties, LocalGravity, localGravity, "");
|
DEBUG_PROPERTY_IF_CHANGED(debug, properties, LocalGravity, localGravity, "");
|
||||||
DEBUG_PROPERTY_IF_CHANGED(debug, properties, ParticleRadius, particleRadius, "");
|
DEBUG_PROPERTY_IF_CHANGED(debug, properties, ParticleRadius, particleRadius, "");
|
||||||
|
DEBUG_PROPERTY_IF_CHANGED(debug, properties, Attribution, attribution, "");
|
||||||
|
|
||||||
debug << " last edited:" << properties.getLastEdited() << "\n";
|
debug << " last edited:" << properties.getLastEdited() << "\n";
|
||||||
debug << " edited ago:" << properties.getEditedAgo() << "\n";
|
debug << " edited ago:" << properties.getEditedAgo() << "\n";
|
||||||
|
|
|
@ -22,6 +22,7 @@ const glm::vec3 ENTITY_ITEM_ZERO_VEC3(0.0f);
|
||||||
|
|
||||||
const bool ENTITY_ITEM_DEFAULT_LOCKED = false;
|
const bool ENTITY_ITEM_DEFAULT_LOCKED = false;
|
||||||
const QString ENTITY_ITEM_DEFAULT_USER_DATA = QString("");
|
const QString ENTITY_ITEM_DEFAULT_USER_DATA = QString("");
|
||||||
|
const QString ENTITY_ITEM_DEFAULT_ATTRIBUTION = QString("");
|
||||||
|
|
||||||
const float ENTITY_ITEM_DEFAULT_LOCAL_RENDER_ALPHA = 1.0f;
|
const float ENTITY_ITEM_DEFAULT_LOCAL_RENDER_ALPHA = 1.0f;
|
||||||
const float ENTITY_ITEM_DEFAULT_GLOW_LEVEL = 0.0f;
|
const float ENTITY_ITEM_DEFAULT_GLOW_LEVEL = 0.0f;
|
||||||
|
|
|
@ -74,7 +74,7 @@ PacketVersion versionForPacketType(PacketType type) {
|
||||||
return 1;
|
return 1;
|
||||||
case PacketTypeEntityAddOrEdit:
|
case PacketTypeEntityAddOrEdit:
|
||||||
case PacketTypeEntityData:
|
case PacketTypeEntityData:
|
||||||
return VERSION_ENTITIES_HAS_COLLISION_MODEL;
|
return VERSION_ENTITIES_HAS_ATTRIBUTION;
|
||||||
case PacketTypeEntityErase:
|
case PacketTypeEntityErase:
|
||||||
return 2;
|
return 2;
|
||||||
case PacketTypeAudioStreamStats:
|
case PacketTypeAudioStreamStats:
|
||||||
|
|
|
@ -132,6 +132,7 @@ const PacketVersion VERSION_ENTITIES_LIGHT_HAS_INTENSITY_AND_COLOR_PROPERTIES =
|
||||||
const PacketVersion VERSION_ENTITIES_HAS_PARTICLES = 10;
|
const PacketVersion VERSION_ENTITIES_HAS_PARTICLES = 10;
|
||||||
const PacketVersion VERSION_ENTITIES_USE_METERS_AND_RADIANS = 11;
|
const PacketVersion VERSION_ENTITIES_USE_METERS_AND_RADIANS = 11;
|
||||||
const PacketVersion VERSION_ENTITIES_HAS_COLLISION_MODEL = 12;
|
const PacketVersion VERSION_ENTITIES_HAS_COLLISION_MODEL = 12;
|
||||||
|
const PacketVersion VERSION_ENTITIES_HAS_ATTRIBUTION = 13;
|
||||||
const PacketVersion VERSION_OCTREE_HAS_FILE_BREAKS = 1;
|
const PacketVersion VERSION_OCTREE_HAS_FILE_BREAKS = 1;
|
||||||
|
|
||||||
#endif // hifi_PacketHeaders_h
|
#endif // hifi_PacketHeaders_h
|
||||||
|
|
Loading…
Reference in a new issue