74 lines
1.7 KiB
C++
Executable File
74 lines
1.7 KiB
C++
Executable File
//-----------------------------------------------------------------------------
|
|
// Torque Game Engine
|
|
// Copyright (C) GarageGames.com, Inc.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
#ifndef _GUITSCONTROL_H_
|
|
#define _GUITSCONTROL_H_
|
|
|
|
#ifndef _GUICONTROL_H_
|
|
#include "gui/core/guiControl.h"
|
|
#endif
|
|
#ifndef _MMATH_H_
|
|
#include "math/mMath.h"
|
|
#endif
|
|
#ifndef _DGL_H_
|
|
#include "dgl/dgl.h"
|
|
#endif
|
|
|
|
struct CameraQuery
|
|
{
|
|
CameraQuery()
|
|
{
|
|
ortho = false;
|
|
}
|
|
|
|
SimObject* object;
|
|
F32 nearPlane;
|
|
F32 farPlane;
|
|
F32 fov;
|
|
MatrixF cameraMatrix;
|
|
|
|
F32 leftRight;
|
|
F32 topBottom;
|
|
bool ortho;
|
|
//Point3F position;
|
|
//Point3F viewVector;
|
|
//Point3F upVector;
|
|
};
|
|
|
|
class GuiTSCtrl : public GuiControl
|
|
{
|
|
typedef GuiControl Parent;
|
|
|
|
protected:
|
|
GLdouble mSaveModelview[16];
|
|
GLdouble mSaveProjection[16];
|
|
GLint mSaveViewport[4];
|
|
|
|
static U32 smFrameCount;
|
|
F32 mCameraZRot;
|
|
F32 mForceFOV;
|
|
|
|
bool mApplyFilterToChildren;
|
|
|
|
public:
|
|
CameraQuery mLastCameraQuery;
|
|
GuiTSCtrl();
|
|
|
|
void onPreRender();
|
|
void onRender(Point2I offset, const RectI &updateRect);
|
|
virtual bool processCameraQuery(CameraQuery *query);
|
|
virtual void renderWorld(const RectI &updateRect);
|
|
|
|
static void initPersistFields();
|
|
static void consoleInit();
|
|
|
|
bool project(const Point3F &pt, Point3F *dest); // returns screen space X,Y and Z for world space point
|
|
bool unproject(const Point3F &pt, Point3F *dest); // returns world space point for X, Y and Z
|
|
|
|
DECLARE_CONOBJECT(GuiTSCtrl);
|
|
};
|
|
|
|
#endif
|