LumixEngine/src/editor/measure_tool.cpp
2017-10-03 20:11:20 +02:00

44 lines
No EOL
878 B
C++

#include "measure_tool.h"
#include "editor/render_interface.h"
namespace Lumix
{
MeasureTool::MeasureTool()
: m_is_enabled(false)
, m_is_from_set(false)
, m_from(0, 0, 0)
, m_to(0, 0, 0)
{ }
bool MeasureTool::onMouseDown(const WorldEditor::RayHit& hit, int, int)
{
if (!m_is_enabled) return false;
if (!hit.is_hit) return false;
if (!m_is_from_set)
{
m_from = hit.pos;
m_is_from_set = true;
}
else
{
m_is_from_set = false;
m_to = hit.pos;
}
if(m_distance_measured.isValid()) m_distance_measured.invoke(getDistance());
return true;
}
void MeasureTool::createEditorLines(RenderInterface& interface)
{
if (!m_is_enabled) return;
static const u32 COLOR = 0x00ff00ff;
interface.addDebugCross(m_from, 0.3f, COLOR, 0);
interface.addDebugCross(m_to, 0.3f, COLOR, 0);
interface.addDebugLine(m_from, m_to, COLOR, 0);
}
}