33 #define FMT_HEADER_ONLY 1
34 #define FMT_STRING_ALIAS 1
38 #ifndef FMT_USE_WINDOWS_H
39 #define FMT_USE_WINDOWS_H 0
41 #include <fmt/format.h>
45 namespace visualization {
76 static const std::uint16_t
kBadId = 0;
79 inline size_t Hash()
const {
80 return static_cast<std::uint16_t
>(
type) << 16 |
id;
95 explicit operator bool()
const {
return id !=
kBadId; }
99 std::uint16_t
GetId()
const {
return id; }
115 template <EntityType entityType>
120 const auto index =
static_cast<std::uint16_t
>(entityType);
131 if (
abstract.
type != entityType) {
150 template <EntityType entityType>
174 class hash<
open3d::visualization::rendering::REHandle_abstract> {
186 struct formatter<
open3d::visualization::rendering::REHandle_abstract> {
187 template <
typename FormatContext>
189 FormatContext& ctx) {
190 return format_to(ctx.out(),
"[{}, {}, hash: {}]",
192 TypeToString(uid.
type),
196 template <
typename ParseContext>
197 constexpr
auto parse(ParseContext& ctx) {
filament::Texture::InternalFormat format
Definition: FilamentResourceManager.cpp:214
REHandle< EntityType::IndexBuffer > IndexBufferHandle
Definition: RendererHandle.h:165
std::ostream & operator<<(std::ostream &os, const REHandle_abstract &uid)
Definition: RendererHandle.cpp:38
REHandle< EntityType::Material > MaterialHandle
Definition: RendererHandle.h:160
REHandle< EntityType::VertexBuffer > VertexBufferHandle
Definition: RendererHandle.h:164
REHandle< EntityType::Scene > SceneHandle
Definition: RendererHandle.h:154
EntityType
Definition: RendererHandle.h:49
REHandle< EntityType::MaterialInstance > MaterialInstanceHandle
Definition: RendererHandle.h:161
REHandle< EntityType::Geometry > GeometryHandle
Definition: RendererHandle.h:155
REHandle< EntityType::Camera > CameraHandle
Definition: RendererHandle.h:159
REHandle< EntityType::RenderTarget > RenderTargetHandle
Definition: RendererHandle.h:163
REHandle< EntityType::Light > LightHandle
Definition: RendererHandle.h:156
REHandle< EntityType::Texture > TextureHandle
Definition: RendererHandle.h:162
REHandle< EntityType::Skybox > SkyboxHandle
Definition: RendererHandle.h:158
REHandle< EntityType::View > ViewHandle
Definition: RendererHandle.h:153
REHandle< EntityType::IndirectLight > IndirectLightHandle
Definition: RendererHandle.h:157
Definition: PinholeCameraIntrinsic.cpp:35
Definition: RendererHandle.h:73
bool operator!=(const REHandle_abstract &other) const
Definition: RendererHandle.h:87
std::uint16_t GetId() const
Definition: RendererHandle.h:99
bool operator<(const REHandle_abstract &other) const
Definition: RendererHandle.h:91
const EntityType type
Definition: RendererHandle.h:77
std::uint16_t id
Definition: RendererHandle.h:108
size_t Hash() const
Definition: RendererHandle.h:79
bool operator==(const REHandle_abstract &other) const
Definition: RendererHandle.h:83
REHandle_abstract(const EntityType aType, const std::uint16_t aId)
Definition: RendererHandle.h:102
REHandle_abstract()
Definition: RendererHandle.h:97
static const char * TypeToString(EntityType type)
Definition: RendererHandle.cpp:44
static std::array< std::uint16_t, static_cast< size_t >EntityType::Count)> uid_table
Definition: RendererHandle.h:106
static const std::uint16_t kBadId
Definition: RendererHandle.h:76
Definition: RendererHandle.h:116
REHandle(std::uint16_t id)
Definition: RendererHandle.h:142
static REHandle Next()
Definition: RendererHandle.h:119
REHandle(const REHandle &other)
Definition: RendererHandle.h:140
static REHandle Concretize(const REHandle_abstract &abstract)
Definition: RendererHandle.h:130
REHandle()
Definition: RendererHandle.h:139
REHandle & operator=(const REHandle &other)
Definition: RendererHandle.h:144
static const REHandle kBad
Definition: RendererHandle.h:117