Panda3D
pta_LVecBase4.h
1 // Filename: pta_LVecBase4.h
2 // Created by: drose (27Feb10)
3 //
4 ////////////////////////////////////////////////////////////////////
5 //
6 // PANDA 4D SOFTWARE
7 // Copyright (c) Carnegie Mellon University. All rights reserved.
8 //
9 // All use of this software is subject to the terms of the revised BSD
10 // license. You should have received a copy of this license along
11 // with this source code in a file named "LICENSE."
12 //
13 ////////////////////////////////////////////////////////////////////
14 
15 #ifndef PTA_LVECBASE4_H
16 #define PTA_LVECBASE4_H
17 
18 #include "pandabase.h"
19 #include "luse.h"
20 #include "pointerToArray.h"
21 
22 ////////////////////////////////////////////////////////////////////
23 // Class : PTA_LVecBase4f
24 // Description : A pta of LVecBase4fs. This class is defined once here,
25 // and exported to PANDA.DLL; other packages that want
26 // to use a pta of this type (whether they need to
27 // export it or not) should include this header file,
28 // rather than defining the pta again.
29 //
30 // We actually wrap UnalignedLVecBase4f, in case we are
31 // building with SSE2 and LVecBase4f requires strict
32 // alignment.
33 ////////////////////////////////////////////////////////////////////
34 
35 EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_MATHUTIL, EXPTP_PANDA_MATHUTIL, PointerToBase<ReferenceCountedVector<UnalignedLVecBase4f> >)
36 EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_MATHUTIL, EXPTP_PANDA_MATHUTIL, PointerToArrayBase<UnalignedLVecBase4f>)
37 EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_MATHUTIL, EXPTP_PANDA_MATHUTIL, PointerToArray<UnalignedLVecBase4f>)
38 EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_MATHUTIL, EXPTP_PANDA_MATHUTIL, ConstPointerToArray<UnalignedLVecBase4f>)
39 
40 typedef PointerToArray<UnalignedLVecBase4f> PTA_LVecBase4f;
41 typedef ConstPointerToArray<UnalignedLVecBase4f> CPTA_LVecBase4f;
42 
43 ////////////////////////////////////////////////////////////////////
44 // Class : PTA_LVecBase4d
45 // Description : A pta of LVecBase4ds. This class is defined once here,
46 // and exported to PANDA.DLL; other packages that want
47 // to use a pta of this type (whether they need to
48 // export it or not) should include this header file,
49 // rather than defining the pta again.
50 //
51 // We actually wrap UnalignedLVecBase4d, in case we are
52 // building with SSE2 and LVecBase4d requires strict
53 // alignment.
54 ////////////////////////////////////////////////////////////////////
55 
56 EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_MATHUTIL, EXPTP_PANDA_MATHUTIL, PointerToBase<ReferenceCountedVector<UnalignedLVecBase4d> >)
57 EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_MATHUTIL, EXPTP_PANDA_MATHUTIL, PointerToArrayBase<UnalignedLVecBase4d>)
58 EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_MATHUTIL, EXPTP_PANDA_MATHUTIL, PointerToArray<UnalignedLVecBase4d>)
59 EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_MATHUTIL, EXPTP_PANDA_MATHUTIL, ConstPointerToArray<UnalignedLVecBase4d>)
60 
61 typedef PointerToArray<UnalignedLVecBase4d> PTA_LVecBase4d;
62 typedef ConstPointerToArray<UnalignedLVecBase4d> CPTA_LVecBase4d;
63 
64 ////////////////////////////////////////////////////////////////////
65 // Class : PTA_LVecBase4i
66 // Description : A pta of LVecBase4is. This class is defined once here,
67 // and exported to PANDA.DLL; other packages that want
68 // to use a pta of this type (whether they need to
69 // export it or not) should include this header file,
70 // rather than defining the pta again.
71 //
72 // We actually wrap UnalignedLVecBase4i, in case we are
73 // building with SSE2 and LVecBase4i requires strict
74 // alignment.
75 ////////////////////////////////////////////////////////////////////
76 
77 EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_MATHUTIL, EXPTP_PANDA_MATHUTIL, PointerToBase<ReferenceCountedVector<UnalignedLVecBase4i> >)
78 EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_MATHUTIL, EXPTP_PANDA_MATHUTIL, PointerToArrayBase<UnalignedLVecBase4i>)
79 EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_MATHUTIL, EXPTP_PANDA_MATHUTIL, PointerToArray<UnalignedLVecBase4i>)
80 EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_MATHUTIL, EXPTP_PANDA_MATHUTIL, ConstPointerToArray<UnalignedLVecBase4i>)
81 
82 typedef PointerToArray<UnalignedLVecBase4i> PTA_LVecBase4i;
83 typedef ConstPointerToArray<UnalignedLVecBase4i> CPTA_LVecBase4i;
84 
85 #ifndef STDFLOAT_DOUBLE
86 typedef PTA_LVecBase4f PTA_LVecBase4;
87 typedef CPTA_LVecBase4f CPTA_LVecBase4;
88 #else
89 typedef PTA_LVecBase4d PTA_LVecBase4;
90 typedef CPTA_LVecBase4d CPTA_LVecBase4;
91 #endif // STDFLOAT_DOUBLE
92 
93 // Bogus typedefs for interrogate and legacy Python code.
94 #ifdef CPPPARSER
95 typedef PTA_LVecBase4f PTAVecBase4f;
96 typedef CPTA_LVecBase4f CPTAVecBase4f;
97 typedef PTA_LVecBase4d PTAVecBase4d;
98 typedef CPTA_LVecBase4d CPTAVecBase4d;
99 #endif // CPPPARSER
100 
101 // Tell GCC that we'll take care of the instantiation explicitly here.
102 #ifdef __GNUC__
103 #pragma interface
104 #endif
105 
106 #endif
This is the base class for PointerTo and ConstPointerTo.
Definition: pointerToBase.h:32
This is an "unaligned" LVecBase4.
Definition: lvecBase4.h:300
A special kind of PointerTo that stores an array of the indicated element type, instead of a single e...
This is the base class for PointerToArray and ConstPointerToArray.
This is an "unaligned" LVecBase4.
Definition: lvecBase4.h:1866
This is an "unaligned" LVecBase4.
Definition: lvecBase4.h:3383
This defines the object that is actually stored and reference-counted internally by a PointerToArray...
Similar to PointerToArray, except that its contents may not be modified.