added editor folder, added an object editor node
This commit is contained in:
parent
e5a9ac9da0
commit
033a60bff5
@ -7,8 +7,8 @@ SET(VERSION_MINOR 0)
|
|||||||
set(EXTRA_INCLUDES ${PROJECT_SOURCE_DIR}/src)
|
set(EXTRA_INCLUDES ${PROJECT_SOURCE_DIR}/src)
|
||||||
|
|
||||||
# choose source file
|
# choose source file
|
||||||
file(GLOB LIB_SRC_LIST src/*.cpp src/tools/*.cpp src/scene/*.cpp src/scene/gui/*.cpp src/sparrowshell/*.cpp)
|
file(GLOB LIB_SRC_LIST src/*.cpp src/tools/*.cpp src/scene/*.cpp src/scene/gui/*.cpp src/sparrowshell/*.cpp src/editor/*.cpp)
|
||||||
file(GLOB LIB_HEAD_LIST src/*.h src/tools/*.h src/scene/*.h src/scene/gui/*.h src/sparrowshell/*.h)
|
file(GLOB LIB_HEAD_LIST src/*.h src/tools/*.h src/scene/*.h src/scene/gui/*.h src/sparrowshell/*.h src/editor/*.h)
|
||||||
file(GLOB EXEC_SRC_LIST src/test/*.cpp)
|
file(GLOB EXEC_SRC_LIST src/test/*.cpp)
|
||||||
|
|
||||||
set(RESOURCES_FILES ${LIB_HEAD_LIST})
|
set(RESOURCES_FILES ${LIB_HEAD_LIST})
|
||||||
|
@ -7,6 +7,7 @@ class DefaultKeysMap : public IKeysMap
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
enum{MAIN_ACTION, SECONDARY_ACTION, TERTIARY_ACTION, MOVE_FORWARD, MOVE_BACKWARD, STRAFE_LEFT, STRAFE_RIGHT, JUMP, RUN,
|
enum{MAIN_ACTION, SECONDARY_ACTION, TERTIARY_ACTION, MOVE_FORWARD, MOVE_BACKWARD, STRAFE_LEFT, STRAFE_RIGHT, JUMP, RUN,
|
||||||
|
MAIN_ACTION_HOLD, SECONDARY_ACTION_HOLD,
|
||||||
TOGGLE_NOCLIP, TOGGLE_PHYSICS_DEBUG, TOGGLE_CONSOLE,
|
TOGGLE_NOCLIP, TOGGLE_PHYSICS_DEBUG, TOGGLE_CONSOLE,
|
||||||
MOVE_CURSOR_LEFT, MOVE_CURSOR_RIGHT, HISTORY_UP,HISTORY_DOWN, TOGGLE_MOUSE_CURSOR, LEFT_CLICK,
|
MOVE_CURSOR_LEFT, MOVE_CURSOR_RIGHT, HISTORY_UP,HISTORY_DOWN, TOGGLE_MOUSE_CURSOR, LEFT_CLICK,
|
||||||
EXIT_GAME,LAST_DEFAULT_ACTION};
|
EXIT_GAME,LAST_DEFAULT_ACTION};
|
||||||
@ -20,6 +21,8 @@ public:
|
|||||||
keys.push_back( {{STRAFE_LEFT,input::KEYBOARD}, sf::Keyboard::Q, IKeysMap::HOLD} );
|
keys.push_back( {{STRAFE_LEFT,input::KEYBOARD}, sf::Keyboard::Q, IKeysMap::HOLD} );
|
||||||
keys.push_back( {{STRAFE_RIGHT,input::KEYBOARD}, sf::Keyboard::D, IKeysMap::HOLD} );
|
keys.push_back( {{STRAFE_RIGHT,input::KEYBOARD}, sf::Keyboard::D, IKeysMap::HOLD} );
|
||||||
keys.push_back( {{RUN,input::KEYBOARD}, sf::Keyboard::LShift,IKeysMap::HOLD} );
|
keys.push_back( {{RUN,input::KEYBOARD}, sf::Keyboard::LShift,IKeysMap::HOLD} );
|
||||||
|
keys.push_back( {{MAIN_ACTION_HOLD,input::MOUSE}, sf::Mouse::Left, IKeysMap::HOLD} );
|
||||||
|
keys.push_back( {{SECONDARY_ACTION_HOLD,input::MOUSE}, sf::Mouse::Right, IKeysMap::HOLD} );
|
||||||
keys.push_back( {{JUMP,input::KEYBOARD}, sf::Keyboard::Space, IKeysMap::PRESSED} );
|
keys.push_back( {{JUMP,input::KEYBOARD}, sf::Keyboard::Space, IKeysMap::PRESSED} );
|
||||||
keys.push_back( {{TOGGLE_NOCLIP,input::KEYBOARD}, sf::Keyboard::G, IKeysMap::PRESSED} );
|
keys.push_back( {{TOGGLE_NOCLIP,input::KEYBOARD}, sf::Keyboard::G, IKeysMap::PRESSED} );
|
||||||
keys.push_back( {{TOGGLE_PHYSICS_DEBUG,input::KEYBOARD},sf::Keyboard::P, IKeysMap::PRESSED} );
|
keys.push_back( {{TOGGLE_PHYSICS_DEBUG,input::KEYBOARD},sf::Keyboard::P, IKeysMap::PRESSED} );
|
||||||
@ -53,6 +56,18 @@ public:
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static std::vector<Action> getObjectEditorContext()
|
||||||
|
{
|
||||||
|
return {
|
||||||
|
{MAIN_ACTION,input::MOUSE},
|
||||||
|
{SECONDARY_ACTION,input::MOUSE},
|
||||||
|
{EXIT_GAME,input::KEYBOARD},
|
||||||
|
{MAIN_ACTION_HOLD,input::MOUSE},
|
||||||
|
{SECONDARY_ACTION_HOLD,input::MOUSE},
|
||||||
|
{TOGGLE_CONSOLE,input::KEYBOARD},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
static std::vector<Action> getShellContext()
|
static std::vector<Action> getShellContext()
|
||||||
{
|
{
|
||||||
return {
|
return {
|
||||||
|
28
src/editor/objecteditor.cpp
Normal file
28
src/editor/objecteditor.cpp
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#include "objecteditor.h"
|
||||||
|
|
||||||
|
#include "engine.h"
|
||||||
|
#include "defaultkeysmap.h"
|
||||||
|
|
||||||
|
#include <SparrowInput/input.h>
|
||||||
|
|
||||||
|
#include <SparrowRenderer/trackballcamera.h>
|
||||||
|
|
||||||
|
ObjectEditor::ObjectEditor() :
|
||||||
|
m_camera(new TrackBallCamera())
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void ObjectEditor::update()
|
||||||
|
{
|
||||||
|
Input* input = getEngine().getInput();
|
||||||
|
glm::vec2 diff = input->getDeltaPosition();
|
||||||
|
for(Action action : input->getActions())
|
||||||
|
{
|
||||||
|
if(action.action == DefaultKeysMap::MAIN_ACTION_HOLD)
|
||||||
|
m_camera->moveCamera(diff.x, diff.y);
|
||||||
|
else if(action.action == DefaultKeysMap::SECONDARY_ACTION_HOLD)
|
||||||
|
m_camera->rotateCamera(diff.x, diff.y);
|
||||||
|
}
|
||||||
|
m_camera->zoom(input->getDeltaVerticalScroll()*120.f);
|
||||||
|
}
|
20
src/editor/objecteditor.h
Normal file
20
src/editor/objecteditor.h
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#ifndef OBJECTEDITOR_H
|
||||||
|
#define OBJECTEDITOR_H
|
||||||
|
|
||||||
|
#include "scene/cameranode.h"
|
||||||
|
|
||||||
|
class TrackBallCamera;
|
||||||
|
|
||||||
|
class ObjectEditor : public CameraNode
|
||||||
|
{
|
||||||
|
TrackBallCamera* m_camera;
|
||||||
|
|
||||||
|
public:
|
||||||
|
ObjectEditor();
|
||||||
|
|
||||||
|
Camera *getCamera() { return (Camera*)m_camera; }
|
||||||
|
|
||||||
|
void update();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // OBJECTEDITOR_H
|
@ -1,20 +0,0 @@
|
|||||||
#include "trackballcameranode.h"
|
|
||||||
|
|
||||||
TrackBallCameraNode::TrackBallCameraNode(Input *input) :
|
|
||||||
m_input(input),
|
|
||||||
m_action_move(NO_ACTION),
|
|
||||||
m_action_rotate(NO_ACTION)
|
|
||||||
{}
|
|
||||||
|
|
||||||
void TrackBallCameraNode::update()
|
|
||||||
{
|
|
||||||
glm::vec2 diff = m_input->getDeltaPosition();
|
|
||||||
for(Action action : m_input->getActions())
|
|
||||||
{
|
|
||||||
if(action.action == m_action_move)
|
|
||||||
moveCamera(diff.x, diff.y);
|
|
||||||
else if(action.action == m_action_rotate)
|
|
||||||
rotateCamera(diff.x, diff.y);
|
|
||||||
}
|
|
||||||
zoom(m_input->getDeltaVerticalScroll()*120.f);
|
|
||||||
}
|
|
@ -1,31 +0,0 @@
|
|||||||
#ifndef TRACKBALLCAMERANODE_H
|
|
||||||
#define TRACKBALLCAMERANODE_H
|
|
||||||
|
|
||||||
#include "cameranode.h"
|
|
||||||
#include "SparrowRenderer/trackballcamera.h"
|
|
||||||
#include "SparrowInput/input.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief The CameraNode class is a scene node that can be used by the renderer
|
|
||||||
*/
|
|
||||||
class TrackBallCameraNode : public CameraNode, public TrackBallCamera
|
|
||||||
{
|
|
||||||
Input *m_input;
|
|
||||||
int m_action_move;
|
|
||||||
int m_action_rotate;
|
|
||||||
|
|
||||||
public:
|
|
||||||
TrackBallCameraNode(Input *input);
|
|
||||||
|
|
||||||
void setInputs(int action_move, int action_rotate)
|
|
||||||
{
|
|
||||||
m_action_move = action_move;
|
|
||||||
m_action_rotate = action_rotate;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void update();
|
|
||||||
|
|
||||||
virtual Camera *getCamera() { return this; }
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // TRACKBALLCAMERANODE_H
|
|
@ -13,7 +13,6 @@
|
|||||||
|
|
||||||
#include <scene/scenetree.h>
|
#include <scene/scenetree.h>
|
||||||
#include <scene/textnode.h>
|
#include <scene/textnode.h>
|
||||||
#include <scene/trackballcameranode.h>
|
|
||||||
#include <scene/playercharacternode.h>
|
#include <scene/playercharacternode.h>
|
||||||
#include <scene/lightnode.h>
|
#include <scene/lightnode.h>
|
||||||
#include <scene/graphicalcontainernode.h>
|
#include <scene/graphicalcontainernode.h>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user