OpenSiv3D  v0.6.5
C++20 framework for creative coding
s3d::Ray Struct Reference

レイ More...

#include <Ray.hpp>

Public Member Functions

SIV3D_NODISCARD_CXX20 Ray ()=default
 
SIV3D_NODISCARD_CXX20 Ray (Float3 _origin, Float3 normalizedDirection) noexcept
 
template<class X , class Y , class Z >
SIV3D_NODISCARD_CXX20 Ray (X ox, Y oy, Z oz, Float3 normalizedDirection) noexcept
 
template<class X , class Y , class Z >
SIV3D_NODISCARD_CXX20 Ray (Float3 _origin, X ndx, Y ndy, Z ndz) noexcept
 
Float3 SIV3D_VECTOR_CALL getOrigin () const noexcept
 レイの始点を返します。 More...
 
Ray &SIV3D_VECTOR_CALL setOrigin (Float3 _origin) noexcept
 レイの始点を設定します。 More...
 
Float3 SIV3D_VECTOR_CALL getDirection () const noexcept
 レイの方向(正規化ベクトル)を返します。 More...
 
Ray &SIV3D_VECTOR_CALL setDirection (Float3 _direction) noexcept
 レイの方向(正規化ベクトル)を設定します。 More...
 
Float3 SIV3D_VECTOR_CALL point_at (float distance) const noexcept
 始点からの距離を指定して、レイ上の点の座標を計算します。 More...
 
SIV3D_CONCEPT_ARITHMETIC Vec3 SIV3D_VECTOR_CALL point_at (Arithmetic distance) const noexcept
 始点からの距離を指定して、レイ上の点の座標を計算します。 More...
 
Optional< float > SIV3D_VECTOR_CALL intersects (const Triangle3D &triangle) const
 レイが交差するかを調べます。 More...
 
Optional< float > SIV3D_VECTOR_CALL intersects (const Sphere &sphere) const
 レイが交差するかを調べます。 More...
 
Optional< float > SIV3D_VECTOR_CALL intersects (const Plane &plane) const
 レイが交差するかを調べます。 More...
 
Optional< float > SIV3D_VECTOR_CALL intersects (const InfinitePlane &plane) const
 レイが交差するかを調べます。 More...
 
Optional< float > SIV3D_VECTOR_CALL intersects (const Box &aabb) const
 レイが交差するかを調べます。 More...
 
Optional< float > SIV3D_VECTOR_CALL intersects (const OrientedBox &obb) const
 レイが交差するかを調べます。 More...
 
Optional< float > SIV3D_VECTOR_CALL intersects (const ViewFrustum &frustum) const
 レイが交差するかを調べます。 More...
 
Optional< float > SIV3D_VECTOR_CALL intersects (const Cylinder &cylinder) const
 レイが交差するかを調べます。 More...
 
Optional< float > SIV3D_VECTOR_CALL intersects (const Cone &cone) const
 レイが交差するかを調べます。 More...
 
Optional< Float3 > SIV3D_VECTOR_CALL intersectsAt (const Triangle3D &triangle) const
 
Optional< Float3 > SIV3D_VECTOR_CALL intersectsAt (const Sphere &sphere) const
 
Optional< Float3 > SIV3D_VECTOR_CALL intersectsAt (const Plane &plane) const
 
Optional< Float3 > SIV3D_VECTOR_CALL intersectsAt (const InfinitePlane &plane) const
 
Optional< Float3 > SIV3D_VECTOR_CALL intersectsAt (const Box &aabb) const
 
Optional< Float3 > SIV3D_VECTOR_CALL intersectsAt (const OrientedBox &obb) const
 
Optional< Float3 > SIV3D_VECTOR_CALL intersectsAt (const ViewFrustum &frustum) const
 
Optional< Float3 > SIV3D_VECTOR_CALL intersectsAt (const Cylinder &cylinder) const
 
Optional< Float3 > SIV3D_VECTOR_CALL intersectsAt (const Cone &cone) const
 

Public Attributes

SIMD_Float4 origin
 始点 More...
 
SIMD_Float4 direction
 方向(正規化ベクトル) More...
 

Friends

template<class CharType >
std::basic_ostream< CharType > & operator<< (std::basic_ostream< CharType > &output, const Ray &value)
 
template<class CharType >
std::basic_istream< CharType > & operator>> (std::basic_istream< CharType > &input, Ray &value)
 
void Formatter (FormatData &formatData, const Ray &value)
 

Detailed Description

レイ

Constructor & Destructor Documentation

◆ Ray() [1/4]

SIV3D_NODISCARD_CXX20 s3d::Ray::Ray ( )
default

◆ Ray() [2/4]

SIV3D_NODISCARD_CXX20 s3d::Ray::Ray ( Float3  _origin,
Float3  normalizedDirection 
)
noexcept

◆ Ray() [3/4]

template<class X , class Y , class Z >
SIV3D_NODISCARD_CXX20 s3d::Ray::Ray ( ox,
oy,
oz,
Float3  normalizedDirection 
)
noexcept

◆ Ray() [4/4]

template<class X , class Y , class Z >
SIV3D_NODISCARD_CXX20 s3d::Ray::Ray ( Float3  _origin,
ndx,
ndy,
ndz 
)
noexcept

Member Function Documentation

◆ getDirection()

Float3 SIV3D_VECTOR_CALL s3d::Ray::getDirection ( ) const
noexcept

レイの方向(正規化ベクトル)を返します。

Returns
レイの方向(正規化ベクトル)

◆ getOrigin()

Float3 SIV3D_VECTOR_CALL s3d::Ray::getOrigin ( ) const
noexcept

レイの始点を返します。

Returns
レイの始点

◆ intersects() [1/9]

Optional<float> SIV3D_VECTOR_CALL s3d::Ray::intersects ( const Box aabb) const

レイが交差するかを調べます。

Parameters
aabb交差判定する相手の形状
Returns
交差する場合、視点からの距離。それ以外の場合は none

◆ intersects() [2/9]

Optional<float> SIV3D_VECTOR_CALL s3d::Ray::intersects ( const Cone cone) const

レイが交差するかを調べます。

Parameters
cone交差判定する相手の形状
Returns
交差する場合、視点からの距離。それ以外の場合は none

◆ intersects() [3/9]

Optional<float> SIV3D_VECTOR_CALL s3d::Ray::intersects ( const Cylinder cylinder) const

レイが交差するかを調べます。

Parameters
cylinder交差判定する相手の形状
Returns
交差する場合、視点からの距離。それ以外の場合は none

◆ intersects() [4/9]

Optional<float> SIV3D_VECTOR_CALL s3d::Ray::intersects ( const InfinitePlane plane) const

レイが交差するかを調べます。

Parameters
plane交差判定する相手の形状
Returns
交差する場合、視点からの距離。それ以外の場合は none

◆ intersects() [5/9]

Optional<float> SIV3D_VECTOR_CALL s3d::Ray::intersects ( const OrientedBox obb) const

レイが交差するかを調べます。

Parameters
obb交差判定する相手の形状
Returns
交差する場合、視点からの距離。それ以外の場合は none

◆ intersects() [6/9]

Optional<float> SIV3D_VECTOR_CALL s3d::Ray::intersects ( const Plane plane) const

レイが交差するかを調べます。

Parameters
plane交差判定する相手の形状
Returns
交差する場合、視点からの距離。それ以外の場合は none

◆ intersects() [7/9]

Optional<float> SIV3D_VECTOR_CALL s3d::Ray::intersects ( const Sphere sphere) const

レイが交差するかを調べます。

Parameters
sphere交差判定する相手の形状
Returns
交差する場合、視点からの距離。それ以外の場合は none

◆ intersects() [8/9]

Optional<float> SIV3D_VECTOR_CALL s3d::Ray::intersects ( const Triangle3D triangle) const

レイが交差するかを調べます。

Parameters
triangle交差判定する相手の形状
Returns
交差する場合、視点からの距離。それ以外の場合は none

◆ intersects() [9/9]

Optional<float> SIV3D_VECTOR_CALL s3d::Ray::intersects ( const ViewFrustum frustum) const

レイが交差するかを調べます。

Parameters
frustum交差判定する相手の形状
Returns
交差する場合、視点からの距離。それ以外の場合は none

◆ intersectsAt() [1/9]

Optional<Float3> SIV3D_VECTOR_CALL s3d::Ray::intersectsAt ( const Box aabb) const

◆ intersectsAt() [2/9]

Optional<Float3> SIV3D_VECTOR_CALL s3d::Ray::intersectsAt ( const Cone cone) const

◆ intersectsAt() [3/9]

Optional<Float3> SIV3D_VECTOR_CALL s3d::Ray::intersectsAt ( const Cylinder cylinder) const

◆ intersectsAt() [4/9]

Optional<Float3> SIV3D_VECTOR_CALL s3d::Ray::intersectsAt ( const InfinitePlane plane) const

◆ intersectsAt() [5/9]

Optional<Float3> SIV3D_VECTOR_CALL s3d::Ray::intersectsAt ( const OrientedBox obb) const

◆ intersectsAt() [6/9]

Optional<Float3> SIV3D_VECTOR_CALL s3d::Ray::intersectsAt ( const Plane plane) const

◆ intersectsAt() [7/9]

Optional<Float3> SIV3D_VECTOR_CALL s3d::Ray::intersectsAt ( const Sphere sphere) const

◆ intersectsAt() [8/9]

Optional<Float3> SIV3D_VECTOR_CALL s3d::Ray::intersectsAt ( const Triangle3D triangle) const

◆ intersectsAt() [9/9]

Optional<Float3> SIV3D_VECTOR_CALL s3d::Ray::intersectsAt ( const ViewFrustum frustum) const

◆ point_at() [1/2]

SIV3D_CONCEPT_ARITHMETIC Vec3 SIV3D_VECTOR_CALL s3d::Ray::point_at ( Arithmetic  distance) const
noexcept

始点からの距離を指定して、レイ上の点の座標を計算します。

Parameters
distance始点からの距離
Returns
レイ上の点の座標

◆ point_at() [2/2]

Float3 SIV3D_VECTOR_CALL s3d::Ray::point_at ( float  distance) const
noexcept

始点からの距離を指定して、レイ上の点の座標を計算します。

Parameters
distance始点からの距離
Returns
レイ上の点の座標

◆ setDirection()

Ray& SIV3D_VECTOR_CALL s3d::Ray::setDirection ( Float3  _direction)
noexcept

レイの方向(正規化ベクトル)を設定します。

Parameters
_direction新しいレイの方向(正規化ベクトル)
Returns
*this

◆ setOrigin()

Ray& SIV3D_VECTOR_CALL s3d::Ray::setOrigin ( Float3  _origin)
noexcept

レイの始点を設定します。

Parameters
_origin新しいレイの始点
Returns
*this

Friends And Related Function Documentation

◆ Formatter

void Formatter ( FormatData formatData,
const Ray value 
)
friend

◆ operator<<

template<class CharType >
std::basic_ostream<CharType>& operator<< ( std::basic_ostream< CharType > &  output,
const Ray value 
)
friend

◆ operator>>

template<class CharType >
std::basic_istream<CharType>& operator>> ( std::basic_istream< CharType > &  input,
Ray value 
)
friend

Member Data Documentation

◆ direction

SIMD_Float4 s3d::Ray::direction

方向(正規化ベクトル)

◆ origin

SIMD_Float4 s3d::Ray::origin

始点


The documentation for this struct was generated from the following file: