LumixEngine/src/editor/measure_tool.h
Mikulas Florek e88c594cf5 refactor
2015-10-16 21:27:55 +02:00

33 lines
No EOL
976 B
C++

#pragma once
#include "world_editor.h"
namespace Lumix
{
class MeasureTool : public WorldEditor::Plugin
{
public:
MeasureTool();
virtual void tick() override {}
virtual bool onEntityMouseDown(const RayCastModelHit& hit, int x, int y) override;
virtual void onMouseMove(int, int, int, int) override {}
virtual void onMouseUp(int, int, MouseButton::Value) override {}
void enable(bool is_enabled) { m_is_enabled = is_enabled; m_is_from_set = false; }
bool isEnabled() const { return m_is_enabled; }
const Vec3& getFrom() const { return m_from; }
const Vec3& getTo() const { return m_to; }
float getDistance() const { return (m_from - m_to).length(); }
void createEditorLines(class RenderScene& scene);
Delegate<void(float)>& distanceMeasured() { return m_distance_measured; }
private:
bool m_is_enabled;
bool m_is_from_set;
Vec3 m_from;
Vec3 m_to;
Delegate<void(float)> m_distance_measured;
};
} // namespace Lumix