drawerCells.h 6.72 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*******************************************************************************
* CGoGN: Combinatorial and Geometric modeling with Generic N-dimensional Maps  *
* version 0.1                                                                  *
* Copyright (C) 2009-2011, IGG Team, LSIIT, University of Strasbourg           *
*                                                                              *
* This library is free software; you can redistribute it and/or modify it      *
* under the terms of the GNU Lesser General Public License as published by the *
* Free Software Foundation; either version 2.1 of the License, or (at your     *
* option) any later version.                                                   *
*                                                                              *
* This library is distributed in the hope that it will be useful, but WITHOUT  *
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or        *
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License  *
* for more details.                                                            *
*                                                                              *
* You should have received a copy of the GNU Lesser General Public License     *
* along with this library; if not, write to the Free Software Foundation,      *
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.           *
*                                                                              *
* Web site: http://cgogn.u-strasbg.fr/                                         *
* Contact information: cgogn@unistra.fr                                        *
*                                                                              *
*******************************************************************************/
#ifndef __DRAWER_CELLS__
#define __DRAWER_CELLS__


#include "Utils/drawer.h"

namespace CGoGN
{
namespace Algo
{
namespace Render
{
Sylvain Thery's avatar
Sylvain Thery committed
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/**
 * add a cell to a drawer
 * @param the cell (VERTEX,EDGE,...)
 *  * @param dr the drawer to use
 * @param map the map
 * @param d the dart
 * @param positions attribute of positions
 * @param k shrinking factor
 */
template<typename PFP>
void drawerCells(unsigned int cell, Utils::Drawer& dr, typename PFP::MAP& map, std::vector<Dart>& vd, const typename PFP::TVEC3& positions);


/**
 * add a set of volumes to a drawer
 * @param the cell (VERTEX,EDGE,...)
 * @param dr the drawer to use
 * @param map the map
 * @param vd the darts
 * @param positions attribute of positions
 * @param k shrinking factor
 */
template<typename PFP>
void drawerCell(unsigned int cell, Utils::Drawer& dr, typename PFP::MAP& map, Dart d, const typename PFP::TVEC3& positions);

61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209

/**
 * add a set of vertices to a drawer
 * @param dr the drawer to use
 * @param map the map
 * @param vd the darts
 * @param positions attribute of positions
 */
template<typename PFP>
void drawerVertices(Utils::Drawer& dr, typename PFP::MAP& map, std::vector<Dart>& vd, const typename PFP::TVEC3& positions);


/**
 * add a set of edges to a drawer
 * @param dr the drawer to use
 * @param map the map
 * @param vd the darts
 * @param positions attribute of positions
 * @param k shrinking factor
 */
template<typename PFP>
void drawerEdges(Utils::Drawer& dr, typename PFP::MAP& map, std::vector<Dart>& vd, const typename PFP::TVEC3& positions,float k);


/**
 * add a set of faces to a drawer
 * @param dr the drawer to use
 * @param map the map
 * @param vd the darts
 * @param positions attribute of positions
 * @param k shrinking factor
 */
template<typename PFP>
void drawerFaces(Utils::Drawer& dr, typename PFP::MAP& map, std::vector<Dart>& vd, const typename PFP::TVEC3& positions,float k);


/**
 * add a set of volumes to a drawer
 * @param dr the drawer to use
 * @param map the map
 * @param vd the darts
 * @param positions attribute of positions
 * @param k shrinking factor
 */
template<typename PFP>
void drawerVolumes(Utils::Drawer& dr, typename PFP::MAP& map, std::vector<Dart>& vd, const typename PFP::TVEC3& positions,float k);


/**
 * add a vertex to a drawer
 * @param dr the drawer to use
 * @param map the map
 * @param d the dart
 * @param positions attribute of positions
 */
template<typename PFP>
void drawerVertex(Utils::Drawer& dr, typename PFP::MAP& map, Dart d, const typename PFP::TVEC3& positions);


/**
 * add an edge to a drawer
 * @param dr the drawer to use
 * @param map the map
 * @param d the dart
 * @param positions attribute of positions
 */
template<typename PFP>
void drawerEdge(Utils::Drawer& dr, typename PFP::MAP& map,  Dart d, const typename PFP::TVEC3& positions,float k);


/**
 * add a face to a drawer
 * @param dr the drawer to use
 * @param map the map
 * @param d the dart
 * @param positions attribute of positions
 * @param k shrinking factor
 */
template<typename PFP>
void drawerFace(Utils::Drawer& dr, typename PFP::MAP& map, Dart d, const typename PFP::TVEC3& positions,float k);


/**
 * add a volume to a drawer
 * @param dr the drawer to use
 * @param map the map
 * @param d the dart
 * @param positions attribute of positions
 * @param k shrinking factor
 */
template<typename PFP>
void drawerVolume(Utils::Drawer& dr, typename PFP::MAP& map, Dart d, const typename PFP::TVEC3& positions,float k);


/**
 * add an edge to a drawer, use between begin / end
 * @param dr the drawer to use
 * @param map the map
 * @param d the dart
 * @param positions attribute of positions
 * @param k shrinking factor
 */
template<typename PFP>
void drawerAddEdge(Utils::Drawer& dr, typename PFP::MAP& map, Dart d, const typename PFP::TVEC3& positions, float k);


/**
 * add an shrinked edge from center to a drawer, use between begin / end
 * @param dr the drawer to use
 * @param map the map
 * @param d the dart
 * @param positions attribute of positions
 * @param C center of cell to draw
 * @param k shrinking factor
 */
template<typename PFP>
void drawerAddEdgeShrink(Utils::Drawer& dr, typename PFP::MAP& map, Dart d, const typename PFP::TVEC3& positions, const typename PFP::VEC3& C, float k);


/**
 * add an face to a drawer, use between begin / end
 * @param dr the drawer to use
 * @param map the map
 * @param d the dart
 * @param positions attribute of positions
 * @param k shrinking factor
 */
template<typename PFP>
void drawerAddFace(Utils::Drawer& dr, typename PFP::MAP& map, Dart d, const typename PFP::TVEC3& positions, float k);


/**
 * add a volume to a drawer, use between begin / end
 * @param dr the drawer to use
 * @param map the map
 * @param d the dart
 * @param positions attribute of positions
 * @param k shrinking factor
 */
template<typename PFP>
void drawerAddVolume(Utils::Drawer& dr, typename PFP::MAP& map, Dart d, const typename PFP::TVEC3& positions,float k);

}
}
}

#include "Algo/Render/GL2/drawerCells.hpp"

#endif