189                 wxString::Format( wxT( 
"Box does not have a Shape parent (parent ID: %s)" ),
 
  198        if( 
nullptr != aParent )
 
  216    float x = 
size.x / 2.0;
 
  217    float y = 
size.y / 2.0;
 
  218    float z = 
size.z / 2.0;
 
  219    std::vector< SGPOINT > vertices;
 
  220    std::vector< SGVECTOR > norms;
 
  221    std::vector< int > idx;
 
  224    vertices.reserve( 6 * 4 );
 
  225    norms.reserve( 6 * 4 );
 
  226    idx.reserve( 6 * 6 );
 
  229    vertices.emplace_back( -x, -y, z );
 
  230    vertices.emplace_back(  x, -y, z );
 
  231    vertices.emplace_back(  x,  y, z );
 
  232    vertices.emplace_back( -x,  y, z );
 
  233    norms.emplace_back( 0.0, 0.0, 1.0 );
 
  234    norms.emplace_back( 0.0, 0.0, 1.0 );
 
  235    norms.emplace_back( 0.0, 0.0, 1.0 );
 
  236    norms.emplace_back( 0.0, 0.0, 1.0 );
 
  237    idx.push_back( base );
 
  238    idx.push_back( base + 1 );
 
  239    idx.push_back( base + 2 );
 
  240    idx.push_back( base );
 
  241    idx.push_back( base + 2 );
 
  242    idx.push_back( base + 3 );
 
  246    vertices.emplace_back( -x, -y, -z );
 
  247    vertices.emplace_back(  x, -y, -z );
 
  248    vertices.emplace_back(  x,  y, -z );
 
  249    vertices.emplace_back( -x,  y, -z );
 
  250    norms.emplace_back( 0.0, 0.0, -1.0 );
 
  251    norms.emplace_back( 0.0, 0.0, -1.0 );
 
  252    norms.emplace_back( 0.0, 0.0, -1.0 );
 
  253    norms.emplace_back( 0.0, 0.0, -1.0 );
 
  254    idx.push_back( base );
 
  255    idx.push_back( base + 2 );
 
  256    idx.push_back( base + 1 );
 
  257    idx.push_back( base );
 
  258    idx.push_back( base + 3 );
 
  259    idx.push_back( base + 2 );
 
  263    vertices.emplace_back( -x, -y,  z );
 
  264    vertices.emplace_back( -x, -y, -z );
 
  265    vertices.emplace_back(  x, -y, -z );
 
  266    vertices.emplace_back(  x, -y,  z );
 
  267    norms.emplace_back( 0.0, -1.0, 0.0 );
 
  268    norms.emplace_back( 0.0, -1.0, 0.0 );
 
  269    norms.emplace_back( 0.0, -1.0, 0.0 );
 
  270    norms.emplace_back( 0.0, -1.0, 0.0 );
 
  271    idx.push_back( base );
 
  272    idx.push_back( base + 1 );
 
  273    idx.push_back( base + 2 );
 
  274    idx.push_back( base );
 
  275    idx.push_back( base + 2 );
 
  276    idx.push_back( base + 3 );
 
  280    vertices.emplace_back( -x, y,  z );
 
  281    vertices.emplace_back( -x, y, -z );
 
  282    vertices.emplace_back(  x, y, -z );
 
  283    vertices.emplace_back(  x, y,  z );
 
  284    norms.emplace_back( 0.0, 1.0, 0.0 );
 
  285    norms.emplace_back( 0.0, 1.0, 0.0 );
 
  286    norms.emplace_back( 0.0, 1.0, 0.0 );
 
  287    norms.emplace_back( 0.0, 1.0, 0.0 );
 
  288    idx.push_back( base );
 
  289    idx.push_back( base + 2 );
 
  290    idx.push_back( base + 1 );
 
  291    idx.push_back( base );
 
  292    idx.push_back( base + 3 );
 
  293    idx.push_back( base + 2 );
 
  297    vertices.emplace_back( -x, -y, -z );
 
  298    vertices.emplace_back( -x, -y,  z );
 
  299    vertices.emplace_back( -x,  y,  z );
 
  300    vertices.emplace_back( -x,  y, -z );
 
  301    norms.emplace_back( -1.0, 0.0, 0.0 );
 
  302    norms.emplace_back( -1.0, 0.0, 0.0 );
 
  303    norms.emplace_back( -1.0, 0.0, 0.0 );
 
  304    norms.emplace_back( -1.0, 0.0, 0.0 );
 
  305    idx.push_back( base );
 
  306    idx.push_back( base + 1 );
 
  307    idx.push_back( base + 2 );
 
  308    idx.push_back( base );
 
  309    idx.push_back( base + 2 );
 
  310    idx.push_back( base + 3 );
 
  314    vertices.emplace_back( x, -y, -z );
 
  315    vertices.emplace_back( x, -y,  z );
 
  316    vertices.emplace_back( x,  y,  z );
 
  317    vertices.emplace_back( x,  y, -z );
 
  318    norms.emplace_back( 1.0, 0.0, 0.0 );
 
  319    norms.emplace_back( 1.0, 0.0, 0.0 );
 
  320    norms.emplace_back( 1.0, 0.0, 0.0 );
 
  321    norms.emplace_back( 1.0, 0.0, 0.0 );
 
  322    idx.push_back( base );
 
  323    idx.push_back( base + 2 );
 
  324    idx.push_back( base + 1 );
 
  325    idx.push_back( base );
 
  326    idx.push_back( base + 3 );
 
  327    idx.push_back( base + 2 );