VR-Forces 5.0.1 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  int count;
44  };
45 
46  typedef std::map<std::string, Mapping> MarkingMappings;
47  struct Marking
48  {
49  std::string displayName;
50  std::string linkageName;
53  };
54 
55  typedef std::map<std::string, Marking> Markings;
56 
57 public:
60 
63 
65  virtual ~DtVisualMetaDataManager();
66 
67  virtual Markings visualMetaDataFor(const DtFilename& metaDataFile, const DtRwVisualMetaData& vmd = DtRwVisualMetaData(""));
68 
70  virtual void clear();
71 
73  virtual std::map<std::string, std::string> markingsFromVisualMetaData(const DtFilename& metaDataFile, const DtRwVisualMetaData&,
74  bool skipVariants = false, const std::map<std::string, std::string>& variantSelections = std::map<std::string, std::string>());
75 
78 
80  static DtVisualMetaDataManager* instance();
81 
82 protected:
84  virtual std::vector<OrderedInfo> orderFromSelection(const MarkingMappings&, const DtRwNLengthStringVector&) const;
85 
87  virtual std::string randomlySelect(const std::vector<OrderedInfo>&, double topPercentToChoose, double topRandomPrecent) const;
88 
90  virtual std::string weightedExponential(const std::vector<OrderedInfo>&) const;
91 
93  virtual void* loadMetaFile(const DtFilename&) const;
94 
96  virtual std::string variantSelection(const std::string& linkage, const Markings&, const DtRwVisualMetaDataEntry&) const;
97 
100  virtual std::string subvariantSelection(const std::string& linkage, const Markings&, const DtRwVisualMetaData&, const std::map<std::string, std::string>& variantSelections) const;
101 
102 protected:
104 
105  typedef std::map<std::string, Markings> StoredMarkings;
107  tbb::spin_rw_mutex myStoredMarkingsMutex;
108 };
MarkingMappings values
Definition: visualMetaDataManager.h:52
std::map< std::string, Mapping > MarkingMappings
Definition: visualMetaDataManager.h:46
Definition: visualMetaDataManager.h:40
int count
Definition: visualMetaDataManager.h:43
StoredMarkings myStoredMarkings
Definition: visualMetaDataManager.h:106
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:55
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:105
Definition: visualMetaDataManager.h:30
tbb::spin_rw_mutex myStoredMarkingsMutex
Definition: visualMetaDataManager.h:107
int selectionMethodology
Definition: visualMetaDataManager.h:51
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:47
static DtVisualMetaDataManager * theInstance
Definition: visualMetaDataManager.h:103
#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:50
std::string displayName
Definition: visualMetaDataManager.h:49
std::string guiDisplayName
Definition: visualMetaDataManager.h:42
OrderedInfo(const OrderedInfo &orig)
Definition: visualMetaDataManager.h:34

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)