Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
@@ -0,0 +1,93 @@
|
||||
/**
|
||||
**
|
||||
** @RDE_HEADER@
|
||||
** Definition of rubberband class to define multi point feature geometry
|
||||
** $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 .........:
|
||||
**
|
||||
** 17.06.2015, JT : First edition for use with Qt5
|
||||
**
|
||||
** -----------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#include "rubberband_smooth_line.h"
|
||||
#include "rubberband_point_handle.h"
|
||||
|
||||
#include "drawable_smooth_path.h"
|
||||
|
||||
#include "rubberband_internal.h"
|
||||
|
||||
|
||||
namespace SituationMap { namespace RB
|
||||
{
|
||||
|
||||
struct RubberbandSmoothLine::InternalData
|
||||
{
|
||||
SituationMap::RefPointer<DrawableSmoothPath> _smoothLineItem;
|
||||
}; /* RubberbandSmoothLine::InternalData*/
|
||||
|
||||
|
||||
RubberbandSmoothLine::RubberbandSmoothLine( SituationMap::Map * map, QObject * parent )
|
||||
: RubberbandMultiPointFeature(map,true,parent), _internal( new InternalData() )
|
||||
{
|
||||
} /* RubberbandSmoothLine::RubberbandSmoothLine */
|
||||
|
||||
RubberbandSmoothLine::~RubberbandSmoothLine()
|
||||
{
|
||||
delete _internal;
|
||||
} /* RubberbandSmoothLine::~RubberbandSmoothLine */
|
||||
|
||||
|
||||
void RubberbandSmoothLine::update()
|
||||
{
|
||||
QVector<RubberbandDrawable::RubberbandCoordinate> vertexVector;
|
||||
|
||||
vertexVector.reserve( Rubberband::_internal->_handleList.size() );
|
||||
|
||||
for (auto handle : qAsConst(Rubberband::_internal->_handleList))
|
||||
{
|
||||
RubberbandPointHandle * pointHandlePtr = dynamic_cast<RubberbandPointHandle*>(handle.get());
|
||||
|
||||
if (pointHandlePtr)
|
||||
{
|
||||
vertexVector.append( pointHandlePtr -> getCoordinate() );
|
||||
}
|
||||
}
|
||||
if (vertexVector.size() > 2)
|
||||
{
|
||||
if (!_internal->_smoothLineItem)
|
||||
{
|
||||
_internal->_smoothLineItem = new DrawableSmoothPath( Rubberband::_internal->_mapView );
|
||||
}
|
||||
|
||||
_internal->_smoothLineItem -> enableClosedLine( isClosedEnabled() );
|
||||
_internal->_smoothLineItem -> setDrawColor( _drawColor );
|
||||
_internal->_smoothLineItem -> setFillColor( _fillColor );
|
||||
_internal->_smoothLineItem -> setVisibility( true );
|
||||
_internal->_smoothLineItem -> setPath( vertexVector );
|
||||
}
|
||||
else if (_internal->_smoothLineItem) _internal->_smoothLineItem->setVisibility( false );
|
||||
|
||||
RubberbandMultiPointFeature::update();
|
||||
|
||||
} /* RubberbandSmoothLine::update */
|
||||
|
||||
|
||||
|
||||
} } /* namespace SituationMap::RB */
|
||||
Reference in new issue
Block a user