Subversion Repositories gelsvn

Rev

Rev 89 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
595 jab 1
/* ----------------------------------------------------------------------- *
2
 * This file is part of GEL, http://www.imm.dtu.dk/GEL
3
 * Copyright (C) the authors and DTU Informatics
4
 * For license and list of authors, see ../../doc/intro.pdf
5
 * ----------------------------------------------------------------------- */
6
 
7
/**
8
 * @file Vec3i.h
9
 * 3D integer vector class.
10
 */
11
 
2 bj 12
#ifndef __CGLA_VEC3I_H__
13
#define __CGLA_VEC3I_H__
14
 
15
#include "ArithVec3Int.h"
16
 
17
namespace CGLA 
18
{
19
	class Vec3f;
595 jab 20
	class Vec3d;
2 bj 21
	class Vec3uc;
22
	class Vec3usi;
23
 
89 jab 24
	/** \brief 3D integer vector. 
25
 
26
	    This class does not really extend the template
2 bj 27
			and hence provides only the basic facilities of an ArithVec. 
28
			The class is typically used for indices to 3D voxel grids. */
29
	class Vec3i: public ArithVec3Int<int,Vec3i>
30
	{
31
	public:
32
 
33
		/// Construct 0 vector.
34
		Vec3i() {}
35
 
36
		/// Construct a 3D integer vector.
37
		Vec3i(int _a,int _b,int _c): ArithVec3Int<int,Vec3i>(_a,_b,_c) {}
38
 
39
		/// Construct a 3D integer vector with 3 identical coordinates.
40
		explicit Vec3i(int a): ArithVec3Int<int,Vec3i>(a,a,a) {}
41
 
42
		/// Construct from a Vec3f.
43
		explicit Vec3i(const Vec3f& v);
44
 
595 jab 45
		/// Construct from a Vec3f.
46
		explicit Vec3i(const Vec3d& v);
47
 
2 bj 48
		/// Construct from a Vec3uc.
49
		explicit Vec3i(const Vec3uc& v);
50
 
51
		/// Construct from a Vec3usi.
52
		explicit Vec3i(const Vec3usi& v);
53
 
54
	};
55
 
56
 
57
}
58
#endif