Panda3D

config_linmath.cxx
Go to the documentation of this file.
1 /**
2 * PANDA 3D SOFTWARE
3 * Copyright (c) Carnegie Mellon University. All rights reserved.
4 *
5 * All use of this software is subject to the terms of the revised BSD
6 * license. You should have received a copy of this license along
7 * with this source code in a file named "LICENSE."
8 *
9 * @file config_linmath.cxx
10 * @author drose
11 * @date 2000-02-23
12 */
13
14 #include "config_linmath.h"
15 #include "luse.h"
16 #include "coordinateSystem.h"
17
18 #include "dconfig.h"
19
20 #if !defined(CPPPARSER) && !defined(LINK_ALL_STATIC) && !defined(BUILDING_PANDA_LINMATH)
21 #error Buildsystem error: BUILDING_PANDA_LINMATH not defined
22 #endif
23
24 Configure(config_linmath);
25 NotifyCategoryDef(linmath, "");
26
27 ConfigureFn(config_linmath) {
28 init_liblinmath();
29 }
30
31 ConfigVariableBool paranoid_hpr_quat
32 ("paranoid-hpr-quat", false,
33 PRC_DESC("Set this true to doublecheck the quaternion-hpr compose and "
34 "decompose operations against the quaternion-matrix and matrix-hpr "
35 "operations. This only has effect if NDEBUG is not defined."));
36
37 ConfigVariableBool no_singular_invert
38 ("no-singular-invert", false,
39 PRC_DESC("Set this true to make singular-invert warning messages generate an "
40 "assertion failure instead of just a warning (which can then be "
41 "trapped with assert-abort)."));
42
43 /**
44 * Initializes the library. This must be called at least once before any of
45 * the functions or classes in this library can be used. Normally it will be
46 * called by the static initializers and need not be called explicitly, but
47 * special cases exist.
48 */
49 void
50 init_liblinmath() {
51 static bool initialized = false;
52 if (initialized) {
53 return;
54 }
55 initialized = true;
56
57 LVecBase2f::init_type();
58 LVecBase3f::init_type();
59 LVecBase4f::init_type();
60 LVector2f::init_type();
61 LVector3f::init_type();
62 LVector4f::init_type();
63 LPoint2f::init_type();
64 LPoint3f::init_type();
65 LPoint4f::init_type();
66 LMatrix3f::init_type();
67 LMatrix4f::init_type();
68 UnalignedLVecBase4f::init_type();
69 UnalignedLMatrix4f::init_type();
70
71 LVecBase2d::init_type();
72 LVecBase3d::init_type();
73 LVecBase4d::init_type();
74 LVector2d::init_type();
75 LVector3d::init_type();
76 LVector4d::init_type();
77 LPoint2d::init_type();
78 LPoint3d::init_type();
79 LPoint4d::init_type();
80 LMatrix3d::init_type();
81 LMatrix4d::init_type();
82 UnalignedLVecBase4d::init_type();
83 UnalignedLMatrix4d::init_type();
84
85 LVecBase2i::init_type();
86 LVecBase3i::init_type();
87 LVecBase4i::init_type();
88 LVector2i::init_type();
89 LVector3i::init_type();
90 LVector4i::init_type();
91 LPoint2i::init_type();
92 LPoint3i::init_type();
93 LPoint4i::init_type();
94 UnalignedLVecBase4i::init_type();
95
96 LQuaternionf::init_type();
97 LRotationf::init_type();
98 LOrientationf::init_type();
99
100 LQuaterniond::init_type();
101 LRotationd::init_type();
102 LOrientationd::init_type();
103 }
ConfigVariableBool
This is a convenience class to specialize ConfigVariable as a boolean type.
Definition: configVariableBool.h:23
init_liblinmath
void init_liblinmath()
Initializes the library.
Definition: config_linmath.cxx:50
config_linmath.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
coordinateSystem.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
dconfig.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
luse.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.