My Project
AttributeModelProxy.h
1 #pragma once
2 
3 namespace ParaEngine
4 {
9  template<typename T>
11  {
12  public:
13  typedef T* ArrayPtr_type;
14  CArrayAttributeProxy(ArrayPtr_type pArray, const char* sName = NULL) : m_pArray(pArray){
15  if (sName)
16  SetIdentifier(sName);
17  };
18  virtual ~CArrayAttributeProxy(){};
19 
20  ATTRIBUTE_DEFINE_CLASS(CArrayAttributeProxy);
21 
22  virtual const std::string& GetIdentifier() {
23  return m_sName;
24  }
25  virtual void SetIdentifier(const std::string& sName){
26  m_sName = sName;
27  }
28 
29  virtual int GetChildAttributeObjectCount(int nColumnIndex = 0) {
30  return (m_pArray != nullptr) ? m_pArray->size() : 0;
31  };
32  virtual IAttributeFields* GetChildAttributeObject(int nRowIndex, int nColumnIndex=0){
33  if (m_pArray){
34  auto iter = m_pArray->begin();
35  std::advance(iter, nRowIndex);
36  if (iter != m_pArray->end())
37  return *iter;
38  }
39  return NULL;
40  }
41  public:
42  ArrayPtr_type m_pArray;
43  std::string m_sName;
44  };
45 
50  template<typename T>
52  {
53  public:
54  typedef T* MapPtr_type;
55  CMapAttributeProxy(MapPtr_type pArray, const char* sName = NULL) : m_pArray(pArray){
56  if (sName)
57  SetIdentifier(sName);
58  };
59  virtual ~CMapAttributeProxy(){};
60 
61  ATTRIBUTE_DEFINE_CLASS(CMapAttributeProxy);
62 
63  virtual int GetChildAttributeObjectCount() {
64  return (m_pArray != nullptr) ? m_pArray->size() : 0;
65  };
66  virtual IAttributeFields* GetChildAttributeObject(int nIndex){
67  if (m_pArray){
68  auto iter = m_pArray->begin();
69  std::advance(iter, nIndex);
70  if (iter != m_pArray->end())
71  return iter->second;
72  }
73  return NULL;
74  }
75 
76  virtual const std::string& GetIdentifier() {
77  return m_sName;
78  }
79  virtual void SetIdentifier(const std::string& sName){
80  m_sName = sName;
81  }
82  public:
83  MapPtr_type m_pArray;
84  std::string m_sName;
85  };
86 }
only used for editing and created on demand.
Definition: AttributeModelProxy.h:51
different physics engine has different winding order.
Definition: EventBinding.h:32
only used for editing and created on demand.
Definition: AttributeModelProxy.h:10
virtual int GetChildAttributeObjectCount(int nColumnIndex=0)
get the number of child objects (row count) in the given column.
Definition: AttributeModelProxy.h:29
A common interface for all classes implementing IAttributeFields By implementing this class&#39;s virtual...
Definition: IAttributeFields.h:59