Overte C++ Documentation
BoxBase.h
1 //
2 // BoxBase.h
3 // libraries/octree/src
4 //
5 // Created by Brad Hefta-Gaub on 04/11/13.
6 // Copyright 2013 High Fidelity, Inc.
7 //
8 // Originally from lighthouse3d. Modified to utilize glm::vec3 and clean up to our coding standards
9 // Simple axis aligned box class.
10 //
11 // Distributed under the Apache License, Version 2.0.
12 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
13 //
14 
15 #ifndef hifi_BoxBase_h
16 #define hifi_BoxBase_h
17 
18 #include <glm/glm.hpp>
19 #include <QString>
20 
21 /*@jsdoc
22 * <p>A <code>BoxFace</code> specifies the face of an axis-aligned (AA) box.
23 * <table>
24 * <thead>
25 * <tr><th>Value</th><th>Description</th></tr>
26 * </thead>
27 * <tbody>
28 * <tr><td><code>"MIN_X_FACE"</code></td><td>The minimum x-axis face.</td></tr>
29 * <tr><td><code>"MAX_X_FACE"</code></td><td>The maximum x-axis face.</td></tr>
30 * <tr><td><code>"MIN_Y_FACE"</code></td><td>The minimum y-axis face.</td></tr>
31 * <tr><td><code>"MAX_Y_FACE"</code></td><td>The maximum y-axis face.</td></tr>
32 * <tr><td><code>"MIN_Z_FACE"</code></td><td>The minimum z-axis face.</td></tr>
33 * <tr><td><code>"MAX_Z_FACE"</code></td><td>The maximum z-axis face.</td></tr>
34 * <tr><td><code>"UNKNOWN_FACE"</code></td><td>Unknown value.</td></tr>
35 * </tbody>
36 * </table>
37 * @typedef {string} BoxFace
38 */
39 enum BoxFace {
40  MIN_X_FACE,
41  MAX_X_FACE,
42  MIN_Y_FACE,
43  MAX_Y_FACE,
44  MIN_Z_FACE,
45  MAX_Z_FACE,
46  UNKNOWN_FACE
47 };
48 
49 QString boxFaceToString(BoxFace face);
50 BoxFace boxFaceFromString(const QString& face);
51 
52 enum BoxVertex {
53  BOTTOM_LEFT_NEAR = 0,
54  BOTTOM_RIGHT_NEAR = 1,
55  TOP_RIGHT_NEAR = 2,
56  TOP_LEFT_NEAR = 3,
57  BOTTOM_LEFT_FAR = 4,
58  BOTTOM_RIGHT_FAR = 5,
59  TOP_RIGHT_FAR = 6,
60  TOP_LEFT_FAR = 7
61 };
62 
63 const int FACE_COUNT = 6;
64 
65 #endif // hifi_BoxBase_h