185 wxString::Format( wxT(
"Box does not have a Shape parent (parent ID: %s)" ),
194 if(
nullptr != aParent )
212 float x =
size.x / 2.0;
213 float y =
size.y / 2.0;
214 float z =
size.z / 2.0;
215 std::vector< SGPOINT > vertices;
216 std::vector< SGVECTOR > norms;
217 std::vector< int > idx;
220 vertices.reserve( 6 * 4 );
221 norms.reserve( 6 * 4 );
222 idx.reserve( 6 * 6 );
225 vertices.emplace_back( -x, -y, z );
226 vertices.emplace_back( x, -y, z );
227 vertices.emplace_back( x, y, z );
228 vertices.emplace_back( -x, y, z );
229 norms.emplace_back( 0.0, 0.0, 1.0 );
230 norms.emplace_back( 0.0, 0.0, 1.0 );
231 norms.emplace_back( 0.0, 0.0, 1.0 );
232 norms.emplace_back( 0.0, 0.0, 1.0 );
233 idx.push_back( base );
234 idx.push_back( base + 1 );
235 idx.push_back( base + 2 );
236 idx.push_back( base );
237 idx.push_back( base + 2 );
238 idx.push_back( base + 3 );
242 vertices.emplace_back( -x, -y, -z );
243 vertices.emplace_back( x, -y, -z );
244 vertices.emplace_back( x, y, -z );
245 vertices.emplace_back( -x, y, -z );
246 norms.emplace_back( 0.0, 0.0, -1.0 );
247 norms.emplace_back( 0.0, 0.0, -1.0 );
248 norms.emplace_back( 0.0, 0.0, -1.0 );
249 norms.emplace_back( 0.0, 0.0, -1.0 );
250 idx.push_back( base );
251 idx.push_back( base + 2 );
252 idx.push_back( base + 1 );
253 idx.push_back( base );
254 idx.push_back( base + 3 );
255 idx.push_back( base + 2 );
259 vertices.emplace_back( -x, -y, z );
260 vertices.emplace_back( -x, -y, -z );
261 vertices.emplace_back( x, -y, -z );
262 vertices.emplace_back( x, -y, z );
263 norms.emplace_back( 0.0, -1.0, 0.0 );
264 norms.emplace_back( 0.0, -1.0, 0.0 );
265 norms.emplace_back( 0.0, -1.0, 0.0 );
266 norms.emplace_back( 0.0, -1.0, 0.0 );
267 idx.push_back( base );
268 idx.push_back( base + 1 );
269 idx.push_back( base + 2 );
270 idx.push_back( base );
271 idx.push_back( base + 2 );
272 idx.push_back( base + 3 );
276 vertices.emplace_back( -x, y, z );
277 vertices.emplace_back( -x, y, -z );
278 vertices.emplace_back( x, y, -z );
279 vertices.emplace_back( x, y, z );
280 norms.emplace_back( 0.0, 1.0, 0.0 );
281 norms.emplace_back( 0.0, 1.0, 0.0 );
282 norms.emplace_back( 0.0, 1.0, 0.0 );
283 norms.emplace_back( 0.0, 1.0, 0.0 );
284 idx.push_back( base );
285 idx.push_back( base + 2 );
286 idx.push_back( base + 1 );
287 idx.push_back( base );
288 idx.push_back( base + 3 );
289 idx.push_back( base + 2 );
293 vertices.emplace_back( -x, -y, -z );
294 vertices.emplace_back( -x, -y, z );
295 vertices.emplace_back( -x, y, z );
296 vertices.emplace_back( -x, y, -z );
297 norms.emplace_back( -1.0, 0.0, 0.0 );
298 norms.emplace_back( -1.0, 0.0, 0.0 );
299 norms.emplace_back( -1.0, 0.0, 0.0 );
300 norms.emplace_back( -1.0, 0.0, 0.0 );
301 idx.push_back( base );
302 idx.push_back( base + 1 );
303 idx.push_back( base + 2 );
304 idx.push_back( base );
305 idx.push_back( base + 2 );
306 idx.push_back( base + 3 );
310 vertices.emplace_back( x, -y, -z );
311 vertices.emplace_back( x, -y, z );
312 vertices.emplace_back( x, y, z );
313 vertices.emplace_back( x, y, -z );
314 norms.emplace_back( 1.0, 0.0, 0.0 );
315 norms.emplace_back( 1.0, 0.0, 0.0 );
316 norms.emplace_back( 1.0, 0.0, 0.0 );
317 norms.emplace_back( 1.0, 0.0, 0.0 );
318 idx.push_back( base );
319 idx.push_back( base + 2 );
320 idx.push_back( base + 1 );
321 idx.push_back( base );
322 idx.push_back( base + 3 );
323 idx.push_back( base + 2 );