changed: auto add updateData callback to stages so that stagedata can be updated...
[opensg.git] / Source / Base / Field / OSGVecMFields.h
blob7ba1e16040d3f1ab75bafb8cfe5680a40ea780fd
1 /*---------------------------------------------------------------------------*\
2 * OpenSG *
3 * *
4 * *
5 * Copyright (C) 2003 by the OpenSG Forum *
6 * *
7 * www.opensg.org *
8 * *
9 * contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de *
10 * *
11 \*---------------------------------------------------------------------------*/
12 /*---------------------------------------------------------------------------*\
13 * License *
14 * *
15 * This library is free software; you can redistribute it and/or modify it *
16 * under the terms of the GNU Library General Public License as published *
17 * by the Free Software Foundation, version 2. *
18 * *
19 * This library is distributed in the hope that it will be useful, but *
20 * WITHOUT ANY WARRANTY; without even the implied warranty of *
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
22 * Library General Public License for more details. *
23 * *
24 * You should have received a copy of the GNU Library General Public *
25 * License along with this library; if not, write to the Free Software *
26 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
27 * *
28 \*---------------------------------------------------------------------------*/
29 /*---------------------------------------------------------------------------*\
30 * Changes *
31 * *
32 * *
33 * *
34 * *
35 * *
36 * *
37 \*---------------------------------------------------------------------------*/
39 #ifndef _OSGVECMFIELDS_H_
40 #define _OSGVECMFIELDS_H_
41 #ifdef __sgi
42 #pragma once
43 #endif
45 #include "OSGMField.h"
46 #include "OSGVecFieldTraits.h"
48 OSG_BEGIN_NAMESPACE
50 #ifndef DOXYGEN_SHOULD_SKIP_THIS
52 /*! \ingroup GrpBaseFieldMulti */
53 typedef MField<Vec1ub> MFVec1ub;
56 #ifndef OSG_NO_INT8_PNT
57 /*! \ingroup GrpBaseFieldMulti */
58 typedef MField<Vec1b> MFVec1b;
59 #endif
62 /*! \ingroup GrpBaseFieldMulti */
63 typedef MField<Vec1us> MFVec1us;
66 /*! \ingroup GrpBaseFieldMulti */
67 typedef MField<Vec1s> MFVec1s;
70 /*! \ingroup GrpBaseFieldMulti */
71 typedef MField<Vec1u> MFVec1u;
74 /*! \ingroup GrpBaseFieldMulti */
75 typedef MField<Vec1i> MFVec1i;
78 /*! \ingroup GrpBaseFieldMulti */
79 typedef MField<Vec1f> MFVec1f;
82 /*! \ingroup GrpBaseFieldMulti */
83 typedef MField<Vec1fx> MFVec1fx;
86 /*! \ingroup GrpBaseFieldMulti */
87 typedef MField<Vec1d> MFVec1d;
90 /*! \ingroup GrpBaseFieldMulti */
91 typedef MField<Vec1ld> MFVec1ld;
96 /*! \ingroup GrpBaseFieldMulti */
97 typedef MField<Vec2ub> MFVec2ub;
100 #ifndef OSG_NO_INT8_PNT
101 /*! \ingroup GrpBaseFieldMulti */
102 typedef MField<Vec2b> MFVec2b;
103 #endif
106 /*! \ingroup GrpBaseFieldMulti */
107 typedef MField<Vec2us> MFVec2us;
110 /*! \ingroup GrpBaseFieldMulti */
111 typedef MField<Vec2s> MFVec2s;
114 /*! \ingroup GrpBaseFieldMulti */
115 typedef MField<Vec2u> MFVec2u;
118 /*! \ingroup GrpBaseFieldMulti */
119 typedef MField<Vec2i> MFVec2i;
122 /*! \ingroup GrpBaseFieldMulti */
123 typedef MField<Vec2f> MFVec2f;
126 /*! \ingroup GrpBaseFieldMulti */
127 typedef MField<Vec2fx> MFVec2fx;
130 /*! \ingroup GrpBaseFieldMulti */
131 typedef MField<Vec2d> MFVec2d;
134 /*! \ingroup GrpBaseFieldMulti */
135 typedef MField<Vec2ld> MFVec2ld;
140 /*! \ingroup GrpBaseFieldMulti */
141 typedef MField<Vec3ub> MFVec3ub;
144 #ifndef OSG_NO_INT8_PNT
145 /*! \ingroup GrpBaseFieldMulti */
146 typedef MField<Vec3b> MFVec3b;
147 #endif
150 /*! \ingroup GrpBaseFieldMulti */
151 typedef MField<Vec3us> MFVec3us;
154 /*! \ingroup GrpBaseFieldMulti */
155 typedef MField<Vec3s> MFVec3s;
158 /*! \ingroup GrpBaseFieldMulti */
159 typedef MField<Vec3u> MFVec3u;
162 /*! \ingroup GrpBaseFieldMulti */
163 typedef MField<Vec3i> MFVec3i;
166 /*! \ingroup GrpBaseFieldMulti */
167 typedef MField<Vec3f> MFVec3f;
170 /*! \ingroup GrpBaseFieldMulti */
171 typedef MField<Vec3fx> MFVec3fx;
174 /*! \ingroup GrpBaseFieldMulti */
175 typedef MField<Vec3d> MFVec3d;
178 /*! \ingroup GrpBaseFieldMulti */
179 typedef MField<Vec3ld> MFVec3ld;
185 /*! \ingroup GrpBaseFieldMulti */
186 typedef MField<Vec4ub> MFVec4ub;
189 #ifndef OSG_NO_INT8_PNT
190 /*! \ingroup GrpBaseFieldMulti */
191 typedef MField<Vec4b> MFVec4b;
192 #endif
195 /*! \ingroup GrpBaseFieldMulti */
196 typedef MField<Vec4us> MFVec4us;
199 /*! \ingroup GrpBaseFieldMulti */
200 typedef MField<Vec4s> MFVec4s;
203 /*! \ingroup GrpBaseFieldMulti */
204 typedef MField<Vec4u> MFVec4u;
207 /*! \ingroup GrpBaseFieldMulti */
208 typedef MField<Vec4i> MFVec4i;
211 /*! \ingroup GrpBaseFieldMulti */
212 typedef MField<Vec4f> MFVec4f;
215 /*! \ingroup GrpBaseFieldMulti */
216 typedef MField<Vec4fx> MFVec4fx;
219 /*! \ingroup GrpBaseFieldMulti */
220 typedef MField<Vec4d> MFVec4d;
223 /*! \ingroup GrpBaseFieldMulti */
224 typedef MField<Vec4ld> MFVec4ld;
229 /*! \ingroup GrpBaseFieldMulti */
230 typedef MField<Pnt1ub> MFPnt1ub;
233 #ifndef OSG_NO_INT8_PNT
234 /*! \ingroup GrpBaseFieldMulti */
235 typedef MField<Pnt1b> MFPnt1b;
236 #endif
239 /*! \ingroup GrpBaseFieldMulti */
240 typedef MField<Pnt1us> MFPnt1us;
243 /*! \ingroup GrpBaseFieldMulti */
244 typedef MField<Pnt1s> MFPnt1s;
247 /*! \ingroup GrpBaseFieldMulti */
248 typedef MField<Pnt1f> MFPnt1f;
251 /*! \ingroup GrpBaseFieldMulti */
252 typedef MField<Pnt1fx> MFPnt1fx;
255 /*! \ingroup GrpBaseFieldMulti */
256 typedef MField<Pnt1d> MFPnt1d;
259 /*! \ingroup GrpBaseFieldMulti */
260 typedef MField<Pnt1ld> MFPnt1ld;
266 /*! \ingroup GrpBaseFieldMulti */
267 typedef MField<Pnt2ub> MFPnt2ub;
270 #ifndef OSG_NO_INT8_PNT
271 /*! \ingroup GrpBaseFieldMulti */
272 typedef MField<Pnt2b> MFPnt2b;
273 #endif
276 /*! \ingroup GrpBaseFieldMulti */
277 typedef MField<Pnt2us> MFPnt2us;
280 /*! \ingroup GrpBaseFieldMulti */
281 typedef MField<Pnt2s> MFPnt2s;
284 /*! \ingroup GrpBaseFieldMulti */
285 typedef MField<Pnt2f> MFPnt2f;
288 /*! \ingroup GrpBaseFieldMulti */
289 typedef MField<Pnt2fx> MFPnt2fx;
292 /*! \ingroup GrpBaseFieldMulti */
293 typedef MField<Pnt2d> MFPnt2d;
296 /*! \ingroup GrpBaseFieldMulti */
297 typedef MField<Pnt2ld> MFPnt2ld;
303 /*! \ingroup GrpBaseFieldMulti */
304 typedef MField<Pnt3ub> MFPnt3ub;
307 #ifndef OSG_NO_INT8_PNT
308 /*! \ingroup GrpBaseFieldMulti */
309 typedef MField<Pnt3b> MFPnt3b;
310 #endif
313 /*! \ingroup GrpBaseFieldMulti */
314 typedef MField<Pnt3us> MFPnt3us;
317 /*! \ingroup GrpBaseFieldMulti */
318 typedef MField<Pnt3s> MFPnt3s;
321 /*! \ingroup GrpBaseFieldMulti */
322 typedef MField<Pnt3f> MFPnt3f;
325 /*! \ingroup GrpBaseFieldMulti */
326 typedef MField<Pnt3fx> MFPnt3fx;
329 /*! \ingroup GrpBaseFieldMulti */
330 typedef MField<Pnt3d> MFPnt3d;
333 /*! \ingroup GrpBaseFieldMulti */
334 typedef MField<Pnt3ld> MFPnt3ld;
340 /*! \ingroup GrpBaseFieldMulti */
341 typedef MField<Pnt4ub> MFPnt4ub;
344 #ifndef OSG_NO_INT8_PNT
345 /*! \ingroup GrpBaseFieldMulti */
346 typedef MField<Pnt4b> MFPnt4b;
347 #endif
350 /*! \ingroup GrpBaseFieldMulti */
351 typedef MField<Pnt4us> MFPnt4us;
354 /*! \ingroup GrpBaseFieldMulti */
355 typedef MField<Pnt4s> MFPnt4s;
358 /*! \ingroup GrpBaseFieldMulti */
359 typedef MField<Pnt4f> MFPnt4f;
362 /*! \ingroup GrpBaseFieldMulti */
363 typedef MField<Pnt4fx> MFPnt4fx;
366 /*! \ingroup GrpBaseFieldMulti */
367 typedef MField<Pnt4d> MFPnt4d;
370 /*! \ingroup GrpBaseFieldMulti */
371 typedef MField<Pnt4ld> MFPnt4ld;
373 #else // these are the doxygen hacks
375 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
376 struct MFVec1ub : public MField<Vec1ub> {};
377 #ifndef OSG_NO_INT8_PNT
378 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
379 struct MFVec1b : public MField<Vec1b> {};
380 #endif
381 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
382 struct MFVec1us : public MField<Vec1us> {};
383 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
384 struct MFVec1s : public MField<Vec1s> {};
385 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
386 struct MFVec1u : public MField<Vec1u> {};
387 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
388 struct MFVec1i : public MField<Vec1i> {};
389 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
390 struct MFVec1f : public MField<Vec1f> {};
391 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
392 struct MFVec1fx : public MField<Vec1fx> {};
393 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
394 struct MFVec1d : public MField<Vec1d> {};
395 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
396 struct MFVec1ld : public MField<Vec1ld> {};
398 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
399 struct MFVec2ub : public MField<Vec2ub> {};
400 #ifndef OSG_NO_INT8_PNT
401 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
402 struct MFVec2b : public MField<Vec2b> {};
403 #endif
404 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
405 struct MFVec2us : public MField<Vec2us> {};
406 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
407 struct MFVec2s : public MField<Vec2s> {};
408 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
409 struct MFVec2u : public MField<Vec2u> {};
410 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
411 struct MFVec2i : public MField<Vec2i> {};
412 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
413 struct MFVec2f : public MField<Vec2f> {};
414 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
415 struct MFVec2fx : public MField<Vec2fx> {};
416 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
417 struct MFVec2d : public MField<Vec2d> {};
418 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
419 struct MFVec2ld : public MField<Vec2ld> {};
421 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
422 struct MFVec3ub : public MField<Vec3ub> {};
423 #ifndef OSG_NO_INT8_PNT
424 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
425 struct MFVec3b : public MField<Vec3b> {};
426 #endif
427 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
428 struct MFVec3us : public MField<Vec3us> {};
429 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
430 struct MFVec3s : public MField<Vec3s> {};
431 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
432 struct MFVec3u : public MField<Vec3u> {};
433 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
434 struct MFVec3i : public MField<Vec3i> {};
435 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
436 struct MFVec3f : public MField<Vec3f> {};
437 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
438 struct MFVec3fx : public MField<Vec3fx> {};
439 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
440 struct MFVec3d : public MField<Vec3d> {};
441 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
442 struct MFVec3ld : public MField<Vec3ld> {};
444 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
445 struct MFVec4ub : public MField<Vec4ub> {};
446 #ifndef OSG_NO_INT8_PNT
447 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
448 struct MFVec4b : public MField<Vec4b> {};
449 #endif
450 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
451 struct MFVec4us : public MField<Vec4us> {};
452 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
453 struct MFVec4s : public MField<Vec4s> {};
454 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
455 struct MFVec4u : public MField<Vec4u> {};
456 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
457 struct MFVec4i : public MField<Vec4i> {};
458 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
459 struct MFVec4f : public MField<Vec4f> {};
460 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
461 struct MFVec4fx : public MField<Vec4fx> {};
462 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
463 struct MFVec4d : public MField<Vec4d> {};
464 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
465 struct MFVec4ld : public MField<Vec4ld> {};
468 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
469 struct MFPnt1ub : public MField<Pnt1ub> {};
470 #ifndef OSG_NO_INT8_PNT
471 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
472 struct MFPnt1b : public MField<Pnt1b> {};
473 #endif
474 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
475 struct MFPnt1us : public MField<Pnt1us> {};
476 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
477 struct MFPnt1s : public MField<Pnt1s> {};
478 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
479 struct MFPnt1f : public MField<Pnt1f> {};
480 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
481 struct MFPnt1fx : public MField<Pnt1fx> {};
482 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
483 struct MFPnt1d : public MField<Pnt1d> {};
484 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
485 struct MFPnt1ld : public MField<Pnt1ld> {};
487 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
488 struct MFPnt2ub : public MField<Pnt2ub> {};
489 #ifndef OSG_NO_INT8_PNT
490 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
491 struct MFPnt2b : public MField<Pnt2b> {};
492 #endif
493 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
494 struct MFPnt2us : public MField<Pnt2us> {};
495 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
496 struct MFPnt2s : public MField<Pnt2s> {};
497 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
498 struct MFPnt2f : public MField<Pnt2f> {};
499 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
500 struct MFPnt2fx : public MField<Pnt2fx> {};
501 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
502 struct MFPnt2d : public MField<Pnt2d> {};
503 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
504 struct MFPnt2ld : public MField<Pnt2ld> {};
506 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
507 struct MFPnt3ub : public MField<Pnt3ub> {};
508 #ifndef OSG_NO_INT8_PNT
509 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
510 struct MFPnt3b : public MField<Pnt3b> {};
511 #endif
512 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
513 struct MFPnt3us : public MField<Pnt3us> {};
514 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
515 struct MFPnt3s : public MField<Pnt3s> {};
516 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
517 struct MFPnt3f : public MField<Pnt3f> {};
518 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
519 struct MFPnt3fx : public MField<Pnt3fx> {};
520 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
521 struct MFPnt3d : public MField<Pnt3d> {};
522 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
523 struct MFPnt3ld : public MField<Pnt3ld> {};
525 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
526 struct MFPnt4ub : public MField<Pnt4ub> {};
527 #ifndef OSG_NO_INT8_PNT
528 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
529 struct MFPnt4b : public MField<Pnt4b> {};
530 #endif
531 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
532 struct MFPnt4us : public MField<Pnt4us> {};
533 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
534 struct MFPnt4s : public MField<Pnt4s> {};
535 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
536 struct MFPnt4f : public MField<Pnt4f> {};
537 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
538 struct MFPnt4fx : public MField<Pnt4fx> {};
539 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
540 struct MFPnt4d : public MField<Pnt4d> {};
541 /*! \ingroup GrpBaseFieldMulti \ingroup GrpLibOSGBase */
542 struct MFPnt4ld : public MField<Pnt4ld> {};
544 #endif // these are the doxygen hacks
546 OSG_END_NAMESPACE
548 #endif /* _OSGVECMFIELDS_H_ */