Overte C++ Documentation
EntityShape.h
1 //
2 // Created by HifiExperiments on 8/4/24
3 // Copyright 2024 Overte e.V.
4 //
5 // Distributed under the Apache License, Version 2.0.
6 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
7 //
8 
9 #ifndef hifi_EntityShape_h
10 #define hifi_EntityShape_h
11 
12 #include <QString>
13 
14 /*@jsdoc
15  * <p>A <code>"Shape"</code>, <code>"Box"</code>, or <code>"Sphere"</code> {@link Entities.EntityType|EntityType} may
16  * display as one of the following geometrical shapes:</p>
17  * <table>
18  * <thead>
19  * <tr><th>Value</th><th>Dimensions</th><th>Notes</th></tr>
20  * </thead>
21  * <tbody>
22  * <tr><td><code>"Circle"</code></td><td>2D</td><td>A circle oriented in 3D.</td></tr>
23  * <tr><td><code>"Cone"</code></td><td>3D</td><td></td></tr>
24  * <tr><td><code>"Cube"</code></td><td>3D</td><td></td></tr>
25  * <tr><td><code>"Cylinder"</code></td><td>3D</td><td></td></tr>
26  * <tr><td><code>"Dodecahedron"</code></td><td>3D</td><td></td></tr>
27  * <tr><td><code>"Hexagon"</code></td><td>3D</td><td>A hexagonal prism.</td></tr>
28  * <tr><td><code>"Icosahedron"</code></td><td>3D</td><td></td></tr>
29  * <tr><td><code>"Octagon"</code></td><td>3D</td><td>An octagonal prism.</td></tr>
30  * <tr><td><code>"Octahedron"</code></td><td>3D</td><td></td></tr>
31  * <tr><td><code>"Quad"</code></td><td>2D</td><td>A square oriented in 3D.</td></tr>
32  * <tr><td><code>"Sphere"</code></td><td>3D</td><td></td></tr>
33  * <tr><td><code>"Tetrahedron"</code></td><td>3D</td><td></td></tr>
34  * <tr><td><code>"Torus"</code></td><td>3D</td><td>A donut shape.</td></tr>
35  * <tr><td><code>"Triangle"</code></td><td>3D</td><td>A triangular prism.</td></tr>
36  * </tbody>
37  * </table>
38  * @typedef {string} Entities.Shape
39  */
40 enum class EntityShape : uint8_t {
41  Triangle,
42  Quad,
43  Hexagon,
44  Octagon,
45  Circle,
46  Cube,
47  Sphere,
48  Tetrahedron,
49  Octahedron,
50  Dodecahedron,
51  Icosahedron,
52  Torus,
53  Cone,
54  Cylinder,
55  NUM_SHAPES,
56 };
57 
58 class EntityShapeHelpers {
59 public:
60  static QString getNameForEntityShape(EntityShape shape);
61 };
62 
63 #endif // hifi_EntityShape_h