![]() |
NDEVR
API Documentation
|
Class: LineSegment. More...
Public Member Functions | |
| template<uint01 t_new_dims, class t_new_type, class t_new_vertex = Vertex<t_new_dims, t_new_type>> | |
| constexpr LineSegment< t_new_dims, t_new_type, t_new_vertex > | as () const |
| constexpr t_vertex | center () const |
| template<class t_precision, class t_other_vertex> | |
| constexpr LineSegment< t_dims, t_precision > | closestPoints (const LineSegment< t_dims, t_type, t_other_vertex > &l2, t_precision epsilon=0) const |
| Closest vertices. | |
| template<bool t_clip = true> | |
| constexpr t_type | closestPos (const t_vertex &p) const |
| Returns the closest value where 0 is. | |
| constexpr t_vertex | closestValue (const t_vertex &p) const |
| template<bool t_clip, class t_precision> | |
| constexpr t_precision | getLocationAt (t_precision value, uint01 dim) const |
| template<class t_precision = t_type> | |
| constexpr Vector< t_dims, t_precision > | intersection (const LineSegment &r, t_precision epsilon=0) const |
| Intersections. | |
| template<class t_precision = t_type> | |
| constexpr t_precision | intersectionPosition (const LineSegment< t_dims, t_type > &segment) const |
| template<class t_precision = t_type> | |
| constexpr bool | intersects (const LineSegment< 3, t_type > &segment, t_precision epsilon=cast< t_precision >(1e-9)) const |
| Query if this object intersects the given segment. | |
| template<class t_precision = t_type> | |
| constexpr bool | isCollinear (const LineSegment< t_dims, t_type > &line, t_precision epsilon=0) const |
| Query if 'line' is collinear. | |
| template<class t_precision = t_type> | |
| constexpr bool | isCollinear (const t_vertex &vert, t_precision epsilon=t_precision(1e-10)) const |
| Query if the line is collinear with the given vertex. | |
| template<class t_precision = t_type> | |
| constexpr bool | isParallel (const LineSegment< t_dims, t_type, t_vertex > &line, t_precision epsilon=0) const |
| Query if 'line' is parallel. | |
| template<class t_precision = t_type> | |
| constexpr t_precision | length () const |
| constexpr t_type | lengthSquared () const |
| constexpr t_vertex | midpoint () const |
| Gets the midpoint. | |
| template<class t_inter_type> | |
| constexpr t_vertex | pointAt (t_inter_type index) const |
| template<bool t_clip, class t_precision> | |
| constexpr t_vertex | pointAt (t_precision value, uint01 dim, const t_vertex &nan_return=Constant< t_vertex >::Invalid) const |
| Point at. | |
| constexpr t_vertex | ray () const |
| template<class t_inter_type> | |
| constexpr LineSegment< t_dims, t_type > | scale (const t_inter_type &scale) const |
| Scales. | |
| constexpr t_vertex & | vertex (uint01 index) |
| constexpr const t_vertex & | vertex (uint01 index) const |
| Public Member Functions inherited from Vector< t_dims, t_type > | |
| template<uint01 tdims = t_dims> | |
| constexpr | Vector (const t_type &prefix, typename std::enable_if< tdims >=2, const Vector< t_dims - 1, t_type > & >::type vector) |
| Creates a vector where the prefix scaler is combined with the suffix vector. | |
| template<uint01 tdims = t_dims> | |
| constexpr | Vector (const t_type &prefix_a, const t_type &prefix_b, typename std::enable_if< tdims >=3, const Vector< tdims - 1, t_type > & >::type vector) |
| Creates a vector where the prefix scaler values are combined with the suffix vector. | |
| constexpr | Vector (const t_type &scaler) noexcept |
| template<uint01 tdims = t_dims> | |
| constexpr | Vector (const t_type &x, const t_type &y, const t_type &z, typename std::enable_if< tdims==4, const t_type & >::type w) |
| Sets values in each dimension to the respective value in the passed in scaler. | |
| template<uint01 tdims = t_dims> | |
| constexpr | Vector (const t_type &x, const t_type &y, const typename std::enable_if< tdims==3, const t_type & >::type z) |
| Sets values in each dimension to the respective value in the passed in scaler. | |
| template<uint01 tdims = t_dims> | |
| constexpr | Vector (const t_type &x, typename std::enable_if< tdims==2, const t_type & >::type y) |
| Sets values in each dimension to the respective value in the passed in scaler. | |
| constexpr | Vector (const t_type(&vector)[t_dims]) |
| Given a container of statically determined array, transforms it to a vector. | |
| template<uint01 tdims = t_dims> | |
| constexpr | Vector (const Vector< getMax(tdims - 2, 0), t_type > &vector, const t_type &suffix_a, typename std::enable_if< tdims >=3, const t_type & >::type suffix_b) |
| Creates a vector where the prefix vector is combined with the suffix scalers. | |
| template<class t_vec_type> | |
| constexpr | Vector (const Vector< t_dims, t_vec_type > &vector) noexcept |
| template<uint01 tdims = t_dims> | |
| constexpr | Vector (const Vector< tdims - 1, t_type > &vector, typename std::enable_if< tdims >=2, const t_type & >::type suffix) |
| Creates a vector where the prefix vector is combined with the suffix scalers. | |
| template<class t_new_type> | |
| constexpr decltype(auto) | as () const |
| Returns the vector as a new time of vector. | |
| template<LocationValues t_max_min> | |
| constexpr uint01 | dimensionalIndex () const |
| Used with template arguments MAX or MIN, Gets the dimensional index for the value that is either max or min. | |
| template<LocationValues t_max_min> | |
| constexpr t_type | dimensionalValue () const |
| Used with template arguments MAX or MIN, Gets the dimensional value for the value that is either max or min. | |
| template<class t_magnitude_type = t_type> | |
| constexpr t_magnitude_type | magnitude () const |
| Vectors are commonly used to model forces such as wind, sea current, gravity, and electromagnetism. | |
| constexpr t_type | magnitudeSquared () const |
| Vectors are commonly used to model forces such as wind, sea current, gravity, and electromagnetism. | |
| template<class t_norm_type = t_type> | |
| constexpr Vector< t_dims, t_norm_type > | normalized (Vector< t_dims, t_norm_type > value_if_nan=Constant< Vector< t_dims, t_norm_type > >::Invalid) const |
| Gets the normalized, or unit length representation of this vector. | |
| template<uint01 tdims = t_dims, typename = typename std::enable_if<tdims == 1>::type> | |
| constexpr | operator t_type & () |
| For Single dimensional objects, they may also be considered a scaler, thus allow implicit conversion from a vector to a scaler when the dimension of the vector is 1. | |
| constexpr Vector< t_dims, t_type > | operator- () const |
| Negation operator. | |
| constexpr Vector< t_dims, t_type > & | operator= (const t_type &scaler) |
| Assignment operator. | |
| constexpr t_type & | operator[] (uint01 dimension_index) |
| Accesses the value of a certain dimension. | |
| constexpr t_type | product () const |
| Returns the product, or value of each dimension multiplied together. | |
| constexpr t_type | sum () const |
| Returns the sum, or value of each dimension added together. | |
Static Public Member Functions | |
| template<class t_buffer_type> | |
| static constexpr LineSegment | createBestFitLine (const t_buffer_type &vertices, uint01 dim_0, uint01 dim_1) |
| Creates best fit line. | |
| Static Public Member Functions inherited from Vector< t_dims, t_type > | |
| static constexpr uint01 | NumberOfDimensions () |
| Number of dimensions in this vector class. | |
| static constexpr t_type | Type () |
| Returns the type of this class. | |
Additional Inherited Members | |
| Protected Attributes inherited from Vector< t_dims, t_type > | |
| t_type | m_values [t_dims] |
| The values[t dims]. | |
Class: LineSegment.
A line segment represented by two vertices, a start and end.
Author: Tyler Parke
Date: 2017-11-19
|
inlineconstexpr |
Gets as.
Author: Tyler Parke
Date: 2017-11-19
Definition at line 73 of file Line.hpp.
Referenced by LineSegment< 2, t_type, Vertex< 2, t_type > >::pointAt().
|
inlineconstexpr |
|
inlineconstexpr |
Closest vertices.
Author: Tyler Parke
Date: 2017-11-19
Parameters: l2 - The second LineSegment<t_dims,t_type> epsilon - (Optional) The epsilon.
Definition at line 258 of file Line.hpp.
Referenced by LineSegment< 2, t_type, Vertex< 2, t_type > >::intersection(), and LineSegment< 2, t_type, Vertex< 2, t_type > >::intersects().
|
inlineconstexpr |
|
inlinestaticconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
Intersections.
Author: Tyler Parke
Date: 2017-11-19
Parameters: r - A LineSegment to process. epsilon - (Optional) The epsilon.
|
inlineconstexpr |
|
inlinenodiscardconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
Query if 'line' is parallel.
Author: Tyler Parke
Date: 2017-11-19
Parameters: line - The line. epsilon - (Optional) The epsilon.
Definition at line 192 of file Line.hpp.
Referenced by LineSegment< 2, t_type, Vertex< 2, t_type > >::isCollinear().
|
inlineconstexpr |
|
inlineconstexpr |
Length squared.
Author: Tyler Parke
Date: 2017-11-19
Definition at line 462 of file Line.hpp.
Referenced by GravityIntersection::calculateIntersection(), and intersection().
|
inlineconstexpr |
Gets the midpoint.
Author: Tyler Parke
Date: 2017-11-19
Definition at line 106 of file Line.hpp.
Referenced by LineSegment< 2, t_type, Vertex< 2, t_type > >::center().
|
inlineconstexpr |
Point at.
Author: Tyler Parke
Date: 2017-11-19
Parameters: index - Zero-based index of the.
Definition at line 91 of file Line.hpp.
Referenced by LineSegment< 2, t_type, Vertex< 2, t_type > >::closestValue(), and LineSegment< 2, t_type, Vertex< 2, t_type > >::scale().
|
inlineconstexpr |
|
inlineconstexpr |
Gets the ray.
Author: Tyler Parke
Date: 2017-11-19
Definition at line 123 of file Line.hpp.
Referenced by LineSegment< 2, t_type, Vertex< 2, t_type > >::closestPoints(), LineSegment< 2, t_type, Vertex< 2, t_type > >::closestPos(), distanceSquared(), intersection(), LineSegment< 2, t_type, Vertex< 2, t_type > >::isParallel(), LineSegment< 2, t_type, Vertex< 2, t_type > >::length(), LineSegment< 2, t_type, Vertex< 2, t_type > >::lengthSquared(), and LineSegment< 2, t_type, Vertex< 2, t_type > >::pointAt().
|
inlineconstexpr |
Scales.
Author: Tyler Parke
Date: 2017-11-19
Parameters: scale - The scale. center - The center.
Scales.
Author: Tyler Parke
Date: 2017-11-19
Parameters: scale - The scale. center - The center.
|
inlineconstexpr |
|
inlineconstexpr |
Vertices the given index.
Author: Tyler Parke
Date: 2017-11-19
Parameters: index - Zero-based index of the.
Definition at line 155 of file Line.hpp.
Referenced by Bounds< 3, fltp08 >::addToBounds(), LineSegment< 2, t_type, Vertex< 2, t_type > >::as(), LineSegment< 2, t_type, Vertex< 2, t_type > >::closestPoints(), LineSegment< 2, t_type, Vertex< 2, t_type > >::closestPos(), Bounds< 3, fltp08 >::contains(), distanceSquaredOptimized(), LineSegment< 2, t_type, Vertex< 2, t_type > >::getLocationAt(), intersection(), intersection(), LineSegment< 2, t_type, Vertex< 2, t_type > >::intersection(), LineSegment< 2, t_type, Vertex< 2, t_type > >::isCollinear(), LineSegment< 2, t_type, Vertex< 2, t_type > >::midpoint(), operator*(), LineSegment< 2, t_type, Vertex< 2, t_type > >::pointAt(), LineSegment< 2, t_type, Vertex< 2, t_type > >::pointAt(), and LineSegment< 2, t_type, Vertex< 2, t_type > >::ray().