Subversion Repositories gelsvn

Rev

Rev 89 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 89 Rev 119
1
#ifndef __CGLA_VEC4UC_H__
1
#ifndef __CGLA_VEC4UC_H__
2
#define __CGLA_VEC4UC_H__
2
#define __CGLA_VEC4UC_H__
3
 
3
 
4
#include "Vec4f.h"
4
#include "Vec4f.h"
5
 
5
 
6
namespace CGLA {
6
namespace CGLA {
7
	typedef unsigned char UChar;
7
	typedef unsigned char UChar;
8
 
8
 
9
	/** \brief 4D unsigned char vector. */
9
	/** \brief 4D unsigned char vector. */
10
	class Vec4uc: public ArithVec<UChar,Vec4uc,4>
10
	class Vec4uc: public ArithVec<UChar,Vec4uc,4>
11
	{
11
	{
12
 
12
 
13
	public:
13
	public:
14
		
14
		
15
		/// Construct 0 vector
15
		/// Construct 0 vector
16
		Vec4uc() {}
16
		Vec4uc() {}
17
 
17
 
18
		/// Construct 0 vector
18
		/// Construct 0 vector
19
		Vec4uc(unsigned char a): ArithVec<UChar,Vec4uc,4>(a,a,a,a) {}
19
		Vec4uc(unsigned char a): ArithVec<UChar,Vec4uc,4>(a,a,a,a) {}
20
 
20
 
21
		/// Construct 4D uchar vector
21
		/// Construct 4D uchar vector
22
		Vec4uc(UChar _a, UChar _b, UChar _c,UChar _d): 
22
		Vec4uc(UChar _a, UChar _b, UChar _c,UChar _d): 
23
			ArithVec<UChar,Vec4uc,4>(_a,_b,_c,_d) {}
23
			ArithVec<UChar,Vec4uc,4>(_a,_b,_c,_d) {}
24
 
24
 
25
		/// Convert from float vector. 
25
		/// Convert from float vector. 
26
		explicit Vec4uc(const Vec4f& v): 
26
		explicit Vec4uc(const Vec4f& v): 
27
			ArithVec<UChar,Vec4uc,4>(UChar(v[0]), UChar(v[1]), 
27
			ArithVec<UChar,Vec4uc,4>(UChar(v[0]), UChar(v[1]), 
28
															 UChar(v[2]), UChar(v[3])) {}
28
															 UChar(v[2]), UChar(v[3])) {}
29
 
29
 
30
		operator Vec4f() const
30
		operator Vec4f() const
31
		{
31
		{
32
			return  Vec4f((*this)[0],(*this)[1],(*this)[2],(*this)[3]);
32
			return  Vec4f((*this)[0],(*this)[1],(*this)[2],(*this)[3]);
33
		}
33
		}
34
 
34
 
35
	};
35
	};
36
 
36
 
37
 
37
 
38
}
38
}
39
#endif
39
#endif
40
 
40
 
41
 
41