Overte C++ Documentation
RenderableGridEntityItem.h
1 //
2 // Created by Sam Gondelman on 11/29/18
3 // Copyright 2018 High Fidelity, Inc.
4 // Copyright 2023 Overte e.V.
5 //
6 // Distributed under the Apache License, Version 2.0.
7 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
8 // SPDX-License-Identifier: Apache-2.0
9 //
10 
11 #ifndef hifi_RenderableGridEntityItem_h
12 #define hifi_RenderableGridEntityItem_h
13 
14 #include "RenderableEntityItem.h"
15 
16 #include <GridEntityItem.h>
17 
18 namespace render { namespace entities {
19 
20 class GridEntityRenderer : public TypedEntityRenderer<GridEntityItem> {
21  using Parent = TypedEntityRenderer<GridEntityItem>;
22  using Pointer = std::shared_ptr<GridEntityRenderer>;
23 public:
24  GridEntityRenderer(const EntityItemPointer& entity);
25  ~GridEntityRenderer();
26 
27 protected:
28  Item::Bound getBound(RenderArgs* args) override;
29  ShapeKey getShapeKey() override;
30 
31  bool isTransparent() const override;
32 
33 private:
34  virtual void doRenderUpdateSynchronousTyped(const ScenePointer& scene, Transaction& transaction, const TypedEntityPointer& entity) override;
35  virtual void doRenderUpdateAsynchronousTyped(const TypedEntityPointer& entity) override;
36  virtual void doRender(RenderArgs* args) override;
37 
38  glm::u8vec3 _color;
39  float _alpha { NAN };
40  PulsePropertyGroup _pulseProperties;
41 
42  bool _followCamera { false };
43  uint32_t _majorGridEvery;
44  float _minorGridEvery { false };
45 
46  glm::vec3 _dimensions;
47 
48  int _geometryId { 0 };
49 
50 };
51 
52 } }
53 #endif // hifi_RenderableGridEntityItem_h