| 94 | } |
| 95 | |
| 96 | SceneContentFlags MeshInstance::GetContentFlags() const |
| 97 | { |
| 98 | if (!m_Mesh) |
| 99 | return SceneContentFlags::None; |
| 100 | |
| 101 | SceneContentFlags flags = SceneContentFlags::None; |
| 102 | |
| 103 | for (const auto& geometry : m_Mesh->geometries) |
| 104 | { |
| 105 | if (!geometry->material) |
| 106 | continue; |
| 107 | |
| 108 | switch(geometry->material->domain) // NOLINT(clang-diagnostic-switch-enum) |
| 109 | { |
| 110 | case MaterialDomain::Opaque: |
| 111 | flags |= SceneContentFlags::OpaqueMeshes; |
| 112 | break; |
| 113 | case MaterialDomain::AlphaTested: |
| 114 | flags |= SceneContentFlags::AlphaTestedMeshes; |
| 115 | break; |
| 116 | default: |
| 117 | flags |= SceneContentFlags::BlendedMeshes; |
| 118 | break; |
| 119 | } |
| 120 | } |
| 121 | |
| 122 | return flags; |
| 123 | } |
| 124 | |
| 125 | bool MeshInstance::SetProperty(const std::string& name, const dm::float4& value) |
| 126 | { |