29 #include <fmt/format.h> 37 namespace visualization {
68 static const std::uint16_t kBadId = 0;
71 inline size_t Hash()
const {
72 return static_cast<std::uint16_t
>(
type) << 16 |
id;
76 return id == other.
id && type == other.
type;
84 return Hash() < other.
Hash();
87 explicit operator bool()
const {
return id != kBadId; }
91 std::uint16_t
GetId()
const {
return id; }
95 : type(aType), id(aId) {}
100 std::uint16_t
id = kBadId;
107 template <EntityType entityType>
112 const auto index =
static_cast<std::uint16_t
>(entityType);
113 auto id = ++uid_table[index];
123 if (
abstract.
type != entityType) {
142 template <EntityType entityType>
179 template <
typename FormatContext>
181 FormatContext& ctx) {
182 return format_to(ctx.out(),
"[{}, {}, hash: {}]",
188 template <
typename ParseContext>
189 constexpr
auto parse(ParseContext& ctx) {
REHandle< EntityType::Geometry > GeometryHandle
Definition: RendererHandle.h:147
std::ostream & operator<<(std::ostream &os, const REHandle_abstract &uid)
Definition: RendererHandle.cpp:38
REHandle< EntityType::Camera > CameraHandle
Definition: RendererHandle.h:151
REHandle_abstract(const EntityType aType, const std::uint16_t aId)
Definition: RendererHandle.h:94
REHandle_abstract()
Definition: RendererHandle.h:89
static REHandle Concretize(const REHandle_abstract &abstract)
Definition: RendererHandle.h:122
REHandle()
Definition: RendererHandle.h:131
REHandle & operator=(const REHandle &other)
Definition: RendererHandle.h:136
REHandle(std::uint16_t id)
Definition: RendererHandle.h:134
Definition: RendererHandle.h:108
bool operator==(const PointXYZ A, const PointXYZ B)
Definition: Cloud.h:176
REHandle< EntityType::Material > MaterialHandle
Definition: RendererHandle.h:152
std::uint16_t GetId() const
Definition: RendererHandle.h:91
REHandle< EntityType::MaterialInstance > MaterialInstanceHandle
Definition: RendererHandle.h:153
const EntityType type
Definition: RendererHandle.h:69
bool operator<(const REHandle_abstract &other) const
Definition: RendererHandle.h:83
REHandle< EntityType::Scene > SceneHandle
Definition: RendererHandle.h:146
REHandle< EntityType::RenderTarget > RenderTargetHandle
Definition: RendererHandle.h:155
EntityType
Definition: RendererHandle.h:41
REHandle< EntityType::Texture > TextureHandle
Definition: RendererHandle.h:154
static REHandle Next()
Definition: RendererHandle.h:111
static const char * TypeToString(EntityType type)
Definition: RendererHandle.cpp:44
REHandle< EntityType::IndirectLight > IndirectLightHandle
Definition: RendererHandle.h:149
bool operator==(const REHandle_abstract &other) const
Definition: RendererHandle.h:75
REHandle< EntityType::Light > LightHandle
Definition: RendererHandle.h:148
Definition: PinholeCameraIntrinsic.cpp:35
REHandle(const REHandle &other)
Definition: RendererHandle.h:132
filament::Texture::InternalFormat format
Definition: FilamentResourceManager.cpp:214
REHandle< EntityType::View > ViewHandle
Definition: RendererHandle.h:145
static const std::uint16_t kBadId
Definition: RendererHandle.h:68
REHandle< EntityType::Skybox > SkyboxHandle
Definition: RendererHandle.h:150
std::uint16_t id
Definition: RendererHandle.h:100
REHandle< EntityType::VertexBuffer > VertexBufferHandle
Definition: RendererHandle.h:156
Definition: RendererHandle.h:65
REHandle< EntityType::IndexBuffer > IndexBufferHandle
Definition: RendererHandle.h:157
size_t Hash() const
Definition: RendererHandle.h:71
bool operator!=(const REHandle_abstract &other) const
Definition: RendererHandle.h:79
static const REHandle kBad
Definition: RendererHandle.h:109