VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtFaccManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 #include <vrvCore/vrvCore.h>
12 #include <vrvCore/DtFeature.h>
13 #include <vrvUtil/DtUnicode.h>
15 #include <vrvUtil/DtFaccCode.h>
16 #include <boost/unordered_map.hpp>
17 #include <vrvUtil/signalslib.h>
18 #include <map>
19 
20 namespace makArchives
21 {
22  class DtFeatureSettingsRecord;
23 }
24 
25 namespace makVrv
26 {
27  class DtFaccSignaler;
28  class DtDeSettings;
29 
30  class DtFaccInfo
31  {
32  public:
33 
35  : myName(name)
36  {
37  myColor[3] = myColor[2] = myColor[1] = myColor[0] = 1.0f;
38  }
39 
40  DtFaccInfo(const DtUnicode& name, float r, float g, float b, float a)
41  : myName(name)
42  {
43  myColor[0] = r;
44  myColor[1] = g;
45  myColor[2] = b;
46  myColor[3] = a;
47  }
48 
49  const DtUnicode& name() const
50  {
51  return myName;
52  }
53 
54  void setName(const DtUnicode& name)
55  {
56  myName = name;
57  }
58 
59  const float* color() const
60  {
61  return myColor;
62  }
63 
64  void setColor(const float color[4])
65  {
66  memcpy(myColor,color,sizeof(float[4]));
67  }
68 
69  protected:
71  float myColor[4];
72  };
73 
78  {
79  public:
80 
81  //Using std::map to ensure that the Info is sorted by facc code.
82  typedef std::map<DtFaccCode, DtFaccInfo> FaccCodeInfo;
83 
85  static DtFaccManager& instance(DtDe& de);
86 
89  static void registerInstance(DtDe& de, DtFaccManager* );
90 
92  virtual ~DtFaccManager();
93 
95  DtFaccInfo categoryInfo(const DtFaccCode& code) const;
96 
98  DtFaccInfo subcategoryInfo(const DtFaccCode& code) const;
99 
101  DtFaccInfo info(const DtFaccCode& code) const;
102 
105  virtual void setFaccInfo(const DtFaccCode& code, const DtFaccInfo& info,
106  bool disableAutoSave = false);
107 
109  virtual void removeFaccInfo(const DtFaccCode& code);
110 
112  const FaccCodeInfo& features() const;
113 
115  virtual void setFromRecord(const makArchives::DtFeatureSettingsRecord& record);
116 
118  virtual void getRecord(makArchives::DtFeatureSettingsRecord& record) const;
119 
121  virtual void exportSettings(const std::string& filename);
122 
124  virtual void importSettings(const std::string& filename);
125 
127  virtual DtDeSettings* settings();
128 
129  protected:
130 
132  DtFaccManager(DtDe& de);
133 
134  virtual void loadDefaults();
135  virtual void autoSave();
136 
137  protected:
141  };
142 
146  {
147  public:
148 
150  static DtFaccSignaler& instance(DtDe&);
151 
152  virtual ~DtFaccSignaler();
153 
155  boost::signalslib::signal< void (const DtFaccCode&, const DtFaccInfo&) > signal_infoChanged;
156 
157  protected:
158 
159  DtFaccSignaler();
160 
161  };
162 }
const DtUnicode & name() const
Definition: DtFaccManager.h:49
Virtual base class.
Definition: DtVirtualBaseClass.h:19
A unicode string.
Definition: DtUnicode.h:33
void setName(const DtUnicode &name)
Definition: DtFaccManager.h:54
FaccCodeInfo myCodeInfo
Definition: DtFaccManager.h:140
float myColor[4]
Definition: DtFaccManager.h:71
Definition: DtFeatureSettingsRecord.h:19
A data type which represents a FACC code.
Definition: DtFaccCode.h:19
Definition: DtFaccManager.h:30
DtDe & myDe
Definition: DtFaccManager.h:138
Contains makVrv::DtVirtualBaseClass class.
Contains makVrv::DtFeature class.
const float * color() const
Definition: DtFaccManager.h:59
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
The DtFeatureSpecificationManager manages feature specification for an application.
Definition: DtFaccManager.h:77
The signaler.
Definition: DtFaccManager.h:145
void setColor(const float color[4])
Definition: DtFaccManager.h:64
Settings class for reading and writing settings to/from files.
Definition: DtDeSettings.h:29
DtUnicode myName
Definition: DtFaccManager.h:70
boost::signalslib::signal< void(const DtFaccCode &, const DtFaccInfo &) > signal_infoChanged
Emitted when ever a signal changes.
Definition: DtFaccManager.h:155
std::map< DtFaccCode, DtFaccInfo > FaccCodeInfo
Definition: DtFaccManager.h:82
DtFaccSignaler & mySignaler
Definition: DtFaccManager.h:139
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Contains makVrv::DtFaccCode class.
DtFaccInfo(const DtUnicode &name, float r, float g, float b, float a)
Definition: DtFaccManager.h:40
Contains DLL export macros.

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)