MCPcopy Create free account
hub / github.com/OGRECave/ogre / createCube

Method createCube

OgreMain/src/OgrePrefabFactory.cpp:138–296  ·  view source on GitHub ↗

---------------------------------------------------------------------

Source from the content-addressed store, hash-verified

136 }
137 //---------------------------------------------------------------------
138 void PrefabFactory::createCube(Mesh* mesh)
139 {
140 SubMesh* sub = mesh->createSubMesh();
141
142 const int NUM_VERTICES = 4 * 6; // 4 vertices per side * 6 sides
143 const int NUM_ENTRIES_PER_VERTEX = 8;
144 const int NUM_VERTEX_ENTRIES = NUM_VERTICES * NUM_ENTRIES_PER_VERTEX;
145 const int NUM_INDICES = 3 * 2 * 6; // 3 indices per face * 2 faces per side * 6 sides
146
147 const float CUBE_SIZE = 100.0f;
148 const float CUBE_HALF_SIZE = CUBE_SIZE / 2.0f;
149
150 // Create 4 vertices per side instead of 6 that are shared for the whole cube.
151 // The reason for this is with only 6 vertices the normals will look bad
152 // since each vertex can "point" in a different direction depending on the face it is included in.
153 float vertices[NUM_VERTEX_ENTRIES] = {
154 // front side
155 -CUBE_HALF_SIZE, -CUBE_HALF_SIZE, CUBE_HALF_SIZE, // pos
156 0,0,1, // normal
157 0,1, // texcoord
158 CUBE_HALF_SIZE, -CUBE_HALF_SIZE, CUBE_HALF_SIZE,
159 0,0,1,
160 1,1,
161 CUBE_HALF_SIZE, CUBE_HALF_SIZE, CUBE_HALF_SIZE,
162 0,0,1,
163 1,0,
164 -CUBE_HALF_SIZE, CUBE_HALF_SIZE, CUBE_HALF_SIZE ,
165 0,0,1,
166 0,0,
167
168 // back side
169 CUBE_HALF_SIZE, -CUBE_HALF_SIZE, -CUBE_HALF_SIZE,
170 0,0,-1,
171 0,1,
172 -CUBE_HALF_SIZE, -CUBE_HALF_SIZE, -CUBE_HALF_SIZE,
173 0,0,-1,
174 1,1,
175 -CUBE_HALF_SIZE, CUBE_HALF_SIZE, -CUBE_HALF_SIZE,
176 0,0,-1,
177 1,0,
178 CUBE_HALF_SIZE, CUBE_HALF_SIZE, -CUBE_HALF_SIZE,
179 0,0,-1,
180 0,0,
181
182 // left side
183 -CUBE_HALF_SIZE, -CUBE_HALF_SIZE, -CUBE_HALF_SIZE,
184 -1,0,0,
185 0,1,
186 -CUBE_HALF_SIZE, -CUBE_HALF_SIZE, CUBE_HALF_SIZE,
187 -1,0,0,
188 1,1,
189 -CUBE_HALF_SIZE, CUBE_HALF_SIZE, CUBE_HALF_SIZE,
190 -1,0,0,
191 1,0,
192 -CUBE_HALF_SIZE, CUBE_HALF_SIZE, -CUBE_HALF_SIZE,
193 -1,0,0,
194 0,0,
195

Callers

nothing calls this directly

Calls 8

setBindingMethod · 0.80
_setBoundsMethod · 0.80
AxisAlignedBoxClass · 0.50
createSubMeshMethod · 0.45
getSizeMethod · 0.45
createVertexBufferMethod · 0.45
writeDataMethod · 0.45
createIndexBufferMethod · 0.45

Tested by

no test coverage detected