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 
20 
21 #ifndef PATCH4_HPP_
22 #define PATCH4_HPP_
23 
24 #include <vec3.hpp>
25 
26 namespace cpe
27 {
28 class matrix4;
29 
30 class patch4
31 {
32  public:
33 
34  // ********************************************* //
35  // ********************************************* //
36  // CONSTRUCTORS
37  // ********************************************* //
38  // ********************************************* //
39 
41  patch4();
43  patch4(const vec3& x00,const vec3& x01,const vec3& x02,const vec3& x03,
44  const vec3& x10,const vec3& x11,const vec3& x12,const vec3& x13,
45  const vec3& x20,const vec3& x21,const vec3& x22,const vec3& x23,
46  const vec3& x30,const vec3& x31,const vec3& x32,const vec3& x33);
47 
48  // ********************************************* //
49  // ********************************************* //
50  // Data
51  // ********************************************* //
52  // ********************************************* //
53 
55  const vec3& operator()(const unsigned int& ku ,const unsigned int& kv) const;
57  vec3& operator()(const unsigned int& ku ,const unsigned int& kv);
58 
60  matrix4 get_x() const;
62  matrix4 get_y() const;
64  matrix4 get_z() const;
65 
66  private:
67 
69  void assert_size(const unsigned int& ku,const unsigned int& kv) const;
70 
73 };
74 }
75 
76 #endif