OpenWalnut  1.5.0dev
Public Member Functions | List of all members
WLine Class Reference

A line is an ordered sequence of WPositions. More...

#include <WLine.h>

+ Inheritance diagram for WLine:
+ Collaboration diagram for WLine:

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...
 
WMixinVectoroperator= (const vector_type &other)
 Assignment operator for the appropriate vector type. More...
 
WMixinVectoroperator= (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_typeasVector ()
 Return this Mixin as its underlying real vector type. More...
 
const vector_typeasVector () 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...
 

Detailed Description

A line is an ordered sequence of WPositions.

Definition at line 41 of file WLine.h.

Constructor & Destructor Documentation

◆ WLine() [1/2]

WLine::WLine ( const std::vector< WPosition > &  points)
explicit

Generates a new line out of a sequence of points.

Parameters
pointsPoint sequence

Definition at line 43 of file WLine.cpp.

◆ WLine() [2/2]

WLine::WLine ( )

Creates an empty line.

Definition at line 48 of file WLine.cpp.

Member Function Documentation

◆ removeAdjacentDuplicates()

void WLine::removeAdjacentDuplicates ( )

◆ resampleByNumberOfPoints()

void WLine::resampleByNumberOfPoints ( size_t  numPoints)

◆ resampleBySegmentLength()

void WLine::resampleBySegmentLength ( double  newSegementLength)

◆ resampleBySegmentLengthKeepShortFibers()

void WLine::resampleBySegmentLengthKeepShortFibers ( double  newSegmentLength)

Resample this line so there are only segements of the given length.

Note
There will be segments of length < newSegmentLength at the ends of the lines; no lines will be discarded.
Parameters
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ reverseOrder()

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ 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.

Parameters
otherThe 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().

+ Here is the call graph for this function:

The documentation for this class was generated from the following files: