Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Mesh::GenerateCube(float p_fSize)
- {
- m_axV.SetSize(6*4);
- m_aiI.SetSize(6*6);
- int iFace;
- for(iFace=0;iFace<6;iFace++)
- {
- Vec3 vOfs,vX,vY,vColor;
- switch(iFace)
- {
- case 0:
- vOfs.SetXYZ(p_fSize,0,0);
- vX.SetXYZ(0,-p_fSize,0);
- vY.SetXYZ(0,0,p_fSize);
- vColor.SetXYZ(1.0f,0.7f,0);
- break;
- case 1:
- vOfs.SetXYZ(-p_fSize,0,0);
- vX.SetXYZ(0,-p_fSize,0);
- vY.SetXYZ(0,0,p_fSize);
- vColor.SetXYZ(0.7f,1.0f,0);
- break;
- case 2:
- vOfs.SetXYZ(0,p_fSize,0);
- vX.SetXYZ(p_fSize,0,0);
- vY.SetXYZ(0,0,p_fSize);
- vColor.SetXYZ(1.0f,0,0.7f);
- break;
- case 3:
- vOfs.SetXYZ(0,-p_fSize,0);
- vX.SetXYZ(p_fSize,0,0);
- vY.SetXYZ(0,0,p_fSize);
- vColor.SetXYZ(0.7f,0,1.0f);
- break;
- case 4:
- vOfs.SetXYZ(0,0,p_fSize);
- vX.SetXYZ(-p_fSize,0,0);
- vY.SetXYZ(0,p_fSize,0);
- vColor.SetXYZ(0,1.0f,0.7f);
- break;
- case 5:
- vOfs.SetXYZ(0,0,-p_fSize);
- vX.SetXYZ(-p_fSize,0,0);
- vY.SetXYZ(0,p_fSize,0);
- vColor.SetXYZ(0,0.7f,1.0f);
- break;
- };
- Vec3 vN=vOfs;
- vN.Normalize();
- int iVOfs=iFace*4;
- m_axV[iVOfs+0].SetPos(vOfs+vX-vY).SetNormal(vN).SetColor(vColor);
- m_axV[iVOfs+1].SetPos(vOfs+vX+vY).SetNormal(vN).SetColor(vColor);
- m_axV[iVOfs+2].SetPos(vOfs-vX+vY).SetNormal(vN).SetColor(vColor);
- m_axV[iVOfs+3].SetPos(vOfs-vX-vY).SetNormal(vN).SetColor(vColor);
- if(iFace&1)
- {
- m_aiI[iFace*6+0]=iVOfs+0;
- m_aiI[iFace*6+1]=iVOfs+1;
- m_aiI[iFace*6+2]=iVOfs+2;
- m_aiI[iFace*6+3]=iVOfs+0;
- m_aiI[iFace*6+4]=iVOfs+2;
- m_aiI[iFace*6+5]=iVOfs+3;
- }
- else
- {
- m_aiI[iFace*6+0]=iVOfs+1;
- m_aiI[iFace*6+1]=iVOfs+0;
- m_aiI[iFace*6+2]=iVOfs+2;
- m_aiI[iFace*6+3]=iVOfs+2;
- m_aiI[iFace*6+4]=iVOfs+0;
- m_aiI[iFace*6+5]=iVOfs+3;
- };
- };
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement