1

これら 2 つのメソッドを次々と呼び出します。

m_Fence.Initialise(7);
m_Fence.CreateSquareFence();    

それぞれの詳細は次のとおりです。

void CFence::Initialise(int size)
{
    m_square_size = size;
}

void CFence::CreateSquareFence()
{
    int l_Vector_Pos = 0;

    //Set initial vector at origin and start of first fence
    CVector3f l_Fence_Position = CVector3f(0.0f,0.0f,0.0f);

    int l_side = 0; // Makes sure only 4 sides get created
    std::string bools[4] = {"plus_z", "plus_x", "minus_z", "minus_x"};
        //Draw 1st fence on 0 x-axis
        while(l_side < 4)
            {
                for(int i=0 ; i<=m_square_size ; i++)
                    {                   
                    //Find which direction it's going and set Fence position and add to vector
                    if(bools[l_side] == "plus_z" &&  i>0)
                        l_Fence_Position += CVector3f(0.0,0.0,beamLength);
                    else if(bools[l_side] == "plus_x" && i>0)
                        l_Fence_Position += CVector3f(beamLength,0.0,0.0);
                    else if(bools[l_side] == "minus_z" && i>0)
                        l_Fence_Position += CVector3f(0.0,0.0,-beamLength);
                    else if(bools[l_side] == "minus_x" && i>0)
                        l_Fence_Position += CVector3f(-beamLength,0.0,0.0);

                    fences[l_Vector_Pos].setPosition(l_Fence_Position);
                    l_Vector_Pos++;

                    //Increase this int to let it know what side we're creating
                    if(i == m_square_size) 
                        {
                            l_side++;
                    }
                }
            }
}

7 を渡すと、最初はm_square_size変数が 7 に変更されますが、CreateSquareFenceメソッドを呼び出すと最終的に 0 になり、その理由を理解するのに苦労しています。

4

1 に答える 1