The SetMyPositions Function

The MyScene function calls the SetMyPositions function to set the positions and orientations of the frames used in Helworld.c. SetMyPositions does this work by calling the IDirect3DRMFrame::SetPosition and IDirect3DRMFrame::SetOrientation methods. The IDirect3DRMFrame::SetRotation method imparts a spin to the frame to which the sphere will be added.

/////////////////////////////////////////////////////////////////////

//

// SetMyPositions

// Set the positions and orientations of the light, camera, and

// world frames. Establish a rotation for the globe.

//

/////////////////////////////////////////////////////////////////////

void SetMyPositions(LPDIRECT3DRMFRAME lpScene,

LPDIRECT3DRMFRAME lpCamera, LPDIRECT3DRMFRAME lpLightFrame1,

LPDIRECT3DRMFRAME lpWorld_frame)

{

lpLightFrame1->lpVtbl->SetPosition(lpLightFrame1, lpScene,

D3DVAL(2), D3DVAL(0.0), D3DVAL(22));

lpCamera->lpVtbl->SetPosition(lpCamera, lpScene,

D3DVAL(0.0), D3DVAL(0.0), D3DVAL(0.0));

lpCamera->lpVtbl->SetOrientation(lpCamera, lpScene,

D3DVAL(0.0), D3DVAL(0.0), D3DVAL(1),

D3DVAL(0.0), D3DVAL(1), D3DVAL(0.0));

lpWorld_frame->lpVtbl->SetPosition(lpWorld_frame, lpScene,

D3DVAL(0.0), D3DVAL(0.0), D3DVAL(15));

lpWorld_frame->lpVtbl->SetOrientation(lpWorld_frame, lpScene,

D3DVAL(0.0), D3DVAL(0.0), D3DVAL(1),

D3DVAL(0.0), D3DVAL(1), D3DVAL(0.0));

lpWorld_frame->lpVtbl->SetRotation(lpWorld_frame, lpScene,

D3DVAL(0.0), D3DVAL(0.1), D3DVAL(0.0), D3DVAL(0.05));

}