Field3D
FieldMetadata.cpp
Go to the documentation of this file.
1 //----------------------------------------------------------------------------//
2 
3 /*
4  * Copyright (c) 2014 Sony Pictures Imageworks Inc.,
5  * Pixar Animation Studios Inc.
6  *
7  * All rights reserved.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions
11  * are met:
12  *
13  * Redistributions of source code must retain the above copyright
14  * notice, this list of conditions and the following disclaimer.
15  * Redistributions in binary form must reproduce the above copyright
16  * notice, this list of conditions and the following disclaimer in the
17  * documentation and/or other materials provided with the
18  * distribution. Neither the name of Sony Pictures Imageworks nor the
19  * names of its contributors may be used to endorse or promote
20  * products derived from this software without specific prior written
21  * permission.
22  *
23  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
26  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
27  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
28  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
32  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
34  * OF THE POSSIBILITY OF SUCH DAMAGE.
35  */
36 
37 //----------------------------------------------------------------------------//
38 
44 //----------------------------------------------------------------------------//
45 
46 #include "FieldMetadata.h"
47 
48 #include "Field.h"
49 
50 //----------------------------------------------------------------------------//
51 
53 
54 //----------------------------------------------------------------------------//
55 // FieldMetadata implementations
56 //----------------------------------------------------------------------------//
57 
58 void FieldMetadata::setVecFloatMetadata(const std::string &name,
59  const V3f &val)
60 {
61  m_vecFloatMetadata[name] = val;
62  if (m_owner) {
64  }
65 }
66 
67 //----------------------------------------------------------------------------//
68 
69 void FieldMetadata::setFloatMetadata(const std::string &name,
70  const float val)
71 {
72  m_floatMetadata[name] = val;
73  if (m_owner) {
75  }
76 }
77 
78 //----------------------------------------------------------------------------//
79 
80 void FieldMetadata::setVecIntMetadata(const std::string &name,
81  const V3i &val)
82 {
83  m_vecIntMetadata[name] = val;
84  if (m_owner) {
86  }
87 }
88 
89 //----------------------------------------------------------------------------//
90 
91 void FieldMetadata::setIntMetadata(const std::string &name,
92  const int val)
93 {
94  m_intMetadata[name] = val;
95  if (m_owner) {
97  }
98 }
99 
100 //----------------------------------------------------------------------------//
101 
102 void FieldMetadata::setStrMetadata(const std::string &name,
103  const std::string &val)
104 {
105  m_strMetadata[name] = val;
106  if (m_owner) {
108  }
109 }
110 
111 //----------------------------------------------------------------------------//
112 
113 V3f FieldMetadata::vecFloatMetadata(const std::string &name,
114  const V3f& defaultVal) const
115 {
116  V3f retVal = defaultVal;
117 
118  VecFloatMetadata::const_iterator i = m_vecFloatMetadata.find(name);
119  if (i != m_vecFloatMetadata.end()) {
120  retVal = i->second;
121  }
122 
123  return retVal;
124 }
125 
126 //----------------------------------------------------------------------------//
127 
128 float FieldMetadata::floatMetadata(const std::string &name,
129  const float defaultVal) const
130 {
131  float retVal = defaultVal;
132 
133  FloatMetadata::const_iterator i = m_floatMetadata.find(name);
134  if (i != m_floatMetadata.end()) {
135  retVal = i->second;
136  }
137 
138  return retVal;
139 }
140 
141 //----------------------------------------------------------------------------//
142 
143 V3i FieldMetadata::vecIntMetadata(const std::string &name,
144  const V3i& defaultVal) const
145 {
146  V3i retVal = defaultVal;
147 
148  VecIntMetadata::const_iterator i = m_vecIntMetadata.find(name);
149  if (i != m_vecIntMetadata.end()) {
150  retVal = i->second;
151  }
152 
153  return retVal;
154 }
155 
156 //----------------------------------------------------------------------------//
157 
158 int FieldMetadata::intMetadata(const std::string &name,
159  const int defaultVal) const
160 {
161  int retVal = defaultVal;
162 
163  IntMetadata::const_iterator i = m_intMetadata.find(name);
164  if (i != m_intMetadata.end()) {
165  retVal = i->second;
166  }
167 
168  return retVal;
169 }
170 
171 //----------------------------------------------------------------------------//
172 
173 std::string FieldMetadata::strMetadata(const std::string &name,
174  const std::string &defaultVal) const
175 {
176  std::string retVal = defaultVal;
177 
178  StrMetadata::const_iterator i = m_strMetadata.find(name);
179  if (i != m_strMetadata.end()) {
180  retVal = i->second;
181  }
182 
183  return retVal;
184 }
185 
186 //----------------------------------------------------------------------------//
187 
189 
190 //----------------------------------------------------------------------------//
V3i
Imath::V3i V3i
Definition: SpiMathLib.h:71
FieldMetadata::vecFloatMetadata
const VecFloatMetadata & vecFloatMetadata() const
Read only access to the m_vecFloatMetadata dictionary.
Definition: FieldMetadata.h:147
FieldMetadata.h
Basic container for metedata.
FieldMetadata::floatMetadata
const FloatMetadata & floatMetadata() const
Read only access to the m_floatMetadata dictionary.
Definition: FieldMetadata.h:151
V3f
Imath::V3f V3f
Definition: SpiMathLib.h:73
FieldMetadata::m_vecFloatMetadata
VecFloatMetadata m_vecFloatMetadata
V3f metadata.
Definition: FieldMetadata.h:192
FieldMetadata::m_owner
MetadataCallback * m_owner
Pointer to owner. It is assumed that this has a lifetime at least as long as the Metadata instance.
Definition: FieldMetadata.h:204
FieldMetadata::m_floatMetadata
FloatMetadata m_floatMetadata
Float metadata.
Definition: FieldMetadata.h:194
FieldMetadata::vecIntMetadata
const VecIntMetadata & vecIntMetadata() const
Read only access to the m_vecIntMetadata dictionary.
Definition: FieldMetadata.h:155
FieldMetadata::intMetadata
const IntMetadata & intMetadata() const
Read only access to the m_intMetadata dictionary.
Definition: FieldMetadata.h:159
FieldMetadata::setStrMetadata
void setStrMetadata(const std::string &name, const std::string &val)
Set the a string value for the given metadata name.
Definition: FieldMetadata.cpp:102
FieldMetadata::setIntMetadata
void setIntMetadata(const std::string &name, const int val)
Set the a int value for the given metadata name.
Definition: FieldMetadata.cpp:91
FieldMetadata::setFloatMetadata
void setFloatMetadata(const std::string &name, const float val)
Set the a float value for the given metadata name.
Definition: FieldMetadata.cpp:69
Field.h
Contains Field, WritableField and ResizableField classes.
FieldMetadata::strMetadata
const StrMetadata & strMetadata() const
Read only access to the m_strMetadata dictionary.
Definition: FieldMetadata.h:163
FIELD3D_NAMESPACE_SOURCE_CLOSE
#define FIELD3D_NAMESPACE_SOURCE_CLOSE
Definition: ns.h:60
FieldMetadata::setVecFloatMetadata
void setVecFloatMetadata(const std::string &name, const V3f &val)
Set the a V3f value for the given metadata name.
Definition: FieldMetadata.cpp:58
FieldMetadata::m_intMetadata
IntMetadata m_intMetadata
Int metadata.
Definition: FieldMetadata.h:198
FieldMetadata::m_strMetadata
StrMetadata m_strMetadata
String metadata.
Definition: FieldMetadata.h:200
FIELD3D_NAMESPACE_OPEN
Definition: FieldMapping.cpp:74
FieldMetadata::m_vecIntMetadata
VecIntMetadata m_vecIntMetadata
V3i metadata.
Definition: FieldMetadata.h:196
FieldMetadata::setVecIntMetadata
void setVecIntMetadata(const std::string &name, const V3i &val)
Set the a V3i value for the given metadata name.
Definition: FieldMetadata.cpp:80
MetadataCallback::metadataHasChanged
virtual void metadataHasChanged(const std::string &)
Alerts the callback holder that the metadata has changed.
Definition: FieldMetadata.h:75