-
Notifications
You must be signed in to change notification settings - Fork 1
/
prim3_angle.h
53 lines (48 loc) · 3.34 KB
/
prim3_angle.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//============================================================================
// Mini Spin-X Library
//
// Copyright (c) 2024, Jarkko Lempiainen
// All rights reserved.
//============================================================================
#ifndef PFC_CORE_MATH_PRIM3_ANGLE_H
#define PFC_CORE_MATH_PRIM3_ANGLE_H
//----------------------------------------------------------------------------
//============================================================================
// interface
//============================================================================
// external
#include "prim3.h"
namespace pfc
{
// new
// subtended angle calculations
template<typename T> typename math<T>::scalar_t subtended_angle(const segment3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t subtended_angle(const tri3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t subtended_angle(const rect3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t subtended_angle(const disc3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t subtended_angle(const plane3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t sin_half_subtended_angle(const sphere3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t subtended_angle(const cylinder3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t subtended_angle(const capsule3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t subtended_angle(const cone3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t subtended_angle(const aabox3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t subtended_angle(const oobox3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t subtended_angle(const frustum3<T>&, const vec3<T> &pos_);
// solid angle calculations
template<typename T> typename math<T>::scalar_t solid_angle(const segment3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t solid_angle(const tri3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t solid_angle(const rect3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t solid_angle(const disc3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t solid_angle(const plane3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t solid_angle(const sphere3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t solid_angle(const cylinder3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t solid_angle(const capsule3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t solid_angle(const cone3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t solid_angle(const aabox3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t solid_angle(const oobox3<T>&, const vec3<T> &pos_);
template<typename T> typename math<T>::scalar_t solid_angle(const frustum3<T>&, const vec3<T> &pos_);
//----------------------------------------------------------------------------
//============================================================================
#include "prim3_angle.inl"
} // namespace pfc
#endif