Quad Pang
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Private Attributes
BongoRealMover Class Reference

Move Bongo in polar coordinates. More...

#include <Controllers.h>

Inheritance diagram for BongoRealMover:
Controller Controller

List of all members.

Public Member Functions

 BongoRealMover (Engine *parent, Bongo *pquad)
bool Init (XRes *resource, XCongo *xcongo)
 Call to perform initalization based on resource.
bool ProcessKey (int key, Engine::KeyEvent type, int x, int y)
 Process key event.
 BongoRealMover (Engine *parent, Bongo *pquad)
bool Init (XRes *resource, XCongo *xcongo)
 Call to perform initalization based on resource.
bool ProcessKey (int key, Engine::KeyEvent type, int x, int y)
 Process key event.

Private Attributes

EnginempParent
BongompBongo
double mPower
double mDirection [3]
bool mbMoving

Detailed Description

Move Bongo in polar coordinates.

TODO: This is not well supported yet. Use BongoOrthoMover for now.

Definition at line 176 of file Controllers.h.


Constructor & Destructor Documentation

BongoRealMover::BongoRealMover ( Engine parent,
Bongo pquad 
)

Definition at line 244 of file Controllers.cpp.

References Engine::GetViewer(), mDirection, mPower, mpParent, and vec_ofpow().

BongoRealMover::BongoRealMover ( Engine parent,
Bongo pquad 
)

Member Function Documentation

bool BongoRealMover::Init ( XRes resource,
XCongo xcongo 
) [virtual]

Call to perform initalization based on resource.

Reimplemented from Controller.

Definition at line 254 of file Controllers.cpp.

References XRes::DoubleValue(), and mPower.

{
    if (!resource->DoubleValue("mPower", &mPower) )
    {
        fprintf(stderr, "error: BongoRealMover power\n");
        return false;
    }
  
    return true;
}
bool BongoRealMover::Init ( XRes resource,
XCongo xcongo 
) [virtual]

Call to perform initalization based on resource.

Reimplemented from Controller.

bool BongoRealMover::ProcessKey ( int  key,
Engine::KeyEvent  type,
int  x,
int  y 
) [virtual]

Process key event.

Parameters:
keyKey which triggered action
typeKEY_UP or KEY_DOWN
xcursor position
ycursor position
Returns:
true if key is processed and should not be forwarded to other controlers

Implements Controller.

bool BongoRealMover::ProcessKey ( int  key,
Engine::KeyEvent  type,
int  x,
int  y 
) [virtual]

Process key event.

Parameters:
keyKey which triggered action
typeKEY_UP or KEY_DOWN
xcursor position
ycursor position
Returns:
true if key is processed and should not be forwarded to other controlers

Implements Controller.

Definition at line 266 of file Controllers.cpp.

References Bongo::Fire(), GLUT_SPEC_KEY_DOWN, GLUT_SPEC_KEY_LEFT, GLUT_SPEC_KEY_RIGHT, GLUT_SPEC_KEY_UP, Engine::KEY_UP_EX, mbMoving, mDirection, mpBongo, mPower, mpParent, Engine::mQuads, Quad_impl::SetDirection(), vec_mul(), and vec_rotateY().

{
    double dir[3] = { 0.0, 0.0, 0.0 };
    if (Engine::KEY_UP_EX == type)
    {
        if (GLUT_SPEC_KEY_UP == key || GLUT_SPEC_KEY_DOWN == key)
        {
            mbMoving  = false;
            mpBongo->SetDirection(dir);
        }
        return true;
    }

    switch (key)
    {
    case GLUT_SPEC_KEY_UP:
        mpBongo->SetDirection(mDirection);
        mbMoving = true;
          
        break;
    case GLUT_SPEC_KEY_DOWN:
        {
            memcpy(dir, mDirection, sizeof(dir) );
            vec_mul(dir, -1.0);
            mpBongo->SetDirection(dir);
            mbMoving = true;
          
            break;
        }
    case GLUT_SPEC_KEY_LEFT:
        {
            
            vec_rotateY(mDirection, M_PI * 5 *mPower /2);
            if (mbMoving)
                mpBongo->SetDirection(mDirection);
            break;
        }
    case GLUT_SPEC_KEY_RIGHT:
        {
            vec_rotateY(mDirection, -M_PI * 5 *mPower /2);
            if (mbMoving)
                mpBongo->SetDirection(mDirection);
            break;
        }
    case ' ': 
        {
            Quad *q = mpBongo->Fire();
            if (q)
                mpParent->mQuads.push_back(q);
        }
        break;
    }

    return true;
}

Member Data Documentation

bool BongoRealMover::mbMoving [private]

Definition at line 189 of file Controllers.h.

Referenced by ProcessKey().

double BongoRealMover::mDirection [private]

Definition at line 188 of file Controllers.h.

Referenced by BongoRealMover(), and ProcessKey().

Definition at line 186 of file Controllers.h.

Referenced by ProcessKey().

double BongoRealMover::mPower [private]

Definition at line 187 of file Controllers.h.

Referenced by BongoRealMover(), Init(), and ProcessKey().

Definition at line 185 of file Controllers.h.

Referenced by BongoRealMover(), and ProcessKey().


The documentation for this class was generated from the following files: