12 #ifndef hifi_LineEntityItem_h
13 #define hifi_LineEntityItem_h
15 #include "EntityItem.h"
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 modelTreeElementExtraEncodeData,
33 EntityPropertyFlags& requestedProperties,
34 EntityPropertyFlags& propertyFlags,
35 EntityPropertyFlags& propertiesDidntFit,
37 OctreeElement::AppendState& appendState)
const override;
39 virtual int readEntitySubclassDataFromBuffer(
const unsigned char* data,
int bytesLeftToRead,
40 ReadBitstreamToTreeParams& args,
41 EntityPropertyFlags& propertyFlags,
bool overwriteLocalData,
42 bool& somethingChanged)
override;
44 glm::u8vec3 getColor()
const;
45 void setColor(
const glm::u8vec3& value);
47 bool setLinePoints(
const QVector<glm::vec3>& points);
48 bool appendPoint(
const glm::vec3& point);
50 QVector<glm::vec3> getLinePoints()
const;
53 virtual bool supportsDetailedIntersection()
const override {
return true; }
54 virtual bool findDetailedRayIntersection(
const glm::vec3& origin,
const glm::vec3& direction,
55 const glm::vec3& viewFrustumPos, OctreeElementPointer& element,
float& distance,
56 BoxFace& face, glm::vec3& surfaceNormal,
57 QVariantMap& extraInfo,
58 bool precisionPicking)
const override {
return false; }
59 virtual bool findDetailedParabolaIntersection(
const glm::vec3& origin,
const glm::vec3& velocity,
60 const glm::vec3& acceleration,
const glm::vec3& viewFrustumPos, OctreeElementPointer& element,
61 float& parabolicDistance, BoxFace& face, glm::vec3& surfaceNormal,
62 QVariantMap& extraInfo,
63 bool precisionPicking)
const override {
return false; }
65 virtual void debugDump()
const override;
66 static const int MAX_POINTS_PER_LINE;
70 QVector<glm::vec3> _points;
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