DataSourceDirectory.h
1 //##################################################################################################
2 //
3 // Ceetron Desktop Components
4 // Component: UnstructGrid
5 //
6 // --------------------------------------------------------------------------------------------
7 // Copyright (C) 2011, Ceetron AS
8 // This is UNPUBLISHED PROPRIETARY SOURCE CODE of Ceetron AS. The contents of this file may
9 // not be disclosed to third parties, copied or duplicated in any form, in whole or in part,
10 // without the prior written permission of Ceetron AS.
11 //##################################################################################################
12 
13 #pragma once
14 
15 #include "CeeUnstructGrid/Base.h"
16 
17 #include "CeeCore/RefCountedObject.h"
18 
19 #include "CeeUnstructGrid/PartInfo.h"
20 #include "CeeUnstructGrid/ResultInfo.h"
21 #include "CeeUnstructGrid/SectionInfo.h"
22 #include "CeeUnstructGrid/SetInfo.h"
23 #include "CeeUnstructGrid/StateInfo.h"
24 #include "CeeUnstructGrid/StateGroupInfo.h"
25 #include "CeeUnstructGrid/SimulationInfo.h"
26 
27 #include <string>
28 #include <vector>
29 
30 
31 namespace cee {
32 namespace ug {
33 
34 
35 //==================================================================================================
36 //
38 //
39 //==================================================================================================
40 class CEE_UG_EXPORT DataSourceDirectory : public RefCountedObject
41 {
42 public:
43  virtual ~DataSourceDirectory();
44 
45  void clear();
46  size_t geometryCountPerState() const;
47 
48  SimulationInfo simulationInfo() const;
49 
50  std::vector<StateInfo> stateInfos() const;
51  std::vector<StateGroupInfo> stateGroupInfos() const;
52  std::vector<StateInfo> ungroupedStateInfos() const;
53 
54  std::vector<ResultInfo> scalarResultInfos() const;
55  std::vector<ResultInfo> vectorResultInfos() const;
56  std::vector<ResultInfo> displacementResultInfos() const;
57  std::vector<ResultInfo> symmetricTensorResultInfos() const;
58  std::vector<PartInfo> partInfos(size_t globalGeometryIndex) const;
59  bool transformationResult() const;
60  bool visibilityResult() const;
61  std::vector<SetInfo> setInfos() const;
62 
63  std::vector<SectionInfo> sectionInfos() const;
64  std::vector<SectionCategoryInfo> sectionCategoryInfos() const;
65  std::vector<SectionGroupInfo> sectionGroupInfos() const;
66 
67 
68  std::vector<ResultInfo> resultInfos(ResultType resultType) const;
69  std::vector<Str> resultNatures(ResultType resultType) const;
70 
71  StateInfo findStateInfo(int stateId) const;
72  StateGroupInfo findStateGroupInfo(int stateGroupId) const;
73 
74  ResultInfo findResultInfo(ResultType resultType, int resultId) const;
75  ResultInfo findScalarResultInfo(int resultId) const;
76  ResultInfo findVectorResultInfo(int resultId) const;
77  ResultInfo findDisplacementResultInfo(int resultId) const;
78  ResultInfo findSymmetricTensorResultInfo(int resultId) const;
79 
80  ResultInfo findResultInfo(ResultType resultType, const Str& resultIdString) const;
81  ResultInfo findScalarResultInfo(const Str& resultIdString) const;
82  ResultInfo findVectorResultInfo(const Str& resultIdString) const;
83  ResultInfo findDisplacementResultInfo(const Str& resultIdString) const;
84  ResultInfo findSymmetricTensorResultInfo(const Str& resultIdString) const;
85 
86  PartInfo findPartInfo(size_t globalGeometryIndex, int partId) const;
87  SetInfo findSetInfo(int setId) const;
88  SectionInfo findSectionInfo(int sectiondId) const;
89  SectionCategoryInfo findSectionCategoryInfo(int categoryId) const;
90  SectionGroupInfo findSectionGroupInfo(int sectiondGroupId) const;
91 
92  std::vector<ResultInfo> derivedScalarResultInfos(int resultId) const;
93  std::vector<ResultInfo> derivedVectorResultInfos(int resultId) const;
94 
95  bool hasResult(int stateId, ResultInfo info) const;
96  bool hasScalarResult(int stateId, int resultId) const;
97  bool hasVectorResult(int stateId, int resultId) const;
98  bool hasSymmetricTensorResult(int stateId, int resultId) const;
99  bool hasDisplacementResult(int stateId, int resultId) const;
100 
101  void setStateGroupInfo(StateGroupInfo info);
102  void removeAllStateGroupInfos();
103 
104  void setStateInfo(StateInfo info);
105  void addStateInfo(StateInfo info);
106  void removeAllStateInfos();
107 
108  void setResultInfo(ResultInfo resultInfo);
109  void removeAllResultInfos(ResultType resultType);
110 
111  void setScalarResultInfo(ResultInfo resultInfo);
112  void removeAllScalarResultInfos();
113 
114  void setVectorResultInfo(ResultInfo resultInfo);
115  void removeAllVectorResultInfos();
116 
117  void setDisplacementResultInfo(ResultInfo resultInfo);
118  void removeAllDisplacementResultInfos();
119 
120  void setSymmetricTensorResultInfo(ResultInfo resultInfo);
121  void removeAllSymmetricTensorResultInfos();
122 
123  void setPartInfo(size_t globalGeometryIndex, PartInfo partInfo);
124  void removeAllPartInfos(size_t globalGeometryIndex);
125 
126  void setSetInfo(SetInfo setInfo);
127  void removeSetInfo(int setId);
128  void removeAllSetInfos();
129 
130  void setTransformationResult(bool hasTransformationResult);
131  void setVisibilityResult(bool hasVisibilityResult);
132 
133  std::vector<ResultInfo> customResultInfos() const;
134  void setCustomResultInfo(ResultInfo resultInfo);
135  void removeCustomResultInfo(ResultInfo resultInfo);
136 
137  std::vector<ResultInfo> customResultBaseDependencies(ResultInfo resultInfo) const;
138 
139  // Set info!
140 
141 private:
143 
144 private:
145  CEE_PRIVATE_F(DataSource);
146  CEE_PRIVATE_IMPL(DataSourceDirectory);
147  CEE_DISALLOW_COPY_AND_ASSIGN(DataSourceDirectory);
148 };
149 
150 } // namespace ug
151 } // namespace cee
Simple class containing metadata info for a section category.
Definition: SectionInfo.h:55
The data source of the model. For instance a file interface or custom built by the user...
Definition: DataSource.h:35
Namespace cee contains all functionality and structures under the Core component. ...
Definition: AppComponent.cpp:26
Simple class containing metadata info for a result.
Definition: ResultInfo.h:34
A general unicode based string class.
Definition: Str.h:28
Simple class containing metadata info for a group of states.
Definition: StateGroupInfo.h:29
Base class for all reference counted objects with built-in support for intrusive reference counting...
Definition: RefCountedObject.h:34
Simple class containing metadata info for a section.
Definition: SectionInfo.h:29
Simple class containing metadata info for a part.
Definition: PartInfo.h:29
Metadata directory for a data source.
Definition: DataSourceDirectory.h:40
Simple class containing metadata info for a state.
Definition: StateInfo.h:29
Simple class containing metadata info for a section Group.
Definition: SectionInfo.h:82
Simple class containing metadata info for the simulation that produced the model database.
Definition: SimulationInfo.h:26
ResultType
Different types of results.
Definition: Base.h:90
Simple class containing metadata info for a set.
Definition: SetInfo.h:29