FLImaging 6.5.8.1
SNAPCodeGenerator.h
1#pragma once
2
3#include "DefinitionGUISNAP.h"
4
5namespace FLImaging
6{
7 namespace GUI
8 {
9 class CInternalSNAPCodeGenerator;
10 class CSNAPSequenceManager;
11 class CGUIViewSNAPObjectNode;
12
13 class FL_EXPORT CSNAPCodeGenerator : public Base::CFLBase
14 {
15 public:
16 CSNAPCodeGenerator(CSNAPSequenceManager* pSequenceManager);
17 virtual ~CSNAPCodeGenerator();
18
19 const CResult GenerateCode();
20
21 Base::CFLString<wchar_t> GenerateAvailableVariableName(Base::CFLString<wchar_t> flsVariableName);
22
23 DeclareGetClassType();
24
25 protected:
26 const CResult GenerateVariableName(CGUIViewSNAPObjectNode* pNode, Base::CFLString<wchar_t>& flsVariableName, Base::CFLString<wchar_t>& flsVariableNameWithoutPrefix);
27
28 bool IsNumber(wchar_t wcChar);
29
30 bool IsVariableNameAvailableCharacter(wchar_t wcChar, bool bFirst);
31 Base::CFLString<wchar_t> ConvertAvailableVariableName(Base::CFLString<wchar_t> flsVariableName, bool bFirstUpper);
32
33 std::vector<SIOCodeInfo> GetInputIOCodes(CGUIViewSNAPObjectNode* pNode);
34 std::vector<SIOCodeInfo> GetOutputIOCodes(CGUIViewSNAPObjectNode* pNode);
35
36 Base::CFLString<wchar_t> ConvertTypeValueCode(Base::CFLString<wchar_t>& flsOutputType, Base::CFLString<wchar_t>& flsInputType, Base::CFLString<wchar_t>& flsCode);
37
38 protected:
39 CInternalSNAPCodeGenerator* m_pInternal;
40 };
41 };
42};
43