#pragma once #include "PropItem.h" #include "OTSParticle.h" namespace OTSMODEL { using namespace OTSDATA; typedef enum class __declspec(dllexport) DISPLAY_PICTURE_TYPE { INVALID = -1, MIN = 0, IMAGE = 0, TABLE = 1, CHART = 2, MAX = 2 }RETORT_PROP_GRID_PARAM_TYPE; typedef enum class __declspec(dllexport) DATA_SOURCE_TYPE { INVALID = -1, MIN = 0, ALL = 0, SELECTION = 1, MAX = 1 }DATA_SOURCE_TYPE; typedef enum class __declspec(dllexport) IMAGE_DISPLAY_TYPE { INVALID = -1, MIN = 0, GENERAL = 0, IMAGE_GRID = 1, MAX = 1 }IMAGE_DISPLAY_TYPE; typedef enum class __declspec(dllexport) MEASURE_DATA_TYPE { INVALID = -1, MIN = 0, ALL_PARTICLE = 0, ANYLYSIS_PARTICLE = 1, PARTICALE_SIZE_DISTRIBUTION = 2, MAX = 2 }MEASURE_DATA_TYPE; typedef enum class __declspec(dllexport) IMAGE_TYPE { INVALID = -1, MIN = 0, BSE = 0, CLASSIFIED = 1, MAX = 1 }IMAGE_TYPE; typedef enum class __declspec(dllexport) CALCULATE_TABLE_TYPE { INVALID = -1, MIN = 0, MEASURE_INFO = 0, PARTICALE_GENE_INFO = 1, PARTICALE_COMP = 2, PARTICALE_SIZE_DISTRIBUTION = 3, AVE_ELEMENT_COMP =4, GB_Method1 = 5, GB_Method2 = 6, ASTM = 7, DIN = 8, MAX = 8 }CALCULATE_TABLE_TYPE; typedef enum class __declspec(dllexport) CALCULATE_CHART_TYPE { INVALID = -1, MIN = 0, COMMON_FIVE = 0, PARTICALE_COMP = 1, PARTICALE_SIZE_DISTRIBUTION = 2, TRIO_CHART = 3, MAX = 3 }CALCULATE_CHART_TYPE; typedef enum class __declspec(dllexport) PARTICLE_TYPE { INVALID = -1, MIN = 0, ALL = 0, ANALYSISED = 1, MAX = 1 }PARTICLE_TYPE; typedef enum class __declspec(dllexport) STD_ID_DEFUALT { INVALID = -1, MIN = 0, ALL = 0, UMKNOWN = 1, MAX = 1 } STD_ID_DEFUALT; typedef enum class __declspec(dllexport) SIZE_CLASS_DEFUALT { INVALID = -1, MIN = 0, ALL = 0, USER_DEFINDED = 1, MAX = 1 } SIZE_CLASS_DEFUALT; typedef enum class __declspec(dllexport) SIZE_CAL_METHOD_TYPE { INVALID = -1, MIN = 0, LENGTH = 0, WIDTH = 1, AREA = 2, CIRCLE = 3, FLTD = 4, MAX = 4 }SIZE_CAL_METHOD_TYPE; typedef enum class __declspec(dllexport) SIZE_GRID_CAL_METHOD_TYPE { INVALID = -1, MIN = 0, PARTICLE_NUM = 0, PECENT = 1, ACCUM_PERCENT = 2, MAX = 2 }SIZE_GRID_CAL_METHOD_TYPE; class __declspec(dllexport) CPropParam { public: // constructor CPropParam(); // constructor CPropParam(const CPropParam&); // copy constructor CPropParam(CPropParam*); // copy constructor CPropParam& operator=(const CPropParam&); // =operator BOOL operator==(const CPropParam&); // ==operator virtual ~CPropParam(); // destructor // type DISPLAY_PICTURE_TYPE GetType() { return m_nType; } void SetType(DISPLAY_PICTURE_TYPE a_nType) { m_nType = a_nType; } // property items list CPropItemsList& GetPropItemsList() { return m_listPropItems; } virtual void SetPropertyItems() = 0;; // data source id std::vector& GetDataSourceList() { return m_listDataSource; } BOOL SetDataSourceList(std::vector a_listDataSource); int GetDataSourceId() { return m_nDataSourceId; } BOOL SetDataSourceId(int a_nDataSourceId); // data source type DATA_SOURCE_TYPE GetDataSourceType() { return m_nDataSourceType; } BOOL SetDataSourceType(DATA_SOURCE_TYPE a_nDataSourceType); // image type IMAGE_TYPE GetImageType() { return m_nImageType; } BOOL SetImageType(IMAGE_TYPE a_nImageType); // image display type IMAGE_DISPLAY_TYPE GetImageDisplayType() { return m_nImageDisplayType; } BOOL SetImageDisplayType(IMAGE_DISPLAY_TYPE a_nImageDisplayType); // measure data type MEASURE_DATA_TYPE GetMeasureDataType() { return m_nMeasureDataType; } BOOL SetMeasureDataType(MEASURE_DATA_TYPE a_nMeasureDataType); // calculate table type CALCULATE_TABLE_TYPE GetCalTableType() { return m_nCalTableType; } BOOL SetCalTableType(CALCULATE_TABLE_TYPE a_nCalTableType); // calculate chart type CALCULATE_CHART_TYPE GetCalChartType() { return m_nCalChartType; } BOOL SetCalChartType(CALCULATE_CHART_TYPE a_nCalChartType); // particle type PARTICLE_TYPE GetPartType() { return m_nPartType; } BOOL SetPartType(PARTICLE_TYPE a_nPartType); // grain size min double GetGrainSizeMin() { return m_dGrainSizeMin; } BOOL SetGrainSizeMin(double a_dGrainSizeMin); // grain size max double GetGrainSizeMax() { return m_dGrainSizeMax; } BOOL SetGrainSizeMax(double a_dGrainSizeMax); // size calculation method type SIZE_CAL_METHOD_TYPE GetSizeCalMethodType() { return m_nSizeCalMethodType; } BOOL SetSizeCalMethodType(SIZE_CAL_METHOD_TYPE a_nSizeCalMethodType); // combo data BOOL GetPropComboData(OTS_RETORT_PROP_GRID_ITEMS a_nId, int& a_nValue); BOOL SetPropComboData(OTS_RETORT_PROP_GRID_ITEMS a_nId, int a_nValue); // double data BOOL GetPropDoubleData(OTS_RETORT_PROP_GRID_ITEMS a_nId, double& a_dValue); BOOL SetPropDoubleData(OTS_RETORT_PROP_GRID_ITEMS a_nId, double a_dValue); // get related property item BOOL GetRelatedPropItem(OTS_RETORT_PROP_GRID_ITEMS a_nId, OTS_RETORT_PROP_GRID_ITEMS& a_nRelatedPropId); BOOL UpdateAll(OTS_RETORT_PROP_GRID_ITEMS a_nId); CPropItemPtr GetPropItemById(OTS_RETORT_PROP_GRID_ITEMS a_nId); COTSParticleList GetSelectParticle() { return m_listSelectParticle; } void SetSelectParticle(COTSParticleList a_listSelectParticle) { m_listSelectParticle = a_listSelectParticle; }; // ternary phase diagram template. CString GetTopName() { return m_TopName; } BOOL SetTopName(CString a_TopName); CString GetLeftName() { return m_LeftName; } BOOL SetLeftName(CString a_LeftName); CString GetRightName() { return m_RightName; } BOOL SetRightName(CString a_RightName); std::vector& GetTopElementName() { return m_listTopElementName; } BOOL SetTopElementName(std::vector a_listTopElementName); std::vector& GetLeftElementName() { return m_listLeftElementName; } BOOL SetLeftElementName(std::vector a_listLeftElementName); std::vector& GetRightElementName() { return m_listRightElementName; } BOOL SetRightElementName(std::vector a_listRightElementName); protected: // cleanup void Cleanup(); // initialization void Init(); // duplication void Duplicate(const CPropParam& a_oSource); // Normalize grain size values void NormalizeGrainSizeValue(); // type DISPLAY_PICTURE_TYPE m_nType; // property items list CPropItemsList m_listPropItems; // data source id std::vector m_listDataSource; int m_nDataSourceId; // data source type DATA_SOURCE_TYPE m_nDataSourceType; // image display type IMAGE_DISPLAY_TYPE m_nImageDisplayType; // image type IMAGE_TYPE m_nImageType; // measure data type MEASURE_DATA_TYPE m_nMeasureDataType; // calculate table type CALCULATE_TABLE_TYPE m_nCalTableType; // calculate chart type CALCULATE_CHART_TYPE m_nCalChartType; // particle type PARTICLE_TYPE m_nPartType; int m_nSizeItemId; int m_nSizeClassTableId; // grain size min double m_dGrainSizeMin; // grain size max double m_dGrainSizeMax; // size calculation method type SIZE_CAL_METHOD_TYPE m_nSizeCalMethodType; // trio chart name CString m_strTrioChartName; int m_TrioChartType; CString m_strSizeClassTableFileFolder;//indicate the sizeClassFile directory,so we can get the sizeClass file list. // selected particle list COTSParticleList m_listSelectParticle; //CustomTemplate: Top Left Right Name CString m_TopName; CString m_LeftName; CString m_RightName; //Top Left Right ElementName is vector std::vector m_listTopElementName; std::vector m_listLeftElementName; std::vector m_listRightElementName; }; typedef std::shared_ptr __declspec(dllexport) CPropParamPtr; typedef std::vector __declspec(dllexport) CPropParamsList; class __declspec(dllexport) CPropParamImage : public CPropParam { public: // constructor CPropParamImage(); // constructor CPropParamImage(const CPropParamImage&); // copy constructor CPropParamImage(CPropParamImage*); // copy constructor CPropParamImage& operator=(const CPropParamImage&); // =operator BOOL operator==(const CPropParamImage&); // ==operator virtual ~CPropParamImage(); // destructor // property items list virtual void SetPropertyItems(); protected: // cleanup virtual void Cleanup(); // initialization virtual void Init(); // duplication virtual void Duplicate(const CPropParamImage& a_oSource); }; typedef std::shared_ptr __declspec(dllexport) CPropParamImagePtr; class __declspec(dllexport) CPropParamGrid : public CPropParam { public: // constructor CPropParamGrid(); // constructor CPropParamGrid(const CPropParamGrid&); // copy constructor CPropParamGrid(CPropParamGrid*); // copy constructor CPropParamGrid& operator=(const CPropParamGrid&); // =operator BOOL operator==(const CPropParamGrid&); // ==operator virtual ~CPropParamGrid(); // destructor // property items list virtual void SetPropertyItems(); protected: // cleanup virtual void Cleanup(); // initialization virtual void Init(); // duplication virtual void Duplicate(const CPropParamGrid& a_oSource); }; typedef std::shared_ptr __declspec(dllexport) CPropParamGridPtr; class __declspec(dllexport) CPropParamChart : public CPropParam { public: // constructor CPropParamChart(); // constructor CPropParamChart(const CPropParamChart&); // copy constructor CPropParamChart(CPropParamChart*); // copy constructor CPropParamChart& operator=(const CPropParamChart&); // =operator BOOL operator==(const CPropParamChart&); // ==operator virtual ~CPropParamChart(); // destructor // property items list virtual void SetPropertyItems(); protected: // cleanup virtual void Cleanup(); // initialization virtual void Init(); // duplication virtual void Duplicate(const CPropParamChart& a_oSource); }; typedef std::shared_ptr __declspec(dllexport) CPropParamChartPtr; }