nlib
nn::nlib::simd::DistanceSq クラス

距離(の2乗)の計算を行う関数をまとめたクラスです。 [詳解]

#include "nn/nlib/simd/SimdGeometry.h"

静的公開メンバ関数

static f128 PointLine (SimdVectorArg point, SimdVectorArg line_point, SimdVectorArg line_dir_normalized) noexcept
 3次元空間上の線と点との距離を計算します。 [詳解]
 
static f128 PointRay (SimdVectorArg point, SimdVectorArg ray_point, SimdVectorArg ray_dir_normalized) noexcept
 3次元空間上の半直線と点との距離を計算します。 [詳解]
 
static f128 PointSegment (SimdVectorArg point, SimdVectorArg segment_point0, SimdVectorArg segment_point1) noexcept
 3次元空間上の線分と点との距離を計算します。 [詳解]
 
static f128 PointPlane (SimdVector *point_on_plane, SimdVectorArg point, SimdPlaneArg plane_normalized) noexcept
 3次元空間上の点と平面の距離を計算します。 [詳解]
 
static f128 SpherePlane (SimdSphereArg sphere, SimdPlaneArg plane_normalized) noexcept
 3次元空間上の球と平面の距離を計算します。 [詳解]
 
static f128 PointAxisAlignedBox (SimdVector *point_on_box, SimdVectorArg point, const AxisAlignedBox &aabb) noexcept
 3次元空間上の点とAABBの距離を計算します。 [詳解]
 
static f128 LineLine (SimdVector *point_on_line0, SimdVector *point_on_line1, SimdVectorArg line0_point, SimdVectorArg line0_dir_normalized, SimdVectorArg line1_point, SimdVectorArg line1_dir_normalized) noexcept
 3次元空間上の線と線の距離を計算します。 [詳解]
 
static f128 SegmentSegment (SimdVector *point_on_segment0, SimdVector *point_on_segment1, SimdVectorArg segment0_point0, SimdVectorArg segment0_point1, SimdVectorArg segment1_point0, SimdVectorArg segment1_point1) noexcept
 3次元空間上の線分と線分の距離を計算します。 [詳解]
 
static f128 LineRay (SimdVector *point_on_line, SimdVector *point_on_ray, SimdVectorArg line_point, SimdVectorArg line_dir_normalized, SimdVectorArg ray_point, SimdVectorArg ray_dir_normalized) noexcept
 3次元空間上の線と半直線の距離を計算します。 [詳解]
 
static f128 LineSegment (SimdVector *point_on_line, SimdVector *point_on_segment, SimdVectorArg line_point, SimdVectorArg line_dir_normalized, SimdVectorArg segment_point0, SimdVectorArg segment_point1) noexcept
 3次元空間上の線と線分の距離を計算します。 [詳解]
 
static f128 RayRay (SimdVector *point_on_ray0, SimdVector *point_on_ray1, SimdVectorArg ray0_point, SimdVectorArg ray0_dir_normalized, SimdVectorArg ray1_point, SimdVectorArg ray1_dir_normalized) noexcept
 3次元空間上の半直線と半直線の距離を計算します。 [詳解]
 
static f128 RaySegment (SimdVector *point_on_ray, SimdVector *point_on_segment, SimdVectorArg ray_point0, SimdVectorArg ray_dir_normalized, SimdVectorArg segment_point0, SimdVectorArg segment_point1) noexcept
 3次元空間上の半直線と線分の距離を計算します。 [詳解]
 

詳解

距離(の2乗)の計算を行う関数をまとめたクラスです。

SimdGeometry.h134 行目に定義があります。

関数詳解

nn::nlib::simd::DistanceSq::LineLine ( SimdVector point_on_line0,
SimdVector point_on_line1,
SimdVectorArg  line0_point,
SimdVectorArg  line0_dir_normalized,
SimdVectorArg  line1_point,
SimdVectorArg  line1_dir_normalized 
)
staticnoexcept

3次元空間上の線と線の距離を計算します。

引数
[out]point_on_line0NULLでなければ線0上の点で線1との最近点が格納されます。
[out]point_on_line1NULLでなければ線1上の点で線0との最近点が格納されます。
[in]line0_point線0上の点の位置を示す3次元ベクトル
[in]line0_dir_normalized線0の方向を表す単位ベクトル
[in]line1_point線1上の点の位置を示す3次元ベクトル
[in]line1_dir_normalized線1の方向を表す単位ベクトル
戻り値
各レーンに距離が格納されます。
nn::nlib::simd::DistanceSq::LineRay ( SimdVector point_on_line,
SimdVector point_on_ray,
SimdVectorArg  line_point,
SimdVectorArg  line_dir_normalized,
SimdVectorArg  ray_point,
SimdVectorArg  ray_dir_normalized 
)
staticnoexcept

3次元空間上の線と半直線の距離を計算します。

引数
[out]point_on_lineNULLでなければ線上の点で半直線との最近点が格納されます。
[out]point_on_rayNULLでなければ半直線上の点で線との最近点が格納されます。
[in]line_point線上の点の位置を示す3次元ベクトル
[in]line_dir_normalized線の方向を表す単位ベクトル
[in]ray_point半直線の起点の位置を示す3次元ベクトル
[in]ray_dir_normalized半直線の方向を表す単位ベクトル
戻り値
各レーンに距離が格納されます。
nn::nlib::simd::DistanceSq::LineSegment ( SimdVector point_on_line,
SimdVector point_on_segment,
SimdVectorArg  line_point,
SimdVectorArg  line_dir_normalized,
SimdVectorArg  segment_point0,
SimdVectorArg  segment_point1 
)
staticnoexcept

3次元空間上の線と線分の距離を計算します。

引数
[out]point_on_lineNULLでなければ線上の点で線分との最近点が格納されます。
[out]point_on_segmentNULLでなければ線分上の点で線との最近点が格納されます。
[in]line_point線上の点の位置を示す3次元ベクトル
[in]line_dir_normalized線の方向を表す単位ベクトル
[in]segment_point0線分の始点
[in]segment_point1線分の終点
戻り値
各レーンに距離が格納されます。
nn::nlib::simd::DistanceSq::PointAxisAlignedBox ( SimdVector point_on_box,
SimdVectorArg  point,
const AxisAlignedBox aabb 
)
staticnoexcept

3次元空間上の点とAABBの距離を計算します。

引数
[out]point_on_boxNULLでなければpoint がAABB上に投影された点が格納されます。
[in]point3次元空間上の点
[in]aabbAABB
戻り値
各レーンに距離が格納されます。
nn::nlib::simd::DistanceSq::PointLine ( SimdVectorArg  point,
SimdVectorArg  line_point,
SimdVectorArg  line_dir_normalized 
)
staticnoexcept

3次元空間上の線と点との距離を計算します。

引数
[in]point3次元空間上の点
[in]line_point線上の点の位置を示す3次元ベクトル
[in]line_dir_normalized線の方向を表す単位ベクトル
戻り値
各レーンに距離が格納されます。
nn::nlib::simd::DistanceSq::PointPlane ( SimdVector point_on_plane,
SimdVectorArg  point,
SimdPlaneArg  plane_normalized 
)
staticnoexcept

3次元空間上の点と平面の距離を計算します。

引数
[out]point_on_planeNULLでなければpoint が平面上に投影された点が格納されます。
[in]point3次元空間上の点
[in]plane_normalized正規化された3次元空間上の平面
戻り値
各レーンに距離が格納されます。
nn::nlib::simd::DistanceSq::PointRay ( SimdVectorArg  point,
SimdVectorArg  ray_point,
SimdVectorArg  ray_dir_normalized 
)
staticnoexcept

3次元空間上の半直線と点との距離を計算します。

引数
[in]point3次元空間上の点
[in]ray_point3次元空間上の半直線の起点
[in]ray_dir_normalized半直線の方向を表す単位ベクトル
戻り値
各レーンに距離が格納されます。
nn::nlib::simd::DistanceSq::PointSegment ( SimdVectorArg  point,
SimdVectorArg  segment_point0,
SimdVectorArg  segment_point1 
)
staticnoexcept

3次元空間上の線分と点との距離を計算します。

引数
[in]point3次元空間上の点
[in]segment_point03次元空間上の線分の始点
[in]segment_point13次元空間上の線分の終点
戻り値
各レーンに距離が格納されます。
nn::nlib::simd::DistanceSq::RayRay ( SimdVector point_on_ray0,
SimdVector point_on_ray1,
SimdVectorArg  ray0_point,
SimdVectorArg  ray0_dir_normalized,
SimdVectorArg  ray1_point,
SimdVectorArg  ray1_dir_normalized 
)
staticnoexcept

3次元空間上の半直線と半直線の距離を計算します。

引数
[out]point_on_ray0NULLでなければ半直線0上の点で半直線1との最近点が格納されます。
[out]point_on_ray1NULLでなければ半直線1上の点で半直線0との最近点が格納されます。
[in]ray0_point半直線0の起点の位置を示す3次元ベクトル
[in]ray0_dir_normalized半直線0の方向を表す単位ベクトル
[in]ray1_point半直線1の起点の位置を示す3次元ベクトル
[in]ray1_dir_normalized半直線1の方向を表す単位ベクトル
戻り値
各レーンに距離が格納されます。
nn::nlib::simd::DistanceSq::RaySegment ( SimdVector point_on_ray,
SimdVector point_on_segment,
SimdVectorArg  ray_point,
SimdVectorArg  ray_dir_normalized,
SimdVectorArg  segment_point0,
SimdVectorArg  segment_point1 
)
staticnoexcept

3次元空間上の半直線と線分の距離を計算します。

引数
[out]point_on_rayNULLでなければ半直線上の点で線分との最近点が格納されます。
[out]point_on_segmentNULLでなければ線分上の点で半直線との最近点が格納されます。
[in]ray_point半直線の起点の位置を示す3次元ベクトル
[in]ray_dir_normalized半直線の方向を表す単位ベクトル
[in]segment_point0線分の始点
[in]segment_point1線分の終点
戻り値
各レーンに距離が格納されます。
nn::nlib::simd::DistanceSq::SegmentSegment ( SimdVector point_on_segment0,
SimdVector point_on_segment1,
SimdVectorArg  segment0_point0,
SimdVectorArg  segment0_point1,
SimdVectorArg  segment1_point0,
SimdVectorArg  segment1_point1 
)
staticnoexcept

3次元空間上の線分と線分の距離を計算します。

引数
[out]point_on_segment0NULLでなければ線分0上の点で線分1との最近点が格納されます。
[out]point_on_segment1NULLでなければ線分1上の点で線分0との最近点が格納されます。
[in]segment0_point0線分0の始点
[in]segment0_point1線分0の終点
[in]segment1_point0線分1の始点
[in]segment1_point1線分1の終点
戻り値
各レーンに距離が格納されます。
nn::nlib::simd::DistanceSq::SpherePlane ( SimdSphereArg  sphere,
SimdPlaneArg  plane_normalized 
)
staticnoexcept

3次元空間上の球と平面の距離を計算します。

引数
[in]sphere3次元空間上の球
[in]plane_normalized正規化された3次元空間上の平面
戻り値
各レーンに距離が格納されます。

このクラス詳解は次のファイルから抽出されました: