14 #include <vlutil/vlString.h>
16 #include <boost/optional.hpp>
22 class DtDynamicTerrainGeometry;
57 static DtString ToString(TypeEnum t);
59 static TypeEnum ToEnum(
const DtString& str);
83 static Builder* CreateBuilder();
103 virtual unsigned int size()
const = 0;
110 virtual DtString key(
unsigned int index = 0)
const = 0;
117 virtual TypeEnum type(
unsigned int index = 0)
const;
121 virtual boost::optional<DtString> stringValue(
const DtString& key)
const = 0;
122 virtual boost::optional<double> doubleValue(
const DtString& key)
const = 0;
123 virtual boost::optional<int> intValue(
const DtString& key)
const = 0;
124 virtual boost::optional<bool> boolValue(
const DtString& key)
const = 0;
138 double doubleValue(
const DtString& key,
double def)
const;
139 int intValue(
const DtString& key,
int def)
const;
140 bool boolValue(
const DtString& key,
bool def)
const;
145 template <
typename T>
146 boost::optional<T> getValue(
const DtString& key)
const;
150 class DT_DLL_VRVUTIL DtDynamicTerrainChange::Builder :
public DtDynamicTerrainChange
153 virtual Builder* setGeometry(DtDynamicTerrainGeometry*) = 0;
154 virtual Builder* setGeometry(
const DtDynamicTerrainGeometry*) = 0;
155 virtual Builder* addAllFrom(
const DtDynamicTerrainChange&) = 0;
156 virtual Builder* addAllFrom(
const DtDynamicTerrainChange*);
158 virtual Builder* addKeyValue(
const DtString& key,
const DtString& value) = 0;
159 virtual Builder* addKeyValue(
const DtString& key,
double value) = 0;
160 virtual Builder* addKeyValue(
const DtString& key,
int value) = 0;
161 virtual Builder* addKeyValue(
const DtString& key,
bool value) = 0;
165 inline boost::optional<DtString> DtDynamicTerrainChange::getValue<DtString>(
168 return stringValue(key);
172 inline boost::optional<double> DtDynamicTerrainChange::getValue<double>(
175 return doubleValue(key);
179 inline boost::optional<int> DtDynamicTerrainChange::getValue<int>(
182 return intValue(key);
186 inline boost::optional<bool> DtDynamicTerrainChange::getValue<bool>(
189 return boolValue(key);
TypeEnum
Enumeration representing the type of an attribute.
Definition: DtDynamicTerrainChange.h:47
#define DT_DLL_VRVUTIL
Definition: vrvUtil.h:34
Represents (possibly infinite) area of space.
Definition: DtDynamicTerrainGeometry.h:20
DT_DLL_VRFGUICORE makVrv::DtMessage & operator<<(DtMessage &msg, const makVrf::DtNetworkMessageAgentInterface &)
voidpf void uLong size
Definition: ioapi.h:39
Contains DLL export macros.
Definition: DtDynamicTerrainChange.h:52
Definition: DtDynamicTerrainChange.h:49
Definition: DtDynamicTerrainChange.h:50
Command which can be given to the dynamic terrain system to perform some change.
Definition: DtDynamicTerrainChange.h:42
DT_DLL_VRVUTIL DtDynamicTerrainChange * new_clone(const DtDynamicTerrainChange &change)
Definition: DtDynamicTerrainChange.h:51
void print(double **a, int r, int c, char *str)