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