1 #ifndef __LDPREFERENCES_H__ 2 #define __LDPREFERENCES_H__ 3 4 #include <TCFoundation/TCAlertSender.h> 5 #include <LDLib/LDrawModelViewer.h> 6 #include <TCFoundation/TCStlIncludes.h> 7 #include <TCFoundation/TCUserDefaults.h> 8 9 10 class LDPreferences : public TCAlertSender 11 { 12 public: 13 enum LightDirection 14 { 15 CustomDirection = 0, 16 UpperLeft = 1, 17 UpperMiddle = 2, 18 UpperRight = 3, 19 MiddleLeft = 4, 20 Middle = 5, 21 MiddleMiddle = Middle, 22 MiddleRight = 6, 23 LowerLeft = 7, 24 LowerMiddle = 8, 25 LowerRight = 9, 26 }; 27 28 enum DefaultDirMode 29 { 30 DDMUnknown = -1, 31 DDMModelDir = 0, 32 DDMLastDir = 1, 33 DDMSpecificDir = 2, 34 }; 35 36 enum SaveOp 37 { 38 SOSnapshot = 0, 39 SOFirst = SOSnapshot, 40 SOPartsList = 1, 41 SOExport = 2, 42 SOLast = SOExport 43 }; 44 45 typedef std::map<SaveOp, DefaultDirMode> DirModeMap; 46 typedef std::map<SaveOp, std::string> SaveOpStringMap; 47 48 LDPreferences(LDrawModelViewer* modelViewer = NULL); lightVectorChangedAlertClass(void)49 static const char *lightVectorChangedAlertClass(void) 50 { 51 return "LDLightVectorChanged"; 52 } 53 54 void setModelViewer(LDrawModelViewer *value); getModelViewer(void)55 LDrawModelViewer *getModelViewer(void) { return m_modelViewer; } 56 57 // These are called from the constructor, and cannot be properly made into 58 // virtual functions. 59 // ************************************************************************* 60 void applySettings(void); 61 void applyGeneralSettings(void); 62 void applyLDrawSettings(void); 63 void applyGeometrySettings(void); 64 void applyEffectsSettings(void); 65 void applyPrimitivesSettings(void); 66 void applyUpdatesSettings(); 67 void loadSettings(void); 68 void loadDefaultGeneralSettings(bool initializing = true); 69 void loadDefaultLDrawSettings(bool initializing = true); 70 void loadDefaultGeometrySettings(bool initializing = true); 71 void loadDefaultEffectsSettings(bool initializing = true); 72 void loadDefaultPrimitivesSettings(bool initializing = true); 73 void loadDefaultUpdatesSettings(bool initializing = true); 74 void loadDefaultInventorySettings(bool initializing = true); 75 void loadInventorySettings(void); 76 // ************************************************************************* 77 78 void commitSettings(void); 79 void commitGeneralSettings(bool flush = true); 80 void commitLDrawSettings(bool flush = true); 81 void commitGeometrySettings(bool flush = true); 82 void commitEffectsSettings(bool flush = true); 83 void commitPrimitivesSettings(bool flush = true); 84 void commitUpdatesSettings(bool flush = true); 85 void commitInventorySettings(bool flush = true); 86 87 virtual void saveDefaultView(void); 88 virtual void resetDefaultView(void); 89 90 // General settings getFsaaMode(void)91 int getFsaaMode(void) { return m_fsaaMode; } getLineSmoothing(void)92 bool getLineSmoothing(void) { return m_lineSmoothing; } 93 void getBackgroundColor(int &r, int &g, int &b); 94 void getDefaultColor(int &r, int &g, int &b); getTransDefaultColor(void)95 bool getTransDefaultColor(void) { return m_transDefaultColor; } getDefaultColorNumber(void)96 int getDefaultColorNumber(void) { return m_defaultColorNumber; } getProcessLdConfig(void)97 bool getProcessLdConfig(void) { return m_processLdConfig; } getRandomColors(void)98 bool getRandomColors(void) { return m_randomColors; } getShowFps(void)99 bool getShowFps(void) { return m_showFps; } getShowAxes(void)100 bool getShowAxes(void) { return m_showAxes; } getShowErrors(void)101 bool getShowErrors(void) { return m_showErrors; } getDisableSmp(void)102 bool getDisableSmp(void) { return !m_multiThreaded; } getMultiThreaded(void)103 bool getMultiThreaded(void) { return m_multiThreaded; } getFullScreenRefresh(void)104 int getFullScreenRefresh(void) { return m_fullScreenRefresh; } getFov(void)105 TCFloat getFov(void) { return m_fov; } getMemoryUsage(void)106 int getMemoryUsage(void) { return m_memoryUsage; } 107 void getCustomColor(int index, int &r, int &g, int &b); 108 DefaultDirMode getSaveDirMode(SaveOp op) const; 109 const std::string& getSaveDir(SaveOp op) const; 110 const std::string& getLastSaveDir(SaveOp op) const; 111 const std::string& getDefaultSaveDir(SaveOp op, const std::string &modelFilename); 112 getSnapshotsDirMode(void)113 DefaultDirMode getSnapshotsDirMode(void) const 114 { 115 return getSaveDirMode(SOSnapshot); 116 } getSnapshotsDir(void)117 std::string getSnapshotsDir(void) 118 { 119 return getSaveDir(SOSnapshot); 120 } getPartsListsDirMode(void)121 DefaultDirMode getPartsListsDirMode(void) const 122 { 123 return getSaveDirMode(SOPartsList); 124 } getPartsListsDir(void)125 std::string getPartsListsDir(void) const 126 { 127 return getSaveDir(SOPartsList); 128 } 129 130 // LDraw settings getLDrawDir(void)131 const char *getLDrawDir(void) { return m_ldrawDir.c_str(); } getExtraDirs(void)132 const StringVector &getExtraDirs(void) { return m_extraDirs; } 133 134 // Geometry settings getUseSeams(void)135 bool getUseSeams(void) { return m_useSeams; } getSeamWidth(void)136 int getSeamWidth(void) { return m_seamWidth; } getBoundingBoxesOnly(void)137 bool getBoundingBoxesOnly(void) { return m_boundingBoxesOnly; } getDrawWireframe(void)138 bool getDrawWireframe(void) { return m_drawWireframe; } getUseWireframeFog(void)139 bool getUseWireframeFog(void) { return m_useWireframeFog; } getRemoveHiddenLines(void)140 bool getRemoveHiddenLines(void) { return m_removeHiddenLines; } getWireframeThickness(void)141 int getWireframeThickness(void) { return m_wireframeThickness; } getBfc(void)142 bool getBfc(void) { return m_bfc; } getRedBackFaces(void)143 bool getRedBackFaces(void) { return m_redBackFaces; } getGreenFrontFaces(void)144 bool getGreenFrontFaces(void) { return m_greenFrontFaces; } getBlueNeutralFaces(void)145 bool getBlueNeutralFaces(void) { return m_blueNeutralFaces; } getShowHighlightLines(void)146 bool getShowHighlightLines(void) { return m_showHighlightLines; } getDrawConditionalHighlights(void)147 bool getDrawConditionalHighlights(void) 148 { 149 return m_drawConditionalHighlights; 150 } getShowAllConditionalLines(void)151 bool getShowAllConditionalLines(void) { return m_showAllConditionalLines; } getShowConditionalControlPoints(void)152 bool getShowConditionalControlPoints(void) 153 { 154 return m_showConditionalControlPoints; 155 } getEdgesOnly(void)156 bool getEdgesOnly(void) { return m_edgesOnly; } getUsePolygonOffset(void)157 bool getUsePolygonOffset(void) { return m_usePolygonOffset; } getBlackHighlights(void)158 bool getBlackHighlights(void) { return m_blackHighlights; } getEdgeThickness(void)159 int getEdgeThickness(void) { return m_edgeThickness; } 160 161 // Effects settings getUseLighting(void)162 bool getUseLighting(void) { return m_useLighting; } getQualityLighting(void)163 bool getQualityLighting(void) { return m_qualityLighting; } getSubduedLighting(void)164 bool getSubduedLighting(void) { return m_subduedLighting; } getUseSpecular(void)165 bool getUseSpecular(void) { return m_useSpecular; } getOneLight(void)166 bool getOneLight(void) { return m_oneLight; } 167 LightDirection getLightDirection(void); getLightVector(void)168 const TCVector &getLightVector(void) { return m_lightVector; } getDrawLightDats(void)169 bool getDrawLightDats(void) { return m_drawLightDats; } getOptionalStandardLight(void)170 bool getOptionalStandardLight(void) { return m_optionalStandardLight; } getNoLightGeom(void)171 bool getNoLightGeom(void) { return m_noLightGeom; } getStereoMode(void)172 LDVStereoMode getStereoMode(void) { return m_stereoMode; } getStereoEyeSpacing(void)173 int getStereoEyeSpacing(void) { return m_stereoEyeSpacing; } getCutawayMode(void)174 LDVCutawayMode getCutawayMode(void) { return m_cutawayMode; } getCutawayAlpha(void)175 int getCutawayAlpha(void) { return m_cutawayAlpha; } getCutawayThickness(void)176 int getCutawayThickness(void) { return m_cutawayThickness; } getSortTransparent(void)177 bool getSortTransparent(void) { return m_sortTransparent; } getPerformSmoothing(void)178 bool getPerformSmoothing(void) { return m_performSmoothing; } getUseStipple(void)179 bool getUseStipple(void) { return m_useStipple; } getUseFlatShading(void)180 bool getUseFlatShading(void) { return m_useFlatShading; } getObi(void)181 bool getObi(void) { return m_obi; } 182 183 // Primitives settings getAllowPrimitiveSubstitution(void)184 bool getAllowPrimitiveSubstitution(void) 185 { 186 return m_allowPrimitiveSubstitution; 187 } getTextureStuds(void)188 bool getTextureStuds(void) { return m_textureStuds; } getTextureFilterType(void)189 int getTextureFilterType(void) { return m_textureFilterType; } getAnisoLevel(void)190 TCFloat getAnisoLevel(void) { return m_anisoLevel; } getCurveQuality(void)191 int getCurveQuality(void) { return m_curveQuality; } getQualityStuds(void)192 bool getQualityStuds(void) { return m_qualityStuds; } getHiResPrimitives(void)193 bool getHiResPrimitives(void) { return m_hiResPrimitives; } getTexmaps(void)194 bool getTexmaps(void) { return m_texmaps; } getTexturesAfterTransparent(void)195 bool getTexturesAfterTransparent(void) { return true; } getTextureOffsetFactor(void)196 TCFloat getTextureOffsetFactor(void) { return m_textureOffsetFactor; } 197 198 // Update settings getProxyType(void)199 int getProxyType(void) { return m_proxyType; } getProxyServer(void)200 const char *getProxyServer(void) { return m_proxyServer.c_str(); } getProxyPort(void)201 int getProxyPort(void) { return m_proxyPort; } getCheckPartTracker(void)202 bool getCheckPartTracker(void) { return m_checkPartTracker; } getMissingPartWait(void)203 int getMissingPartWait(void) { return m_missingPartWait; } getUpdatedPartWait(void)204 int getUpdatedPartWait(void) { return m_updatedPartWait; } 205 206 // Inventory settings getInvShowModel(void)207 bool getInvShowModel(void) { return m_invShowModel; } getInvOverwriteSnapshot(void)208 bool getInvOverwriteSnapshot(void) { return m_invOverwriteSnapshot; } getInvExternalCss(void)209 bool getInvExternalCss(void) { return m_invExternalCss; } getInvPartImages(void)210 bool getInvPartImages(void) { return m_invPartImages; } getInvShowFile(void)211 bool getInvShowFile(void) { return m_invShowFile; } getInvShowTotal(void)212 bool getInvShowTotal(void) { return m_invShowTotal; } getInvColumnOrder(void)213 const LongVector &getInvColumnOrder(void) { return m_invColumnOrder; } getInvLastSavePath(void)214 const std::string& getInvLastSavePath(void) const 215 { 216 return getLastSaveDir(SOPartsList); 217 } 218 219 // General settings 220 void setFsaaMode(int value, bool commit = false); 221 void setLineSmoothing(bool value, bool commit = false); 222 void setBackgroundColor(int r, int g, int b, bool commit = false); 223 void setDefaultColor(int r, int g, int b, bool commit = false); 224 void setTransDefaultColor(bool value, bool commit = false, 225 bool apply = false); 226 void setDefaultColorNumber(int value, bool commit = false); 227 void setProcessLdConfig(bool value, bool commit = false); 228 void setRandomColors(bool value, bool commit = false, bool apply = false); 229 void setShowFps(bool value, bool commit = false); 230 void setShowAxes(bool value, bool commit = false, bool apply = false); 231 void setShowErrors(bool value, bool commit = false); 232 void setDisableSmp(bool value, bool commit = false); 233 void setFullScreenRefresh(int value, bool commit = false); 234 void setFov(TCFloat value, bool commit = false); 235 void setMemoryUsage(int value, bool commit = false); 236 void setCustomColor(int index, int r, int g, int b, bool commit = false); 237 void setSaveDirMode(SaveOp op, DefaultDirMode value, bool commit = false); 238 void setSaveDir(SaveOp op, const char *value, bool commit = false); 239 void setLastSaveDir(SaveOp op, const char *value, bool commit = false); 240 241 void setSnapshotsDirMode(DefaultDirMode value, bool commit = false) 242 { 243 setSaveDirMode(SOSnapshot, value, commit); 244 } 245 void setSnapshotsDir(const char *value, bool commit = false) 246 { 247 setSaveDir(SOSnapshot, value, commit); 248 } 249 void setPartsListsDirMode(DefaultDirMode value, bool commit = false) 250 { 251 setSaveDirMode(SOPartsList, value, commit); 252 } 253 void setPartsListsDir(const char *value, bool commit = false) 254 { 255 setSaveDir(SOPartsList, value, commit); 256 } 257 258 // LDraw settings 259 void setLDrawDir(const char *value, bool commit = false); 260 void setExtraDirs(const StringVector &value, bool commit = false); 261 262 // Geometry settings 263 void setUseSeams(bool value, bool commit = false, bool apply = false); 264 void setSeamWidth(int value, bool commit = false); 265 void setBoundingBoxesOnly(bool value, bool commit = false, 266 bool apply = false); 267 void setDrawWireframe(bool value, bool commit = false, bool apply = false); 268 void setUseWireframeFog(bool value, bool commit = false, 269 bool apply = false); 270 void setRemoveHiddenLines(bool value, bool commit = false, 271 bool apply = false); 272 void setWireframeThickness(int value, bool commit = false); 273 void setBfc(bool value, bool commit = false, bool apply = false); 274 void setRedBackFaces(bool value, bool commit = false, bool apply = false); 275 void setGreenFrontFaces(bool value, bool commit = false, 276 bool apply = false); 277 void setBlueNeutralFaces(bool value, bool commit = false, 278 bool apply = false); 279 void setShowHighlightLines(bool value, bool commit = false, 280 bool apply = false); 281 void setDrawConditionalHighlights(bool value, bool commit = false, 282 bool apply = false); 283 void setShowAllConditionalLines(bool value, bool commit = false, 284 bool apply = false); 285 void setShowConditionalControlPoints(bool value, bool commit = false, 286 bool apply = false); 287 void setEdgesOnly(bool value, bool commit = false, bool apply = false); 288 void setUsePolygonOffset(bool value, bool commit = false, 289 bool apply = false); 290 void setBlackHighlights(bool value, bool commit = false, 291 bool apply = false); 292 void setEdgeThickness(int value, bool commit = false); 293 294 // Effects settings 295 void setUseLighting(bool value, bool commit = false, bool apply = false); 296 void setQualityLighting(bool value, bool commit = false, bool apply = false); 297 void setSubduedLighting(bool value, bool commit = false, bool apply = false); 298 void setUseSpecular(bool value, bool commit = false, bool apply = false); 299 void setOneLight(bool value, bool commit = false, bool apply = false); 300 void setLightDirection(LightDirection value, bool commit = false, 301 bool apply = false); 302 void setLightVector(const TCVector &value, bool commit = false, 303 bool apply = false); 304 void setDrawLightDats(bool value, bool commit = false, bool apply = false); 305 void setOptionalStandardLight(bool value, bool commit = false, 306 bool apply = false); 307 void setNoLightGeom(bool value, bool commit = false, bool apply = false); 308 void setStereoMode(LDVStereoMode value, bool commit = false); 309 void setStereoEyeSpacing(int value, bool commit = false); 310 void setCutawayMode(LDVCutawayMode value, bool commit = false, 311 bool apply = false); 312 void setCutawayAlpha(int value, bool commit = false); 313 void setCutawayThickness(int value, bool commit = false); 314 void setSortTransparent(bool value, bool commit = false); 315 void setPerformSmoothing(bool value, bool commit = false, 316 bool apply = false); 317 void setUseStipple(bool value, bool commit = false); 318 void setUseFlatShading(bool value, bool commit = false, bool apply = false); 319 void setObi(bool value, bool commit = false); 320 321 // Primitives settings 322 void setAllowPrimitiveSubstitution(bool value, bool commit = false, 323 bool apply = false); 324 void setTextureStuds(bool value, bool commit = false, bool apply = false); 325 void setTextureFilterType(int value, bool commit = false); 326 void setAnisoLevel(TCFloat value, bool commit = false); 327 void setCurveQuality(int value, bool commit = false); 328 void setQualityStuds(bool value, bool commit = false, bool apply = false); 329 void setHiResPrimitives(bool value, bool commit = false); 330 void setTexmaps(bool value, bool commit = false, bool apply = false); 331 void setTexturesAfterTransparent(bool value, bool commit = false, bool apply = false); 332 void setTextureOffsetFactor(TCFloat value, bool commit = false, bool apply = false); 333 void setUseStrips(bool value, bool commit = false, bool apply = false); 334 335 // Update settings 336 void setProxyType(int value, bool commit = false); 337 void setProxyServer(const char *value, bool commit = false); 338 void setProxyPort(int value, bool commit = false); 339 void setCheckPartTracker(bool value, bool commit = false); 340 void setMissingPartWait(int value, bool commit = false); 341 void setUpdatedPartWait(int value, bool commit = false); 342 343 // Inventory settings 344 void setInvShowModel(bool value, bool commit = false); 345 void setInvOverwriteSnapshot(bool value, bool commit = false); 346 void setInvExternalCss(bool value, bool commit = false); 347 void setInvPartImages(bool value, bool commit = false); 348 void setInvShowFile(bool value, bool commit = false); 349 void setInvShowTotal(bool value, bool commit = false); 350 void setInvColumnOrder(const LongVector &value, bool commit = false); 351 void setInvLastSavePath(const char *value, bool commit = false) 352 { 353 setLastSaveDir(SOPartsList, value, commit); 354 } 355 356 // No UI 357 void setDefaultZoom(TCFloat value, bool commit = false); 358 protected: 359 ~LDPreferences(void); 360 void dealloc(void); 361 void setSetting(bool &setting, bool value, const char *key, bool commit); 362 void setSetting(int &setting, int value, const char *key, bool commit); 363 void setSetting(TCULong &setting, TCULong value, const char *key, 364 bool commit); 365 void setSetting(TCFloat &setting, TCFloat value, const char *key, 366 bool commit); 367 void setSetting(std::string &setting, const std::string &value, 368 const char *key, bool commit, bool isPath = false); 369 void setSetting(LongVector &setting, const LongVector &value, 370 const char *key, bool commit); 371 void setSetting(StringVector &setting, const StringVector &value, 372 const char *key, bool commit, bool isPath = false, int keyDigits = 2, 373 int startIndex = 0); 374 bool setSetting(TCVector &setting, const TCVector &value, 375 const char *key, bool commit); 376 void setColorSetting(TCULong &setting, int r, int g, int b, const char *key, 377 bool commit); 378 bool getBoolSetting(const char *key, bool defaultValue = false); 379 LongVector getLongVectorSetting(const char *key, 380 const LongVector &defaultValue = LongVector()); 381 StringVector getStringVectorSetting(const char *key, 382 const StringVector &defaultValue = StringVector(), bool isPath = false, 383 int keyDigits = 2, int startIndex = 0); 384 TCVector getTCVectorSetting(const char *key, 385 const TCVector &defaultValue = TCVector()); 386 long getLongSetting(const char *key, long defaultValue = 0); 387 int getIntSetting(const char *key, int defaultValue = 0); 388 float getFloatSetting(const char *key, float defaultValue = 0.0f); 389 std::string getStringSetting(const char *key, 390 const char *defaultValue = NULL, bool isPath = false); 391 void getColorSetting(const char *key, int &r, int &g, int &b, 392 TCULong defaultColor = 0); 393 394 virtual void getRGB(int color, int &r, int &g, int &b); 395 virtual int getColor(int r, int g, int b); 396 virtual void commitSaveDir(SaveOp op); 397 398 // These are called from the constructor, and cannot be properly made into 399 // virtual functions. 400 // ************************************************************************* 401 void setupDefaultRotationMatrix(void); 402 void setupModelCenter(void); 403 void setupModelSize(void); 404 void loadGeneralSettings(void); 405 void loadLDrawSettings(void); 406 void loadGeometrySettings(void); 407 void loadEffectsSettings(void); 408 void loadPrimitivesSettings(void); 409 void loadUpdatesSettings(void); 410 void setupSaveDir(SaveOp op, const std::string &dirModeKey, 411 const std::string &dirKey, const std::string &lastDirKey); 412 void loadSaveDir(SaveOp op); 413 void setSaveDirDefault(SaveOp op, DefaultDirMode mode); 414 // ************************************************************************* 415 416 static std::string m_emptyString; 417 static std::string m_modelDir; 418 LDrawModelViewer* m_modelViewer; 419 420 // General settings 421 int m_fsaaMode; 422 bool m_lineSmoothing; 423 TCULong m_backgroundColor; 424 TCULong m_defaultColor; 425 bool m_transDefaultColor; 426 int m_defaultColorNumber; 427 bool m_processLdConfig; 428 bool m_randomColors; 429 bool m_showFps; 430 bool m_showAxes; 431 bool m_showErrors; 432 bool m_multiThreaded; 433 int m_fullScreenRefresh; 434 TCFloat m_fov; 435 int m_memoryUsage; 436 TCULong m_customColors[16]; 437 DirModeMap m_saveDirModes; 438 SaveOpStringMap m_saveDirs; 439 SaveOpStringMap m_lastSaveDirs; 440 SaveOpStringMap m_saveDirModeKeys; 441 SaveOpStringMap m_saveDirKeys; 442 SaveOpStringMap m_lastSaveDirKeys; 443 444 // LDraw settings 445 std::string m_ldrawDir; 446 StringVector m_extraDirs; 447 448 // Geometry settings 449 bool m_useSeams; 450 int m_seamWidth; 451 bool m_boundingBoxesOnly; 452 bool m_drawWireframe; 453 bool m_useWireframeFog; 454 bool m_removeHiddenLines; 455 int m_wireframeThickness; 456 bool m_bfc; 457 bool m_redBackFaces; 458 bool m_greenFrontFaces; 459 bool m_blueNeutralFaces; 460 bool m_showHighlightLines; 461 bool m_drawConditionalHighlights; 462 bool m_showAllConditionalLines; 463 bool m_showConditionalControlPoints; 464 bool m_edgesOnly; 465 bool m_usePolygonOffset; 466 bool m_blackHighlights; 467 int m_edgeThickness; 468 469 // Effects settings 470 bool m_useLighting; 471 bool m_qualityLighting; 472 bool m_subduedLighting; 473 bool m_useSpecular; 474 bool m_oneLight; 475 LDVStereoMode m_stereoMode; 476 int m_stereoEyeSpacing; 477 LDVCutawayMode m_cutawayMode; 478 int m_cutawayAlpha; 479 int m_cutawayThickness; 480 bool m_sortTransparent; 481 bool m_performSmoothing; 482 bool m_useStipple; 483 bool m_useFlatShading; 484 bool m_obi; 485 486 // Primitives settings 487 bool m_allowPrimitiveSubstitution; 488 bool m_textureStuds; 489 int m_textureFilterType; 490 TCFloat m_anisoLevel; 491 int m_curveQuality; 492 bool m_qualityStuds; 493 bool m_hiResPrimitives; 494 bool m_texmaps; 495 TCFloat m_textureOffsetFactor; 496 bool m_useStrips; 497 498 // Update settings 499 int m_proxyType; 500 std::string m_proxyServer; 501 int m_proxyPort; 502 bool m_checkPartTracker; 503 int m_missingPartWait; 504 int m_updatedPartWait; 505 506 // Inventory settings 507 bool m_invShowModel; 508 bool m_invOverwriteSnapshot; 509 bool m_invExternalCss; 510 bool m_invPartImages; 511 bool m_invShowFile; 512 bool m_invShowTotal; 513 LongVector m_invColumnOrder; 514 515 // Settings with no UI 516 bool m_skipValidation; 517 TCFloat m_defaultZoom; 518 TCFloat m_zoomMax; 519 TCVector m_lightVector; 520 bool m_drawLightDats; 521 bool m_optionalStandardLight; 522 bool m_noLightGeom; 523 std::string m_ldConfig; 524 525 StringBoolMap m_changedSettings; 526 StringBoolMap m_globalSettings; 527 528 bool m_initializing; 529 }; 530 531 #endif // __LDPREFERENCES_H__ 532