18#ifndef BIMHOMEBASE_CONVERTER_H
19#define BIMHOMEBASE_CONVERTER_H
22#include <Base/Rotation.h>
23#include <Base/Vector3D.h>
56 inline std::tuple<float_type, float_type, float_type>
get()
const
58 return std::make_tuple(v.x, v.y, v.z);
83 inline std::tuple<float_type, float_type, float_type>
get()
const
85 return std::make_tuple(v.x, v.y, v.z);
110 inline std::tuple<float_type, float_type, float_type, float_type>
get()
const
113 v.getValue(q1, q2, q3, q4);
114 return std::make_tuple(q1, q2, q3, q4);
128 template <
class _Vec,
typename float_type>
129 _Vec
make_vec(
const std::tuple<float_type, float_type, float_type>&& t)
132 typedef typename traits_type::float_type float_traits_type;
133 return _Vec(float_traits_type(std::get<0>(t)),
134 float_traits_type(std::get<1>(t)),
135 float_traits_type(std::get<2>(t)));
146 template <
class _Vec,
typename float_type>
147 _Vec
make_vec(
const std::tuple<float_type, float_type, float_type, float_type>&& t)
150 typedef typename traits_type::float_type float_traits_type;
151 return _Vec(float_traits_type(std::get<0>(t)),
152 float_traits_type(std::get<1>(t)),
153 float_traits_type(std::get<2>(t)),
154 float_traits_type(std::get<3>(t)));
165 template <
class _Vec1,
class _Vec2>
169 typedef typename traits_type::float_type float_type;
171 auto tuple = t.get();
172 return make_vec<_Vec1, float_type>(std::move(tuple));
Vector3 类,表示三维空间中的向量
Definition Vector3D.h:149
_Vec1 convertTo(const _Vec2 &v)
转换向量
Definition Converter.h:166
_Vec make_vec(const std::tuple< float_type, float_type, float_type > &&t)
创建向量
Definition Converter.h:129
Definition BaseFigureFactory.h:24
double float_type
浮点数类型
Definition Converter.h:100
Rotation vec_type
向量类型
Definition Converter.h:99
vec_traits(const vec_type &v)
构造函数
Definition Converter.h:105
const vec_type & v
向量引用
Definition Converter.h:117
std::tuple< float_type, float_type, float_type, float_type > get() const
获取四元数的分量
Definition Converter.h:110
double float_type
浮点数类型
Definition Converter.h:73
std::tuple< float_type, float_type, float_type > get() const
获取向量的分量
Definition Converter.h:83
vec_traits(const vec_type &v)
构造函数
Definition Converter.h:78
const vec_type & v
向量引用
Definition Converter.h:88
Vector3d vec_type
向量类型
Definition Converter.h:72
float float_type
浮点数类型
Definition Converter.h:46
Vector3f vec_type
向量类型
Definition Converter.h:45
std::tuple< float_type, float_type, float_type > get() const
获取向量的分量
Definition Converter.h:56
vec_traits(const vec_type &v)
构造函数
Definition Converter.h:51
const vec_type & v
向量引用
Definition Converter.h:61
向量特性模板结构
Definition Converter.h:35