include
mcl_3dl
filter_vec3.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2020, the mcl_3dl authors
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are met:
7
*
8
* * Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* * Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* * Neither the name of the copyright holder nor the names of its
14
* contributors may be used to endorse or promote products derived from
15
* this software without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
* POSSIBILITY OF SUCH DAMAGE.
28
*/
29
30
#ifndef MCL_3DL_FILTER_VEC3_H
31
#define MCL_3DL_FILTER_VEC3_H
32
33
#include <array>
34
35
#include <
mcl_3dl/filter.h
>
36
#include <
mcl_3dl/vec3.h
>
37
38
namespace
mcl_3dl
39
{
40
class
FilterVec3
41
{
42
private
:
43
Vec3
x_
;
44
std::array<Filter, 3>
f_
;
45
46
public
:
47
inline
FilterVec3
(
Filter::type_t
type,
const
Vec3
& time_const,
const
Vec3
& out0,
const
bool
angle =
false
)
48
:
x_
(out0)
49
,
f_
(
50
{
51
Filter
(type, time_const[0], out0[0],
angle
),
52
Filter
(type, time_const[1], out0[1],
angle
),
53
Filter
(type, time_const[2], out0[2],
angle
),
54
}
//
55
)
56
{
57
}
58
inline
void
set
(
const
Vec3
& out0)
59
{
60
x_
= out0;
61
for
(
int
i = 0; i < 3; i++)
62
f_
[i].
set
(out0[i]);
63
}
64
inline
Vec3
in
(
const
Vec3
&
in
)
65
{
66
for
(
int
i = 0; i < 3; i++)
67
x_
[i] =
f_
[i].
in
(
in
[i]);
68
return
x_
;
69
}
70
inline
Vec3
get
()
const
71
{
72
return
x_
;
73
}
74
};
75
}
// namespace mcl_3dl
76
77
#endif // MCL_3DL_FILTER_VEC3_H
mcl_3dl::Filter
Definition:
filter.h:38
filter.h
mcl_3dl::FilterVec3::x_
Vec3 x_
Definition:
filter_vec3.h:43
angle
TFSIMD_FORCE_INLINE tfScalar angle(const Quaternion &q1, const Quaternion &q2)
mcl_3dl::FilterVec3
Definition:
filter_vec3.h:40
mcl_3dl::FilterVec3::FilterVec3
FilterVec3(Filter::type_t type, const Vec3 &time_const, const Vec3 &out0, const bool angle=false)
Definition:
filter_vec3.h:47
vec3.h
mcl_3dl
Definition:
chunked_kdtree.h:43
mcl_3dl::FilterVec3::f_
std::array< Filter, 3 > f_
Definition:
filter_vec3.h:44
mcl_3dl::FilterVec3::get
Vec3 get() const
Definition:
filter_vec3.h:70
mcl_3dl::FilterVec3::in
Vec3 in(const Vec3 &in)
Definition:
filter_vec3.h:64
mcl_3dl::Vec3
Definition:
vec3.h:37
mcl_3dl::Filter::type_t
type_t
Definition:
filter.h:41
mcl_3dl::FilterVec3::set
void set(const Vec3 &out0)
Definition:
filter_vec3.h:58
mcl_3dl
Author(s): Atsushi Watanabe
autogenerated on Thu Oct 17 2024 02:18:04