COVISE Core
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros
coCuttingSurface.h
Go to the documentation of this file.
1 /* This file is part of COVISE.
2 
3  You can use it under the terms of the GNU Lesser General Public License
4  version 2.1 or later, see lgpl-2.1.txt.
5 
6  * License: LGPL 2+ */
7 
8 #ifndef CO_CUTTINGSURFACE_H
9 #define CO_CUTTINGSURFACE_H
10 
11 #include <map>
12 
13 #include "CuttingSurfaceGPMUtil.h"
14 
15 #include <do/coDoData.h>
16 
17 #define UP 0
18 #define DOWN 1
19 #define FINDX 1
20 #define FINDY 2
21 #define FINDZ 3
22 #define TOO_SMALL 4 // For rectilinear grids: if dimension is lower than TWO_SMALL we just cut every cube
23 #define CHECK_Z (fabs(planek) > 0.15)
24 #define CREFN 20 // the degree of refinement for cylinder surfaces
25 
26 namespace covise
27 {
28 class coDistributedObject;
29 class coDoPolygons;
30 class coDoTriangleStrips;
31 class coDoUnstructuredGrid;
32 class coDoUniformGrid;
33 class coDoRectilinearGrid;
34 class coDoStructuredGrid;
35 class CuttingSurface;
36 
37 typedef struct NodeInfo_s
38 {
39  float dist;
40  int side;
41  int targets[12];
42  int vertice_list[12];
43 } NodeInfo;
44 
45 typedef struct cutting_info_s
46 {
47  int node_pairs[12];
48  int nvert;
49 } cutting_info;
50 
51 typedef struct border_s
52 {
53  int upper;
54  int lower;
55 } border;
56 
58 {
59 private:
61  int no_attrs_;
62  const char **attr_;
63  const char **setting_;
64 
65 public:
67  const coDistributedObject *getPObj();
68  void addAttributes(coDistributedObject *p_obj);
69  void addAttributes(coDistributedObject *p_obj, const char *probeAttr);
70 };
71 
73 {
74  friend class Isoline;
75  friend class STR_Plane;
76  friend class UNI_Plane;
77  friend class RECT_Plane;
78  friend class CELL_Plane;
79  friend class POLYHEDRON_Plane;
80 
81 protected:
82  bool unstr_;
83 
84 private:
85  void initialize();
86 
91 
97 
98  int *el, *cl, *tl;
99  float *x_in;
100  float *y_in;
101  float *z_in;
102  float *s_in;
103  unsigned char *bs_in;
104  float *i_in;
105  float *u_in;
106  float *v_in;
107  float *w_in;
109  int num_elem;
119  int *vertex;
120 
122  int max_coords; // max. number of allocated coords
123  int maxPolyPerVertex; //maximal number of polygons dor one vertex
124 
125  float *coords_x;
126  float *coords_y;
127  float *coords_z;
128  float *coord_x;
129  float *coord_y;
130  float *coord_z;
131  float *V_Data_U;
132  float *V_Data_V;
133  float *V_Data_W;
134  float *S_Data;
135  float *I_Data;
136  float *V_Data_U_p;
137  float *V_Data_V_p;
138  float *V_Data_W_p;
139  float *S_Data_p;
140  float *I_Data_p;
141  float x_min, x_max, y_min, y_max, z_min, z_max;
142  int x_size, y_size, z_size;
144  int Datatype;
145 
146  float planei, planej, planek;
147  float startx, starty, startz;
148  float myDistance;
149  float radius;
150  int gennormals, option, genstrips;
151  char *iblank;
152 
153  float x_minb, y_minb, z_minb, x_maxb, y_maxb, z_maxb;
154 
155  static float gsin(float angle);
156  static float gcos(float angle);
157  static int trs2pol(int nb_con, int nb_tr, int *trv, int *tr_list, int *plv, int *pol_list);
158  int DummyData(int dtype, float **data1, float **data2, float **data3);
159  static int DummyNormals(int);
160  static void fill_normals(float *u_out, float *v_out, float *w_out,
161  const float *coords_x, const float *coords_y, const float *coords_z,
162  int nb_coords, int param_option,
163  float pla[3], float rad, float start[3]);
164  static int check_orientation(float *x4, float *y4, float *z4, float planei,
165  float planej, float planek);
166  static void preserve_inertia(const float *x8,
167  const float *y8, const float *z8,
168  float *x4, float *y4, float *z4,
169  float pli, float plj, float plk);
170  static void buildSphere(float *xSphere, float *ySphere, float *zSphere,
171  float xPoint, float yPoint, float zPoint, float rad);
172  static void build_SphereStrips(int *tsl, int *vl);
173  static void border_proj(float *px, float *py, float *pz,
174  float xminb,
175  float xmaxb,
176  float yminb,
177  float ymaxb,
178  float zminb,
179  float zmaxb,
180  float pli, float plj, float plk, float distance);
181 
182 public:
183  static coDoTriangleStrips *dummy_tr_strips(const char *name,
184  float x_minb,
185  float x_maxb,
186  float y_minb,
187  float y_maxb,
188  float z_minb,
189  float z_maxb, int param_option,
190  float pli, float plj, float plk, float distance,
191  float strx, float stry, float strz);
192  static coDoPolygons *dummy_polygons(const char *name,
193  float x_minb,
194  float x_maxb,
195  float y_minb,
196  float y_maxb,
197  float z_minb,
198  float z_maxb, int param_option,
199  float pli, float plj, float plk, float distance,
200  float strx, float stry, float strz);
201 
202  static coDoVec3 *dummy_normals(const char *nname,
203  float *coords_x, float *coords_y, float *coords_z, int,
204  float pla[3], float rad, float start[3]);
205 
206  Plane();
207 
208  Plane(int n_elem, int n_nodes, int Type, int *p_el, int *p_cl, int *p_tl,
209  float *p_x_in, float *p_y_in, float *p_z_in,
210  float *p_s_in, unsigned char *p_bs_in, float *p_i_in,
211  float *p_u_in, float *p_v_in, float *p_w_in,
212  const coDoStructuredGrid *p_sgrid_in,
213  const coDoUnstructuredGrid *p_grid_in,
214  float vertexRatio, int maxPoly,
215  float planei_, float planej_, float planek_, float startx_,
216  float starty_, float startz_, float myDistance_, float radius_,
217  int gennormals_, int option_, int genstrips_, char *ib);
218  virtual ~Plane();
219 
220  int cur_line_elem; // counter for line elements
221 
222  bool add_vertex(int n1, int n2);
223  void add_vertex(int n1, int n2, int x, int y, int z, int u, int v, int w);
224  virtual bool createPlane();
225  virtual void createStrips();
226 
227  virtual void createcoDistributedObjects(const char *Data_name_scal, const char *Data_name_vect,
228  const char *Normal_name, const char *Triangle_name,
229  AttributeContainer &gridAttrs, AttributeContainer &dataAttrs);
230 
231  void get_vector_data(int *numc, float **x, float **y, float **z,
232  float **u, float **v, float **w)
233  {
234  *numc = num_coords;
235  *x = coords_x;
236  *y = coords_y;
237  *z = coords_z;
238  *u = V_Data_U;
239  *v = V_Data_V;
240  *w = V_Data_W;
241  }
242 
243  void get_scalar_data(int *numc, float **x, float **y, float **z, float **s)
244  {
245  *numc = num_coords;
246  *s = S_Data;
247  *x = coords_x;
248  *y = coords_y;
249  *z = coords_z;
250  }
251 
253  {
254  return polygons_out;
255  }
257  {
258  return strips_out;
259  }
261  {
262  return normals_out;
263  }
265  {
266  return s_data_out;
267  }
269  {
270  return v_data_out;
271  }
272 };
273 
275 {
276 private:
277  /***************/
278  /* Output Data */
279  /***************/
280 
284  int *elem_out;
285  int *conn_out;
286  float *x_coord_out;
287  float *y_coord_out;
288  float *z_coord_out;
289  float *data_out_s;
290  float *data_out_u;
291  float *data_out_v;
292  float *data_out_w;
293 
294 public:
295  POLYHEDRON_Plane(int n_elem, int n_nodes, int Type,
296  int *p_el, int *p_cl, int *p_tl,
297  float *p_x_in, float *p_y_in, float *p_z_in,
298  float *p_s_in, unsigned char *p_bs_in, float *p_i_in,
299  float *p_u_in, float *p_v_in, float *p_w_in,
300  const coDoStructuredGrid *p_sgrid_in,
301  const coDoUnstructuredGrid *p_grid_in,
302  int maxPoly,
303  float planei_, float planej_, float planek_, float startx_,
304  float starty_, float startz_, float myDistance_,
305  float radius_, int gennormals_, int option_,
306  int genstrips_, char *ib);
307 
308  ~POLYHEDRON_Plane();
309 
310  virtual bool createPlane();
311 
312  virtual coDistributedObject *create_data_output(vector<float> &data_vector, const char *data_obj_name);
313 
314  virtual void createcoDistributedObjects(const char *Data_name_scal, const char *Data_name_vect,
315  const char *Normal_name, const char *Triangle_name,
316  AttributeContainer &gridAttrs, AttributeContainer &dataAttrs);
317  virtual void create_contour(float *x_coord_in, float *y_coord_in, float *z_coord_in, int *elem_in, int *conn_in, int num_coord_in, int num_elem_in, int num_conn_in,
318  float *sdata_in, float *udata_in, float *vdata_in, float *wdata_in, CONTOUR &capping_contour, PLANE_EDGE_INTERSECTION_VECTOR &intsec_vector, vector<float> &s_data, vector<float> &u_data_vector, vector<float> &v_data_vector, vector<float> &w_data_vector, EDGE_VECTOR &unit_normal_vector, EDGE_VECTOR &plane_base_x, EDGE_VECTOR &plane_base_y, float p);
319 };
320 
321 class ALGEXPORT STR_Plane : public Plane
322 {
323  friend class Isoline;
324 
325 public:
326  STR_Plane(int n_elem, int n_nodes, int Type,
327  int *p_el, int *p_cl, int *p_tl,
328  float *p_x_in, float *p_y_in, float *p_z_in,
329  float *p_s_in, unsigned char *p_bs_in, float *p_i_in,
330  float *p_u_in, float *p_v_in, float *p_w_in,
331  const coDoStructuredGrid *p_sgrid_in,
332  const coDoUnstructuredGrid *p_grid_in,
333  int p_x_size, int p_y_size, int p_z_size, int maxPoly,
334  float planei_, float planej_, float planek_, float startx_,
335  float starty_, float startz_, float myDistance_,
336  float radius_, int gennormals_, int option_,
337  int genstrips_, char *ib)
338  : Plane(n_elem, n_nodes, Type, p_el, p_cl, p_tl,
339  p_x_in, p_y_in, p_z_in, p_s_in, p_bs_in, p_i_in,
340  p_u_in, p_v_in, p_w_in, p_sgrid_in, p_grid_in,
341  -1.0, maxPoly,
342  planei_, planej_, planek_, startx_, starty_, startz_, myDistance_, radius_, gennormals_, option_, genstrips_, ib)
343  {
344  unstr_ = false;
345  x_size = p_x_size;
346  y_size = p_y_size;
347  z_size = p_z_size;
348  }
349  bool createPlane();
350 };
351 
352 class ALGEXPORT UNI_Plane : public Plane
353 {
354  friend class Isoline;
355 
356 public:
357  UNI_Plane(int n_elem, int n_nodes, int Type, int *el, int *cl,
358  int *tl, float *x_in, float *y_in, float *z_in, float *s_in, unsigned char *p_bs_in, float *i_in, float *u_in, float *v_in, float *w_in, const coDoUniformGrid *p_ugrid_in, float p_x_min, float p_x_max, float p_y_min, float p_y_max, float p_z_min, float p_z_max, int p_x_size, int p_y_size, int p_z_size, int maxPoly, char *ib);
359  //virtual bool createPlane();
360 };
361 }
362 #if 0
363 #if (!defined(CO_ia64icc) || (__GNUC__ < 4))
364 template class ALGEXPORT std::map< covise::border **,int>;
365 #endif
366 #endif
367 
368 namespace covise
369 {
370 class ALGEXPORT RECT_Plane : public Plane
371 {
372  friend class Isoline;
373 
374 private: // additions to optimize speed
375  float sradius; // square of radius
376 
377  int xsize, ysize, zsize;
378  int xdim, ydim, zdim;
379  float xmin, xmax, ymin, ymax, zmin, zmax;
380  float *xunit, *yunit, *zunit;
381  int xind_min, xind_max, xind_start, yind_min, yind_max, zind_min, zind_max, zind_start;
382 
383  std::map<border **, int> _SpaghettiAntidot;
384  border **sym_cutting_cubes; // addition for all symmetrical objects
385  border **cutting_cubes; // the cubes we really have to work on
386 
387  void necessary_cubes(int option);
388  inline bool is_between(float a, float b, float c);
389  // find index of a in array
390  int find(float a, char find_what, char mode, bool checkborders);
391 
392  float min_of_four(float a, float b, float c, float d, float cmin, float cmax);
393  float max_of_four(float a, float b, float c, float d, float cmin, float cmax);
394  float min_of_four(float a, float b, float c, float d);
395  float max_of_four(float a, float b, float c, float d);
396  float x_line_with_plane(float y, float z);
397  float y_line_with_plane(float x, float z);
398  float z_line_with_plane(float x, float y);
399  float xy_line_with_cylinder(float y);
400  float zx_line_with_cylinder(float x);
401  float zy_line_with_cylinder(float y);
402  float z_line_with_sphere(float x, float y);
403  inline void add_to_corner(int *, int *, int *, int *, int *, int *, int *, int *, int);
404  int Point_is_relevant(int i, int j, int k);
405 
406 public:
407  RECT_Plane(int n_elem, int n_nodes, int Type, int *el, int *cl, int *tl, float *x_in,
408  float *y_in, float *z_in, float *s_in, unsigned char *p_bs_in, float *i_in, float *u_in, float *v_in,
409  float *w_in, const coDistributedObject *p_rgrid_in, int p_x_size, int p_y_size, int p_z_size, int maxPoly,
410  float planei_, float planej_, float planek_, float startx_,
411  float starty_, float startz_, float myDistance_,
412  float radius_, int gennormals_, int option_,
413  int genstrips_, char *ib);
414  bool createPlane();
415 };
416 
417 #if 0
418 class ALGEXPORT CELL_Plane:public Plane
419 {
420  friend class Isoline;
421 
422  public:
423 
424  CELL_Plane(int n_elem, int n_nodes, int Type,int *p_el,int *p_cl,int *p_tl,float *p_x_in,float *p_y_in,float *p_z_in,float *p_s_in,unsigned char *p_bs_in,float *p_i_in,float *p_u_in,float *p_v_in,float *p_w_in,coDoCellGrid* p_cgrid_in,coDoUnstructuredGrid* p_grid_in,int maxPoly,
425  float planei_,float planej_,float planek_,float startx_,
426  float starty_,float startz_,float myDistance_,
427  float radius_,int gennormals_,int option_,
428  int genstrips_, char *ib);
429  bool createPlane();
430  void add_vertex(int n1,int n2);
431  void add_vertex(int n1,int n2, int x,int y,int z,int u,int v,int w);
432 };
433 #endif
434 
436 {
437 private:
438  float planei, planej, planek;
439  int option;
440  int num_iso;
441  float offset;
443  int num_elem;
448  int *vertex;
449  int *vl;
450  int *ll;
451  float *I_Data;
452  float *I_Data_p;
455  float *coords_x;
456  float *coords_y;
457  float *coords_z;
458  float *coord_x;
459  float *coord_y;
460  float *coord_z;
461  float **iso_coords_x;
462  float **iso_coords_y;
463  float **iso_coords_z;
464  int **iso_ll;
465  int **iso_vl;
471 
472 public:
473  Isoline(Plane *pl, int numiso, float offset_, int option_, float planei_, float planej_, float planek_)
474  : planei(planei_)
475  , planej(planej_)
476  , planek(planek_)
477  , option(option_)
478  , num_iso(numiso)
479  , offset(offset_)
480  , plane(pl)
481  {
482  neighborlist = new int[plane->num_triangles];
483  vertice_list = new int[plane->num_triangles * 2];
484  iso_coords_x = new float *[num_iso];
485  iso_coords_y = new float *[num_iso];
486  iso_coords_z = new float *[num_iso];
487  iso_ll = new int *[num_iso];
488  iso_vl = new int *[num_iso];
489  iso_numvert = new int[num_iso];
490  iso_numlines = new int[num_iso];
491  iso_numcoords = new int[num_iso];
492  num_isolines = 0;
493  }
495  {
496  delete[] neighborlist;
497  delete[] vertice_list;
498  delete[] iso_coords_x;
499  delete[] iso_coords_y;
500  delete[] iso_coords_z;
501  delete[] iso_ll;
502  delete[] iso_vl;
503  delete[] iso_numvert;
504  delete[] iso_numlines;
505  delete[] iso_numcoords;
506  }
507  void createcoDistributedObjects(const char *Line_name, coDistributedObject **Line_set,
508  int currNumber, AttributeContainer &idataattr);
509  void add_vertex(int n1, int n2);
510  void createIsoline(float Isovalue);
511  void sortIsoline();
512 };
513 }
514 #endif
struct covise::border_s border
int ** iso_vl
Definition: coCuttingSurface.h:465
float * S_Data_p
Definition: coCuttingSurface.h:139
int * vl
Definition: coCuttingSurface.h:449
float * data_out_u
Definition: coCuttingSurface.h:290
float * data_out_s
Definition: coCuttingSurface.h:289
int * elem_out
Definition: coCuttingSurface.h:284
float * V_Data_V_p
Definition: coCuttingSurface.h:137
int * ts_vertice_list
Definition: coCuttingSurface.h:117
int num_strips
Definition: coCuttingSurface.h:114
float * coord_y
Definition: coCuttingSurface.h:129
int num_triangles
Definition: coCuttingSurface.h:113
const coDoUnstructuredGrid * grid_in
Definition: coCuttingSurface.h:87
int option
Definition: coCuttingSurface.h:150
float ** iso_coords_z
Definition: coCuttingSurface.h:463
GLsizei GLsizei GLfloat distance
Definition: khronos-glext.h:13024
GLuint const GLchar * name
Definition: khronos-glext.h:6722
int * tl
Definition: coCuttingSurface.h:98
std::vector< PLANE_EDGE_INTERSECTION > PLANE_EDGE_INTERSECTION_VECTOR
Definition: CuttingSurfaceGPMUtil.h:51
float * s_in
Definition: coCuttingSurface.h:102
coDoFloat * get_obj_scalar()
Definition: coCuttingSurface.h:264
Definition: CuttingSurfaceGPMUtil.h:37
int num_lines
Definition: coCuttingSurface.h:444
STR_Plane(int n_elem, int n_nodes, int Type, int *p_el, int *p_cl, int *p_tl, float *p_x_in, float *p_y_in, float *p_z_in, float *p_s_in, unsigned char *p_bs_in, float *p_i_in, float *p_u_in, float *p_v_in, float *p_w_in, const coDoStructuredGrid *p_sgrid_in, const coDoUnstructuredGrid *p_grid_in, int p_x_size, int p_y_size, int p_z_size, int maxPoly, float planei_, float planej_, float planek_, float startx_, float starty_, float startz_, float myDistance_, float radius_, int gennormals_, int option_, int genstrips_, char *ib)
Definition: coCuttingSurface.h:326
float * z_in
Definition: coCuttingSurface.h:101
float * coords_y
Definition: coCuttingSurface.h:126
float * y_coord_out
Definition: coCuttingSurface.h:287
Definition: coCuttingSurface.h:274
const char ** attr_
Definition: coCuttingSurface.h:62
GLuint GLenum option
Definition: khronos-glext.h:12480
int num_coord_out
Definition: coCuttingSurface.h:283
GLint GLint GLint GLint GLint GLint y
Definition: khronos-glext.h:6346
float ** iso_coords_y
Definition: coCuttingSurface.h:462
float * V_Data_W_p
Definition: coCuttingSurface.h:138
Plane * plane
Definition: coCuttingSurface.h:470
coDoPolygons * polygons_out
Definition: coCuttingSurface.h:92
int num_iso
Definition: coCuttingSurface.h:440
struct covise::NodeInfo_s NodeInfo
GLboolean GLboolean GLboolean b
Definition: khronos-glext.h:6895
float * zunit
Definition: coCuttingSurface.h:380
int z_size
Definition: coCuttingSurface.h:142
int num_elem
Definition: coCuttingSurface.h:443
int num_conn_out
Definition: coCuttingSurface.h:282
int * iso_numlines
Definition: coCuttingSurface.h:467
int num_elem
Definition: coCuttingSurface.h:109
int lower
Definition: coCuttingSurface.h:54
int cur_line_elem
Definition: coCuttingSurface.h:220
coDoPolygons * get_obj_pol()
Definition: coCuttingSurface.h:252
const char ** setting_
Definition: coCuttingSurface.h:63
int * ts_line_list
Definition: coCuttingSurface.h:118
const coDoStructuredGrid * sgrid_in
Definition: coCuttingSurface.h:88
GLdouble s
Definition: khronos-glext.h:6441
float * data_out_w
Definition: coCuttingSurface.h:292
border ** sym_cutting_cubes
Definition: coCuttingSurface.h:384
GLclampd zmax
Definition: khronos-glext.h:11392
~Isoline()
Definition: coCuttingSurface.h:494
Definition: coCuttingSurface.h:370
float * coord_z
Definition: coCuttingSurface.h:130
int option
Definition: coCuttingSurface.h:439
Definition: coDoUnstructuredGrid.h:60
int num_coords
Definition: coCuttingSurface.h:121
float * coord_z
Definition: coCuttingSurface.h:460
friend class Isoline
Definition: coCuttingSurface.h:372
const coDoRectilinearGrid * rgrid_in
Definition: coCuttingSurface.h:90
int Datatype
Definition: coCuttingSurface.h:144
Definition: coDoRectilinearGrid.h:53
GLdouble GLdouble z
Definition: khronos-glext.h:6565
float z_min
Definition: coCuttingSurface.h:141
float * coord_x
Definition: coCuttingSurface.h:128
float ** iso_coords_x
Definition: coCuttingSurface.h:461
float * I_Data_p
Definition: coCuttingSurface.h:452
int num_elem_out
Definition: coCuttingSurface.h:281
float * I_Data_p
Definition: coCuttingSurface.h:140
coDoVec3 * get_obj_vector()
Definition: coCuttingSurface.h:268
int num_cells
Definition: coCuttingSurface.h:111
Definition: coCuttingSurface.h:57
int * ll
Definition: coCuttingSurface.h:450
float * V_Data_W
Definition: coCuttingSurface.h:133
border ** cutting_cubes
Definition: coCuttingSurface.h:385
float * x_coord_out
Definition: coCuttingSurface.h:286
Definition: coCuttingSurface.h:435
int zsize
Definition: coCuttingSurface.h:377
float * I_Data
Definition: coCuttingSurface.h:135
#define ALGEXPORT
Definition: coExport.h:313
coDoTriangleStrips * get_obj_strips()
Definition: coCuttingSurface.h:256
float * u_in
Definition: coCuttingSurface.h:105
GLint GLint GLint GLint GLint x
Definition: khronos-glext.h:6346
Definition: coCuttingSurface.h:51
float zmin
Definition: coCuttingSurface.h:379
float * x_in
Definition: coCuttingSurface.h:99
GLenum mode
Definition: khronos-glext.h:6908
int targets[12]
Definition: coCuttingSurface.h:41
float * S_Data
Definition: coCuttingSurface.h:134
int node_pairs[12]
Definition: coCuttingSurface.h:47
std::map< border **, int > _SpaghettiAntidot
Definition: coCuttingSurface.h:383
coDoVec3 * get_obj_normal()
Definition: coCuttingSurface.h:260
Definition: coCuttingSurface.h:352
coDoVec3 * v_data_out
Definition: coCuttingSurface.h:96
bool unstr_
Definition: coCuttingSurface.h:82
const GLdouble * v
Definition: khronos-glext.h:6442
float * y_in
Definition: coCuttingSurface.h:100
int ** iso_ll
Definition: coCuttingSurface.h:464
const GLubyte * c
Definition: khronos-glext.h:9864
Definition: coDoUniformGrid.h:53
unsigned char * bs_in
Definition: coCuttingSurface.h:103
GLfloat GLfloat p
Definition: khronos-glext.h:9861
float z_minb
Definition: coCuttingSurface.h:153
GLboolean GLboolean GLboolean GLboolean a
Definition: khronos-glext.h:6895
coDoVec3 * normals_out
Definition: coCuttingSurface.h:94
Definition: coDoData.h:367
coDoFloat * s_data_out
Definition: coCuttingSurface.h:95
int * vertex
Definition: coCuttingSurface.h:119
int side
Definition: coCuttingSurface.h:40
float planek
Definition: coCuttingSurface.h:438
int * vertice_list
Definition: coCuttingSurface.h:116
float * coords_z
Definition: coCuttingSurface.h:127
GLubyte GLubyte GLubyte GLubyte w
Definition: khronos-glext.h:6793
int num_isolines
Definition: coCuttingSurface.h:445
GLuint start
Definition: khronos-glext.h:6343
float * i_in
Definition: coCuttingSurface.h:104
int num_coords
Definition: coCuttingSurface.h:453
float * z_coord_out
Definition: coCuttingSurface.h:288
int * conn_out
Definition: coCuttingSurface.h:285
const coDistributedObject * p_obj_
Definition: coCuttingSurface.h:60
int zdim
Definition: coCuttingSurface.h:378
int nvert
Definition: coCuttingSurface.h:48
Definition: coCuttingSurface.h:321
float dist
Definition: coCuttingSurface.h:39
Definition: coDoStructuredGrid.h:53
float * V_Data_U_p
Definition: coCuttingSurface.h:136
void get_scalar_data(int *numc, float **x, float **y, float **z, float **s)
Definition: coCuttingSurface.h:243
int num_faces
Definition: coCuttingSurface.h:110
char * iblank
Definition: coCuttingSurface.h:151
float * I_Data
Definition: coCuttingSurface.h:451
float sradius
Definition: coCuttingSurface.h:375
float * V_Data_V
Definition: coCuttingSurface.h:132
NodeInfo * node_table
Definition: coCuttingSurface.h:143
Definition: coCuttingSurface.h:37
int upper
Definition: coCuttingSurface.h:53
GLfloat angle
Definition: khronos-glext.h:12122
Definition: coCuttingSurface.h:72
int num_vertices
Definition: coCuttingSurface.h:115
Definition: coDoData.h:84
float * coords_x
Definition: coCuttingSurface.h:125
void get_vector_data(int *numc, float **x, float **y, float **z, float **u, float **v, float **w)
Definition: coCuttingSurface.h:231
float * V_Data_U
Definition: coCuttingSurface.h:131
int * vertice_list
Definition: coCuttingSurface.h:447
Definition: coDistributedObject.h:295
int num_nodes
Definition: coCuttingSurface.h:442
int no_attrs_
Definition: coCuttingSurface.h:61
int num_edges
Definition: coCuttingSurface.h:112
int * iso_numvert
Definition: coCuttingSurface.h:466
Definition: coCuttingSurface.h:45
int maxPolyPerVertex
Definition: coCuttingSurface.h:123
float * coord_y
Definition: coCuttingSurface.h:459
const coDoUniformGrid * ugrid_in
Definition: coCuttingSurface.h:89
coDoTriangleStrips * strips_out
Definition: coCuttingSurface.h:93
float * data_out_v
Definition: coCuttingSurface.h:291
float * coords_x
Definition: coCuttingSurface.h:455
int num_nodes
Definition: coCuttingSurface.h:108
int * vertex
Definition: coCuttingSurface.h:448
float * v_in
Definition: coCuttingSurface.h:106
int max_coords
Definition: coCuttingSurface.h:122
float * w_in
Definition: coCuttingSurface.h:107
float planek
Definition: coCuttingSurface.h:146
Definition: coDoTriangleStrips.h:47
Definition: CuttingSurfaceGPMUtil.h:19
float radius
Definition: coCuttingSurface.h:149
int vertice_list[12]
Definition: coCuttingSurface.h:42
Definition: coDoPolygons.h:50
int * iso_numcoords
Definition: coCuttingSurface.h:468
float * coords_y
Definition: coCuttingSurface.h:456
int * neighborlist
Definition: coCuttingSurface.h:454
int zind_start
Definition: coCuttingSurface.h:381
struct covise::cutting_info_s cutting_info
float startz
Definition: coCuttingSurface.h:147
int num_vertice
Definition: coCuttingSurface.h:446
float * coord_x
Definition: coCuttingSurface.h:458
float offset
Definition: coCuttingSurface.h:441
Isoline(Plane *pl, int numiso, float offset_, int option_, float planei_, float planej_, float planek_)
Definition: coCuttingSurface.h:473
float * coords_z
Definition: coCuttingSurface.h:457
NodeInfo * node
Definition: coCuttingSurface.h:469
float myDistance
Definition: coCuttingSurface.h:148