Initial commit

This commit is contained in:
torsten committed 2026-08-13 18:33:10 +02:00
commit b7d90b9afe
16245 files changed
+3396666

No files matched your search

@@ -0,0 +1,92 @@
/**
**
** @RDE_HEADER@
** Implementation of rubberband class to define moving transforms
** $Id$
** $HeadURL$
** $Author$
**
** -----------------------------------------------------------------------------------------------
**
** Hardware-Environment: Intel-PC
** Software-Environment: Windows 7, Qt 5.4. ArcGIS 10.2.5
**
** Language ........: C++ 11
**
** -----------------------------------------------------------------------------------------------
**
** Author ...........: Jörg Turla, SPD G, Tel. 3132
**
** -----------------------------------------------------------------------------------------------
**
** Notes .........:
**
** 07.04.2015, JT : First edition for use with Qt5
**
** -----------------------------------------------------------------------------------------------
*/
#include "rubberband_transform.h"
#include "rubberband_internal.h"
#include <MathUtils/math_const.h>
namespace SituationMap { namespace RB
{
struct RubberbandTransform::InternalData
{
Q_DISABLE_COPY(InternalData)
MathUtils::Matrix2D _transformCoordinates;
LOGGER_T _logger;
InternalData()
: _transformCoordinates()
, _logger(getLogger("RubberbandTransform"))
{
} /* InternalData */
}; /* RubberbandTransform::InternalData */
RubberbandTransform::RubberbandTransform( SituationMap::Map * map, QObject * parent )
: RubberbandRectangle(map,parent)
, _internal(new InternalData())
{
} /* RubberbandTransform::RubberbandTransform */
RubberbandTransform::~RubberbandTransform()
{
delete _internal;
_internal = nullptr;
} /* RubberbandTransform::~RubberbandTransform */
const MathUtils::Matrix2D & RubberbandTransform::transformMatrix() const { return _internal->_transformCoordinates; }
void RubberbandTransform::update()
{
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* It is importent here to call RubberbandRectangle::update(); first to do an update, because
* in other case the RubberbandRectangle::_lastCoordinateChange variable will have wrong values.
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
RubberbandRectangle::update();
if (!_lastCoordinateChange.isIdentity())
{
_internal->_transformCoordinates = _lastCoordinateChange * _internal->_transformCoordinates;
}
emit updatePreview( this, _lastCoordinateChange );
_lastCoordinateChange.setToIdentity(); // reset matrix
} /* RubberbandTransform::update */
} } /* namespace SituationMap::RB */