You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.8 KiB
78 lines
1.8 KiB
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $Workfile: $
|
|
// $Date: $
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
// $Log: $
|
|
//
|
|
// $NoKeywords: $
|
|
//=============================================================================//
|
|
|
|
#ifndef GIZMO_H
|
|
#define GIZMO_H
|
|
#pragma once
|
|
|
|
#include "MapAtom.h"
|
|
|
|
|
|
#define GIZMO_AXIS_X 0x10
|
|
#define GIZMO_AXIS_Y 0x20
|
|
#define GIZMO_AXIS_Z 0x40
|
|
|
|
#define GIZMO_HANDLE_SCALE 0x01
|
|
#define GIZMO_HANDLE_ROTATE 0x02
|
|
#define GIZMO_HANDLE_TRANSLATE 0x04
|
|
#define GIZMO_HANDLE_UNIFORM_SCALE 0x08
|
|
|
|
|
|
class CGizmo : public CMapAtom
|
|
{
|
|
public:
|
|
|
|
CGizmo(void);
|
|
CGizmo(float x, float y, float z);
|
|
|
|
void Initialize(void);
|
|
|
|
void Render(CRender3D *pRender);
|
|
|
|
inline void SetAxisLength(float fLength);
|
|
inline void SetPosition(float x, float y, float z);
|
|
|
|
void DrawGizmoAxis(CRender3D *pRender, Vector& Origin, Vector& EndPoint, int red, int green, int blue, unsigned int uAxisHandle);
|
|
|
|
protected:
|
|
|
|
Vector m_Position;
|
|
float m_fAxisLength;
|
|
};
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: Sets the length of the gizmo's axes.
|
|
// Input : fLength - Axis length in world units.
|
|
//-----------------------------------------------------------------------------
|
|
void CGizmo::SetAxisLength(float fLength)
|
|
{
|
|
m_fAxisLength = fLength;
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: Sets the gizmo's position.
|
|
// Input : x -
|
|
// y -
|
|
// z -
|
|
//-----------------------------------------------------------------------------
|
|
void CGizmo::SetPosition(float x, float y, float z)
|
|
{
|
|
m_Position[0] = x;
|
|
m_Position[1] = y;
|
|
m_Position[2] = z;
|
|
}
|
|
|
|
|
|
#endif // GIZMO_H
|