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();
27 ComponentMode getFadeOutMode()
const override {
return ComponentMode::COMPONENT_MODE_DISABLED; }
30 Item::Bound getBound(RenderArgs* args)
override;
31 ShapeKey getShapeKey()
override;
33 bool isTransparent()
const override;
36 virtual bool needsRenderUpdate()
const override;
37 virtual void doRenderUpdateSynchronousTyped(
const ScenePointer& scene, Transaction& transaction,
const TypedEntityPointer& entity)
override;
38 virtual void doRenderUpdateAsynchronousTyped(
const TypedEntityPointer& entity)
override;
39 virtual void doRender(RenderArgs* args)
override;
41 std::shared_ptr<graphics::ProceduralMaterial> _material { std::make_shared<graphics::ProceduralMaterial>() };
42 GizmoType _gizmoType { UNSET_GIZMO_TYPE };
43 RingGizmoPropertyGroup _ringProperties;
44 PrimitiveMode _prevPrimitiveMode;
46 int _ringGeometryID { 0 };
47 int _majorTicksGeometryID { 0 };
48 int _minorTicksGeometryID { 0 };
49 gpu::Primitive _solidPrimitive { gpu::TRIANGLE_FAN };