Vulkan-Hpp
geometries.hpp
Go to the documentation of this file.
1 // Copyright(c) 2019, NVIDIA CORPORATION. All rights reserved.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 //
15 
16 struct VertexPC
17 {
18  float x, y, z, w; // Position
19  float r, g, b, a; // Color
20 };
21 
22 struct VertexPT
23 {
24  float x, y, z, w; // Position data
25  float u, v; // texture u,v
26 };
27 
28 
29 static const VertexPC coloredCubeData[] =
30 {
31  // red face
32  { -1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f },
33  { -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f },
34  { 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f },
35  { 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f },
36  { -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f },
37  { 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f },
38  // green face
39  { -1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f },
40  { 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f },
41  { -1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f },
42  { -1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f },
43  { 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f },
44  { 1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f },
45  // blue face
46  { -1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f },
47  { -1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f },
48  { -1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f },
49  { -1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f },
50  { -1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f },
51  { -1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f },
52  // yellow face
53  { 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f },
54  { 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f },
55  { 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f },
56  { 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f },
57  { 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f },
58  { 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f },
59  // magenta face
60  { 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f },
61  { -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f },
62  { 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f },
63  { 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f },
64  { -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f },
65  { -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f },
66  // cyan face
67  { 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f },
68  { 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f },
69  { -1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f },
70  { -1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f },
71  { 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f },
72  { -1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f },
73 };
74 
75 static const VertexPT texturedCubeData[] =
76 {
77  // left face
78  { -1.0f, -1.0f, -1.0f, 1.0f, 1.0f, 0.0f },
79  { -1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f },
80  { -1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 0.0f },
81  { -1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f },
82  { -1.0f, -1.0f, -1.0f, 1.0f, 1.0f, 0.0f },
83  { -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f },
84  // front face
85  { -1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f },
86  { 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, 0.0f },
87  { 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f },
88  { -1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f },
89  { 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f },
90  { -1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 1.0f },
91  // top face
92  { -1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 1.0f },
93  { 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 0.0f },
94  { 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, 1.0f },
95  { -1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 1.0f },
96  { -1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 0.0f },
97  { 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, 0.0f },
98  // bottom face
99  { -1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 0.0f },
100  { 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f },
101  { -1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f },
102  { -1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 0.0f },
103  { 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 0.0f },
104  { 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f },
105  // right face
106  { 1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 1.0f },
107  { 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 0.0f },
108  { 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f },
109  { 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 0.0f },
110  { 1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 1.0f },
111  { 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f },
112  // back face
113  { -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f },
114  { 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f },
115  { -1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 0.0f },
116  { -1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 0.0f },
117  { 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f },
118  { 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 0.0f },
119 };
120 
float b
Definition: geometries.hpp:19
float g
Definition: geometries.hpp:19
float y
Definition: geometries.hpp:18
float z
Definition: geometries.hpp:18
float r
Definition: geometries.hpp:19
float x
Definition: geometries.hpp:18
float w
Definition: geometries.hpp:18
float a
Definition: geometries.hpp:19
float z
Definition: geometries.hpp:24
float v
Definition: geometries.hpp:25
float y
Definition: geometries.hpp:24
float u
Definition: geometries.hpp:25
float w
Definition: geometries.hpp:24
float x
Definition: geometries.hpp:24