|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "PeriodicLattice.h"
|
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
#include <map>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
struct CommandInfo
|
|
|
|
|
|
{
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//CommandType type;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>з<EFBFBD>Χ
|
|
|
|
|
|
BBox bbox;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD>
|
|
|
|
|
|
std::vector<uint64_t> idxList;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>
|
|
|
|
|
|
std::vector<double> valList;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD>
|
|
|
|
|
|
struct MeshDataInfo
|
|
|
|
|
|
{
|
|
|
|
|
|
double isopStep; //<2F><>ֵ<EFBFBD><EFBFBD><DFBC><EFBFBD>
|
|
|
|
|
|
int markStep; //<2F><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>
|
|
|
|
|
|
double zMin;
|
|
|
|
|
|
double zMax;
|
|
|
|
|
|
|
|
|
|
|
|
double isoplethMin; //<2F><>С<EFBFBD><D0A1>ֵ<EFBFBD><D6B5>
|
|
|
|
|
|
double isoplethMax; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>Object<63><74>View<65>е<EFBFBD>Undo/Redo
|
|
|
|
|
|
class OMUndoRedo
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
OMUndoRedo(void);
|
|
|
|
|
|
~OMUndoRedo(void);
|
|
|
|
|
|
|
|
|
|
|
|
void Start();
|
|
|
|
|
|
void Add(const BBox& bbox, const std::vector<uint64_t>& idxList, const std::vector<double>& valList);
|
|
|
|
|
|
void AddMeshInfo(double isopStep, int markStep, double zMin, double zMax, double isoplethMin, double isoplethMax);
|
|
|
|
|
|
void End();
|
|
|
|
|
|
|
|
|
|
|
|
void Undo();
|
|
|
|
|
|
void Redo();
|
|
|
|
|
|
|
|
|
|
|
|
unsigned int GetUndoCurStep();
|
|
|
|
|
|
|
|
|
|
|
|
unsigned int GetUndoCount();
|
|
|
|
|
|
|
|
|
|
|
|
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>undo<64>б<EFBFBD><D0B1>Լ<EFBFBD><D4BC>ڴ<EFBFBD>
|
|
|
|
|
|
void ClearUndoList();
|
|
|
|
|
|
private:
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>undo<64><6F>Ϣ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
|
|
|
|
|
std::vector<CommandInfo*> m_vInfos;
|
|
|
|
|
|
std::vector<MeshDataInfo*> m_vDataInfos;
|
|
|
|
|
|
|
|
|
|
|
|
//ָ<><D6B8><EFBFBD><EFBFBD>ǰVector<6F>ж<EFBFBD>Ӧ<EFBFBD><D3A6>Index
|
|
|
|
|
|
uint32_t m_curStep;
|
|
|
|
|
|
|
|
|
|
|
|
//ָ<><D6B8><EFBFBD><EFBFBD>ǰVector<6F><72> MeshDataInfo <20><>Ӧ<EFBFBD><D3A6>Index
|
|
|
|
|
|
uint32_t m_curDataStep;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
|
|
|
|
|
|
uint64_t m_numData;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ʱ
|
|
|
|
|
|
CommandInfo* m_pCmdinfo;
|
|
|
|
|
|
|
|
|
|
|
|
MeshDataInfo* m_pDataInfo;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>undo
|
|
|
|
|
|
bool m_bWoring;
|
|
|
|
|
|
|
|
|
|
|
|
std::map<uint64_t, double> m_data;
|
|
|
|
|
|
};
|
|
|
|
|
|
|