Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CoordinateSelect Class Reference

#include <coord_select.h>

Public Member Functions

 CoordinateSelect (QVector)
 
 ~CoordinateSelect ()
 
QVector GetVector ()
 
void Draw ()
 

Static Public Member Functions

static void MouseMoveHandle (KBSTATE, int, int, int, int, int)
 

Protected Member Functions

void UpdateMouse ()
 

Protected Attributes

float CrosshairSize
 
Animation LocSelAni
 
QVector LocalPosition
 

Detailed Description

Definition at line 5 of file coord_select.h.

Constructor & Destructor Documentation

CoordinateSelect::CoordinateSelect ( QVector  start)
CoordinateSelect::~CoordinateSelect ( )
inline

Definition at line 15 of file coord_select.h.

15 {}

Member Function Documentation

void CoordinateSelect::Draw ( )

Definition at line 74 of file coord_select.cpp.

References CoordinateSelectChange, Animation::Draw(), GFXBlendMode(), GFXLoadIdentity(), GFXPopBlendMode(), GFXPushBlendMode(), LocalPosition, LocSelAni, MODEL, ONE, Animation::SetPosition(), and UpdateMouse().

75 {
77  UpdateMouse();
79 
81  //VSFileSystem::Fprintf (stderr,"Location: %f %f %f", LocalPosition.i, LocalPosition.j, LocalPosition.k);
82  GFXBlendMode( ONE, ONE );
84  LocSelAni.Draw();
86 }
QVector CoordinateSelect::GetVector ( )
inline

Definition at line 16 of file coord_select.h.

References LocalPosition.

17  {
18  return LocalPosition;
19  }
void CoordinateSelect::MouseMoveHandle ( KBSTATE  ,
int  x,
int  y,
int  ,
int  ,
int   
)
static

Definition at line 13 of file coord_select.cpp.

References CoordinateSelectChange, CoordinateSelectmousex, CoordinateSelectmousey, DOWN, keyState, x, and y.

Referenced by createObjects().

14 {
15  if (keyState[0]['z'] == DOWN)
17  else
21 }
void CoordinateSelect::UpdateMouse ( )
protected

unkind call :-D

Definition at line 31 of file coord_select.cpp.

References _Universe, Universe::AccessCamera(), CoordinateSelectChange, CoordinateSelectmousex, CoordinateSelectmousey, f, float, g_game, Camera::GetPosition(), Camera::GetPQR(), GFXGetFrustumVars(), LocalPosition, MouseCoordinate(), UniverseUtil::sqrt(), Transform(), Vector, and game_data_t::y_resolution.

Referenced by Draw().

32 {
33  if (CoordinateSelectChange == 1) {
34  Vector CamPos;
35  Vector CamQ, CamR;
36  _Universe->AccessCamera()->GetPQR( CamPos, CamQ, CamR );
37 
39  float mouseDistance = mousePoint.k*mousePoint.k;
40  mousePoint = Transform( CamPos, CamQ, CamR, mousePoint );
41  //QVector cp;
42  CamPos = _Universe->AccessCamera()->GetPosition();
43  //float mouseDistance = mousePoint.Dot (CamR);
44  //distance out into z...straight line...
45 
46  float distance = CamR.Dot( (LocalPosition-CamPos).Cast() ); //distance out into z...straight line...
47  //VSFileSystem::Fprintf (stderr, "distance:%f\n",distance);
48  //VSFileSystem::Fprintf (stderr, "mdistance:%f %f\n",mouseDistance,TMD);
49  if (mouseDistance != 0)
50  LocalPosition = mousePoint*(distance/mouseDistance)+CamPos.Cast();
51  else
52  LocalPosition = 2*CamR+CamPos.Cast();
54  }
55  if (CoordinateSelectChange == 2) {
56  Vector CamPos, CamQ, CamR;
57  _Universe->AccessCamera()->GetPQR( CamPos, CamQ, CamR );
58  CamPos = _Universe->AccessCamera()->GetPosition();
59 
61  float distance = sqrt( CamR.Dot( LocalPosition ) ); //distance out into z...straight line...
62  //make it a ratio btw top and bottom.... for near and far;
64  float tmp, n, f;
65  GFXGetFrustumVars( true, &tmp, &tmp, &tmp, &tmp, &n, &f );
66  tmp = n+ratio*ratio*ratio*(f-n); //how far n^3 law
67  if (distance != 0)
68  LocalPosition = LocalPosition*(tmp/distance)+CamPos;
69  else
70  LocalPosition = CamPos+CamR*n;
72  }
73 }

Member Data Documentation

float CoordinateSelect::CrosshairSize
protected

Definition at line 8 of file coord_select.h.

Referenced by CoordinateSelect().

QVector CoordinateSelect::LocalPosition
protected

Definition at line 10 of file coord_select.h.

Referenced by Draw(), GetVector(), and UpdateMouse().

Animation CoordinateSelect::LocSelAni
protected

Definition at line 9 of file coord_select.h.

Referenced by Draw().


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