mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-09 09:50:06 +02:00
Add PROP_SURFACE_RADIUS to LightEntity
This commit is contained in:
parent
329202def7
commit
6d7bf7d423
5 changed files with 18 additions and 0 deletions
|
@ -131,6 +131,7 @@ public:
|
||||||
DEFINE_PROPERTY(PROP_DYNAMIC, Dynamic, dynamic, bool, ENTITY_ITEM_DEFAULT_DYNAMIC);
|
DEFINE_PROPERTY(PROP_DYNAMIC, Dynamic, dynamic, bool, ENTITY_ITEM_DEFAULT_DYNAMIC);
|
||||||
DEFINE_PROPERTY(PROP_IS_SPOTLIGHT, IsSpotlight, isSpotlight, bool, false);
|
DEFINE_PROPERTY(PROP_IS_SPOTLIGHT, IsSpotlight, isSpotlight, bool, false);
|
||||||
DEFINE_PROPERTY(PROP_INTENSITY, Intensity, intensity, float, 1.0f);
|
DEFINE_PROPERTY(PROP_INTENSITY, Intensity, intensity, float, 1.0f);
|
||||||
|
DEFINE_PROPERTY(PROP_SURFACE_RADIUS, SurfaceRadius, surfaceRadius, float, ENTITY_ITEM_DEFAULT_SURFACE_RADIUS);
|
||||||
DEFINE_PROPERTY(PROP_EXPONENT, Exponent, exponent, float, 0.0f);
|
DEFINE_PROPERTY(PROP_EXPONENT, Exponent, exponent, float, 0.0f);
|
||||||
DEFINE_PROPERTY(PROP_CUTOFF, Cutoff, cutoff, float, ENTITY_ITEM_DEFAULT_CUTOFF);
|
DEFINE_PROPERTY(PROP_CUTOFF, Cutoff, cutoff, float, ENTITY_ITEM_DEFAULT_CUTOFF);
|
||||||
DEFINE_PROPERTY(PROP_LOCKED, Locked, locked, bool, ENTITY_ITEM_DEFAULT_LOCKED);
|
DEFINE_PROPERTY(PROP_LOCKED, Locked, locked, bool, ENTITY_ITEM_DEFAULT_LOCKED);
|
||||||
|
|
|
@ -72,6 +72,7 @@ const bool ENTITY_ITEM_DEFAULT_COLLISIONLESS = false;
|
||||||
const bool ENTITY_ITEM_DEFAULT_DYNAMIC = false;
|
const bool ENTITY_ITEM_DEFAULT_DYNAMIC = false;
|
||||||
const bool ENTITY_ITEM_DEFAULT_BILLBOARDED = false;
|
const bool ENTITY_ITEM_DEFAULT_BILLBOARDED = false;
|
||||||
|
|
||||||
|
const float ENTITY_ITEM_DEFAULT_SURFACE_RADIUS = 0.1f;
|
||||||
const float ENTITY_ITEM_DEFAULT_CUTOFF = PI / 2;
|
const float ENTITY_ITEM_DEFAULT_CUTOFF = PI / 2;
|
||||||
|
|
||||||
const QString ENTITY_ITEM_DEFAULT_NAME = QString("");
|
const QString ENTITY_ITEM_DEFAULT_NAME = QString("");
|
||||||
|
|
|
@ -167,6 +167,8 @@ enum EntityPropertyList {
|
||||||
|
|
||||||
PROP_COLLISION_MASK, // one byte of collision group flags
|
PROP_COLLISION_MASK, // one byte of collision group flags
|
||||||
|
|
||||||
|
PROP_SURFACE_RADIUS, // for Light entity
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// ATTENTION: add new properties to end of list just ABOVE this line
|
// ATTENTION: add new properties to end of list just ABOVE this line
|
||||||
PROP_AFTER_LAST_ITEM,
|
PROP_AFTER_LAST_ITEM,
|
||||||
|
|
|
@ -36,6 +36,7 @@ LightEntityItem::LightEntityItem(const EntityItemID& entityItemID) : EntityItem(
|
||||||
// default property values
|
// default property values
|
||||||
_color[RED_INDEX] = _color[GREEN_INDEX] = _color[BLUE_INDEX] = 0;
|
_color[RED_INDEX] = _color[GREEN_INDEX] = _color[BLUE_INDEX] = 0;
|
||||||
_intensity = 1.0f;
|
_intensity = 1.0f;
|
||||||
|
_surfaceRadius = 0.1f;
|
||||||
_exponent = 0.0f;
|
_exponent = 0.0f;
|
||||||
_cutoff = PI;
|
_cutoff = PI;
|
||||||
}
|
}
|
||||||
|
@ -62,10 +63,15 @@ EntityItemProperties LightEntityItem::getProperties(EntityPropertyFlags desiredP
|
||||||
COPY_ENTITY_PROPERTY_TO_PROPERTIES(intensity, getIntensity);
|
COPY_ENTITY_PROPERTY_TO_PROPERTIES(intensity, getIntensity);
|
||||||
COPY_ENTITY_PROPERTY_TO_PROPERTIES(exponent, getExponent);
|
COPY_ENTITY_PROPERTY_TO_PROPERTIES(exponent, getExponent);
|
||||||
COPY_ENTITY_PROPERTY_TO_PROPERTIES(cutoff, getCutoff);
|
COPY_ENTITY_PROPERTY_TO_PROPERTIES(cutoff, getCutoff);
|
||||||
|
COPY_ENTITY_PROPERTY_TO_PROPERTIES(surfaceRadius, getSurfaceRadius);
|
||||||
|
|
||||||
return properties;
|
return properties;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LightEntityItem::setSurfaceRadius(float value) {
|
||||||
|
_surfaceRadius = glm::max(value, 0.0f);
|
||||||
|
}
|
||||||
|
|
||||||
void LightEntityItem::setIsSpotlight(bool value) {
|
void LightEntityItem::setIsSpotlight(bool value) {
|
||||||
if (value != _isSpotlight) {
|
if (value != _isSpotlight) {
|
||||||
_isSpotlight = value;
|
_isSpotlight = value;
|
||||||
|
@ -101,6 +107,7 @@ bool LightEntityItem::setProperties(const EntityItemProperties& properties) {
|
||||||
SET_ENTITY_PROPERTY_FROM_PROPERTIES(intensity, setIntensity);
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(intensity, setIntensity);
|
||||||
SET_ENTITY_PROPERTY_FROM_PROPERTIES(exponent, setExponent);
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(exponent, setExponent);
|
||||||
SET_ENTITY_PROPERTY_FROM_PROPERTIES(cutoff, setCutoff);
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(cutoff, setCutoff);
|
||||||
|
SET_ENTITY_PROPERTY_FROM_PROPERTIES(surfaceRadius, setSurfaceRadius);
|
||||||
|
|
||||||
if (somethingChanged) {
|
if (somethingChanged) {
|
||||||
bool wantDebug = false;
|
bool wantDebug = false;
|
||||||
|
@ -150,6 +157,7 @@ int LightEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* data,
|
||||||
READ_ENTITY_PROPERTY(PROP_INTENSITY, float, setIntensity);
|
READ_ENTITY_PROPERTY(PROP_INTENSITY, float, setIntensity);
|
||||||
READ_ENTITY_PROPERTY(PROP_EXPONENT, float, setExponent);
|
READ_ENTITY_PROPERTY(PROP_EXPONENT, float, setExponent);
|
||||||
READ_ENTITY_PROPERTY(PROP_CUTOFF, float, setCutoff);
|
READ_ENTITY_PROPERTY(PROP_CUTOFF, float, setCutoff);
|
||||||
|
READ_ENTITY_PROPERTY(PROP_SURFACE_RADIUS, float, setSurfaceRadius);
|
||||||
}
|
}
|
||||||
|
|
||||||
return bytesRead;
|
return bytesRead;
|
||||||
|
@ -164,6 +172,7 @@ EntityPropertyFlags LightEntityItem::getEntityProperties(EncodeBitstreamParams&
|
||||||
requestedProperties += PROP_INTENSITY;
|
requestedProperties += PROP_INTENSITY;
|
||||||
requestedProperties += PROP_EXPONENT;
|
requestedProperties += PROP_EXPONENT;
|
||||||
requestedProperties += PROP_CUTOFF;
|
requestedProperties += PROP_CUTOFF;
|
||||||
|
requestedProperties += PROP_SURFACE_RADIUS;
|
||||||
return requestedProperties;
|
return requestedProperties;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -181,4 +190,5 @@ void LightEntityItem::appendSubclassData(OctreePacketData* packetData, EncodeBit
|
||||||
APPEND_ENTITY_PROPERTY(PROP_INTENSITY, getIntensity());
|
APPEND_ENTITY_PROPERTY(PROP_INTENSITY, getIntensity());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_EXPONENT, getExponent());
|
APPEND_ENTITY_PROPERTY(PROP_EXPONENT, getExponent());
|
||||||
APPEND_ENTITY_PROPERTY(PROP_CUTOFF, getCutoff());
|
APPEND_ENTITY_PROPERTY(PROP_CUTOFF, getCutoff());
|
||||||
|
APPEND_ENTITY_PROPERTY(PROP_SURFACE_RADIUS, getSurfaceRadius());
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,6 +65,9 @@ public:
|
||||||
float getIntensity() const { return _intensity; }
|
float getIntensity() const { return _intensity; }
|
||||||
void setIntensity(float value) { _intensity = value; }
|
void setIntensity(float value) { _intensity = value; }
|
||||||
|
|
||||||
|
float getSurfaceRadius() const { return _surfaceRadius; }
|
||||||
|
void setSurfaceRadius(float value);
|
||||||
|
|
||||||
float getExponent() const { return _exponent; }
|
float getExponent() const { return _exponent; }
|
||||||
void setExponent(float value) { _exponent = value; }
|
void setExponent(float value) { _exponent = value; }
|
||||||
|
|
||||||
|
@ -80,6 +83,7 @@ protected:
|
||||||
rgbColor _color;
|
rgbColor _color;
|
||||||
bool _isSpotlight;
|
bool _isSpotlight;
|
||||||
float _intensity;
|
float _intensity;
|
||||||
|
float _surfaceRadius;
|
||||||
float _exponent;
|
float _exponent;
|
||||||
float _cutoff;
|
float _cutoff;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue