9 #ifndef hifi_MaterialEntityItem_h
10 #define hifi_MaterialEntityItem_h
12 #include "EntityItem.h"
14 #include "MaterialMappingMode.h"
17 using Pointer = std::shared_ptr<MaterialEntityItem>;
26 virtual EntityItemProperties getProperties(
const EntityPropertyFlags& desiredProperties,
bool allowEmptyDesiredProperties)
const override;
29 virtual EntityPropertyFlags getEntityProperties(EncodeBitstreamParams& params)
const override;
31 virtual void appendSubclassData(
OctreePacketData* packetData, EncodeBitstreamParams& params,
32 EntityTreeElementExtraEncodeDataPointer entityTreeElementExtraEncodeData,
33 EntityPropertyFlags& requestedProperties,
34 EntityPropertyFlags& propertyFlags,
35 EntityPropertyFlags& propertiesDidntFit,
37 OctreeElement::AppendState& appendState)
const override;
40 virtual int readEntitySubclassDataFromBuffer(
const unsigned char* data,
int bytesLeftToRead,
41 ReadBitstreamToTreeParams& args,
42 EntityPropertyFlags& propertyFlags,
bool overwriteLocalData,
43 bool& somethingChanged)
override;
45 void debugDump()
const override;
47 virtual void setUnscaledDimensions(
const glm::vec3& value)
override;
49 QString getMaterialURL()
const;
50 void setMaterialURL(
const QString& materialURL);
52 QString getMaterialData()
const;
53 void setMaterialData(
const QString& materialData);
55 MaterialMappingMode getMaterialMappingMode()
const;
56 void setMaterialMappingMode(MaterialMappingMode mode);
58 bool getMaterialRepeat()
const;
59 void setMaterialRepeat(
bool repeat);
61 quint16 getPriority()
const;
62 void setPriority(quint16 priority);
64 QString getParentMaterialName()
const;
65 void setParentMaterialName(
const QString& parentMaterialName);
67 void setParentID(
const QUuid& parentID)
override;
69 glm::vec2 getMaterialMappingPos()
const;
70 void setMaterialMappingPos(
const glm::vec2& materialMappingPos);
71 glm::vec2 getMaterialMappingScale()
const;
72 void setMaterialMappingScale(
const glm::vec2& materialMappingScale);
73 float getMaterialMappingRot()
const;
74 void setMaterialMappingRot(
float materialMappingRot);
76 AACube calculateInitialQueryAACube(
bool& success)
override;
78 void setHasVertexShader(
bool hasVertexShader);
98 MaterialMappingMode _materialMappingMode { UV };
99 bool _materialRepeat {
true };
100 glm::vec3 _desiredDimensions;
103 quint16 _priority { 0 };
106 QString _parentMaterialName {
"0" };
108 glm::vec2 _materialMappingPos { 0, 0 };
110 glm::vec2 _materialMappingScale { 1, 1 };
112 float _materialMappingRot { 0 };
113 QString _materialData;
115 bool _hasVertexShader {
false };
Definition: EntityItem.h:82
Abstract ID for editing model items. Used in EntityItem JS API.
Definition: EntityItemID.h:28
Definition: EntityItemProperties.h:106
Handles packing of the data portion of PacketType_OCTREE_DATA messages.
Definition: OctreePacketData.h:93