25#include "vnl/vnl_vector_ref.h" 
   52template <
typename TCoordinate, 
unsigned int VPo
intDimension = 3>
 
   64#ifndef ITK_FUTURE_LEGACY_REMOVE 
   65  using CoordRepType ITK_FUTURE_DEPRECATED(
 
   66    "ITK 6 discourages using `CoordRepType`. Please use `CoordinateType` instead!") = 
CoordinateType;
 
   83    return VPointDimension;
 
 
   94  template <
typename TPo
intValueType>
 
  101  template <
typename TPo
intValueType>
 
  102  Point(
const TPointValueType r[VPointDimension])
 
 
  109#if defined(ITK_LEGACY_REMOVE) 
  114  template <
typename TPo
intValueType>
 
  115  explicit Point(
const TPointValueType & v)
 
 
  125  template <
typename TPo
intValueType>
 
  126  Point(
const TPointValueType & v)
 
  130  Point(
const ValueType & v)
 
  136  explicit Point(
const std::array<ValueType, VPointDimension> & stdArray)
 
 
  178  vnl_vector_ref<TCoordinate>
 
  182  [[nodiscard]] vnl_vector<TCoordinate>
 
  263  template <
typename TCoordinateB>
 
  267    for (
unsigned int i = 0; i < VPointDimension; ++i)
 
  269      (*this)[i] = 
static_cast<TCoordinate
>(pa[i]);
 
 
  277  template <
typename TCoordinateB>
 
  283    for (
unsigned int i = 0; i < VPointDimension; ++i)
 
  285      const auto     component = 
static_cast<RealType>(pa[i]);
 
  287      sum += difference * difference;
 
 
  295  template <
typename TCoordinateB>
 
  301    return static_cast<RealType>(distance);
 
 
 
  305template <
typename T, 
unsigned int VPo
intDimension>
 
  309template <
typename T, 
unsigned int VPo
intDimension>
 
  339template <
typename TPo
intContainer, 
typename TWeightContainer>
 
  354template <
typename TCoordinate, 
unsigned int VPo
intDimension>
 
  363template <
typename TValue, 
typename... TVariadic>
 
  365MakePoint(
const TValue firstValue, 
const TVariadic... otherValues)
 
  367  static_assert(std::conjunction_v<std::is_same<TVariadic, TValue>...>,
 
  368                "The other values should have the same type as the first value.");
 
  370  constexpr unsigned int              dimension{ 1 + 
sizeof...(TVariadic) };
 
  371  const std::array<TValue, dimension> stdArray{ { firstValue, otherValues... } };
 
 
  377#ifndef ITK_MANUAL_INSTANTIATION 
  378#  include "itkPoint.hxx" 
Computes the barycentric combination of an array of N points.
 
static PointType Evaluate(const PointContainerPointer &points, const WeightContainerType &weights)
 
typename PointContainerType::Element PointType
 
TWeightContainer WeightContainerType
 
TPointContainer PointContainerType
 
typename PointContainerType::Pointer PointContainerPointer
 
bool operator==(const FixedArray &r) const
 
const ValueType * ConstIterator
 
A templated class holding a geometric point in n-Dimensional space.
 
static constexpr unsigned int PointDimension
 
const Self & operator+=(const VectorType &vec)
 
typename BaseArray::ConstIterator ConstIterator
 
vnl_vector_ref< TCoordinate > GetVnlVector()
 
static unsigned int GetPointDimension()
 
Point(std::nullptr_t)=delete
 
void CastFrom(const Point< TCoordinateB, VPointDimension > &pa)
 
VectorType GetVectorFromOrigin() const
 
Point(const std::array< ValueType, VPointDimension > &stdArray)
 
Point(const TPointValueType r[VPointDimension])
 
typename NumericTraits< ValueType >::RealType RealType
 
RealType EuclideanDistanceTo(const Point< TCoordinateB, VPointDimension > &pa) const
 
void SetToMidPoint(const Self &, const Self &)
 
VectorType operator-(const Self &pnt) const
 
ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION(Self)
 
Point(const ValueType r[VPointDimension])
 
Point(const ValueType &v)
 
Vector< ValueType, VPointDimension > VectorType
 
void SetToBarycentricCombination(const Self &A, const Self &B, const Self &C, double weightForA, double weightForB)
 
void SetToBarycentricCombination(const Self &A, const Self &B, double alpha)
 
Point(const TPointValueType &v)
 
FixedArray< CoordinateType, VPointDimension > BaseArray
 
typename BaseArray::Iterator Iterator
 
FixedArray< CoordinateType, VPointDimension > Superclass
 
CoordinateType CoordinateType
 
RealType SquaredEuclideanDistanceTo(const Point< TCoordinateB, VPointDimension > &pa) const
 
Self operator+(const VectorType &vec) const
 
vnl_vector< TCoordinate > GetVnlVector() const
 
Point & operator=(const ValueType r[VPointDimension])
 
void SetToBarycentricCombination(const Self *P, const double *weights, unsigned int N)
 
bool operator==(const Self &pt) const
 
const Self & operator-=(const VectorType &vec)
 
Point(const Point< TPointValueType, VPointDimension > &r)
 
Self operator-(const VectorType &vec) const
 
A templated class holding a n-Dimensional vector.
 
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
 
void swap(Array< T > &a, Array< T > &b) noexcept
 
std::istream & operator>>(std::istream &is, Point< T, VPointDimension > &vct)
 
ITKCommon_EXPORT std::ostream & operator<<(std::ostream &out, typename AnatomicalOrientation::CoordinateEnum value)
 
auto MakePoint(const TValue firstValue, const TVariadic... otherValues)