14 #ifndef hifi_HazePropertyGroup_h
15 #define hifi_HazePropertyGroup_h
19 #include <glm/glm.hpp>
21 #include "PropertyGroup.h"
22 #include "EntityItemPropertiesMacros.h"
25 class EncodeBitstreamParams;
27 class EntityTreeElementExtraEncodeData;
28 class ReadBitstreamToTreeParams;
32 static const float INITIAL_HAZE_RANGE{ 1000.0f };
33 static const glm::u8vec3 initialHazeGlareColor { 255, 229, 179 };
34 static const glm::u8vec3 initialHazeColor { 128, 154, 179 };
35 static const float INITIAL_HAZE_GLARE_ANGLE{ 20.0f };
37 static const float INITIAL_HAZE_BASE_REFERENCE{ 0.0f };
38 static const float INITIAL_HAZE_HEIGHT{ 200.0f };
40 static const float INITIAL_HAZE_BACKGROUND_BLEND{ 0.0f };
42 static const float INITIAL_KEY_LIGHT_RANGE{ 1000.0f };
43 static const float INITIAL_KEY_LIGHT_ALTITUDE{ 200.0f };
78 class HazePropertyGroup :
public PropertyGroup {
81 virtual void copyToScriptValue(
const EntityPropertyFlags& desiredProperties,
ScriptValue& properties,
84 bool isMyOwnAvatarEntity)
const override;
85 virtual void copyFromScriptValue(
const ScriptValue&
object,
const QSet<QString> &namesSet,
bool& _defaultSettings)
override;
87 void merge(
const HazePropertyGroup& other);
89 virtual void debugDump()
const override;
90 virtual void listChangedProperties(QList<QString>& out)
override;
93 EntityPropertyFlags& requestedProperties,
94 EntityPropertyFlags& propertyFlags,
95 EntityPropertyFlags& propertiesDidntFit,
97 OctreeElement::AppendState& appendState)
const override;
99 virtual bool decodeFromEditPacket(EntityPropertyFlags& propertyFlags,
100 const unsigned char*& dataAt,
int& processedBytes)
override;
101 virtual void markAllChanged()
override;
102 virtual EntityPropertyFlags getChangedProperties()
const override;
111 virtual EntityPropertyFlags getEntityProperties(EncodeBitstreamParams& params)
const override;
113 virtual void appendSubclassData(
OctreePacketData* packetData, EncodeBitstreamParams& params,
114 EntityTreeElementExtraEncodeDataPointer entityTreeElementExtraEncodeData,
115 EntityPropertyFlags& requestedProperties,
116 EntityPropertyFlags& propertyFlags,
117 EntityPropertyFlags& propertiesDidntFit,
119 OctreeElement::AppendState& appendState)
const override;
121 virtual int readEntitySubclassDataFromBuffer(
const unsigned char* data,
int bytesLeftToRead,
122 ReadBitstreamToTreeParams& args,
123 EntityPropertyFlags& propertyFlags,
bool overwriteLocalData,
124 bool& somethingChanged)
override;
127 DEFINE_PROPERTY(PROP_HAZE_RANGE, HazeRange, hazeRange,
float, INITIAL_HAZE_RANGE);
128 DEFINE_PROPERTY_REF(PROP_HAZE_COLOR, HazeColor, hazeColor, glm::u8vec3, initialHazeColor);
129 DEFINE_PROPERTY_REF(PROP_HAZE_GLARE_COLOR, HazeGlareColor, hazeGlareColor, glm::u8vec3, initialHazeGlareColor);
130 DEFINE_PROPERTY(PROP_HAZE_ENABLE_GLARE, HazeEnableGlare, hazeEnableGlare,
bool,
false);
131 DEFINE_PROPERTY_REF(PROP_HAZE_GLARE_ANGLE, HazeGlareAngle, hazeGlareAngle,
float, INITIAL_HAZE_GLARE_ANGLE);
134 DEFINE_PROPERTY(PROP_HAZE_ALTITUDE_EFFECT, HazeAltitudeEffect, hazeAltitudeEffect,
bool,
false);
135 DEFINE_PROPERTY_REF(PROP_HAZE_CEILING, HazeCeiling, hazeCeiling,
float, INITIAL_HAZE_BASE_REFERENCE + INITIAL_HAZE_HEIGHT);
136 DEFINE_PROPERTY_REF(PROP_HAZE_BASE_REF, HazeBaseRef, hazeBaseRef,
float, INITIAL_HAZE_BASE_REFERENCE);
139 DEFINE_PROPERTY_REF(PROP_HAZE_BACKGROUND_BLEND, HazeBackgroundBlend, hazeBackgroundBlend,
float, INITIAL_HAZE_BACKGROUND_BLEND);
142 DEFINE_PROPERTY(PROP_HAZE_ATTENUATE_KEYLIGHT, HazeAttenuateKeyLight, hazeAttenuateKeyLight,
bool,
false);
143 DEFINE_PROPERTY_REF(PROP_HAZE_KEYLIGHT_RANGE, HazeKeyLightRange, hazeKeyLightRange,
float, INITIAL_KEY_LIGHT_RANGE);
144 DEFINE_PROPERTY_REF(PROP_HAZE_KEYLIGHT_ALTITUDE, HazeKeyLightAltitude, hazeKeyLightAltitude,
float, INITIAL_KEY_LIGHT_ALTITUDE);
Definition: EntityItemProperties.h:106
Handles packing of the data portion of PacketType_OCTREE_DATA messages.
Definition: OctreePacketData.h:93
Provides an engine-independent interface for a scripting engine.
Definition: ScriptEngine.h:93
[ScriptInterface] Provides an engine-independent interface for QScriptValue
Definition: ScriptValue.h:40