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) {
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
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 }
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is a convenience class to specialize ConfigVariable as a boolean type.
void init_liblinmath()
Initializes the library.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.