OpenWalnut
1.5.0dev
|
A line is an ordered sequence of WPositions. More...
#include <WLine.h>
Public Member Functions | |
WLine (const std::vector< WPosition > &points) | |
Generates a new line out of a sequence of points. More... | |
WLine () | |
Creates an empty line. More... | |
void | resampleByNumberOfPoints (size_t numPoints) |
Resample this line so it has a number of given points afterwards. More... | |
void | resampleBySegmentLength (double newSegementLength) |
Resample this line so there are only segements of the given length. More... | |
void | resampleBySegmentLengthKeepShortFibers (double newSegmentLength) |
Resample this line so there are only segements of the given length. More... | |
void | reverseOrder () |
Reverses the order of the points. More... | |
void | removeAdjacentDuplicates () |
Collapse samplepoints which are equal and neighboured. More... | |
void | unifyDirectionBy (const WLine &other) |
Put the line into reverse ordering if the reverse ordering would have a similar direction to the given line. More... | |
Public Member Functions inherited from WMixinVector< WPosition > | |
WMixinVector () | |
Empty standard constructor. More... | |
WMixinVector (size_type initial_size, const value_type &fill_value=value_type()) | |
Constructs a vector of initial_size size where every emlement has its default value or the given value. More... | |
WMixinVector (InputIterator first, InputIterator last) | |
Constructs a new vector out of an iterator of another vector. More... | |
WMixinVector (const vector_type &other) | |
Copy constructor for the appropriate vector type. More... | |
WMixinVector (const WMixinVector &other) | |
Copy constructor for the WMixinVector itself. More... | |
WMixinVector & | operator= (const vector_type &other) |
Assignment operator for the appropriate vector type. More... | |
WMixinVector & | operator= (const WMixinVector &other) |
Assigment operator for the WMixinVector itself. More... | |
virtual | ~WMixinVector () |
Virtual Destructor. More... | |
void | clear () |
Wrapper around std::vector member function. More... | |
void | resize (size_type new_size, const value_type &fill_value=value_type()) |
Wrapper around std::vector member function. More... | |
void | reserve (size_type new_capacity) |
Wrapper around std::vector member function. More... | |
void | swap (vector_type &other) |
Allow also swap with vectors of an appropriate type. More... | |
void | swap (WMixinVector &other) |
Wrapper around std::vector member function. More... | |
bool | empty () const |
Wrapper around std::vector member function. More... | |
size_type | size () const |
Wrapper around std::vector member function. More... | |
size_type | capacity () const |
Wrapper around std::vector member function. More... | |
size_type | max_size () const |
Wrapper around std::vector member function. More... | |
allocator_type | get_allocator () const |
Returns its allocator. More... | |
const_iterator | begin () const |
Wrapper around std::vector member function. More... | |
iterator | begin () |
Wrapper around std::vector member function. More... | |
const_iterator | end () const |
Wrapper around std::vector member function. More... | |
iterator | end () |
Wrapper around std::vector member function. More... | |
const_reverse_iterator | rbegin () const |
Wrapper around std::vector member function. More... | |
reverse_iterator | rbegin () |
Wrapper around std::vector member function. More... | |
const_reverse_iterator | rend () const |
Wrapper around std::vector member function. More... | |
reverse_iterator | rend () |
Wrapper around std::vector member function. More... | |
const_reference | operator[] (size_type index) const |
Wrapper around std::vector member function. More... | |
reference | operator[] (size_type index) |
Wrapper around std::vector member function. More... | |
const_reference | at (size_type index) const |
Wrapper around std::vector member function. More... | |
reference | at (size_type index) |
Wrapper around std::vector member function. More... | |
void | assign (size_type count, const value_type &value) |
Wrapper around std::vector member function. More... | |
void | assign (Iter first, Iter last) |
Wrapper around std::vector member function. More... | |
void | push_back (const value_type &value) |
Wrapper around std::vector member function. More... | |
void | pop_back () |
Wrapper around std::vector member function. More... | |
iterator | erase (iterator where) |
Wrapper around std::vector member function. More... | |
iterator | erase (iterator first, iterator last) |
Wrapper around std::vector member function. More... | |
iterator | insert (iterator where, const value_type &value) |
Wrapper around std::vector member function. More... | |
void | insert (iterator where, InputIterator first, InputIterator last) |
Wrapper around std::vector member function. More... | |
void | insert (iterator where, size_type count, const value_type &value) |
Wrapper around std::vector member function. More... | |
const_reference | back () const |
Wrapper around std::vector member function. More... | |
reference | back () |
Wrapper around std::vector member function. More... | |
const_reference | front () const |
Wrapper around std::vector member function. More... | |
reference | front () |
Wrapper around std::vector member function. More... | |
vector_type & | asVector () |
Return this Mixin as its underlying real vector type. More... | |
const vector_type & | asVector () const |
Return this Mixin as its underlying real vector type. More... | |
Additional Inherited Members | |
Public Types inherited from WMixinVector< WPosition > | |
typedef vector_type::allocator_type | allocator_type |
Compares to std::vector type. More... | |
typedef vector_type::value_type | value_type |
Compares to std::vector type. More... | |
typedef vector_type::const_pointer | const_pointer |
Compares to std::vector type. More... | |
typedef vector_type::pointer | pointer |
Compares to std::vector type. More... | |
typedef vector_type::const_reference | const_reference |
Compares to std::vector type. More... | |
typedef vector_type::reference | reference |
Compares to std::vector type. More... | |
typedef vector_type::const_iterator | const_iterator |
Compares to std::vector type. More... | |
typedef vector_type::iterator | iterator |
Compares to std::vector type. More... | |
typedef vector_type::const_reverse_iterator | const_reverse_iterator |
Compares to std::vector type. More... | |
typedef vector_type::reverse_iterator | reverse_iterator |
Compares to std::vector type. More... | |
typedef vector_type::size_type | size_type |
Compares to std::vector type. More... | |
typedef vector_type::difference_type | difference_type |
Compares to std::vector type. More... | |
|
explicit |
void WLine::removeAdjacentDuplicates | ( | ) |
Collapse samplepoints which are equal and neighboured.
Definition at line 124 of file WLine.cpp.
References WMixinVector< ValueT >::back(), wlimits::DBL_EPS, WMixinVector< WPosition >::empty(), WMixinVector< WPosition >::front(), WMixinVector< ValueT >::operator=(), WMixinVector< ValueT >::push_back(), WMixinVector< ValueT >::reserve(), and WMixinVector< WPosition >::size().
Referenced by resampleBySegmentLength(), resampleBySegmentLengthKeepShortFibers(), and WLineTest::testRemoveAdjacentDuplicates().
void WLine::resampleByNumberOfPoints | ( | size_t | numPoints | ) |
Resample this line so it has a number of given points afterwards.
numPoints | Number of sampling points. |
Definition at line 78 of file WLine.cpp.
References WMixinVector< WPosition >::at(), WMixinVector< WPosition >::front(), WMixinVector< ValueT >::operator=(), WMixinVector< ValueT >::push_back(), WMixinVector< ValueT >::reserve(), and WMixinVector< WPosition >::size().
Referenced by WResampleByMaxPoints::resample(), WResampleByNumPoints::resample(), WLineTest::testDownSampleLine(), WLineTest::testManySampelsInBetweenOfTwoOldPoints(), WLineTest::testNumericalStabilityOfResampling(), WLineTest::testSamplingPointsAreExactlyInTheOldSegmentCenterAndCorners(), and WLineTest::testSamplingWithSameNumberOfPoints().
void WLine::resampleBySegmentLength | ( | double | newSegementLength | ) |
Resample this line so there are only segements of the given length.
newSegementLength |
Definition at line 147 of file WLine.cpp.
References WMixinVector< WPosition >::at(), WMixinVector< ValueT >::back(), WMixinVector< WPosition >::empty(), WMixinVector< WPosition >::front(), WMixinVector< ValueT >::operator=(), WMixinVector< ValueT >::push_back(), removeAdjacentDuplicates(), and WMixinVector< WPosition >::size().
Referenced by WResampleByMaxPoints::resample(), WResampleBySegLength::resample(), WLineTest::testResamplingByNewSegementLengthOldSegmentLengthBiggerAsNewSegmentLength(), WLineTest::testResamplingByNewSegementLengthTravelingOutOfTheCircle(), WLineTest::testResamplingByNewSegementLengthWithLineHavingJustOnePoint(), and WLineTest::testResamplingByNewSegmentLengthWithZeroLine().
void WLine::resampleBySegmentLengthKeepShortFibers | ( | double | newSegmentLength | ) |
Resample this line so there are only segements of the given length.
newSegmentLength |
Definition at line 209 of file WLine.cpp.
References WMixinVector< WPosition >::at(), WMixinVector< ValueT >::back(), WMixinVector< WPosition >::empty(), WMixinVector< WPosition >::front(), WMixinVector< ValueT >::operator=(), WMixinVector< ValueT >::push_back(), removeAdjacentDuplicates(), and WMixinVector< WPosition >::size().
Referenced by WResampleBySegLengthKeepShortFibers::resample().
void WLine::reverseOrder | ( | ) |
Reverses the order of the points.
(mirroring)
Definition at line 62 of file WLine.cpp.
References WMixinVector< WPosition >::begin(), and WMixinVector< WPosition >::end().
Referenced by WLineTest::testReverseOrdering(), and unifyDirectionBy().
void WLine::unifyDirectionBy | ( | const WLine & | other | ) |
Put the line into reverse ordering if the reverse ordering would have a similar direction to the given line.
That means if the start point (or multiple selected sample points) of the given line will better match to end point (or multiple selected sample points) of this line (in term of direction) the line is reordered.
other | The line giving the direction to align this line to. |
Definition at line 310 of file WLine.cpp.
References WMixinVector< WPosition >::at(), WMixinVector< ValueT >::at(), reverseOrder(), WMixinVector< WPosition >::size(), and WMixinVector< ValueT >::size().