patch4.hpp
Go to the documentation of this file.
1 /*
2 ** TP CPE Lyon
3 ** Copyright (C) 2013 Damien Rohmer
4 **
5 ** This program is free software: you can redistribute it and/or modify
6 ** it under the terms of the GNU General Public License as published by
7 ** the Free Software Foundation, either version 3 of the License, or
8 ** (at your option) any later version.
9 **
10 ** This program is distributed in the hope that it will be useful,
11 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
12 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 ** GNU General Public License for more details.
14 **
15 ** You should have received a copy of the GNU General Public License
16 ** along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18 
19 #ifndef _PATCH4_HPP_
20 #define _PATCH4_HPP_
21 
22 #include <vec3.hpp>
23 
24 namespace cpe
25 {
26 class matrix4;
27 
28 class patch4
29 {
30  public:
31 
32  // ********************************************* //
33  // ********************************************* //
34  // CONSTRUCTORS
35  // ********************************************* //
36  // ********************************************* //
37 
39  patch4();
41  patch4(const vec3& x00,const vec3& x01,const vec3& x02,const vec3& x03,
42  const vec3& x10,const vec3& x11,const vec3& x12,const vec3& x13,
43  const vec3& x20,const vec3& x21,const vec3& x22,const vec3& x23,
44  const vec3& x30,const vec3& x31,const vec3& x32,const vec3& x33);
45 
46  // ********************************************* //
47  // ********************************************* //
48  // Data
49  // ********************************************* //
50  // ********************************************* //
51 
53  const vec3& operator()(const unsigned int& ku ,const unsigned int& kv) const;
55  vec3& operator()(const unsigned int& ku ,const unsigned int& kv);
56 
58  matrix4 get_x() const;
60  matrix4 get_y() const;
62  matrix4 get_z() const;
63 
64  private:
65 
67  void assert_size(const unsigned int& ku,const unsigned int& kv) const;
68 
71 };
72 }
73 
74 #endif