Graphics Reference
In-Depth Information
A1: void CModel::SetCurrentTypeToPoint() { m _ pCurrentObject = &m _ Point; }
void CModel::SetCurrentTypeToLine() {
m _ pCurrentObject = &m _ Line; }
.
B1: void CModel::SetShadeMode( eShadeMode mode ) { m _ pCurrentObject->SetShadeMode(mode); }
eShadeMode CModel::GetShadeMode() { return m _ pCurrentObject->GetShadeMode(); }
.
C1: void CModel::StartDefineGraphicsObject( float world _ x, float world _ y)
m _ pCurrentObject->MouseDownVertex(0, world _ x, world _ y);
m _ pCurrentObject->SetVelocity( vec3 (0,0,0));
void CModel::EndDefineGraphicsObject( float world _ x, float world _ y)
m _ pCurrentObject->MouseDownVertex(1, world _ x, world _ y);
void CModel::MoveGraphicsObject( float world _ x, float world _ y)
m _ pCurrentObject->MoveTo(world _ x, world _ y);
D1: void CModel::UpdateSimulation()
. // Check for boundary conditions to bounce the primitives by negating velocities
float elapsed _ seconds = m _ stop _ watch.GetSecondsElapsed();
m _ Point.Update(elapsed _ seconds);
. // calls m _ Circle and m _ Line Update(elapsed _ seconds);
E1: void CModel::DrawModel()
// calls m _ Circle, m _ Point and m _ Line.Draw() function
Listing 7.13. (cont.)
The CDrawAndMouseHandler class. Listing 7.14 shows the mouse event ser-
vice routines for the view/controller pair ( CDrawAndMouseHandler )wherethe
left and right mouse button events are mapped directly to the CModel editing
functionality.
void CDrawAndMouseHandler::OnMouseButton( bool down, unsigned int nFlags, int hwX, int hwY)
// Hardware to device transform
HardwareToDevice(hwX, hwY, deviceX, deviceY);
Source file.
DrawAndMouseHandler.cpp
file in the WindowHan-
dler folder of the
D3D _ ObjectClasses project.
if (nFlags & MK _ LBUTTON)
if (down) // LMB down event
theApp.GetModel().StartDefineGraphicsObject(...);
else
// LBM Up event
theApp.GetModel().PlaceGraphicsObjectInMotion();
Listing 7.14. Mouse event services ( CDrawAndMoseHandler Tutorial 7.2).
Search WWH ::




Custom Search