Flutter Impeller
impeller::TPoint< T > Struct Template Reference

#include <point.h>

Public Types

using Type = T
 

Public Member Functions

constexpr TPoint ()=default
 
template<class U >
constexpr TPoint (const TPoint< U > &other)
 
template<class U >
constexpr TPoint (const TSize< U > &other)
 
constexpr TPoint (Type x, Type y)
 
constexpr bool operator== (const TPoint &p) const
 
constexpr bool operator!= (const TPoint &p) const
 
template<class U >
TPoint operator+= (const TPoint< U > &p)
 
template<class U >
TPoint operator+= (const TSize< U > &s)
 
template<class U >
TPoint operator-= (const TPoint< U > &p)
 
template<class U >
TPoint operator-= (const TSize< U > &s)
 
template<class U >
TPoint operator*= (const TPoint< U > &p)
 
template<class U >
TPoint operator*= (const TSize< U > &s)
 
template<class U , class = std::enable_if_t<std::is_arithmetic_v<U>>>
TPoint operator*= (U scale)
 
template<class U >
TPoint operator/= (const TPoint< U > &p)
 
template<class U >
TPoint operator/= (const TSize< U > &s)
 
template<class U , class = std::enable_if_t<std::is_arithmetic_v<U>>>
TPoint operator/= (U scale)
 
constexpr TPoint operator- () const
 
constexpr TPoint operator+ (const TPoint &p) const
 
template<class U >
constexpr TPoint operator+ (const TSize< U > &s) const
 
constexpr TPoint operator- (const TPoint &p) const
 
template<class U >
constexpr TPoint operator- (const TSize< U > &s) const
 
template<class U , class = std::enable_if_t<std::is_arithmetic_v<U>>>
constexpr TPoint operator* (U scale) const
 
constexpr TPoint operator* (const TPoint &p) const
 
template<class U >
constexpr TPoint operator* (const TSize< U > &s) const
 
template<class U , class = std::enable_if_t<std::is_arithmetic_v<U>>>
constexpr TPoint operator/ (U d) const
 
constexpr TPoint operator/ (const TPoint &p) const
 
template<class U >
constexpr TPoint operator/ (const TSize< U > &s) const
 
constexpr Type GetDistanceSquared (const TPoint &p) const
 
constexpr TPoint Min (const TPoint &p) const
 
constexpr TPoint Max (const TPoint &p) const
 
constexpr TPoint Floor () const
 
constexpr TPoint Ceil () const
 
constexpr TPoint Round () const
 
constexpr Type GetDistance (const TPoint &p) const
 
constexpr Type GetLengthSquared () const
 
constexpr Type GetLength () const
 
constexpr TPoint Normalize () const
 
constexpr TPoint Abs () const
 
constexpr Type Cross (const TPoint &p) const
 
constexpr Type Dot (const TPoint &p) const
 
constexpr TPoint Reflect (const TPoint &axis) const
 
constexpr Radians AngleTo (const TPoint &p) const
 
constexpr TPoint Lerp (const TPoint &p, Scalar t) const
 
constexpr bool IsZero () const
 

Static Public Member Functions

static constexpr TPoint< TypeMakeXY (Type x, Type y)
 
template<class U >
static constexpr TPoint Round (const TPoint< U > &other)
 

Public Attributes

Type x = {}
 
Type y = {}
 

Detailed Description

template<class T>
struct impeller::TPoint< T >

Definition at line 20 of file point.h.

Member Typedef Documentation

◆ Type

template<class T >
using impeller::TPoint< T >::Type = T

Definition at line 21 of file point.h.

Constructor & Destructor Documentation

◆ TPoint() [1/4]

template<class T >
constexpr impeller::TPoint< T >::TPoint ( )
constexprdefault

◆ TPoint() [2/4]

template<class T >
template<class U >
constexpr impeller::TPoint< T >::TPoint ( const TPoint< U > &  other)
inlineexplicitconstexpr

Definition at line 29 of file point.h.

30  : TPoint(static_cast<Type>(other.x), static_cast<Type>(other.y)) {}

◆ TPoint() [3/4]

template<class T >
template<class U >
constexpr impeller::TPoint< T >::TPoint ( const TSize< U > &  other)
inlineexplicitconstexpr

Definition at line 33 of file point.h.

34  : TPoint(static_cast<Type>(other.width),
35  static_cast<Type>(other.height)) {}

◆ TPoint() [4/4]

template<class T >
constexpr impeller::TPoint< T >::TPoint ( Type  x,
Type  y 
)
inlineconstexpr

Definition at line 37 of file point.h.

37 : x(x), y(y) {}

Member Function Documentation

◆ Abs()

template<class T >
constexpr TPoint impeller::TPoint< T >::Abs ( ) const
inlineconstexpr

Definition at line 209 of file point.h.

209 { return {std::fabs(x), std::fabs(y)}; }

Referenced by impeller::testing::TEST().

◆ AngleTo()

template<class T >
constexpr Radians impeller::TPoint< T >::AngleTo ( const TPoint< T > &  p) const
inlineconstexpr

Definition at line 219 of file point.h.

219  {
220  return Radians{std::atan2(this->Cross(p), this->Dot(p))};
221  }

Referenced by impeller::testing::TEST().

◆ Ceil()

template<class T >
constexpr TPoint impeller::TPoint< T >::Ceil ( ) const
inlineconstexpr

Definition at line 189 of file point.h.

189 { return {std::ceil(x), std::ceil(y)}; }

Referenced by impeller::testing::TEST().

◆ Cross()

template<class T >
constexpr Type impeller::TPoint< T >::Cross ( const TPoint< T > &  p) const
inlineconstexpr

Definition at line 211 of file point.h.

211 { return (x * p.y) - (y * p.x); }

Referenced by impeller::TPoint< Type >::AngleTo(), and impeller::testing::TEST().

◆ Dot()

template<class T >
constexpr Type impeller::TPoint< T >::Dot ( const TPoint< T > &  p) const
inlineconstexpr

◆ Floor()

template<class T >
constexpr TPoint impeller::TPoint< T >::Floor ( ) const
inlineconstexpr

Definition at line 187 of file point.h.

187 { return {std::floor(x), std::floor(y)}; }

Referenced by impeller::testing::TEST().

◆ GetDistance()

template<class T >
constexpr Type impeller::TPoint< T >::GetDistance ( const TPoint< T > &  p) const
inlineconstexpr

Definition at line 193 of file point.h.

193  {
194  return sqrt(GetDistanceSquared(p));
195  }

Referenced by impeller::TPoint< Type >::GetLength(), and impeller::testing::TEST_P().

◆ GetDistanceSquared()

template<class T >
constexpr Type impeller::TPoint< T >::GetDistanceSquared ( const TPoint< T > &  p) const
inlineconstexpr

Definition at line 173 of file point.h.

173  {
174  double dx = p.x - x;
175  double dy = p.y - y;
176  return dx * dx + dy * dy;
177  }

Referenced by impeller::TPoint< Type >::GetDistance(), and impeller::TPoint< Type >::GetLengthSquared().

◆ GetLength()

template<class T >
constexpr Type impeller::TPoint< T >::GetLength ( ) const
inlineconstexpr

Definition at line 199 of file point.h.

199 { return GetDistance({}); }

Referenced by impeller::TPoint< Type >::Normalize(), and impeller::testing::TEST_P().

◆ GetLengthSquared()

template<class T >
constexpr Type impeller::TPoint< T >::GetLengthSquared ( ) const
inlineconstexpr

Definition at line 197 of file point.h.

197 { return GetDistanceSquared({}); }

◆ IsZero()

template<class T >
constexpr bool impeller::TPoint< T >::IsZero ( ) const
inlineconstexpr

◆ Lerp()

template<class T >
constexpr TPoint impeller::TPoint< T >::Lerp ( const TPoint< T > &  p,
Scalar  t 
) const
inlineconstexpr

Definition at line 223 of file point.h.

223  {
224  return *this + (p - *this) * t;
225  }

Referenced by impeller::testing::TEST().

◆ MakeXY()

template<class T >
static constexpr TPoint<Type> impeller::TPoint< T >::MakeXY ( Type  x,
Type  y 
)
inlinestaticconstexpr

Definition at line 39 of file point.h.

39 { return {x, y}; }

◆ Max()

template<class T >
constexpr TPoint impeller::TPoint< T >::Max ( const TPoint< T > &  p) const
inlineconstexpr

Definition at line 183 of file point.h.

183  {
184  return {std::max<Type>(x, p.x), std::max<Type>(y, p.y)};
185  }

Referenced by impeller::testing::TEST().

◆ Min()

template<class T >
constexpr TPoint impeller::TPoint< T >::Min ( const TPoint< T > &  p) const
inlineconstexpr

Definition at line 179 of file point.h.

179  {
180  return {std::min<Type>(x, p.x), std::min<Type>(y, p.y)};
181  }

Referenced by impeller::testing::TEST().

◆ Normalize()

template<class T >
constexpr TPoint impeller::TPoint< T >::Normalize ( ) const
inlineconstexpr

Definition at line 201 of file point.h.

201  {
202  const auto length = GetLength();
203  if (length == 0) {
204  return {1, 0};
205  }
206  return {x / length, y / length};
207  }

Referenced by impeller::DirectionalMorphologyFilterContents::SetDirection(), impeller::DirectionalGaussianBlurFilterContents::SetDirection(), impeller::testing::TEST(), and impeller::testing::TEST_P().

◆ operator!=()

template<class T >
constexpr bool impeller::TPoint< T >::operator!= ( const TPoint< T > &  p) const
inlineconstexpr

Definition at line 51 of file point.h.

51  {
52  return p.x != x || p.y != y;
53  }

◆ operator*() [1/3]

template<class T >
constexpr TPoint impeller::TPoint< T >::operator* ( const TPoint< T > &  p) const
inlineconstexpr

Definition at line 150 of file point.h.

150  {
151  return {x * p.x, y * p.y};
152  }

◆ operator*() [2/3]

template<class T >
template<class U >
constexpr TPoint impeller::TPoint< T >::operator* ( const TSize< U > &  s) const
inlineconstexpr

Definition at line 155 of file point.h.

155  {
156  return {x * static_cast<Type>(s.width), y * static_cast<Type>(s.height)};
157  }

◆ operator*() [3/3]

template<class T >
template<class U , class = std::enable_if_t<std::is_arithmetic_v<U>>>
constexpr TPoint impeller::TPoint< T >::operator* ( scale) const
inlineconstexpr

Definition at line 146 of file point.h.

146  {
147  return {static_cast<Type>(x * scale), static_cast<Type>(y * scale)};
148  }

◆ operator*=() [1/3]

template<class T >
template<class U >
TPoint impeller::TPoint< T >::operator*= ( const TPoint< U > &  p)
inline

Definition at line 84 of file point.h.

84  {
85  x *= static_cast<Type>(p.x);
86  y *= static_cast<Type>(p.y);
87  return *this;
88  }

◆ operator*=() [2/3]

template<class T >
template<class U >
TPoint impeller::TPoint< T >::operator*= ( const TSize< U > &  s)
inline

Definition at line 91 of file point.h.

91  {
92  x *= static_cast<Type>(s.width);
93  y *= static_cast<Type>(s.height);
94  return *this;
95  }

◆ operator*=() [3/3]

template<class T >
template<class U , class = std::enable_if_t<std::is_arithmetic_v<U>>>
TPoint impeller::TPoint< T >::operator*= ( scale)
inline

Definition at line 98 of file point.h.

98  {
99  x *= static_cast<Type>(scale);
100  y *= static_cast<Type>(scale);
101  return *this;
102  }

◆ operator+() [1/2]

template<class T >
constexpr TPoint impeller::TPoint< T >::operator+ ( const TPoint< T > &  p) const
inlineconstexpr

Definition at line 127 of file point.h.

127  {
128  return {x + p.x, y + p.y};
129  }

◆ operator+() [2/2]

template<class T >
template<class U >
constexpr TPoint impeller::TPoint< T >::operator+ ( const TSize< U > &  s) const
inlineconstexpr

Definition at line 132 of file point.h.

132  {
133  return {x + static_cast<Type>(s.width), y + static_cast<Type>(s.height)};
134  }

◆ operator+=() [1/2]

template<class T >
template<class U >
TPoint impeller::TPoint< T >::operator+= ( const TPoint< U > &  p)
inline

Definition at line 56 of file point.h.

56  {
57  x += static_cast<Type>(p.x);
58  y += static_cast<Type>(p.y);
59  return *this;
60  }

◆ operator+=() [2/2]

template<class T >
template<class U >
TPoint impeller::TPoint< T >::operator+= ( const TSize< U > &  s)
inline

Definition at line 63 of file point.h.

63  {
64  x += static_cast<Type>(s.width);
65  y += static_cast<Type>(s.height);
66  return *this;
67  }

◆ operator-() [1/3]

template<class T >
constexpr TPoint impeller::TPoint< T >::operator- ( ) const
inlineconstexpr

Definition at line 125 of file point.h.

125 { return {-x, -y}; }

◆ operator-() [2/3]

template<class T >
constexpr TPoint impeller::TPoint< T >::operator- ( const TPoint< T > &  p) const
inlineconstexpr

Definition at line 136 of file point.h.

136  {
137  return {x - p.x, y - p.y};
138  }

◆ operator-() [3/3]

template<class T >
template<class U >
constexpr TPoint impeller::TPoint< T >::operator- ( const TSize< U > &  s) const
inlineconstexpr

Definition at line 141 of file point.h.

141  {
142  return {x - static_cast<Type>(s.width), y - static_cast<Type>(s.height)};
143  }

◆ operator-=() [1/2]

template<class T >
template<class U >
TPoint impeller::TPoint< T >::operator-= ( const TPoint< U > &  p)
inline

Definition at line 70 of file point.h.

70  {
71  x -= static_cast<Type>(p.x);
72  y -= static_cast<Type>(p.y);
73  return *this;
74  }

◆ operator-=() [2/2]

template<class T >
template<class U >
TPoint impeller::TPoint< T >::operator-= ( const TSize< U > &  s)
inline

Definition at line 77 of file point.h.

77  {
78  x -= static_cast<Type>(s.width);
79  y -= static_cast<Type>(s.height);
80  return *this;
81  }

◆ operator/() [1/3]

template<class T >
constexpr TPoint impeller::TPoint< T >::operator/ ( const TPoint< T > &  p) const
inlineconstexpr

Definition at line 164 of file point.h.

164  {
165  return {x / p.x, y / p.y};
166  }

◆ operator/() [2/3]

template<class T >
template<class U >
constexpr TPoint impeller::TPoint< T >::operator/ ( const TSize< U > &  s) const
inlineconstexpr

Definition at line 169 of file point.h.

169  {
170  return {x / static_cast<Type>(s.width), y / static_cast<Type>(s.height)};
171  }

◆ operator/() [3/3]

template<class T >
template<class U , class = std::enable_if_t<std::is_arithmetic_v<U>>>
constexpr TPoint impeller::TPoint< T >::operator/ ( d) const
inlineconstexpr

Definition at line 160 of file point.h.

160  {
161  return {static_cast<Type>(x / d), static_cast<Type>(y / d)};
162  }

◆ operator/=() [1/3]

template<class T >
template<class U >
TPoint impeller::TPoint< T >::operator/= ( const TPoint< U > &  p)
inline

Definition at line 105 of file point.h.

105  {
106  x /= static_cast<Type>(p.x);
107  y /= static_cast<Type>(p.y);
108  return *this;
109  }

◆ operator/=() [2/3]

template<class T >
template<class U >
TPoint impeller::TPoint< T >::operator/= ( const TSize< U > &  s)
inline

Definition at line 112 of file point.h.

112  {
113  x /= static_cast<Type>(s.width);
114  y /= static_cast<Type>(s.height);
115  return *this;
116  }

◆ operator/=() [3/3]

template<class T >
template<class U , class = std::enable_if_t<std::is_arithmetic_v<U>>>
TPoint impeller::TPoint< T >::operator/= ( scale)
inline

Definition at line 119 of file point.h.

119  {
120  x /= static_cast<Type>(scale);
121  y /= static_cast<Type>(scale);
122  return *this;
123  }

◆ operator==()

template<class T >
constexpr bool impeller::TPoint< T >::operator== ( const TPoint< T > &  p) const
inlineconstexpr

Definition at line 47 of file point.h.

47  {
48  return p.x == x && p.y == y;
49  }

◆ Reflect()

template<class T >
constexpr TPoint impeller::TPoint< T >::Reflect ( const TPoint< T > &  axis) const
inlineconstexpr

Definition at line 215 of file point.h.

215  {
216  return *this - axis * this->Dot(axis) * 2;
217  }

Referenced by impeller::testing::TEST().

◆ Round() [1/2]

template<class T >
constexpr TPoint impeller::TPoint< T >::Round ( ) const
inlineconstexpr

Definition at line 191 of file point.h.

191 { return {std::round(x), std::round(y)}; }

◆ Round() [2/2]

template<class T >
template<class U >
static constexpr TPoint impeller::TPoint< T >::Round ( const TPoint< U > &  other)
inlinestaticconstexpr

Definition at line 42 of file point.h.

42  {
43  return TPoint{static_cast<Type>(std::round(other.x)),
44  static_cast<Type>(std::round(other.y))};
45  }

Referenced by impeller::testing::TEST().

Member Data Documentation

◆ x

template<class T >
Type impeller::TPoint< T >::x = {}

Definition at line 23 of file point.h.

Referenced by impeller::TPoint< Type >::Abs(), impeller::PathBuilder::AddArc(), impeller::PathBuilder::AddCircle(), impeller::PathBuilder::AddOval(), impeller::PathBuilder::AddRoundedRect(), impeller::TPoint< Type >::Ceil(), impeller::TRect< Scalar >::Contains(), impeller::TPoint< Type >::Cross(), impeller::TPoint< Type >::Dot(), impeller::DrawGlyph(), impeller::Canvas::DrawImage(), impeller::BlitCopyTextureToTextureCommandGLES::Encode(), impeller::BlitCopyTextureToTextureCommandMTL::Encode(), impeller::BlitCopyTextureToTextureCommandVK::Encode(), impeller::BlitCopyTextureToBufferCommandGLES::Encode(), impeller::BlitCopyTextureToBufferCommandMTL::Encode(), impeller::BlitCopyTextureToBufferCommandVK::Encode(), impeller::BlitCopyBufferToTextureCommandVK::Encode(), impeller::BlitCopyBufferToTextureCommandMTL::Encode(), impeller::TRect< Scalar >::Expand(), impeller::CubicPathComponent::Extrema(), impeller::TPoint< Type >::Floor(), impeller::PlaygroundImpl::GetContentScale(), impeller::TPoint< Type >::GetDistanceSquared(), impeller::TRect< Scalar >::GetLeft(), impeller::BitmapSTB::GetPixelAddress(), impeller::TRect< Scalar >::GetRight(), impeller::PathBuilder::HorizontalLineTo(), impeller::TPoint< Type >::IsZero(), impeller::Matrix::MakeScale(), impeller::testing::MetalScreenshoter::MakeScreenshot(), impeller::MakeTextFrameFromTextBlobSkia(), impeller::TPoint< Type >::MakeXY(), impeller::TPoint< Type >::Max(), impeller::TPoint< Type >::Min(), impeller::TPoint< Type >::Normalize(), impeller::TPoint< Type >::operator!=(), impeller::AtlasBlenderKey::Hash::operator()(), impeller::TRect< Scalar >::operator*(), impeller::TPoint< Type >::operator*(), impeller::operator*(), impeller::Matrix::operator*(), impeller::TPoint< Type >::operator*=(), impeller::TRect< Scalar >::operator+(), impeller::TPoint< Type >::operator+(), impeller::operator+(), impeller::TPoint< Type >::operator+=(), impeller::TRect< Scalar >::operator-(), impeller::TPoint< Type >::operator-(), impeller::operator-(), impeller::TPoint< Type >::operator-=(), impeller::TPoint< Type >::operator/(), impeller::operator/(), impeller::TPoint< Type >::operator/=(), std::operator<<(), impeller::TPoint< Type >::operator==(), PointNear(), RectNear(), impeller::TextContents::Render(), impeller::TPoint< Type >::Round(), impeller::TRect< Scalar >::Scale(), impeller::PassBindingsCache::SetScissor(), impeller::PassBindingsCache::SetViewport(), impeller::TRect< Scalar >::Shift(), impeller::LinearPathComponent::Solve(), impeller::QuadraticPathComponent::Solve(), impeller::CubicPathComponent::Solve(), impeller::QuadraticPathComponent::SolveDerivative(), impeller::CubicPathComponent::SolveDerivative(), impeller::testing::TEST(), impeller::testing::TEST_P(), impeller::scene::importer::ToFBVec2(), impeller::skia_conversions::ToPath(), impeller::Matrix::TransformDirection(), and impeller::PathBuilder::VerticalLineTo().

◆ y

template<class T >
Type impeller::TPoint< T >::y = {}

Definition at line 24 of file point.h.

Referenced by impeller::TPoint< Type >::Abs(), impeller::PathBuilder::AddArc(), impeller::PathBuilder::AddCircle(), impeller::PathBuilder::AddOval(), impeller::PathBuilder::AddRoundedRect(), impeller::TPoint< Type >::Ceil(), impeller::TRect< Scalar >::Contains(), impeller::TPoint< Type >::Cross(), impeller::TPoint< Type >::Dot(), impeller::DrawGlyph(), impeller::Canvas::DrawImage(), impeller::BlitCopyTextureToTextureCommandGLES::Encode(), impeller::BlitCopyTextureToTextureCommandMTL::Encode(), impeller::BlitCopyTextureToTextureCommandVK::Encode(), impeller::BlitCopyTextureToBufferCommandGLES::Encode(), impeller::BlitCopyTextureToBufferCommandMTL::Encode(), impeller::BlitCopyTextureToBufferCommandVK::Encode(), impeller::BlitCopyBufferToTextureCommandVK::Encode(), impeller::BlitCopyBufferToTextureCommandMTL::Encode(), impeller::TRect< Scalar >::Expand(), impeller::CubicPathComponent::Extrema(), impeller::TPoint< Type >::Floor(), impeller::TRect< Scalar >::GetBottom(), impeller::PlaygroundImpl::GetContentScale(), impeller::TPoint< Type >::GetDistanceSquared(), impeller::BitmapSTB::GetPixelAddress(), impeller::TRect< Scalar >::GetTop(), impeller::PathBuilder::HorizontalLineTo(), impeller::TPoint< Type >::IsZero(), impeller::Matrix::MakeScale(), impeller::testing::MetalScreenshoter::MakeScreenshot(), impeller::TPoint< Type >::MakeXY(), impeller::TPoint< Type >::Max(), impeller::TPoint< Type >::Min(), impeller::TPoint< Type >::Normalize(), impeller::TPoint< Type >::operator!=(), impeller::AtlasBlenderKey::Hash::operator()(), impeller::TRect< Scalar >::operator*(), impeller::TPoint< Type >::operator*(), impeller::operator*(), impeller::Matrix::operator*(), impeller::TPoint< Type >::operator*=(), impeller::TRect< Scalar >::operator+(), impeller::TPoint< Type >::operator+(), impeller::operator+(), impeller::TPoint< Type >::operator+=(), impeller::TRect< Scalar >::operator-(), impeller::TPoint< Type >::operator-(), impeller::operator-(), impeller::TPoint< Type >::operator-=(), impeller::TPoint< Type >::operator/(), impeller::operator/(), impeller::TPoint< Type >::operator/=(), std::operator<<(), impeller::TPoint< Type >::operator==(), PointNear(), RectNear(), impeller::TextContents::Render(), impeller::TPoint< Type >::Round(), impeller::TRect< Scalar >::Scale(), impeller::PassBindingsCache::SetScissor(), impeller::PassBindingsCache::SetViewport(), impeller::TRect< Scalar >::Shift(), impeller::LinearPathComponent::Solve(), impeller::QuadraticPathComponent::Solve(), impeller::CubicPathComponent::Solve(), impeller::QuadraticPathComponent::SolveDerivative(), impeller::CubicPathComponent::SolveDerivative(), impeller::testing::TEST(), impeller::testing::TEST_P(), impeller::scene::importer::ToFBVec2(), impeller::skia_conversions::ToPath(), impeller::Matrix::TransformDirection(), and impeller::PathBuilder::VerticalLineTo().


The documentation for this struct was generated from the following file:
impeller::TPoint::y
Type y
Definition: point.h:24
impeller::TPoint::TPoint
constexpr TPoint()=default
impeller::TPoint::Dot
constexpr Type Dot(const TPoint &p) const
Definition: point.h:213
impeller::TPoint::Cross
constexpr Type Cross(const TPoint &p) const
Definition: point.h:211
impeller::TPoint::x
Type x
Definition: point.h:23
impeller::TPoint::GetLength
constexpr Type GetLength() const
Definition: point.h:199
impeller::TPoint::GetDistance
constexpr Type GetDistance(const TPoint &p) const
Definition: point.h:193
impeller::TPoint::Type
T Type
Definition: point.h:21
impeller::TPoint::GetDistanceSquared
constexpr Type GetDistanceSquared(const TPoint &p) const
Definition: point.h:173