1 /*---------------------------------------------------------------------------*\
5 * Copyright (C) 2003 by the OpenSG Forum *
9 * contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de *
11 \*---------------------------------------------------------------------------*/
12 /*---------------------------------------------------------------------------*\
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. *
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. *
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. *
28 \*---------------------------------------------------------------------------*/
29 /*---------------------------------------------------------------------------*\
37 \*---------------------------------------------------------------------------*/
39 #ifndef _OSGVECMFIELDS_H_
40 #define _OSGVECMFIELDS_H_
45 #include "OSGMField.h"
46 #include "OSGVecFieldTraits.h"
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
;
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
> {};
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
> {};
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
> {};
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
> {};
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
> {};
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
> {};
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
> {};
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
> {};
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
548 #endif /* _OSGVECMFIELDS_H_ */