Vip_SolidSnake Admin
Posts : 61 Reputation : 26 Join date : 2010-02-04
| Subject: D3D 3D Box - Draw Function Sun 7 Feb 2010 - 17:46 | |
| Make your Own D3D 3D Box - Draw Function Tutorials [You must be registered and logged in to see this image.] - Code:
-
//declaration stuff ID3DXLine *pLine; //Liner
//here is the functions body void Draw3DBox(float x_bottom_left, float y_bottom_left, float x_bottom_right, float y_bottom_right, float x_top_left, float y_top_left, float x_top_right, float y_top_right, float x_forward_bottom_left, float y_forward_bottom_left, float x_forward_bottom_right, float y_forward_bottom_right, float x_forward_top_left, float y_forward_top_left, float x_forward_top_right, float y_forward_top_right, int a, int r, int g, int b) { if(!IsBadReadPtr(pLine, sizeof(ID3DXLine))) { D3DXVECTOR2 vLine1[2]; D3DXVECTOR2 vLine2[2]; D3DXVECTOR2 vLine3[2]; D3DXVECTOR2 vLine4[2]; D3DXVECTOR2 vLine5[2]; D3DXVECTOR2 vLine6[2]; D3DXVECTOR2 vLine7[2]; D3DXVECTOR2 vLine8[2]; D3DXVECTOR2 vLine9[2]; D3DXVECTOR2 vLine10[2]; D3DXVECTOR2 vLine11[2]; D3DXVECTOR2 vLine12[2];
float t=1; pLine->SetWidth( t ); pLine->SetAntialias( false ); pLine->SetGLLines( false );
//bottom left to bottom right vLine1[0].x = x_bottom_left; vLine1[0].y = y_bottom_left; vLine1[1].x = x_bottom_left+(x_bottom_right-x_bottom_left); vLine1[1].y = y_bottom_left;
//bottom left to top left vLine2[0].x = x_top_left; vLine2[0].y = y_top_left; vLine2[1].x = x_top_left; vLine2[1].y = y_top_left+(y_bottom_left-y_top_left);
//bottom right to top right vLine3[0].x = x_top_right; vLine3[0].y = y_top_right; vLine3[1].x = x_top_right; vLine3[1].y = y_top_right+(y_bottom_right-y_top_right);
//top left to top right vLine4[0].x = x_top_left; vLine4[0].y = y_top_left; vLine4[1].x = x_top_left+(x_top_right-x_top_left); vLine4[1].y = y_top_left;
//from top left to top left forward vLine5[0].x = x_top_left; vLine5[0].y = y_top_left; vLine5[1].x = x_top_left+(x_forward_top_left-x_top_left); vLine5[1].y = y_top_left+(y_forward_top_left-y_top_left);
//from bottom left to bottom left forward vLine6[0].x = x_bottom_left; vLine6[0].y = y_bottom_left; vLine6[1].x = x_bottom_left+(x_forward_bottom_left-x_bottom_left);// vLine6[1].y = y_bottom_left+(y_forward_bottom_left-y_bottom_left);//
//from bottom right to bottom right forward vLine7[0].x = x_bottom_right; vLine7[0].y = y_bottom_right; vLine7[1].x = x_bottom_right+(x_forward_bottom_right-x_bottom_right);// vLine7[1].y = y_bottom_right+(y_forward_bottom_right-y_bottom_right);//
//from top right to top right forward vLine8[0].x = x_top_right; vLine8[0].y = y_top_right; vLine8[1].x = x_top_right+(x_forward_top_right-x_top_right);// vLine8[1].y = y_top_right+(y_forward_top_right-y_top_right);//
//bottom left forward to bottom right forward vLine9[0].x = x_forward_bottom_left; vLine9[0].y = y_forward_bottom_left; vLine9[1].x = x_forward_bottom_left+(x_forward_bottom_right-x_forward_bottom_left); vLine9[1].y = y_forward_bottom_left;
//bottom left forward to top left forward vLine10[0].x = x_forward_top_left; vLine10[0].y = y_forward_top_left; vLine10[1].x = x_forward_top_left; vLine10[1].y = y_forward_top_left+(y_forward_bottom_left-y_forward_top_left);
//bottom right forward to top right forward vLine11[0].x = x_forward_top_right; vLine11[0].y = y_forward_top_right; vLine11[1].x = x_forward_top_right; vLine11[1].y = y_forward_top_right+(y_forward_bottom_right-y_forward_top_right);
//top left forward to top right forward vLine12[0].x = x_forward_top_left; vLine12[0].y = y_forward_top_left; vLine12[1].x = x_forward_top_left+(x_forward_top_right-x_forward_top_left); vLine12[1].y = y_forward_top_left;
pLine->Begin( ); pLine->Draw( vLine1, 2, D3DCOLOR_ARGB(a, r, g, b ) ); pLine->Draw( vLine2, 2, D3DCOLOR_ARGB(a, r, g, b ) ); pLine->Draw( vLine3, 2, D3DCOLOR_ARGB(a, r, g, b ) ); pLine->Draw( vLine4, 2, D3DCOLOR_ARGB(a, r, g, b ) ); pLine->Draw( vLine5, 2, D3DCOLOR_ARGB(a, r, g, b ) ); pLine->Draw( vLine6, 2, D3DCOLOR_ARGB(a, r, g, b ) ); pLine->Draw( vLine7, 2, D3DCOLOR_ARGB(a, r, g, b ) ); pLine->Draw( vLine8, 2, D3DCOLOR_ARGB(a, r, g, b ) ); pLine->Draw( vLine9, 2, D3DCOLOR_ARGB(a, r, g, b ) ); pLine->Draw( vLine10, 2, D3DCOLOR_ARGB(a, r, g, b ) ); pLine->Draw( vLine11, 2, D3DCOLOR_ARGB(a, r, g, b ) ); pLine->Draw( vLine12, 2, D3DCOLOR_ARGB(a, r, g, b ) ); pLine->End( ); } }
//following you put in endscene for example: D3DXCreateLine(d3dDevice, &pLine ); //Create line (put that for example in endscene or whatever you hooked
//and last but not least lets call our function: Draw3DBox( /*all parameters for example bones*/ ); its possible to use Vectors on that function but i tried to keep it as simple as i could. It shouldnt be a problem to rewrite it cause i hope the function and a grasp of c++ is at hand.[You must be registered and logged in to see this image.]Mobile number - 09286880872Yahoo Messenger - [You must be registered and logged in to see this link.] - [You must be registered and logged in to see this image.] | |
|