Panda3D

Loading...
Searching...
No Matches
configVariableDouble.I
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 configVariableDouble.I
10 * @author drose
11 * @date 2004-10-20
12 */
13
14/**
15 *
16 */
17INLINE ConfigVariableDouble::
18ConfigVariableDouble(const std::string &name) :
19 ConfigVariable(name, VT_double),
20 _local_modified(initial_invalid_cache())
21{
22 _core->set_used();
23}
24
25/**
26 *
27 */
28INLINE ConfigVariableDouble::
29ConfigVariableDouble(const std::string &name, double default_value,
30 const std::string &description, int flags) :
31#ifdef PRC_SAVE_DESCRIPTIONS
32 ConfigVariable(name, ConfigVariableCore::VT_double, description, flags),
33#else
34 ConfigVariable(name, ConfigVariableCore::VT_double, std::string(), flags),
35#endif
36 _local_modified(initial_invalid_cache())
37{
38 set_default_value(default_value);
39 _core->set_used();
40}
41
42/**
43 *
44 */
45INLINE ConfigVariableDouble::
46ConfigVariableDouble(const std::string &name, const std::string &default_value,
47 const std::string &description, int flags) :
48#ifdef PRC_SAVE_DESCRIPTIONS
49 ConfigVariable(name, ConfigVariableCore::VT_double, description, flags),
50#else
51 ConfigVariable(name, ConfigVariableCore::VT_double, std::string(), flags),
52#endif
53 _local_modified(initial_invalid_cache())
54{
55 _core->set_default_value(default_value);
56 _core->set_used();
57}
58
59/**
60 * Reassigns the variable's local value.
61 */
62INLINE void ConfigVariableDouble::
63 operator = (double value) {
64 set_value(value);
65}
66
67/**
68 * Returns the variable's value.
69 */
70INLINE ConfigVariableDouble::
71operator double () const {
72 return get_value();
73}
74
75/**
76 * Returns the number of unique words in the variable.
77 */
78INLINE size_t ConfigVariableDouble::
79 size() const {
80 return get_num_words();
81}
82
83/**
84 * Returns the value of the variable's nth word.
85 */
86INLINE double ConfigVariableDouble::
87 operator [] (size_t n) const {
88 return get_word(n);
89}
90
91/**
92 * Reassigns the variable's local value.
93 */
94INLINE void ConfigVariableDouble::
95 set_value(double value) {
96 set_string_value("");
97 set_double_word(0, value);
98}
99
100/**
101 * Returns the variable's value.
102 */
103INLINE double ConfigVariableDouble::
104 get_value() const {
105 TAU_PROFILE("double ConfigVariableDouble::get_value() const", " ", TAU_USER);
106 if (!is_cache_valid(_local_modified)) {
107 mark_cache_valid(((ConfigVariableDouble *)this)->_local_modified);
108 ((ConfigVariableDouble *)this)->_cache = get_double_word(0);
109 }
110 return _cache;
111}
112
113/**
114 * Returns the variable's default value.
115 */
116INLINE double ConfigVariableDouble::
117 get_default_value() const {
118 const ConfigDeclaration *decl = ConfigVariable::get_default_value();
119 if (decl != nullptr) {
120 return decl->get_double_word(0);
121 }
122 return 0.0;
123}
124
125/**
126 * Returns the variable's nth value.
127 */
128INLINE double ConfigVariableDouble::
129 get_word(size_t n) const {
130 return get_double_word(n);
131}
132
133/**
134 * Reassigns the variable's nth value. This makes a local copy of the
135 * variable's overall value.
136 */
137INLINE void ConfigVariableDouble::
138 set_word(size_t n, double value) {
139 set_double_word(n, value);
140}
ConfigDeclaration::get_double_word
double get_double_word(size_t n) const
Returns the integer value of the nth word of the declaration's value, or 0 if there is no nth value.
Definition configDeclaration.I:206
ConfigVariableCore
The internal definition of a ConfigVariable.
Definition configVariableCore.h:34
ConfigVariableDouble::set_value
set_value
Reassigns the variable's local value.
Definition configVariableDouble.h:43
ConfigVariableDouble::get_word
double get_word(size_t n) const
Returns the variable's nth value.
Definition configVariableDouble.I:129
ConfigVariableDouble::operator[]
double operator[](size_t n) const
Returns the value of the variable's nth word.
Definition configVariableDouble.I:87
ConfigVariableDouble::get_value
get_value
Returns the variable's value.
Definition configVariableDouble.h:43
ConfigVariableDouble::get_default_value
get_default_value
Returns the variable's default value.
Definition configVariableDouble.h:44
ConfigVariableDouble::set_word
void set_word(size_t n, double value)
Reassigns the variable's nth value.
Definition configVariableDouble.I:138
ConfigVariableDouble::operator=
void operator=(double value)
Reassigns the variable's local value.
Definition configVariableDouble.I:63
ConfigVariableDouble::size
size_t size() const
Returns the number of unique words in the variable.
Definition configVariableDouble.I:79
ConfigVariable
This is a generic, untyped ConfigVariable.
Definition configVariable.h:31
ConfigVariable::get_num_words
size_t get_num_words() const
Returns the number of words in the variable's value.
Definition configVariable.I:100
ConfigVariable::set_string_value
void set_string_value(const std::string &value)
Changes the value assigned to this variable.
Definition configVariable.I:80
string
STL class.
std
STL namespace.