]> SALOME platform Git repositories - modules/shaper.git/blob - src/CollectionAPI/CollectionAPI_Field.h
Salome HOME
8d38cb1ffdd2e3673acfdba435225bf9e5c6b40a
[modules/shaper.git] / src / CollectionAPI / CollectionAPI_Field.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D -->
2
3 // File:        CollectionAPI_Field.h
4 // Created:     16 Nov 2016
5 // Author:      Mikhail Ponikarov
6
7 #ifndef CollectionAPI_Field_H_
8 #define CollectionAPI_Field_H_
9
10 #include "CollectionAPI.h"
11
12 #include <CollectionPlugin_Field.h>
13
14 #include <ModelHighAPI_Interface.h>
15 #include <ModelHighAPI_Macro.h>
16
17 class ModelHighAPI_Dumper;
18 class ModelHighAPI_Selection;
19 class ModelHighAPI_Integer;
20 class ModelHighAPI_ComponentValue;
21
22 /// \class CollectionAPI_Field
23 /// \inField CPPHighAPI
24 /// \brief Interface for Field feature.
25 class CollectionAPI_Field: public ModelHighAPI_Interface
26 {
27 public:
28   /// Constructor without values.
29   COLLECTIONAPI_EXPORT
30   explicit CollectionAPI_Field(const std::shared_ptr<ModelAPI_Feature>& theFeature);
31
32   /// Destructor.
33   COLLECTIONAPI_EXPORT
34   virtual ~CollectionAPI_Field();
35
36   INTERFACE_7(CollectionPlugin_Field::ID(),
37     selection, CollectionPlugin_Field::SELECTED_ID(),
38     ModelAPI_AttributeSelectionList, /** Field selection list*/,
39     componentsNum, CollectionPlugin_Field::COMPONENTS_NB_ID(),
40     ModelAPI_AttributeInteger, /** Number of components integer */,
41     componentsNames, CollectionPlugin_Field::COMPONENTS_NAMES_ID(),
42     ModelAPI_AttributeStringArray, /** Names of components list of strings */,
43     valuesType, CollectionPlugin_Field::VALUES_TYPE_ID(),
44     ModelAPI_AttributeInteger, /** Type of the values enumeration */,
45     stepsNum, CollectionPlugin_Field::STEPS_NB_ID(),
46     ModelAPI_AttributeInteger, /** Number of steps integer */,
47     stamps, CollectionPlugin_Field::STAMPS_ID(),
48     ModelAPI_AttributeIntArray, /** Identifiers of stamps */,
49     values, CollectionPlugin_Field::VALUES_ID(), ModelAPI_AttributeTables /** Table of values */,
50     )
51
52   /// Set selected objects.
53   COLLECTIONAPI_EXPORT
54   void setSelection(const std::list<ModelHighAPI_Selection>& theFieldList);
55   /// Set number of components
56   COLLECTIONAPI_EXPORT
57   void setComponentsNum(const ModelHighAPI_Integer& theNum);
58   /// Set names of components
59   COLLECTIONAPI_EXPORT
60   void setComponentsNames(const std::list<std::string>& theNames);
61   /// Set type of values
62   COLLECTIONAPI_EXPORT
63   void setValuesType(const std::string& theType);
64   /// Set number of steps
65   COLLECTIONAPI_EXPORT
66   void setStepsNum(const ModelHighAPI_Integer& theSteps);
67   /// Set stamps identifiers
68   COLLECTIONAPI_EXPORT
69   void setStamps(const std::list<ModelHighAPI_Integer>& theStamps);
70   /// Sets the double values of specific step
71   COLLECTIONAPI_EXPORT
72   void addStep(const ModelHighAPI_Integer& theStepNum, const ModelHighAPI_Integer& theStamp,
73     const std::list<std::list<double> >& theComponents);
74   /// Sets the integer values of specific step
75   COLLECTIONAPI_EXPORT
76   void addStep(const ModelHighAPI_Integer& theStepNum, const ModelHighAPI_Integer& theStamp,
77     const std::list<std::list<int> >& theComponents);
78   /// Sets the string values of specific step
79   COLLECTIONAPI_EXPORT
80   void addStep(const ModelHighAPI_Integer& theStepNum, const ModelHighAPI_Integer& theStamp,
81     const std::list<std::list<std::string> >& theComponents);
82   /// Sets the boolean values of specific step
83   COLLECTIONAPI_EXPORT
84   void addStep(const ModelHighAPI_Integer& theStepNum, const ModelHighAPI_Integer& theStamp,
85     const std::list<std::list<bool> >& theComponents);
86
87   /// Dump wrapped feature
88   COLLECTIONAPI_EXPORT
89   virtual void dump(ModelHighAPI_Dumper& theDumper) const;
90 };
91
92 /// Pointer on Field object.
93 typedef std::shared_ptr<CollectionAPI_Field> FieldPtr;
94
95 /// \inField CPPHighAPI
96 /// \brief Create Field feature.
97 COLLECTIONAPI_EXPORT
98 FieldPtr addField(const std::shared_ptr<ModelAPI_Document>& thePart,
99                   const ModelHighAPI_Integer& theStepsNum,
100                   const std::string& theComponentType,
101                   const int theComponentsNum,
102                   const std::list<std::string>& theComponentNames,
103                   const std::list<ModelHighAPI_Selection>& theSelectionList);
104
105 #endif // CollectionAPI_Field_H_