51 lines
856 B
C++
51 lines
856 B
C++
#pragma once
|
|
#include "CommonInclude.h"
|
|
#include "wiECS.h"
|
|
|
|
class Translator
|
|
{
|
|
private:
|
|
XMFLOAT4 prevPointer;
|
|
XMFLOAT4X4 dragStart, dragEnd;
|
|
bool dragging;
|
|
bool dragStarted;
|
|
bool dragEnded;
|
|
public:
|
|
Translator();
|
|
~Translator();
|
|
|
|
void Update();
|
|
void Draw(wiSceneSystem::CameraComponent* camera, GRAPHICSTHREAD threadID);
|
|
|
|
wiECS::Entity entityID = wiECS::INVALID_ENTITY;
|
|
|
|
bool enabled;
|
|
|
|
enum TRANSLATOR_STATE
|
|
{
|
|
TRANSLATOR_IDLE,
|
|
TRANSLATOR_X,
|
|
TRANSLATOR_Y,
|
|
TRANSLATOR_Z,
|
|
TRANSLATOR_XY,
|
|
TRANSLATOR_XZ,
|
|
TRANSLATOR_YZ,
|
|
TRANSLATOR_XYZ,
|
|
} state;
|
|
|
|
float dist;
|
|
|
|
bool isTranslator, isScalator, isRotator;
|
|
|
|
|
|
// Check if the drag started in this exact frame
|
|
bool IsDragStarted();
|
|
XMFLOAT4X4 GetDragStart();
|
|
// Check if the drag ended in this exact frame
|
|
bool IsDragEnded();
|
|
XMFLOAT4X4 GetDragEnd();
|
|
|
|
static void LoadShaders();
|
|
};
|
|
|