Results.h
1 //##################################################################################################
2 //
3 // Ceetron Desktop Components
4 // Component: App
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 "CeeApp/Base.h"
16 #include "CeeCore/Base.h"
17 #include "CeeCore/PtrRef.h"
18 #include "CeeCore/RefCountedObject.h"
19 #include "CeeUnstructGrid/DataState.h"
20 #include "CeeUnstructGrid/ResultInfo.h"
21 
22 namespace cee {
23 namespace app {
24 
25 
26 //==================================================================================================
27 //
28 // Class for result management
29 //
30 //==================================================================================================
31 class CEE_APP_EXPORT Results : public RefCountedObject
32 {
33 
34 public:
35 
36  static Results* instance();
37 
38  size_t count() const;
39  size_t scalarCount() const;
40  size_t vectorCount() const;
41  size_t displacementCount() const;
42  size_t tensorCount() const;
43 
44  size_t indexOf(cee::ug::ResultInfo info) const;
45  size_t scalarIndexOf(cee::ug::ResultInfo info) const;
46  size_t vectorIndexOf(cee::ug::ResultInfo info) const;
47  size_t displacementIndexOf(cee::ug::ResultInfo info) const;
48  size_t tensorIndexOf(cee::ug::ResultInfo info) const;
49 
50  cee::ug::ResultInfo resultInfo(size_t index) const;
51  cee::ug::ResultInfo resultInfo(const Str& wildcard) const;
52 
53  cee::ug::ResultInfo scalarInfo(size_t index) const;
54  cee::ug::ResultInfo scalarInfo(const Str& wildcard) const;
55 
56  cee::ug::ResultInfo vectorInfo(size_t index) const;
57  cee::ug::ResultInfo vectorInfo(const Str& wildcard) const;
58 
59  cee::ug::ResultInfo displacementInfo(size_t index) const;
60  cee::ug::ResultInfo displacementInfo(const Str& wildcard) const;
61 
62  cee::ug::ResultInfo tensorInfo(size_t index) const;
63  cee::ug::ResultInfo tensorInfo(const Str& wildcard) const;
64 
65  cee::ug::DataPartScalar* currentDataPartScalar(cee::ug::ResultInfo scalar);
66  cee::ug::DataPartVector* currentDataPartVector(cee::ug::ResultInfo vector);
67  cee::ug::DataPartSymmetricTensor* currentDataPartTensor(cee::ug::ResultInfo tensor);
68  cee::ug::DataPartDisplacement* currentDataPartDisplacement(cee::ug::ResultInfo displacement);
69 
70  cee::ug::DataPartScalar* currentDataPartScalar(const Str& wildcard);
71  cee::ug::DataPartVector* currentDataPartVector(const Str& wildcard);
72  cee::ug::DataPartSymmetricTensor* currentDataPartTensor(const Str& wildcard);
73  cee::ug::DataPartDisplacement* currentDataPartDisplacement(const Str& wildcard);
74 
75  cee::ug::DataResultScalar* currentDataResultScalar(cee::ug::ResultInfo scalar);
76  cee::ug::DataResultVector* currentDataResultVector(cee::ug::ResultInfo vector);
77  cee::ug::DataResultSymmetricTensor* currentDataResultTensor(cee::ug::ResultInfo tensor);
78  cee::ug::DataResultDisplacement* currentDataResultDisplacement(cee::ug::ResultInfo displacement);
79 
80  cee::ug::DataResultScalar* currentDataResultScalar(const Str& wildcard);
81  cee::ug::DataResultVector* currentDataResultVector(const Str& wildcard);
82  cee::ug::DataResultSymmetricTensor* currentDataResultTensor(const Str& wildcard);
83  cee::ug::DataResultDisplacement* currentDataResultDisplacement(const Str& wildcard);
84 
85  void add(cee::ug::ResultInfo result);
86  void add(cee::ug::ResultInfo result, const Str& name);
87  void remove(cee::ug::ResultInfo result);
88  void removeAll();
89 
90 private:
91  Results();
92  virtual ~Results();
93 
94  CEE_PRIVATE_IMPL(Results);
95  CEE_DISALLOW_COPY_AND_ASSIGN(Results);
96 
97 };
98 
99 }
100 }
Symmetric tensor results for all parts in the geometry.
Definition: DataResultSymmetricTensor.h:29
Namespace cee contains all functionality and structures under the Core component. ...
Definition: AppComponent.cpp:26
Vector result values for a part.
Definition: DataPartVector.h:31
Simple class containing metadata info for a result.
Definition: ResultInfo.h:34
A general unicode based string class.
Definition: Str.h:28
Scalar result for all parts in the geometry.
Definition: DataResultScalar.h:28
Scalar result values for a part.
Definition: DataPartScalar.h:31
Symmetric tensor result values for a part.
Definition: DataPartSymmetricTensor.h:31
Base class for all reference counted objects with built-in support for intrusive reference counting...
Definition: RefCountedObject.h:34
Displacement results for a part.
Definition: DataPartDisplacement.h:31
Displacements results for all parts in the geometry.
Definition: DataResultDisplacement.h:30
Vector results for all parts in the geometry.
Definition: DataResultVector.h:29
Class to access results of the current state of an application.
Definition: Results.h:31