Blender V4.3
workbench_enums.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#include "BLI_assert.h"
6#include "DNA_object_types.h"
7#include "DNA_view3d_enums.h"
8
9namespace blender::workbench {
10
11enum class eGeometryType {
12 MESH = 0,
13 CURVES,
15};
16static constexpr int geometry_type_len = static_cast<int>(eGeometryType::POINTCLOUD) + 1;
17
18static inline const char *get_name(eGeometryType type)
19{
20 switch (type) {
22 return "Mesh";
24 return "Curves";
26 return "PointCloud";
27 default:
29 return "";
30 }
31}
32
34{
35 switch (ob->type) {
36 case OB_CURVES:
38 case OB_POINTCLOUD:
40 default:
42 }
43}
44
45enum class ePipelineType {
46 OPAQUE = 0,
48};
49static constexpr int pipeline_type_len = static_cast<int>(ePipelineType::TRANSPARENT) + 1;
50
51enum class eLightingType {
52 FLAT = 0,
53 STUDIO,
54 MATCAP,
55};
56static constexpr int lighting_type_len = static_cast<int>(eLightingType::MATCAP) + 1;
57
59{
60 switch (lighting) {
67 default:
69 return static_cast<eLightingType>(-1);
70 }
71}
72
73enum class eShaderType {
74 MATERIAL = 0,
75 TEXTURE,
76};
77static constexpr int shader_type_len = static_cast<int>(eShaderType::TEXTURE) + 1;
78
83
84static inline const char *get_name(eShaderType type)
85{
86 switch (type) {
88 return "Material";
90 return "Texture";
91 default:
93 return "";
94 }
95}
96
97} // namespace blender::workbench
#define BLI_assert_unreachable()
Definition BLI_assert.h:97
Object is a sort of wrapper for general info.
@ OB_POINTCLOUD
@ OB_CURVES
@ V3D_SHADING_TEXTURE_COLOR
@ V3D_LIGHTING_FLAT
@ V3D_LIGHTING_STUDIO
@ V3D_LIGHTING_MATCAP
static eShaderType shader_type_from_v3d_shading(char shading)
static constexpr int geometry_type_len
static constexpr int lighting_type_len
static constexpr int shader_type_len
static constexpr int pipeline_type_len
static eGeometryType geometry_type_from_object(Object *ob)
static eLightingType lighting_type_from_v3d_lighting(char lighting)
static const char * get_name(eGeometryType type)