15 #ifndef hifi_KeyLightPropertyGroup_h
16 #define hifi_KeyLightPropertyGroup_h
20 #include <glm/glm.hpp>
22 #include "EntityItemPropertiesMacros.h"
23 #include "PropertyGroup.h"
26 class EncodeBitstreamParams;
28 class EntityTreeElementExtraEncodeData;
29 class ReadBitstreamToTreeParams;
48 class KeyLightPropertyGroup :
public PropertyGroup {
51 virtual void copyToScriptValue(
const EntityPropertyFlags& desiredProperties,
ScriptValue& properties,
54 bool isMyOwnAvatarEntity)
const override;
55 virtual void copyFromScriptValue(
const ScriptValue&
object,
const QSet<QString> &namesSet,
bool& _defaultSettings)
override;
57 void merge(
const KeyLightPropertyGroup& other);
59 virtual void debugDump()
const override;
60 virtual void listChangedProperties(QList<QString>& out)
override;
63 EntityPropertyFlags& requestedProperties,
64 EntityPropertyFlags& propertyFlags,
65 EntityPropertyFlags& propertiesDidntFit,
67 OctreeElement::AppendState& appendState)
const override;
69 virtual bool decodeFromEditPacket(EntityPropertyFlags& propertyFlags,
70 const unsigned char*& dataAt,
int& processedBytes)
override;
71 virtual void markAllChanged()
override;
72 virtual EntityPropertyFlags getChangedProperties()
const override;
81 virtual EntityPropertyFlags getEntityProperties(EncodeBitstreamParams& params)
const override;
83 virtual void appendSubclassData(
OctreePacketData* packetData, EncodeBitstreamParams& params,
84 EntityTreeElementExtraEncodeDataPointer entityTreeElementExtraEncodeData,
85 EntityPropertyFlags& requestedProperties,
86 EntityPropertyFlags& propertyFlags,
87 EntityPropertyFlags& propertiesDidntFit,
89 OctreeElement::AppendState& appendState)
const override;
91 virtual int readEntitySubclassDataFromBuffer(
const unsigned char* data,
int bytesLeftToRead,
92 ReadBitstreamToTreeParams& args,
93 EntityPropertyFlags& propertyFlags,
bool overwriteLocalData,
94 bool& somethingChanged)
override;
96 static const glm::u8vec3 DEFAULT_KEYLIGHT_COLOR;
97 static const float DEFAULT_KEYLIGHT_INTENSITY;
98 static const float DEFAULT_KEYLIGHT_AMBIENT_INTENSITY;
99 static const glm::vec3 DEFAULT_KEYLIGHT_DIRECTION;
100 static const bool DEFAULT_KEYLIGHT_CAST_SHADOWS;
101 static const float DEFAULT_KEYLIGHT_SHADOW_BIAS;
102 static const float DEFAULT_KEYLIGHT_SHADOW_MAX_DISTANCE;
104 DEFINE_PROPERTY_REF(PROP_KEYLIGHT_COLOR, Color, color, glm::u8vec3, DEFAULT_KEYLIGHT_COLOR);
105 DEFINE_PROPERTY(PROP_KEYLIGHT_INTENSITY, Intensity, intensity,
float, DEFAULT_KEYLIGHT_INTENSITY);
106 DEFINE_PROPERTY_REF(PROP_KEYLIGHT_DIRECTION, Direction, direction, glm::vec3, DEFAULT_KEYLIGHT_DIRECTION);
107 DEFINE_PROPERTY(PROP_KEYLIGHT_CAST_SHADOW, CastShadows, castShadows,
bool, DEFAULT_KEYLIGHT_CAST_SHADOWS);
108 DEFINE_PROPERTY(PROP_KEYLIGHT_SHADOW_BIAS, ShadowBias, shadowBias,
float, DEFAULT_KEYLIGHT_SHADOW_BIAS);
109 DEFINE_PROPERTY(PROP_KEYLIGHT_SHADOW_MAX_DISTANCE, ShadowMaxDistance, shadowMaxDistance,
float, DEFAULT_KEYLIGHT_SHADOW_MAX_DISTANCE);
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