mirror of
https://github.com/overte-org/overte.git
synced 2025-08-10 20:33:09 +02:00
make PROP_DIFFUSE_COLOR a true property and wire up LightEntityProperties correctly
This commit is contained in:
parent
a516d062a6
commit
f3242d8778
3 changed files with 30 additions and 13 deletions
|
@ -80,6 +80,7 @@ EntityItemProperties::EntityItemProperties() :
|
||||||
_localRenderAlphaChanged(false),
|
_localRenderAlphaChanged(false),
|
||||||
_isSpotlightChanged(false),
|
_isSpotlightChanged(false),
|
||||||
|
|
||||||
|
_diffuseColor(),
|
||||||
_ambientColor(),
|
_ambientColor(),
|
||||||
_specularColor(),
|
_specularColor(),
|
||||||
_constantAttenuation(1.0f),
|
_constantAttenuation(1.0f),
|
||||||
|
@ -88,6 +89,7 @@ EntityItemProperties::EntityItemProperties() :
|
||||||
_exponent(0.0f),
|
_exponent(0.0f),
|
||||||
_cutoff(PI),
|
_cutoff(PI),
|
||||||
|
|
||||||
|
_diffuseColorChanged(false),
|
||||||
_ambientColorChanged(false),
|
_ambientColorChanged(false),
|
||||||
_specularColorChanged(false),
|
_specularColorChanged(false),
|
||||||
_constantAttenuationChanged(false),
|
_constantAttenuationChanged(false),
|
||||||
|
@ -156,6 +158,7 @@ EntityPropertyFlags EntityItemProperties::getChangedProperties() const {
|
||||||
CHECK_PROPERTY_CHANGE(PROP_IGNORE_FOR_COLLISIONS, ignoreForCollisions);
|
CHECK_PROPERTY_CHANGE(PROP_IGNORE_FOR_COLLISIONS, ignoreForCollisions);
|
||||||
CHECK_PROPERTY_CHANGE(PROP_COLLISIONS_WILL_MOVE, collisionsWillMove);
|
CHECK_PROPERTY_CHANGE(PROP_COLLISIONS_WILL_MOVE, collisionsWillMove);
|
||||||
CHECK_PROPERTY_CHANGE(PROP_IS_SPOTLIGHT, isSpotlight);
|
CHECK_PROPERTY_CHANGE(PROP_IS_SPOTLIGHT, isSpotlight);
|
||||||
|
CHECK_PROPERTY_CHANGE(PROP_DIFFUSE_COLOR, diffuseColor);
|
||||||
CHECK_PROPERTY_CHANGE(PROP_AMBIENT_COLOR, ambientColor);
|
CHECK_PROPERTY_CHANGE(PROP_AMBIENT_COLOR, ambientColor);
|
||||||
CHECK_PROPERTY_CHANGE(PROP_SPECULAR_COLOR, specularColor);
|
CHECK_PROPERTY_CHANGE(PROP_SPECULAR_COLOR, specularColor);
|
||||||
CHECK_PROPERTY_CHANGE(PROP_CONSTANT_ATTENUATION, constantAttenuation);
|
CHECK_PROPERTY_CHANGE(PROP_CONSTANT_ATTENUATION, constantAttenuation);
|
||||||
|
@ -205,8 +208,6 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine) cons
|
||||||
COPY_PROPERTY_TO_QSCRIPTVALUE(ignoreForCollisions);
|
COPY_PROPERTY_TO_QSCRIPTVALUE(ignoreForCollisions);
|
||||||
COPY_PROPERTY_TO_QSCRIPTVALUE(collisionsWillMove);
|
COPY_PROPERTY_TO_QSCRIPTVALUE(collisionsWillMove);
|
||||||
COPY_PROPERTY_TO_QSCRIPTVALUE(isSpotlight);
|
COPY_PROPERTY_TO_QSCRIPTVALUE(isSpotlight);
|
||||||
|
|
||||||
// NOTE: we do want this, so we will read both aliases diffuseColor and color
|
|
||||||
COPY_PROPERTY_TO_QSCRIPTVALUE_COLOR_GETTER(diffuseColor, getDiffuseColor());
|
COPY_PROPERTY_TO_QSCRIPTVALUE_COLOR_GETTER(diffuseColor, getDiffuseColor());
|
||||||
COPY_PROPERTY_TO_QSCRIPTVALUE_COLOR_GETTER(ambientColor, getAmbientColor());
|
COPY_PROPERTY_TO_QSCRIPTVALUE_COLOR_GETTER(ambientColor, getAmbientColor());
|
||||||
COPY_PROPERTY_TO_QSCRIPTVALUE_COLOR_GETTER(specularColor, getSpecularColor());
|
COPY_PROPERTY_TO_QSCRIPTVALUE_COLOR_GETTER(specularColor, getSpecularColor());
|
||||||
|
@ -438,6 +439,7 @@ bool EntityItemProperties::encodeEntityEditPacket(PacketType command, EntityItem
|
||||||
APPEND_ENTITY_PROPERTY(PROP_IGNORE_FOR_COLLISIONS, appendValue, properties.getIgnoreForCollisions());
|
APPEND_ENTITY_PROPERTY(PROP_IGNORE_FOR_COLLISIONS, appendValue, properties.getIgnoreForCollisions());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_COLLISIONS_WILL_MOVE, appendValue, properties.getCollisionsWillMove());
|
APPEND_ENTITY_PROPERTY(PROP_COLLISIONS_WILL_MOVE, appendValue, properties.getCollisionsWillMove());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_IS_SPOTLIGHT, appendValue, properties.getIsSpotlight());
|
APPEND_ENTITY_PROPERTY(PROP_IS_SPOTLIGHT, appendValue, properties.getIsSpotlight());
|
||||||
|
APPEND_ENTITY_PROPERTY(PROP_DIFFUSE_COLOR, appendColor, properties.getDiffuseColor());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_AMBIENT_COLOR, appendColor, properties.getAmbientColor());
|
APPEND_ENTITY_PROPERTY(PROP_AMBIENT_COLOR, appendColor, properties.getAmbientColor());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_SPECULAR_COLOR, appendColor, properties.getSpecularColor());
|
APPEND_ENTITY_PROPERTY(PROP_SPECULAR_COLOR, appendColor, properties.getSpecularColor());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_CONSTANT_ATTENUATION, appendValue, properties.getConstantAttenuation());
|
APPEND_ENTITY_PROPERTY(PROP_CONSTANT_ATTENUATION, appendValue, properties.getConstantAttenuation());
|
||||||
|
@ -644,6 +646,7 @@ bool EntityItemProperties::decodeEntityEditPacket(const unsigned char* data, int
|
||||||
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_IGNORE_FOR_COLLISIONS, bool, setIgnoreForCollisions);
|
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_IGNORE_FOR_COLLISIONS, bool, setIgnoreForCollisions);
|
||||||
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLLISIONS_WILL_MOVE, bool, setCollisionsWillMove);
|
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_COLLISIONS_WILL_MOVE, bool, setCollisionsWillMove);
|
||||||
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_IS_SPOTLIGHT, bool, setIsSpotlight);
|
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_IS_SPOTLIGHT, bool, setIsSpotlight);
|
||||||
|
READ_ENTITY_PROPERTY_COLOR_TO_PROPERTIES(PROP_DIFFUSE_COLOR, setDiffuseColor);
|
||||||
READ_ENTITY_PROPERTY_COLOR_TO_PROPERTIES(PROP_AMBIENT_COLOR, setAmbientColor);
|
READ_ENTITY_PROPERTY_COLOR_TO_PROPERTIES(PROP_AMBIENT_COLOR, setAmbientColor);
|
||||||
READ_ENTITY_PROPERTY_COLOR_TO_PROPERTIES(PROP_SPECULAR_COLOR, setSpecularColor);
|
READ_ENTITY_PROPERTY_COLOR_TO_PROPERTIES(PROP_SPECULAR_COLOR, setSpecularColor);
|
||||||
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CONSTANT_ATTENUATION, float, setConstantAttenuation);
|
READ_ENTITY_PROPERTY_TO_PROPERTIES(PROP_CONSTANT_ATTENUATION, float, setConstantAttenuation);
|
||||||
|
@ -707,6 +710,7 @@ void EntityItemProperties::markAllChanged() {
|
||||||
_localRenderAlphaChanged = true;
|
_localRenderAlphaChanged = true;
|
||||||
_isSpotlightChanged = true;
|
_isSpotlightChanged = true;
|
||||||
|
|
||||||
|
_diffuseColorChanged = true;
|
||||||
_ambientColorChanged = true;
|
_ambientColorChanged = true;
|
||||||
_specularColorChanged = true;
|
_specularColorChanged = true;
|
||||||
_constantAttenuationChanged = true;
|
_constantAttenuationChanged = true;
|
||||||
|
|
|
@ -51,7 +51,6 @@ enum EntityPropertyList {
|
||||||
|
|
||||||
// these properties are supported by some derived classes
|
// these properties are supported by some derived classes
|
||||||
PROP_COLOR,
|
PROP_COLOR,
|
||||||
PROP_DIFFUSE_COLOR = PROP_COLOR, // used by light class
|
|
||||||
PROP_MODEL_URL,
|
PROP_MODEL_URL,
|
||||||
PROP_ANIMATION_URL,
|
PROP_ANIMATION_URL,
|
||||||
PROP_ANIMATION_FPS,
|
PROP_ANIMATION_FPS,
|
||||||
|
@ -67,6 +66,7 @@ enum EntityPropertyList {
|
||||||
|
|
||||||
// property used by Light entity
|
// property used by Light entity
|
||||||
PROP_IS_SPOTLIGHT,
|
PROP_IS_SPOTLIGHT,
|
||||||
|
PROP_DIFFUSE_COLOR,
|
||||||
PROP_AMBIENT_COLOR,
|
PROP_AMBIENT_COLOR,
|
||||||
PROP_SPECULAR_COLOR,
|
PROP_SPECULAR_COLOR,
|
||||||
PROP_CONSTANT_ATTENUATION,
|
PROP_CONSTANT_ATTENUATION,
|
||||||
|
@ -246,16 +246,11 @@ public:
|
||||||
bool getIsSpotlight() const { return _isSpotlight; }
|
bool getIsSpotlight() const { return _isSpotlight; }
|
||||||
void setIsSpotlight(bool value) { _isSpotlight = value; _isSpotlightChanged = true; }
|
void setIsSpotlight(bool value) { _isSpotlight = value; _isSpotlightChanged = true; }
|
||||||
|
|
||||||
// total hack for now
|
xColor getDiffuseColor() const { return _diffuseColor; }
|
||||||
//void setDiffuseColor(const xColor& value) { setColor(value); }
|
|
||||||
//void setAmbientColor(const xColor& value) { setColor(value); }
|
|
||||||
//void setSpecularColor(const xColor& value) { setColor(value); }
|
|
||||||
|
|
||||||
xColor getDiffuseColor() const { return _color; } // diffuseColor is an alias for color
|
|
||||||
xColor getAmbientColor() const { return _ambientColor; }
|
xColor getAmbientColor() const { return _ambientColor; }
|
||||||
xColor getSpecularColor() const { return _specularColor; }
|
xColor getSpecularColor() const { return _specularColor; }
|
||||||
|
|
||||||
void setDiffuseColor(const xColor& value) { _color = value; _colorChanged = true; }
|
void setDiffuseColor(const xColor& value) { _diffuseColor = value; _diffuseColorChanged = true; }
|
||||||
void setAmbientColor(const xColor& value) { _ambientColor = value; _ambientColorChanged = true; }
|
void setAmbientColor(const xColor& value) { _ambientColor = value; _ambientColorChanged = true; }
|
||||||
void setSpecularColor(const xColor& value) { _specularColor = value; _specularColorChanged = true; }
|
void setSpecularColor(const xColor& value) { _specularColor = value; _specularColorChanged = true; }
|
||||||
|
|
||||||
|
@ -345,6 +340,7 @@ private:
|
||||||
bool _localRenderAlphaChanged;
|
bool _localRenderAlphaChanged;
|
||||||
bool _isSpotlightChanged;
|
bool _isSpotlightChanged;
|
||||||
|
|
||||||
|
xColor _diffuseColor;
|
||||||
xColor _ambientColor;
|
xColor _ambientColor;
|
||||||
xColor _specularColor;
|
xColor _specularColor;
|
||||||
float _constantAttenuation;
|
float _constantAttenuation;
|
||||||
|
@ -353,6 +349,7 @@ private:
|
||||||
float _exponent;
|
float _exponent;
|
||||||
float _cutoff;
|
float _cutoff;
|
||||||
|
|
||||||
|
bool _diffuseColorChanged;
|
||||||
bool _ambientColorChanged;
|
bool _ambientColorChanged;
|
||||||
bool _specularColorChanged;
|
bool _specularColorChanged;
|
||||||
bool _constantAttenuationChanged;
|
bool _constantAttenuationChanged;
|
||||||
|
|
|
@ -67,8 +67,7 @@ bool LightEntityItem::setProperties(const EntityItemProperties& properties, bool
|
||||||
bool somethingChanged = EntityItem::setProperties(properties, forceCopy); // set the properties in our base class
|
bool somethingChanged = EntityItem::setProperties(properties, forceCopy); // set the properties in our base class
|
||||||
|
|
||||||
SET_ENTITY_PROPERTY_FROM_PROPERTIES(isSpotlight, setIsSpotlight);
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(isSpotlight, setIsSpotlight);
|
||||||
SET_ENTITY_PROPERTY_FROM_PROPERTIES(color, setDiffuseColor);
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(diffuseColor, setDiffuseColor);
|
||||||
//SET_ENTITY_PROPERTY_FROM_PROPERTIES(diffuseColor, setDiffuseColor);
|
|
||||||
SET_ENTITY_PROPERTY_FROM_PROPERTIES(ambientColor, setAmbientColor);
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(ambientColor, setAmbientColor);
|
||||||
SET_ENTITY_PROPERTY_FROM_PROPERTIES(specularColor, setSpecularColor);
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(specularColor, setSpecularColor);
|
||||||
SET_ENTITY_PROPERTY_FROM_PROPERTIES(isSpotlight, setIsSpotlight);
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(isSpotlight, setIsSpotlight);
|
||||||
|
@ -103,6 +102,11 @@ int LightEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* data,
|
||||||
READ_ENTITY_PROPERTY_COLOR(PROP_DIFFUSE_COLOR, _diffuseColor);
|
READ_ENTITY_PROPERTY_COLOR(PROP_DIFFUSE_COLOR, _diffuseColor);
|
||||||
READ_ENTITY_PROPERTY_COLOR(PROP_AMBIENT_COLOR, _ambientColor);
|
READ_ENTITY_PROPERTY_COLOR(PROP_AMBIENT_COLOR, _ambientColor);
|
||||||
READ_ENTITY_PROPERTY_COLOR(PROP_SPECULAR_COLOR, _specularColor);
|
READ_ENTITY_PROPERTY_COLOR(PROP_SPECULAR_COLOR, _specularColor);
|
||||||
|
READ_ENTITY_PROPERTY(PROP_CONSTANT_ATTENUATION, float, _constantAttenuation);
|
||||||
|
READ_ENTITY_PROPERTY(PROP_LINEAR_ATTENUATION, float, _linearAttenuation);
|
||||||
|
READ_ENTITY_PROPERTY(PROP_QUADRATIC_ATTENUATION, float, _quadraticAttenuation);
|
||||||
|
READ_ENTITY_PROPERTY(PROP_EXPONENT, float, _exponent);
|
||||||
|
READ_ENTITY_PROPERTY(PROP_CUTOFF, float, _cutoff);
|
||||||
|
|
||||||
return bytesRead;
|
return bytesRead;
|
||||||
}
|
}
|
||||||
|
@ -111,8 +115,15 @@ int LightEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* data,
|
||||||
// TODO: eventually only include properties changed since the params.lastViewFrustumSent time
|
// TODO: eventually only include properties changed since the params.lastViewFrustumSent time
|
||||||
EntityPropertyFlags LightEntityItem::getEntityProperties(EncodeBitstreamParams& params) const {
|
EntityPropertyFlags LightEntityItem::getEntityProperties(EncodeBitstreamParams& params) const {
|
||||||
EntityPropertyFlags requestedProperties = EntityItem::getEntityProperties(params);
|
EntityPropertyFlags requestedProperties = EntityItem::getEntityProperties(params);
|
||||||
requestedProperties += PROP_COLOR;
|
|
||||||
requestedProperties += PROP_IS_SPOTLIGHT;
|
requestedProperties += PROP_IS_SPOTLIGHT;
|
||||||
|
requestedProperties += PROP_DIFFUSE_COLOR;
|
||||||
|
requestedProperties += PROP_AMBIENT_COLOR;
|
||||||
|
requestedProperties += PROP_SPECULAR_COLOR;
|
||||||
|
requestedProperties += PROP_CONSTANT_ATTENUATION;
|
||||||
|
requestedProperties += PROP_LINEAR_ATTENUATION;
|
||||||
|
requestedProperties += PROP_QUADRATIC_ATTENUATION;
|
||||||
|
requestedProperties += PROP_EXPONENT;
|
||||||
|
requestedProperties += PROP_CUTOFF;
|
||||||
return requestedProperties;
|
return requestedProperties;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,4 +140,9 @@ void LightEntityItem::appendSubclassData(OctreePacketData* packetData, EncodeBit
|
||||||
APPEND_ENTITY_PROPERTY(PROP_DIFFUSE_COLOR, appendColor, getDiffuseColor());
|
APPEND_ENTITY_PROPERTY(PROP_DIFFUSE_COLOR, appendColor, getDiffuseColor());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_AMBIENT_COLOR, appendColor, getAmbientColor());
|
APPEND_ENTITY_PROPERTY(PROP_AMBIENT_COLOR, appendColor, getAmbientColor());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_SPECULAR_COLOR, appendColor, getSpecularColor());
|
APPEND_ENTITY_PROPERTY(PROP_SPECULAR_COLOR, appendColor, getSpecularColor());
|
||||||
|
APPEND_ENTITY_PROPERTY(PROP_CONSTANT_ATTENUATION, appendValue, getConstantAttenuation());
|
||||||
|
APPEND_ENTITY_PROPERTY(PROP_LINEAR_ATTENUATION, appendValue, getLinearAttenuation());
|
||||||
|
APPEND_ENTITY_PROPERTY(PROP_QUADRATIC_ATTENUATION, appendValue, getQuadraticAttenuation());
|
||||||
|
APPEND_ENTITY_PROPERTY(PROP_EXPONENT, appendValue, getExponent());
|
||||||
|
APPEND_ENTITY_PROPERTY(PROP_CUTOFF, appendValue, getCutoff());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue