9 #ifndef hifi_RenderableShapeEntityItem_h
10 #define hifi_RenderableShapeEntityItem_h
12 #include "RenderableEntityItem.h"
14 #include <procedural/Procedural.h>
15 #include <ShapeEntityItem.h>
17 namespace render {
namespace entities {
19 class ShapeEntityRenderer :
public TypedEntityRenderer<ShapeEntityItem> {
20 using Parent = TypedEntityRenderer<ShapeEntityItem>;
21 using Pointer = std::shared_ptr<ShapeEntityRenderer>;
23 ShapeEntityRenderer(
const EntityItemPointer& entity);
25 virtual scriptable::ScriptableModelBase getScriptableModel()
override;
28 ShapeKey getShapeKey()
override;
29 Item::Bound getBound(RenderArgs* args)
override;
32 virtual bool needsRenderUpdate()
const override;
33 virtual void doRenderUpdateSynchronousTyped(
const ScenePointer& scene, Transaction& transaction,
const TypedEntityPointer& entity)
override;
34 virtual void doRenderUpdateAsynchronousTyped(
const TypedEntityPointer& entity)
override;
35 virtual void doRender(RenderArgs* args)
override;
36 virtual bool isTransparent()
const override;
38 QString _proceduralData;
39 entity::Shape _shape { entity::Sphere };
41 PulsePropertyGroup _pulseProperties;
42 std::shared_ptr<graphics::ProceduralMaterial> _material { std::make_shared<graphics::ProceduralMaterial>() };
43 glm::vec3 _color { NAN };
46 gpu::BufferPointer _colorBuffer { std::make_shared<gpu::Buffer>() };