17 #define DtIntervisibilitySettingsLine "line"
18 #define DtIntervisibilitySettingsFan "fan"
19 #define DtIntervisibilitySettingsObjectFan "object_fan"
30 Color() : r(0.0f), g(0.0f), b(0.0f), a(0.0f) {};
33 r = ((float)
COLOR_R(color) / 255.0f);
34 g = ((float)
COLOR_G(color) / 255.0f);
35 b = ((float)
COLOR_B(color) / 255.0f);
36 a = ((float)
COLOR_A(color) / 255.0f);
39 explicit Color(
unsigned int iR,
unsigned int iG,
unsigned int iB,
unsigned int iA)
40 : r((float)iR / 255.0f)
41 , g((float)iG / 255.0f)
42 , b((float)iB / 255.0f)
43 , a((float)iA / 255.0f)
47 explicit Color(
float iR,
float iG,
float iB,
float iA)
55 Color(
const Color& orig) : r(orig.r), g(orig.g), b(orig.b), a(orig.a) {};
57 bool compare(
float c1,
float c2)
const {
return ((
int)(c1 * 255.0f) == (
int)(c2 * 255.0f)); };
58 bool operator==(
const Color& orig)
const {
return (compare(r, orig.
r) && compare(g, orig.
g) && compare(b, orig.
b) && compare(a, orig.
a)); };
60 unsigned int color()
const
62 return COLOR_TO_INT((
int)(r * 255.0f), (
int)(g * 255.0f), (
int)(b * 255.0f), (
int)(a * 255.0f));
70 UseBackendForIntersections = 0x00000001,
71 IntersectTerrain = 0x00000002,
72 IntersectFeatures = 0x00000004,
73 IntersectEntities = 0x00000008,
74 WaitForServer = 0x00000010,
76 Defaults = UseBackendForIntersections | IntersectTerrain
90 friend class boost::serialization::access;
92 Color waitingForServerColorRGBA()
const
98 bool useBackendForIntersections()
const
100 return ((flags & UseBackendForIntersections) != 0);
105 return ((flags & IntersectTerrain) != 0);
108 bool intersectFeatures()
const
110 return ((flags & IntersectFeatures) != 0);
113 bool intersectEntities()
const
115 return ((flags & IntersectEntities) != 0);
118 bool waitForServer()
const
120 return ((flags & WaitForServer) != 0);
128 template<
class Archive>
129 void serialize(Archive & ar,
const unsigned int version)
131 ar & BOOST_SERIALIZATION_NVP(flags);
132 ar & BOOST_SERIALIZATION_NVP(waitTimeRequest);
133 ar & BOOST_SERIALIZATION_NVP(fanModeSamplingRate);
134 ar & BOOST_SERIALIZATION_NVP(waitingForServerColor);
145 virtual void setUseBackendForIntersections(
const std::string& key,
bool);
146 virtual bool useBackendForIntersections(
const std::string& key)
const;
149 virtual void setIntersectTerrain(
const std::string& key,
bool);
153 virtual void setIntersectFeatures(
const std::string& key,
bool);
154 virtual bool intersectFeatures(
const std::string& key)
const;
157 virtual void setIntersectEntities(
const std::string& key,
bool);
158 virtual bool intersectEntities(
const std::string& key)
const;
161 virtual void setFanModeSamplingRate(
const std::string& key,
double);
162 virtual double fanModeSamplingRate(
const std::string& key)
const;
168 virtual std::string classType()
const;
170 virtual const IntervisibilitySettings& settingsFor(
const std::string& key)
const;
171 virtual IntervisibilitySettings& settingsFor(
const std::string& key);
174 virtual void write(boost::archive::xml_oarchive& out,
const unsigned int);
175 virtual void read(boost::archive::xml_iarchive& in,
const unsigned int);
180 virtual void setWaitTimeRequest(
const std::string& key,
double);
181 virtual double waitTimeRequest(
const std::string& key)
const;
184 virtual void setWaitingForServerColor(
const std::string& key,
unsigned int);
185 virtual unsigned int waitingForServerColor(
const std::string& key)
const;
187 virtual void setWaitForServer(
const std::string& key,
bool);
188 virtual bool waitForServer(
const std::string& key)
const;
194 virtual void setFlag(
const std::string& key, Flags,
bool);
195 virtual bool flagSet(
const std::string&, Flags)
const;
216 virtual void setUseBackendForIntersections(
const std::string& key,
bool);
217 virtual bool useBackendForIntersections(
const std::string& key)
const;
220 virtual void setIntersectTerrain(
const std::string& key,
bool);
224 virtual void setIntersectFeatures(
const std::string& key,
bool);
225 virtual bool intersectFeatures(
const std::string& key)
const;
228 virtual void setIntersectEntities(
const std::string& key,
bool);
229 virtual bool intersectEntities(
const std::string& key)
const;
234 virtual void setWaitTimeRequest(
const std::string& key,
double);
235 virtual double waitTimeRequest(
const std::string& key)
const;
241 virtual void setWaitingForServerColor(
const std::string&,
unsigned int);
242 virtual unsigned int waitingForServerColor(
const std::string&)
const;
245 virtual void setFanModeSamplingRate(
const std::string& key,
double);
246 virtual double fanModeSamplingRate(
const std::string& key)
const;
248 virtual void setWaitForServer(
const std::string&,
bool);
249 virtual bool waitForServer(
const std::string&)
const;