All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
InteriorsMaterialDto.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "InteriorsMaterials.h"
6 #include "VectorMath.h"
7 #include "InteriorsResourceCounts.h"
8 #include "InteriorMaterialData.h"
9 #include <string>
10 #include <vector>
11 
12 
13 namespace Eegeo
14 {
15  namespace Resources
16  {
17  namespace Interiors
18  {
19  namespace Materials
20  {
22  {
23  InteriorsMaterialDto() { Eegeo_INTERIOR_RESOURCE_COUNTER_INCREMENT(ResourceCounts::MaterialDescriptors); }
24  ~InteriorsMaterialDto() { Eegeo_INTERIOR_RESOURCE_COUNTER_DECREMENT(ResourceCounts::MaterialDescriptors); }
25 
27  {
28  *this = other;
29  }
30 
31  InteriorsMaterialDto& operator=(const InteriorsMaterialDto& other)
32  {
33  if (this != &other)
34  {
35  Eegeo_INTERIOR_RESOURCE_COUNTER_INCREMENT(ResourceCounts::MaterialDescriptors);
36  this->materialName = other.materialName;
37  this->keyValueStrings = other.keyValueStrings;
38  this->keyValueColors = other.keyValueColors;
39  this->keyValueScalars = other.keyValueScalars;
40  this->keyValueBooleans = other.keyValueBooleans;
41  }
42  return *this;
43  }
44 
45  operator Interiors::InteriorMaterialData() const
46  {
47  return InteriorMaterialData::Make(materialName,
48  keyValueStrings,
49  keyValueColors,
50  keyValueScalars,
51  keyValueBooleans);
52  }
53 
54  std::string materialName;
55  std::vector<std::pair<std::string, std::string> > keyValueStrings;
56  std::vector<std::pair<std::string, Eegeo::v4> > keyValueColors;
57  std::vector<std::pair<std::string, float> > keyValueScalars;
58  std::vector<std::pair<std::string, bool> > keyValueBooleans;
59 
60 
61  };
62 
63 
64  }
65  }
66  }
67 }