Initial commit
This commit is contained in:
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 */
|
||||
Reference in new issue
Block a user