Philippine Online Games
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Philippine Online Games

The No.1 Community Forum in The Philippines
 
HomeGalleryLatest imagesSearchRegisterLog in
If this is your first visit? be sure to check out the FAQ by clicking the link above. You may have to register before you can post and Download. Click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

 

 D3D 3D Box - Draw Function

Go down 
AuthorMessage
Vip_SolidSnake
Admin
Vip_SolidSnake


Posts : 61
Reputation : 26
Join date : 2010-02-04

D3D 3D Box - Draw Function Empty
PostSubject: D3D 3D Box - Draw Function   D3D 3D Box - Draw Function I_icon_minitimeSun 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 - 09286880872
Yahoo Messenger - [You must be registered and logged in to see this link.] -
[You must be registered and logged in to see this image.]
Back to top Go down
http://vipcoders.omgforum.net
 
D3D 3D Box - Draw Function
Back to top 
Page 1 of 1

Permissions in this forum:You cannot reply to topics in this forum
Philippine Online Games :: VIP :: Programming :: D3D Programming [Tutorials]-
Jump to: