SDC C-Project CF Review 프로그램
LYW
2021-06-09 f143e5ece742a275d1e360c55e829d21e706b26d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#pragma once
 
#define TRIANGLE_PROGRAM_PATH        _T("C:\\DIT_Review\\")
#define TRIANGLE_RECIPE_PATH        _T("C:\\DIT_Review\\RecipeTriangle\\")
#define TRIANGLE_RECIPE_INFO        _T("RecipeTriangle.ini")
 
#include "RecipeTriangle.h"
 
class AFX_EXT_CLASS CRecipeInfo
{
public:
    CRecipeInfo()    { Reset(); }
    ~CRecipeInfo()    { Reset(); }
    void Reset()
    {
        strRecipeName    = _T("");
        strModelFile    = _T("");
        strRecipeFile    = _T("");
        strLoadFilePath    = _T("");
    }
 
    CString strRecipeName;
    CString strRecipeFile;
    CString strModelFile;
    CString strLoadFilePath;
};
typedef std::vector<CRecipeInfo>                VectorRecipeInfo;
typedef std::vector<CRecipeInfo>::iterator        VectorRecipeInfoIt;
 
class AFX_EXT_CLASS CRecipeManager 
{
public:
    CRecipeManager();
    CRecipeManager(const CString& strFilename);
    ~CRecipeManager(void);
    void Reset()
    {
        m_strRecipePath = _T("");
        m_strRecipeInfoFile = TRIANGLE_RECIPE_INFO;
        m_vectorRecipeInfo.clear();
        m_vectorRecipeTriangle.clear();
    }
 
    BOOL ReadRecipeInfo(const CString& strFilename);
    BOOL WriteRecipeInfo(const CString& strFilename);
 
    // getter
    UINT GetRecipeInfoCount()                        { return (UINT)m_vectorRecipeInfo.size(); }
    VectorRecipeInfo* GetRecipeInfo()                { return &m_vectorRecipeInfo; }
    CRecipeInfo* GetRecipeInfo(UINT nIndex)            { return (nIndex>=m_vectorRecipeInfo.size()) ? NULL: &m_vectorRecipeInfo[nIndex]; }
 
    UINT GetRecipeTriangleCount()                    { return (UINT)m_vectorRecipeTriangle.size(); }
    VectorRecipeTriangle* GetRecipeTriangle()        { return &m_vectorRecipeTriangle; }
    CRecipeTriangle* GetRecipeTriangle(UINT nIndex)    { return (nIndex>=m_vectorRecipeTriangle.size()) ? NULL: &m_vectorRecipeTriangle[nIndex]; }
 
    // adder
    void AddRecipe(const CRecipeInfo& recipeInfo, const CRecipeTriangle& recipeTrianlge);
 
    // delete 
    void DeleteRecipe(UINT nIndex);
 
    // setter
    void SetRecipeInfoCount(UINT nCount)                            { m_vectorRecipeInfo.resize(nCount); m_vectorRecipeInfo.resize(nCount); }
    void SetRecipeInfo(const VectorRecipeInfo& vectorRecipeInfo)    { m_vectorRecipeInfo = vectorRecipeInfo; }
    BOOL SetRecipeInfo(UINT nIndex, const CRecipeInfo& recipeInfo);
 
private:
    CString                    m_strRecipePath;
    CString                    m_strRecipeInfoFile;
    VectorRecipeInfo        m_vectorRecipeInfo;
    VectorRecipeTriangle    m_vectorRecipeTriangle;
};