9 #ifndef hifi_RenderableGizmoEntityItem_h
10 #define hifi_RenderableGizmoEntityItem_h
12 #include "RenderableEntityItem.h"
14 #include <GizmoEntityItem.h>
16 #include <procedural/Procedural.h>
18 namespace render {
namespace entities {
20 class GizmoEntityRenderer :
public TypedEntityRenderer<GizmoEntityItem> {
21 using Parent = TypedEntityRenderer<GizmoEntityItem>;
22 using Pointer = std::shared_ptr<GizmoEntityRenderer>;
24 GizmoEntityRenderer(
const EntityItemPointer& entity);
25 ~GizmoEntityRenderer();
28 Item::Bound getBound(RenderArgs* args)
override;
29 ShapeKey getShapeKey()
override;
31 bool isTransparent()
const override;
34 virtual bool needsRenderUpdate()
const override;
35 virtual void doRenderUpdateSynchronousTyped(
const ScenePointer& scene, Transaction& transaction,
const TypedEntityPointer& entity)
override;
36 virtual void doRenderUpdateAsynchronousTyped(
const TypedEntityPointer& entity)
override;
37 virtual void doRender(RenderArgs* args)
override;
39 std::shared_ptr<graphics::ProceduralMaterial> _material { std::make_shared<graphics::ProceduralMaterial>() };
40 GizmoType _gizmoType { UNSET_GIZMO_TYPE };
41 RingGizmoPropertyGroup _ringProperties;
42 PrimitiveMode _prevPrimitiveMode;
44 int _ringGeometryID { 0 };
45 int _majorTicksGeometryID { 0 };
46 int _minorTicksGeometryID { 0 };
47 gpu::Primitive _solidPrimitive { gpu::TRIANGLE_FAN };