11 #ifndef hifi_RingGizmoPropertyGroup_h
12 #define hifi_RingGizmoPropertyGroup_h
16 #include "PropertyGroup.h"
17 #include "EntityItemPropertiesMacros.h"
18 #include "EntityItemPropertiesDefaults.h"
21 class EncodeBitstreamParams;
23 class ReadBitstreamToTreeParams;
27 using u8vec3Color = glm::u8vec3;
58 class RingGizmoPropertyGroup :
public PropertyGroup {
61 virtual void copyToScriptValue(
const EntityPropertyFlags& desiredProperties,
ScriptValue& properties,
64 bool isMyOwnAvatarEntity)
const override;
65 virtual void copyFromScriptValue(
const ScriptValue&
object,
const QSet<QString> &namesSet,
bool& _defaultSettings)
override;
67 void merge(
const RingGizmoPropertyGroup& other);
69 virtual void debugDump()
const override;
70 virtual void listChangedProperties(QList<QString>& out)
override;
73 EntityPropertyFlags& requestedProperties,
74 EntityPropertyFlags& propertyFlags,
75 EntityPropertyFlags& propertiesDidntFit,
77 OctreeElement::AppendState& appendState)
const override;
79 virtual bool decodeFromEditPacket(EntityPropertyFlags& propertyFlags,
80 const unsigned char*& dataAt,
int& processedBytes)
override;
81 virtual void markAllChanged()
override;
82 virtual EntityPropertyFlags getChangedProperties()
const override;
91 virtual EntityPropertyFlags getEntityProperties(EncodeBitstreamParams& params)
const override;
93 virtual void appendSubclassData(
OctreePacketData* packetData, EncodeBitstreamParams& params,
94 EntityTreeElementExtraEncodeDataPointer entityTreeElementExtraEncodeData,
95 EntityPropertyFlags& requestedProperties,
96 EntityPropertyFlags& propertyFlags,
97 EntityPropertyFlags& propertiesDidntFit,
99 OctreeElement::AppendState& appendState)
const override;
101 virtual int readEntitySubclassDataFromBuffer(
const unsigned char* data,
int bytesLeftToRead,
102 ReadBitstreamToTreeParams& args,
103 EntityPropertyFlags& propertyFlags,
bool overwriteLocalData,
104 bool& somethingChanged)
override;
106 bool operator==(
const RingGizmoPropertyGroup& a)
const;
107 bool operator!=(
const RingGizmoPropertyGroup& a)
const {
return !(*
this == a); }
109 static const float MIN_ANGLE;
110 static const float MAX_ANGLE;
111 static const float MIN_ALPHA;
112 static const float MAX_ALPHA;
113 static const float MIN_RADIUS;
114 static const float MAX_RADIUS;
116 DEFINE_PROPERTY(PROP_START_ANGLE, StartAngle, startAngle,
float, 0.0f);
117 DEFINE_PROPERTY(PROP_END_ANGLE, EndAngle, endAngle,
float, 360.0f);
118 DEFINE_PROPERTY(PROP_INNER_RADIUS, InnerRadius, innerRadius,
float, 0.0f);
120 DEFINE_PROPERTY_REF(PROP_INNER_START_COLOR, InnerStartColor, innerStartColor, u8vec3Color, ENTITY_ITEM_DEFAULT_COLOR);
121 DEFINE_PROPERTY_REF(PROP_INNER_END_COLOR, InnerEndColor, innerEndColor, u8vec3Color, ENTITY_ITEM_DEFAULT_COLOR);
122 DEFINE_PROPERTY_REF(PROP_OUTER_START_COLOR, OuterStartColor, outerStartColor, u8vec3Color, ENTITY_ITEM_DEFAULT_COLOR);
123 DEFINE_PROPERTY_REF(PROP_OUTER_END_COLOR, OuterEndColor, outerEndColor, u8vec3Color, ENTITY_ITEM_DEFAULT_COLOR);
125 DEFINE_PROPERTY(PROP_INNER_START_ALPHA, InnerStartAlpha, innerStartAlpha,
float, ENTITY_ITEM_DEFAULT_ALPHA);
126 DEFINE_PROPERTY(PROP_INNER_END_ALPHA, InnerEndAlpha, innerEndAlpha,
float, ENTITY_ITEM_DEFAULT_ALPHA);
127 DEFINE_PROPERTY(PROP_OUTER_START_ALPHA, OuterStartAlpha, outerStartAlpha,
float, ENTITY_ITEM_DEFAULT_ALPHA);
128 DEFINE_PROPERTY(PROP_OUTER_END_ALPHA, OuterEndAlpha, outerEndAlpha,
float, ENTITY_ITEM_DEFAULT_ALPHA);
130 DEFINE_PROPERTY(PROP_HAS_TICK_MARKS, HasTickMarks, hasTickMarks,
bool,
false);
131 DEFINE_PROPERTY(PROP_MAJOR_TICK_MARKS_ANGLE, MajorTickMarksAngle, majorTickMarksAngle,
float, 0.0f);
132 DEFINE_PROPERTY(PROP_MINOR_TICK_MARKS_ANGLE, MinorTickMarksAngle, minorTickMarksAngle,
float, 0.0f);
133 DEFINE_PROPERTY(PROP_MAJOR_TICK_MARKS_LENGTH, MajorTickMarksLength, majorTickMarksLength,
float, 0.0f);
134 DEFINE_PROPERTY(PROP_MINOR_TICK_MARKS_LENGTH, MinorTickMarksLength, minorTickMarksLength,
float, 0.0f);
135 DEFINE_PROPERTY_REF(PROP_MAJOR_TICK_MARKS_COLOR, MajorTickMarksColor, majorTickMarksColor, u8vec3Color, ENTITY_ITEM_DEFAULT_COLOR);
136 DEFINE_PROPERTY_REF(PROP_MINOR_TICK_MARKS_COLOR, MinorTickMarksColor, minorTickMarksColor, u8vec3Color, ENTITY_ITEM_DEFAULT_COLOR);
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