2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://floralicense.org/license/
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
19 * @file FUiEffects_RendererMathVectorTraits.h
20 * @brief The VectorTraits class
24 #ifndef _FUI_EFFECTS_INTERNAL_RENDERER_MATH_VECTOR_TRAITS_H_
25 #define _FUI_EFFECTS_INTERNAL_RENDERER_MATH_VECTOR_TRAITS_H_
27 #include <renderer/math/FUiEffects_RendererMathVectorTraitsBase.h>
29 namespace Tizen { namespace Ui { namespace Effects { namespace _Renderer { namespace Math
32 template<typename T, int Dimension>
34 public VectorTraitsBase<T, Dimension>
37 typedef Vector<T, Dimension> VectorType;
38 typedef VectorTraitsBase<T, Dimension> VectorTraitsBaseType;
39 typedef typename VectorTraitsBaseType::TypeReference TypeReference;
41 using VectorTraitsBaseType::data;
44 inline const TypeReference X(void) const;
47 inline const TypeReference Y(void) const;
50 inline const TypeReference Z(void) const;
53 inline const TypeReference W(void) const;
55 inline VectorType& Set(const TypeReference x, const TypeReference y, const TypeReference z, const TypeReference w);
58 template<typename T, int Dimension>
59 T& VectorTraits<T, Dimension>::X(void)
64 template<typename T, int Dimension>
65 const typename VectorTraits<T, Dimension>::TypeReference VectorTraits<T, Dimension>::X(void) const
70 template<typename T, int Dimension>
71 T& VectorTraits<T, Dimension>::Y(void)
76 template<typename T, int Dimension>
77 const typename VectorTraits<T, Dimension>::TypeReference VectorTraits<T, Dimension>::Y(void) const
82 template<typename T, int Dimension>
83 T& VectorTraits<T, Dimension>::Z(void)
88 template<typename T, int Dimension>
89 const typename VectorTraits<T, Dimension>::TypeReference VectorTraits<T, Dimension>::Z(void) const
94 template<typename T, int Dimension>
95 T& VectorTraits<T, Dimension>::W(void)
100 template<typename T, int Dimension>
101 const typename VectorTraits<T, Dimension>::TypeReference VectorTraits<T, Dimension>::W(void) const
106 template<typename T, int Dimension>
107 typename VectorTraits<T, Dimension>::VectorType& VectorTraits<T, Dimension>::Set(const TypeReference x, const TypeReference y, const TypeReference z, const TypeReference w)
113 return *(static_cast<VectorType*>(this));
116 }}}}} //Tizen::Ui::Effects::_Renderer::Math
119 #endif //_FUI_EFFECTS_INTERNAL_RENDERER_MATH_VECTOR_TRAITS_H_