53#ifndef LASS_GUARDIAN_OF_INCLUSION_PRIM_POINT_3D_H
54#define LASS_GUARDIAN_OF_INCLUSION_PRIM_POINT_3D_H
74 typedef Point3D<T> TSelf;
78 typedef typename TVector::TValue TValue;
79 typedef typename TVector::TParam TParam;
80 typedef typename TVector::TReference TReference;
81 typedef typename TVector::TConstReference TConstReference;
82 typedef typename TVector::TNumTraits TNumTraits;
84 enum { dimension = TVector::dimension };
86 template <
typename U>
struct Rebind
88 typedef Point3D<U> Type;
96 Point3D(TParam x, TParam y, TParam z);
97 template <
typename U>
explicit Point3D(
const Point3D<U>& other);
98 template <
typename U>
explicit Point3D(
const Vector3D<U>& position);
99 template <
typename U>
explicit Point3D(
const U& x,
const U& y,
const U& z);
101 const TVector position()
const;
102 TConstReference operator[](
size_t index)
const;
103 TReference operator[](
size_t index);
104 TConstReference
at(
signed index)
const;
105 TReference
at(
signed index);
122template<
typename T>
typename Point3D<T>::TValue distance(
const Point3D<T>& a,
const Point3D<T>& b);
123template<
typename T>
typename Point3D<T>::TValue squaredDistance(
const Point3D<T>& a,
const Point3D<T>& b);
128template<
typename T> std::ostream& operator<<(std::ostream& stream,
const Point3D<T>& b);
130template<
typename T> std::istream& operator>>(std::istream& stream,
Point3D<T>& b);
140#define LASS_PRIM_HAVE_PY_EXPORT_TRAITS_POINT_3D
141#ifdef LASS_GUARDIAN_OF_INCLUSION_UTIL_PYOBJECT_PLUS_H
Output stream for writing a selection of geometric primitives to XML files.
#define LASS_SIMD_ALIGN
if LASS_SIMD_ALIGNMENT is set, use LASS_SIMD_ALIGN to align some structures on SIMD alignment boundar...
set of geometrical primitives
Library for Assembled Shared Sources.
TReference at(signed index)
Wrap index around range.
bool isNaN() const
Return true if at least one of the components is NaN.
TConstReference at(signed index) const
Wrap index around range.