加载中...
搜索中...
无匹配项
类型

class  cuspatial::box< T, Vertex >
 一种通用的轴对齐盒类型。 更多...
 
class  cuspatial::segment< T, Vertex >
 一种通用线段类型。 更多...
 
class  cuspatial::vec_2d< T >
 一种通用二维向量类型。 更多...
 
class  cuspatial::vec_3d< T >
 一种通用三维向量类型。 更多...
 

类型定义

using cuspatial::segment< T, Vertex >::value_type = T
 
using cuspatial::vec_3d< T >::value_type = T
 

函数

template<typename T>
 cuspatial::box (vec_2d< T > a, vec_2d< T > b) -> box< T, vec_2d< T > >
 
segment< T > CUSPATIAL_HOST_DEVICE cuspatial::segment< T, Vertex >::translate (Vertex const &v) const
 返回线段的副本,通过 v 进行平移。
 
Vertex CUSPATIAL_HOST_DEVICE cuspatial::segment< T, Vertex >::center () const
 返回线段的几何中心。
 
T CUSPATIAL_HOST_DEVICE cuspatial::segment< T, Vertex >::length2 () const
 返回线段长度的平方。
 
T CUSPATIAL_HOST_DEVICE cuspatial::segment< T, Vertex >::slope ()
 返回线段的斜率。
 
Vertex CUSPATIAL_HOST_DEVICE cuspatial::segment< T, Vertex >::lower_left ()
 返回线段的左下顶点。
 
bool CUSPATIAL_HOST_DEVICE cuspatial::segment< T, Vertex >::collinear (segment< T > const &other)
 
template<typename T>
 cuspatial::segment (vec_2d< T > a, vec_2d< T > b) -> segment< T, vec_2d< T > >
 
template<typename T>
 cuspatial::segment (thrust::device_reference< vec_2d< T > > a, thrust::device_reference< vec_2d< T > > b) -> segment< T, vec_2d< T > >
 
template<typename T>
 cuspatial::vec_2d (T x, T y) -> vec_2d< T >
 
template<typename T>
T CUSPATIAL_HOST_DEVICE cuspatial::dot (vec_2d< T > const &a, vec_2d< T > const &b)
 计算两个二维向量的点积。
 
template<typename T>
T CUSPATIAL_HOST_DEVICE cuspatial::det (vec_2d< T > const &a, vec_2d< T > const &b)
 计算列向量为 ab 的 2x2 矩阵的二维行列式。
 
template<typename T>
vec_2d< T > CUSPATIAL_HOST_DEVICE cuspatial::box_min (vec_2d< T > const &a, vec_2d< T > const &b)
 返回一个新的 vec_2d,由两个输入 vec_2d 值的最小 x 和 y 分量组成。
 
template<typename T>
vec_2d< T > CUSPATIAL_HOST_DEVICE cuspatial::box_max (vec_2d< T > const &a, vec_2d< T > const &b)
 返回一个新的 vec_2d,由两个输入 vec_2d 值的最小 x 和 y 分量组成。
 
template<typename T>
vec_2d< T > CUSPATIAL_HOST_DEVICE cuspatial::midpoint (vec_2d< T > const &first, vec_2d< T > const &second)
 计算 firstsecond 的中点。
 
template<typename T>
 cuspatial::vec_3d (T x, T y, T z) -> vec_3d< T >
 
template<typename T>
T CUSPATIAL_HOST_DEVICE cuspatial::dot (vec_3d< T > const &a, vec_3d< T > const &b)
 计算两个三维向量的点积。
 
template<typename T>
vec_3d< T > CUSPATIAL_HOST_DEVICE cuspatial::cross (vec_3d< T > const &a, vec_3d< T > const &b)
 计算两个三维向量的叉积。
 

变量

Vertex cuspatial::segment< T, Vertex >::v1
 
Vertex cuspatial::segment< T, Vertex >::v2
 
value_type cuspatial::vec_3d< T >::x
 
value_type cuspatial::vec_3d< T >::y
 
value_type cuspatial::vec_3d< T >::z
 

友元

std::ostream & cuspatial::segment< T, Vertex >::operator<< (std::ostream &os, segment< T > const &seg)
 
std::ostream & cuspatial::vec_3d< T >::operator<< (std::ostream &os, cuspatial::vec_3d< T > const &vec)
 用于 vec_3d<T> 的输出流运算符,用于人类可读的格式化。
 
bool CUSPATIAL_HOST_DEVICE cuspatial::vec_3d< T >::operator== (vec_3d< T > const &lhs, vec_3d< T > const &rhs)
 比较两个三维向量是否相等。
 
vec_3d< T > CUSPATIAL_HOST_DEVICE cuspatial::vec_3d< T >::operator+ (vec_3d< T > const &a, vec_3d< T > const &b)
 两个三维向量的逐元素相加。
 
vec_3d< T > CUSPATIAL_HOST_DEVICE cuspatial::vec_3d< T >::operator- (vec_3d< T > const &a, vec_3d< T > const &b)
 两个三维向量的逐元素相减。
 
vec_3d< T > CUSPATIAL_HOST_DEVICE cuspatial::vec_3d< T >::operator- (vec_3d< T > const &a)
 反转三维向量。
 
vec_3d< T > CUSPATIAL_HOST_DEVICE cuspatial::vec_3d< T >::operator* (vec_3d< T > vec, T const &r)
 按因子 r 缩放三维向量。
 
vec_3d< T > CUSPATIAL_HOST_DEVICE cuspatial::vec_3d< T >::operator* (T const &r, vec_3d< T > vec)
 按比例 r 缩放三维向量。
 
vec_3d< T > &CUSPATIAL_HOST_DEVICE cuspatial::vec_3d< T >::operator+= (vec_3d< T > &a, vec_3d< T > const &b)
 平移一个三维点。
 
vec_3d< T > &CUSPATIAL_HOST_DEVICE cuspatial::vec_3d< T >::operator-= (vec_3d< T > &a, vec_3d< T > const &b)
 平移一个三维点。
 
bool CUSPATIAL_HOST_DEVICE cuspatial::vec_3d< T >::operator< (vec_3d< T > const &lhs, vec_3d< T > const &rhs)
 用于比较两个三维点是否小于的运算符。
 
bool CUSPATIAL_HOST_DEVICE cuspatial::vec_3d< T >::operator> (vec_3d< T > const &lhs, vec_3d< T > const &rhs)
 用于比较两个三维点是否大于的运算符。
 
bool CUSPATIAL_HOST_DEVICE cuspatial::vec_3d< T >::operator<= (vec_3d< T > const &lhs, vec_3d< T > const &rhs)
 用于比较两个三维点是否小于或等于的运算符。
 
bool CUSPATIAL_HOST_DEVICE cuspatial::vec_3d< T >::operator>= (vec_3d< T > const &lhs, vec_3d< T > const &rhs)
 用于比较两个三维点是否大于或等于的运算符。
 

详细描述

类型定义文档

◆ value_type [重载 1/2]

template<typename T, typename Vertex = cuspatial::vec_2d<T>>
using cuspatial::segment< T, Vertex >::value_type = T

定义于文件 segment.cuh 的第 42 行。

◆ value_type [重载 2/2]

template<typename T>
using cuspatial::vec_3d< T >::value_type = T

定义于文件 vec_3d.hpp 的第 42 行。

函数文档

◆ box_max()

template<typename T>
vec_2d< T > CUSPATIAL_HOST_DEVICE cuspatial::box_max ( vec_2d< T > const & a,
vec_2d< T > const & b )

返回一个新的 vec_2d,由两个输入 vec_2d 值的最小 x 和 y 分量组成。

定义于文件 vec_2d.hpp 的第 198 行。

◆ box_min()

template<typename T>
vec_2d< T > CUSPATIAL_HOST_DEVICE cuspatial::box_min ( vec_2d< T > const & a,
vec_2d< T > const & b )

返回一个新的 vec_2d,由两个输入 vec_2d 值的最小 x 和 y 分量组成。

定义于文件 vec_2d.hpp 的第 185 行。

◆ center()

template<typename T, typename Vertex = cuspatial::vec_2d<T>>
Vertex CUSPATIAL_HOST_DEVICE cuspatial::segment< T, Vertex >::center ( ) const
inline

返回线段的几何中心。

定义于文件 segment.cuh 的第 53 行。

◆ collinear()

template<typename T, typename Vertex = cuspatial::vec_2d<T>>
bool CUSPATIAL_HOST_DEVICE cuspatial::segment< T, Vertex >::collinear ( segment< T > const & other)
inline

如果两个线段位于同一条直线上,则返回 true。测试由线段构造的矩阵的行列式是否为 0。

定义于文件 segment.cuh 的第 67 行。

◆ cross()

template<typename T>
vec_3d< T > CUSPATIAL_HOST_DEVICE cuspatial::cross ( vec_3d< T > const & a,
vec_3d< T > const & b )

计算两个三维向量的叉积。

等价于列向量为 ab 的 2x2 矩阵的三维行列式。

定义于文件 vec_3d.hpp 的第 179 行。

◆ det()

template<typename T>
T CUSPATIAL_HOST_DEVICE cuspatial::det ( vec_2d< T > const & a,
vec_2d< T > const & b )

计算列向量为 ab 的 2x2 矩阵的二维行列式。

定义于文件 vec_2d.hpp 的第 176 行。

◆ dot() [重载 1/2]

template<typename T>
T CUSPATIAL_HOST_DEVICE cuspatial::dot ( vec_2d< T > const & a,
vec_2d< T > const & b )

计算两个二维向量的点积。

定义于文件 vec_2d.hpp 的第 167 行。

◆ dot() [重载 2/2]

template<typename T>
T CUSPATIAL_HOST_DEVICE cuspatial::dot ( vec_3d< T > const & a,
vec_3d< T > const & b )

计算两个三维向量的点积。

定义于文件 vec_3d.hpp 的第 168 行。

◆ length2()

template<typename T, typename Vertex = cuspatial::vec_2d<T>>
T CUSPATIAL_HOST_DEVICE cuspatial::segment< T, Vertex >::length2 ( ) const
inline

返回线段长度的平方。

定义于文件 segment.cuh 的第 56 行。

◆ lower_left()

template<typename T, typename Vertex = cuspatial::vec_2d<T>>
Vertex CUSPATIAL_HOST_DEVICE cuspatial::segment< T, Vertex >::lower_left ( )
inline

返回线段的左下顶点。

定义于文件 segment.cuh 的第 62 行。

◆ midpoint()

template<typename T>
vec_2d< T > CUSPATIAL_HOST_DEVICE cuspatial::midpoint ( vec_2d< T > const & first,
vec_2d< T > const & second )

计算 firstsecond 的中点。

定义于文件 vec_2d.hpp 的第 211 行。

◆ slope()

template<typename T, typename Vertex = cuspatial::vec_2d<T>>
T CUSPATIAL_HOST_DEVICE cuspatial::segment< T, Vertex >::slope ( )
inline

返回线段的斜率。

定义于文件 segment.cuh 的第 59 行。

◆ translate()

template<typename T, typename Vertex = cuspatial::vec_2d<T>>
segment< T > CUSPATIAL_HOST_DEVICE cuspatial::segment< T, Vertex >::translate ( Vertex const & v) const
inline

返回线段的副本,通过 v 进行平移。

定义于文件 segment.cuh 的第 47 行。

变量文档

◆ v1

template<typename T, typename Vertex = cuspatial::vec_2d<T>>
Vertex cuspatial::segment< T, Vertex >::v1

定义于文件 segment.cuh 的第 43 行。

◆ v2

template<typename T, typename Vertex = cuspatial::vec_2d<T>>
Vertex cuspatial::segment< T, Vertex >::v2

定义于文件 segment.cuh 的第 44 行。

◆ x

template<typename T>
value_type cuspatial::vec_3d< T >::x

定义于文件 vec_3d.hpp 的第 43 行。

◆ y

template<typename T>
value_type cuspatial::vec_3d< T >::y

定义于文件 vec_3d.hpp 的第 44 行。

◆ z

template<typename T>
value_type cuspatial::vec_3d< T >::z

定义于文件 vec_3d.hpp 的第 45 行。

友元

◆ operator* [重载 1/2]

template<typename T>
vec_3d< T > CUSPATIAL_HOST_DEVICE operator* ( T const & r,
vec_3d< T > vec )
friend

按比例 r 缩放三维向量。

定义于文件 vec_3d.hpp 的第 100 行。

◆ operator* [重载 2/2]

template<typename T>
vec_3d< T > CUSPATIAL_HOST_DEVICE operator* ( vec_3d< T > vec,
T const & r )
friend

按因子 r 缩放三维向量。

定义于文件 vec_3d.hpp 的第 92 行。

◆ operator+

template<typename T>
vec_3d< T > CUSPATIAL_HOST_DEVICE operator+ ( vec_3d< T > const & a,
vec_3d< T > const & b )
friend

两个三维向量的逐元素相加。

定义于文件 vec_3d.hpp 的第 68 行。

◆ operator+=

template<typename T>
vec_3d< T > &CUSPATIAL_HOST_DEVICE operator+= ( vec_3d< T > & a,
vec_3d< T > const & b )
friend

平移一个三维点。

定义于文件 vec_3d.hpp 的第 105 行。

◆ operator- [重载 1/2]

template<typename T>
vec_3d< T > CUSPATIAL_HOST_DEVICE operator- ( vec_3d< T > const & a)
friend

反转三维向量。

定义于文件 vec_3d.hpp 的第 84 行。

◆ operator- [重载 2/2]

template<typename T>
vec_3d< T > CUSPATIAL_HOST_DEVICE operator- ( vec_3d< T > const & a,
vec_3d< T > const & b )
friend

两个三维向量的逐元素相减。

定义于文件 vec_3d.hpp 的第 76 行。

◆ operator-=

template<typename T>
vec_3d< T > &CUSPATIAL_HOST_DEVICE operator-= ( vec_3d< T > & a,
vec_3d< T > const & b )
friend

平移一个三维点。

定义于文件 vec_3d.hpp 的第 116 行。

◆ operator<

template<typename T>
bool CUSPATIAL_HOST_DEVICE operator< ( vec_3d< T > const & lhs,
vec_3d< T > const & rhs )
friend

用于比较两个三维点是否小于的运算符。

先按 x 坐标,然后按 y 坐标对两个点进行排序。

定义于文件 vec_3d.hpp 的第 126 行。

◆ operator<< [重载 1/2]

template<typename T, typename Vertex = cuspatial::vec_2d<T>>
std::ostream & operator<< ( std::ostream & os,
segment< T > const & seg )
friend

定义于文件 segment.cuh 的第 73 行。

◆ operator<< [重载 2/2]

template<typename T>
std::ostream & operator<< ( std::ostream & os,
cuspatial::vec_3d< T > const & vec )
friend

用于 vec_3d<T> 的输出流运算符,用于人类可读的格式化。

定义于文件 vec_3d.hpp 的第 51 行。

◆ operator<=

template<typename T>
bool CUSPATIAL_HOST_DEVICE operator<= ( vec_3d< T > const & lhs,
vec_3d< T > const & rhs )
friend

用于比较两个三维点是否小于或等于的运算符。

定义于文件 vec_3d.hpp 的第 146 行。

◆ operator==

template<typename T>
bool CUSPATIAL_HOST_DEVICE operator== ( vec_3d< T > const & lhs,
vec_3d< T > const & rhs )
friend

比较两个三维向量是否相等。

定义于文件 vec_3d.hpp 的第 59 行。

◆ operator>

template<typename T>
bool CUSPATIAL_HOST_DEVICE operator> ( vec_3d< T > const & lhs,
vec_3d< T > const & rhs )
friend

用于比较两个三维点是否大于的运算符。

定义于文件 vec_3d.hpp 的第 138 行。

◆ operator>=

template<typename T>
bool CUSPATIAL_HOST_DEVICE operator>= ( vec_3d< T > const & lhs,
vec_3d< T > const & rhs )
friend

用于比较两个三维点是否大于或等于的运算符。

定义于文件 vec_3d.hpp 的第 154 行。