VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
visualMetaDataManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2017 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
7 
9 
10 #pragma once
11 
14 #include <vlutil/vlFilename.h>
15 #include <tbb/spin_rw_mutex.h>
16 
17 #include <map>
18 #include <set>
19 #include <string>
20 
23 
28 {
29 public:
30  struct OrderedInfo
31  {
32  OrderedInfo(const std::string& c, const std::string& p) : configName(c), pattern(p) {};
34  OrderedInfo(const OrderedInfo& orig) : configName(orig.configName), pattern(orig.pattern) {};
35 
36  std::string configName;
37  std::string pattern;
38  };
39 
40  struct Mapping
41  {
42  std::string guiDisplayName;
43  std::string configName;
44  int count;
45  };
46 
47  typedef std::map<std::string, Mapping> MarkingMappings;
48  struct Marking
49  {
50  std::string displayName;
51  std::string linkageName;
54  };
55 
56  typedef std::map<std::string, Marking> Markings;
57 
58 public:
61 
64 
66  virtual ~DtVisualMetaDataManager();
67 
68  virtual Markings visualMetaDataFor(const DtFilename& metaDataFile, const DtRwVisualMetaData& vmd = DtRwVisualMetaData(""));
69 
71  virtual void clear();
72 
74  virtual std::map<std::string, std::string> markingsFromVisualMetaData(const DtFilename& metaDataFile, const DtRwVisualMetaData&,
75  bool skipVariants = false, const std::map<std::string, std::string>& variantSelections = std::map<std::string, std::string>());
76 
79 
81  static DtVisualMetaDataManager* instance();
82  static void DeleteInstance();
83 
84 protected:
86  virtual std::vector<OrderedInfo> orderFromSelection(const MarkingMappings&, const DtRwNLengthStringVector&) const;
87 
89  virtual std::string randomlySelect(const std::vector<OrderedInfo>&, double topPercentToChoose, double topRandomPrecent) const;
90 
92  virtual std::string weightedExponential(const std::vector<OrderedInfo>&) const;
93 
95  virtual void* loadMetaFile(const DtFilename&) const;
96 
98  virtual std::string variantSelection(const std::string& linkage, const Markings&, const DtRwVisualMetaDataEntry&) const;
99 
102  virtual std::string subvariantSelection(const std::string& linkage, const Markings&, const DtRwVisualMetaData&, const std::map<std::string, std::string>& variantSelections) const;
103 
104 protected:
106 
107  typedef std::map<std::string, Markings> StoredMarkings;
109  tbb::spin_rw_mutex myStoredMarkingsMutex;
110 };
MarkingMappings values
Definition: visualMetaDataManager.h:53
std::map< std::string, Mapping > MarkingMappings
Definition: visualMetaDataManager.h:47
std::string configName
Definition: visualMetaDataManager.h:43
Definition: visualMetaDataManager.h:40
int count
Definition: visualMetaDataManager.h:44
StoredMarkings myStoredMarkings
Definition: visualMetaDataManager.h:108
The DtVisualMetaDataManager will use ead meta data files based on the given entity type...
Definition: visualMetaDataManager.h:27
std::map< std::string, Marking > Markings
Definition: visualMetaDataManager.h:56
DtRwNLengthStringVector is a named, readable/writable vector of strings of arbitrary length...
Definition: rwNLengthStringVector.h:28
std::map< std::string, Markings > StoredMarkings
Definition: visualMetaDataManager.h:107
Definition: visualMetaDataManager.h:30
tbb::spin_rw_mutex myStoredMarkingsMutex
Definition: visualMetaDataManager.h:109
int selectionMethodology
Definition: visualMetaDataManager.h:52
std::string pattern
Definition: visualMetaDataManager.h:37
DtRwVisualMetaData is a container for a visual meta data file, and, with the meta data within that fi...
Definition: rwVisualMetaData.h:18
OrderedInfo(const std::string &c, const std::string &p)
Definition: visualMetaDataManager.h:32
OrderedInfo()
Definition: visualMetaDataManager.h:33
DtRwVisualMetaDataEntry is a container for a visual meta data file, and, with the meta data within th...
Definition: rwVisualMetaDataEntry.h:18
Definition: visualMetaDataManager.h:48
static DtVisualMetaDataManager * theInstance
Definition: visualMetaDataManager.h:105
#define DT_DLL_vrfDiGuy
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfDiGuyDefines.h:34
std::string linkageName
Definition: visualMetaDataManager.h:51
std::string displayName
Definition: visualMetaDataManager.h:50
std::string guiDisplayName
Definition: visualMetaDataManager.h:42
OrderedInfo(const OrderedInfo &orig)
Definition: visualMetaDataManager.h:34

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)