9 #ifndef hifi_GizmoEntityItem_h
10 #define hifi_GizmoEntityItem_h
12 #include "EntityItem.h"
14 #include "RingGizmoPropertyGroup.h"
17 using Pointer = std::shared_ptr<GizmoEntityItem>;
25 virtual void setUnscaledDimensions(
const glm::vec3& value)
override;
28 EntityItemProperties getProperties(
const EntityPropertyFlags& desiredProperties,
bool allowEmptyDesiredProperties)
const override;
31 EntityPropertyFlags getEntityProperties(EncodeBitstreamParams& params)
const override;
33 void appendSubclassData(
OctreePacketData* packetData, EncodeBitstreamParams& params,
34 EntityTreeElementExtraEncodeDataPointer entityTreeElementExtraEncodeData,
35 EntityPropertyFlags& requestedProperties,
36 EntityPropertyFlags& propertyFlags,
37 EntityPropertyFlags& propertiesDidntFit,
39 OctreeElement::AppendState& appendState)
const override;
41 int readEntitySubclassDataFromBuffer(
const unsigned char* data,
int bytesLeftToRead,
42 ReadBitstreamToTreeParams& args,
43 EntityPropertyFlags& propertyFlags,
bool overwriteLocalData,
44 bool& somethingChanged)
override;
46 bool supportsDetailedIntersection()
const override;
47 bool findDetailedRayIntersection(
const glm::vec3& origin,
const glm::vec3& direction,
48 const glm::vec3& viewFrustumPos, OctreeElementPointer& element,
float& distance,
49 BoxFace& face, glm::vec3& surfaceNormal,
50 QVariantMap& extraInfo,
bool precisionPicking)
const override;
51 bool findDetailedParabolaIntersection(
const glm::vec3& origin,
const glm::vec3& velocity,
52 const glm::vec3& acceleration,
const glm::vec3& viewFrustumPos, OctreeElementPointer& element,
53 float& parabolicDistance, BoxFace& face, glm::vec3& surfaceNormal,
54 QVariantMap& extraInfo,
bool precisionPicking)
const override;
55 bool getRotateForPicking()
const override {
return getBillboardMode() != BillboardMode::NONE; }
57 GizmoType getGizmoType()
const;
58 void setGizmoType(GizmoType value);
60 RingGizmoPropertyGroup getRingProperties()
const;
64 RingGizmoPropertyGroup _ringProperties;
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