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 _OSGVECSFIELDS_H_
40 #define _OSGVECSFIELDS_H_
45 #include "OSGSField.h"
46 #include "OSGVecFieldTraits.h"
50 #ifndef DOXYGEN_SHOULD_SKIP_THIS
52 /*! \ingroup GrpBaseFieldSingle */
53 typedef SField
<Vec2ub
> SFVec2ub
;
56 #ifndef OSG_NO_INT8_PNT
57 /*! \ingroup GrpBaseFieldSingle */
58 typedef SField
<Vec2b
> SFVec2b
;
62 /*! \ingroup GrpBaseFieldSingle */
63 typedef SField
<Vec2us
> SFVec2us
;
66 /*! \ingroup GrpBaseFieldSingle */
67 typedef SField
<Vec2s
> SFVec2s
;
70 /*! \ingroup GrpBaseFieldSingle */
71 typedef SField
<Vec2u
> SFVec2u
;
74 /*! \ingroup GrpBaseFieldSingle */
75 typedef SField
<Vec2i
> SFVec2i
;
78 /*! \ingroup GrpBaseFieldSingle */
79 typedef SField
<Vec2f
> SFVec2f
;
82 /*! \ingroup GrpBaseFieldSingle */
83 typedef SField
<Vec2fx
> SFVec2fx
;
86 /*! \ingroup GrpBaseFieldSingle */
87 typedef SField
<Vec2d
> SFVec2d
;
90 /*! \ingroup GrpBaseFieldSingle */
91 typedef SField
<Vec2ld
> SFVec2ld
;
97 /*! \ingroup GrpBaseFieldSingle */
98 typedef SField
<Vec3ub
> SFVec3ub
;
101 #ifndef OSG_NO_INT8_PNT
102 /*! \ingroup GrpBaseFieldSingle */
103 typedef SField
<Vec3b
> SFVec3b
;
107 /*! \ingroup GrpBaseFieldSingle */
108 typedef SField
<Vec3us
> SFVec3us
;
111 /*! \ingroup GrpBaseFieldSingle */
112 typedef SField
<Vec3s
> SFVec3s
;
115 /*! \ingroup GrpBaseFieldSingle */
116 typedef SField
<Vec3u
> SFVec3u
;
119 /*! \ingroup GrpBaseFieldSingle */
120 typedef SField
<Vec3i
> SFVec3i
;
123 /*! \ingroup GrpBaseFieldSingle */
124 typedef SField
<Vec3f
> SFVec3f
;
127 /*! \ingroup GrpBaseFieldSingle */
128 typedef SField
<Vec3fx
> SFVec3fx
;
131 /*! \ingroup GrpBaseFieldSingle */
132 typedef SField
<Vec3d
> SFVec3d
;
135 /*! \ingroup GrpBaseFieldSingle */
136 typedef SField
<Vec3ld
> SFVec3ld
;
142 /*! \ingroup GrpBaseFieldSingle */
143 typedef SField
<Vec4ub
> SFVec4ub
;
146 #ifndef OSG_NO_INT8_PNT
147 /*! \ingroup GrpBaseFieldSingle */
148 typedef SField
<Vec4b
> SFVec4b
;
152 /*! \ingroup GrpBaseFieldSingle */
153 typedef SField
<Vec4us
> SFVec4us
;
156 /*! \ingroup GrpBaseFieldSingle */
157 typedef SField
<Vec4s
> SFVec4s
;
160 /*! \ingroup GrpBaseFieldSingle */
161 typedef SField
<Vec4u
> SFVec4u
;
164 /*! \ingroup GrpBaseFieldSingle */
165 typedef SField
<Vec4i
> SFVec4i
;
168 /*! \ingroup GrpBaseFieldSingle */
169 typedef SField
<Vec4f
> SFVec4f
;
172 /*! \ingroup GrpBaseFieldSingle */
173 typedef SField
<Vec4fx
> SFVec4fx
;
176 /*! \ingroup GrpBaseFieldSingle */
177 typedef SField
<Vec4d
> SFVec4d
;
180 /*! \ingroup GrpBaseFieldSingle */
181 typedef SField
<Vec4ld
> SFVec4ld
;
186 /*! \ingroup GrpBaseFieldSingle */
187 typedef SField
<Pnt2ub
> SFPnt2ub
;
190 #ifndef OSG_NO_INT8_PNT
191 /*! \ingroup GrpBaseFieldSingle */
192 typedef SField
<Pnt2b
> SFPnt2b
;
196 /*! \ingroup GrpBaseFieldSingle */
197 typedef SField
<Pnt2us
> SFPnt2us
;
200 /*! \ingroup GrpBaseFieldSingle */
201 typedef SField
<Pnt2s
> SFPnt2s
;
204 /*! \ingroup GrpBaseFieldSingle */
205 typedef SField
<Pnt2f
> SFPnt2f
;
208 /*! \ingroup GrpBaseFieldSingle */
209 typedef SField
<Pnt2fx
> SFPnt2fx
;
212 /*! \ingroup GrpBaseFieldSingle */
213 typedef SField
<Pnt2d
> SFPnt2d
;
216 /*! \ingroup GrpBaseFieldSingle */
217 typedef SField
<Pnt2ld
> SFPnt2ld
;
223 /*! \ingroup GrpBaseFieldSingle */
224 typedef SField
<Pnt3ub
> SFPnt3ub
;
227 #ifndef OSG_NO_INT8_PNT
228 /*! \ingroup GrpBaseFieldSingle */
229 typedef SField
<Pnt3b
> SFPnt3b
;
233 /*! \ingroup GrpBaseFieldSingle */
234 typedef SField
<Pnt3us
> SFPnt3us
;
237 /*! \ingroup GrpBaseFieldSingle */
238 typedef SField
<Pnt3s
> SFPnt3s
;
241 /*! \ingroup GrpBaseFieldSingle */
242 typedef SField
<Pnt3f
> SFPnt3f
;
245 /*! \ingroup GrpBaseFieldSingle */
246 typedef SField
<Pnt3fx
> SFPnt3fx
;
249 /*! \ingroup GrpBaseFieldSingle */
250 typedef SField
<Pnt3d
> SFPnt3d
;
253 /*! \ingroup GrpBaseFieldSingle */
254 typedef SField
<Pnt3ld
> SFPnt3ld
;
260 /*! \ingroup GrpBaseFieldSingle */
261 typedef SField
<Pnt4ub
> SFPnt4ub
;
264 #ifndef OSG_NO_INT8_PNT
265 /*! \ingroup GrpBaseFieldSingle */
266 typedef SField
<Pnt4b
> SFPnt4b
;
270 /*! \ingroup GrpBaseFieldSingle */
271 typedef SField
<Pnt4us
> SFPnt4us
;
274 /*! \ingroup GrpBaseFieldSingle */
275 typedef SField
<Pnt4s
> SFPnt4s
;
278 /*! \ingroup GrpBaseFieldSingle */
279 typedef SField
<Pnt4f
> SFPnt4f
;
282 /*! \ingroup GrpBaseFieldSingle */
283 typedef SField
<Pnt4fx
> SFPnt4fx
;
286 /*! \ingroup GrpBaseFieldSingle */
287 typedef SField
<Pnt4d
> SFPnt4d
;
290 /*! \ingroup GrpBaseFieldSingle */
291 typedef SField
<Pnt4ld
> SFPnt4ld
;
293 #else // these are the doxygen hacks
295 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
296 struct SFVec2ub
: public SField
<Vec2ub
> {};
297 #ifndef OSG_NO_INT8_PNT
298 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
299 struct SFVec2b
: public SField
<Vec2b
> {};
301 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
302 struct SFVec2us
: public SField
<Vec2us
> {};
303 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
304 struct SFVec2s
: public SField
<Vec2s
> {};
305 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
306 struct SFVec2u
: public SField
<Vec2u
> {};
307 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
308 struct SFVec2i
: public SField
<Vec2i
> {};
309 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
310 struct SFVec2f
: public SField
<Vec2f
> {};
311 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
312 struct SFVec2fx
: public SField
<Vec2fx
> {};
313 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
314 struct SFVec2d
: public SField
<Vec2d
> {};
315 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
316 struct SFVec2ld
: public SField
<Vec2ld
> {};
318 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
319 struct SFVec3ub
: public SField
<Vec3ub
> {};
320 #ifndef OSG_NO_INT8_PNT
321 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
322 struct SFVec3b
: public SField
<Vec3b
> {};
324 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
325 struct SFVec3us
: public SField
<Vec3us
> {};
326 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
327 struct SFVec3s
: public SField
<Vec3s
> {};
328 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
329 struct SFVec3u
: public SField
<Vec3u
> {};
330 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
331 struct SFVec3i
: public SField
<Vec3i
> {};
332 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
333 struct SFVec3f
: public SField
<Vec3f
> {};
334 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
335 struct SFVec3fx
: public SField
<Vec3fx
> {};
336 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
337 struct SFVec3d
: public SField
<Vec3d
> {};
338 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
339 struct SFVec3ld
: public SField
<Vec3ld
> {};
341 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
342 struct SFVec4ub
: public SField
<Vec4ub
> {};
343 #ifndef OSG_NO_INT8_PNT
344 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
345 struct SFVec4b
: public SField
<Vec4b
> {};
347 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
348 struct SFVec4us
: public SField
<Vec4us
> {};
349 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
350 struct SFVec4s
: public SField
<Vec4s
> {};
351 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
352 struct SFVec4u
: public SField
<Vec4u
> {};
353 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
354 struct SFVec4i
: public SField
<Vec4i
> {};
355 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
356 struct SFVec4f
: public SField
<Vec4f
> {};
357 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
358 struct SFVec4fx
: public SField
<Vec4fx
> {};
359 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
360 struct SFVec4d
: public SField
<Vec4d
> {};
361 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
362 struct SFVec4ld
: public SField
<Vec4ld
> {};
365 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
366 struct SFPnt2ub
: public SField
<Pnt2ub
> {};
367 #ifndef OSG_NO_INT8_PNT
368 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
369 struct SFPnt2b
: public SField
<Pnt2b
> {};
371 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
372 struct SFPnt2us
: public SField
<Pnt2us
> {};
373 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
374 struct SFPnt2s
: public SField
<Pnt2s
> {};
375 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
376 struct SFPnt2f
: public SField
<Pnt2f
> {};
377 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
378 struct SFPnt2fx
: public SField
<Pnt2fx
> {};
379 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
380 struct SFPnt2d
: public SField
<Pnt2d
> {};
381 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
382 struct SFPnt2ld
: public SField
<Pnt2ld
> {};
384 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
385 struct SFPnt3ub
: public SField
<Pnt3ub
> {};
386 #ifndef OSG_NO_INT8_PNT
387 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
388 struct SFPnt3b
: public SField
<Pnt3b
> {};
390 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
391 struct SFPnt3us
: public SField
<Pnt3us
> {};
392 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
393 struct SFPnt3s
: public SField
<Pnt3s
> {};
394 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
395 struct SFPnt3f
: public SField
<Pnt3f
> {};
396 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
397 struct SFPnt3fx
: public SField
<Pnt3fx
> {};
398 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
399 struct SFPnt3d
: public SField
<Pnt3d
> {};
400 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
401 struct SFPnt3ld
: public SField
<Pnt3ld
> {};
403 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
404 struct SFPnt4ub
: public SField
<Pnt4ub
> {};
405 #ifndef OSG_NO_INT8_PNT
406 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
407 struct SFPnt4b
: public SField
<Pnt4b
> {};
409 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
410 struct SFPnt4us
: public SField
<Pnt4us
> {};
411 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
412 struct SFPnt4s
: public SField
<Pnt4s
> {};
413 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
414 struct SFPnt4f
: public SField
<Pnt4f
> {};
415 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
416 struct SFPnt4fx
: public SField
<Pnt4fx
> {};
417 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
418 struct SFPnt4d
: public SField
<Pnt4d
> {};
419 /*! \ingroup GrpBaseFieldSingle \ingroup GrpLibOSGBase */
420 struct SFPnt4ld
: public SField
<Pnt4ld
> {};
422 #endif // these are the doxygen hacks
426 #endif /* _OSGVECSFIELDS_H_ */