Power System Platform  2026w10a-beta
Loading...
Searching...
No Matches
ControlElementContainer.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2017 Thales Lima Oliveira <thales@ufu.br>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <https://www.gnu.org/licenses/>.
16 */
17
18#ifndef CONTROLELEMENTCONTAINER_H
19#define CONTROLELEMENTCONTAINER_H
20
21#include <vector>
22
23class ControlEditor;
24class ControlElement;
25
26#include "ConnectionLine.h"
27#include "Constant.h"
28#include "Exponential.h"
29#include "Gain.h"
30#include "IOControl.h"
31#include "Limiter.h"
32#include "Multiplier.h"
33#include "RateLimiter.h"
34#include "Sum.h"
35#include "TransferFunction.h"
36#include "Divider.h"
37#include "MathExpression.h"
38
48{
49public:
52
53 virtual void FillContainer(ControlEditor* editor);
54 virtual void FillContainer(std::vector< std::shared_ptr<ControlElement> > controlElementList,
55 std::vector< std::shared_ptr<ConnectionLine> > connectionLineList);
56 virtual void GetContainerCopy(std::vector< std::shared_ptr<ControlElement> >& controlElementList,
57 std::vector< std::shared_ptr<ConnectionLine> >& connectionLineList);
58 virtual void ClearContainer();
59
60 std::vector< std::shared_ptr<ControlElement> > GetControlElementsList() const { return m_ctrlElementsList; }
61 std::vector< std::shared_ptr<ConnectionLine> > GetConnectionLineList() const { return m_cLineList; }
62 std::vector<Constant*> GetConstantList() const { return m_constantList; }
63 std::vector<Exponential*> GetExponentialList() const { return m_exponentialList; }
64 std::vector<Gain*> GetGainList() const { return m_gainList; }
65 std::vector<IOControl*> GetIOControlList() const { return m_ioControlList; }
66 std::vector<Limiter*> GetLimiterList() const { return m_limiterList; }
67 std::vector<Multiplier*> GetMultiplierList() const { return m_multiplierList; }
68 std::vector<RateLimiter*> GetRateLimiterList() const { return m_rateLimiterList; }
69 std::vector<Sum*> GetSumList() const { return m_sumList; }
70 std::vector<TransferFunction*> GetTFList() const { return m_tfList; }
71 std::vector<Divider*> GetDividerList() const { return m_dividerList; }
72 std::vector<MathExpression*> GetMathExprList() const { return m_mathExprList; }
73protected:
74 std::vector< std::shared_ptr<ControlElement> > m_ctrlElementsList;
75 std::vector< std::shared_ptr<ConnectionLine> > m_cLineList;
76
77 std::vector<Constant*> m_constantList;
78 std::vector<Exponential*> m_exponentialList;
79 std::vector<Gain*> m_gainList;
80 std::vector<IOControl*> m_ioControlList;
81 std::vector<Limiter*> m_limiterList;
82 std::vector<Multiplier*> m_multiplierList;
83 std::vector<RateLimiter*> m_rateLimiterList;
84 std::vector<Sum*> m_sumList;
85 std::vector<TransferFunction*> m_tfList;
86 std::vector<Divider*> m_dividerList;
87 std::vector<MathExpression*> m_mathExprList;
88};
89
90#endif // CONTROLELEMENTCONTAINER_H
Class that can contain all control elements. Can identify (using RTTI) the elements from a generic li...