Panda3D

config_mathutil.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_mathutil.cxx
10 * @author drose
11 * @date 1999-10-01
12 */
13
14 #include "config_mathutil.h"
15 #include "boundingVolume.h"
16 #include "geometricBoundingVolume.h"
17 #include "finiteBoundingVolume.h"
18 #include "omniBoundingVolume.h"
19 #include "boundingSphere.h"
20 #include "boundingBox.h"
21 #include "boundingHexahedron.h"
22 #include "boundingLine.h"
23 #include "boundingPlane.h"
24 #include "unionBoundingVolume.h"
25 #include "intersectionBoundingVolume.h"
26 #include "dconfig.h"
27 #include "pandaSystem.h"
28
29 #if !defined(CPPPARSER) && !defined(LINK_ALL_STATIC) && !defined(BUILDING_PANDA_MATHUTIL)
30 #error Buildsystem error: BUILDING_PANDA_MATHUTIL not defined
31 #endif
32
33 Configure(config_mathutil);
34 NotifyCategoryDef(mathutil, "");
35
36 ConfigureFn(config_mathutil) {
37 init_libmathutil();
38 }
39
40 ConfigVariableDouble fft_offset
41 ("fft-offset", 0.001);
42
43 ConfigVariableDouble fft_factor
44 ("fft-factor", 0.1);
45
46 ConfigVariableDouble fft_exponent
47 ("fft-exponent", 4);
48
49 ConfigVariableDouble fft_error_threshold
50 ("fft-error-threshold", 0.2);
51
52 ConfigVariableEnum<BoundingVolume::BoundsType> bounds_type
53 ("bounds-type", BoundingVolume::BT_sphere,
54 PRC_DESC("Specify the type of bounding volume that is created automatically "
55 "by Panda to enclose geometry. Use 'sphere' or 'box', or use "
56 "'best' to let Panda decide which is most appropriate. You can "
57 "also use 'fastest' if you don't want Panda to waste much time "
58 "computing the most optimal bounding volume."));
59
60 /**
61 * Initializes the library. This must be called at least once before any of
62 * the functions or classes in this library can be used. Normally it will be
63 * called by the static initializers and need not be called explicitly, but
64 * special cases exist.
65 */
66 void
67 init_libmathutil() {
68 static bool initialized = false;
69 if (initialized) {
70 return;
71 }
72 initialized = true;
73
74 BoundingHexahedron::init_type();
75 BoundingSphere::init_type();
76 BoundingBox::init_type();
77 BoundingVolume::init_type();
78 FiniteBoundingVolume::init_type();
79 GeometricBoundingVolume::init_type();
80 OmniBoundingVolume::init_type();
81 UnionBoundingVolume::init_type();
82 IntersectionBoundingVolume::init_type();
83 BoundingLine::init_type();
84 BoundingPlane::init_type();
85
86 #ifdef HAVE_FFTW
87 PandaSystem *ps = PandaSystem::get_global_ptr();
88 ps->add_system("fftw");
89 #endif // FFTW
90 }
boundingBox.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
boundingHexahedron.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
boundingLine.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
boundingPlane.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
boundingSphere.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
boundingVolume.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
ConfigVariableDouble
This is a convenience class to specialize ConfigVariable as a floating- point type.
Definition: configVariableDouble.h:24
ConfigVariableEnum
This class specializes ConfigVariable as an enumerated type.
Definition: configVariableEnum.h:31
PandaSystem
This class is used as a namespace to group several global properties of Panda.
Definition: pandaSystem.h:26
PandaSystem::get_global_ptr
static PandaSystem * get_global_ptr()
Returns the global PandaSystem object.
Definition: pandaSystem.cxx:446
PandaSystem::add_system
void add_system(const std::string &system)
Intended for use by each subsystem to register itself at startup.
Definition: pandaSystem.cxx:369
init_libmathutil
void init_libmathutil()
Initializes the library.
Definition: config_mathutil.cxx:67
config_mathutil.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
dconfig.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
finiteBoundingVolume.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
geometricBoundingVolume.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
intersectionBoundingVolume.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
omniBoundingVolume.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
pandaSystem.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
unionBoundingVolume.h
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.